問題タブ [art-runtime]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - java.lang.Object の「shadow$_klass_」変数と「shadow$_monitor_」変数は何ですか?
最新の Android アップデート (SDK 21) では、2 つの新しい変数が に追加されたようjava.lang.Object
です。
shadow$_monitor_
で簡単に使用されていることに気付きましたhashCode()
:
しかし、そうでなければ、それらへの参照はありません。ART の GC と何らかの関係がありますか? それともある種のネイティブのものですか?
android - AsynchTask の操作中の ART エラー メッセージ
AsynchTask を使用しているときに奇妙なエラー メッセージが表示されますが、それが何を指しているのかわかりません。
エラーログは次のとおりです。
悪いことは何も経験していませんが、それでもエラーです。これに注意する必要がありますか?誰かがこれが何を指しているのか説明できますか?
基本的に私がしていることは、次のように 20 秒ごとに AsynchTask を実行することです。
android - ART ランタイムでの Dexposed クラッシュ
ART でDexposedをテストしていたところ、art::ReferenceMapVisitor::VisitQuickFrame() でランダムにクラッシュしました。dexposed がスタック フレームを正しく処理しない可能性があると思います。
hookMethodNative で使用されます。
関数 VisitQuickFrame は にあり、から取得した map.RegWidth()art/runtime/thread.cc
にアクセスするとクラッシュしましたmap.data_[1]
ArtMethod::GetEntryPointFromQuickCompiledCode
上記のアセンブル コードは からコピーされart/runtime/arch/arm/quick_entrypoints_arm.S
ます。
スタック フレームを正しく保存/復元しますか?
クラッシュ バックトレース:
android - Android5.1でArrayクラスに変数を追加する方法
私は Android5.1 に基づいてアートの作業を行っており、Array.h(art/runtime/mirror/Array.h) の Array クラスに変数を追加したいと考えています。
しかし、クラスに「uint32_t タグ」を追加すると、エミュレータ内のシステムが起動できなくなります。では、Android5.1 の Array.h に変数を追加するにはどうすればよいでしょうか?
クラッシュログは次のようになります。
android - SDK 22+ をターゲットとする Android ライブラリの ART ランタイム (vmSafeMode) と dex2oat を無効にしますか?
したがって、ART ランタイムを適切に無効にするには、アプリケーションのマニフェスト タグにandroid:vmSafeMode="true"を追加します。
私が個人的に抱えている問題は、Android ライブラリを開発しているため、アプリケーション タグがないことです。
つまり、インスタント ランを使用している場合 (dex2oat はすべてを実行する必要があります)、またはライブラリを使用している誰かがインスタント ランを使用している場合、デバッグが非常に遅くなります。
manifestPlaceholders = [vmSafeModeEnabled: "true"]
build.gradle で使用しようとしましたが、これは効果がありません。
誰にも洞察がありますか?
同様に、
結果に違いはありませんでした。アプリの起動ごとに dex2oat がかなりの時間を費やしていることを今でも確認しています。
もちろん、これらのオプションはすべてアプリケーションでは問題なく機能しますが、ライブラリ/SDK 開発ではまったく機能しません。
android - Field が dex の注釈メンバー型として表示されるのはどのようなシナリオですか?
この議論が示すように、Java はプリミティブ、String、Enum、Array、および Annotation のみをアノテーション メンバー タイプとしてサポートしているようです:
Java アノテーション メンバーに使用できるタイプ
ただし、Android アート ランタイムでは、注釈を処理するときにField
サポートされるタイプがあります。Art はフィールド インデックスを読み取り、対応するオブジェクトを作成します。コードは次のとおりです。
JavaField
は注釈メンバー型としてサポートしていないため、どのシナリオField
で dex の注釈メンバー型として表示されますか? また、その製造方法は何ですか?
前もって感謝します!