問題タブ [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.

0 投票する
2 に答える
8832 参照

java - java.lang.Object の「shadow$_klass_」変数と「shadow$_monitor_」変数は何ですか?

最新の Android アップデート (SDK 21) では、2 つの新しい変数が に追加されたようjava.lang.Objectです。

shadow$_monitor_で簡単に使用されていることに気付きましたhashCode()

しかし、そうでなければ、それらへの参照はありません。ART の GC と何らかの関係がありますか? それともある種のネイティブのものですか?

0 投票する
0 に答える
673 参照

android - AsynchTask の操作中の ART エラー メッセージ

AsynchTask を使用しているときに奇妙なエラー メッセージが表示されますが、それが何を指しているのかわかりません。

エラーログは次のとおりです。

悪いことは何も経験していませが、それでもエラーです。これに注意する必要がありますか?誰かがこれが何を指しているのか説明できますか?

基本的に私がしていることは、次のように 20 秒ごとに AsynchTask を実行することです。

0 投票する
1 に答える
1117 参照

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ます。

スタック フレームを正しく保存/復元しますか?

クラッシュ バックトレース:

0 投票する
1 に答える
90 参照

android - Android5.1でArrayクラスに変数を追加する方法

私は Android5.1 に基づいてアートの作業を行っており、Array.h(art/runtime/mirror/Array.h) の Array クラスに変数を追加したいと考えています。

しかし、クラスに「uint32_t タグ」を追加すると、エミュレータ内のシステムが起動できなくなります。では、Android5.1 の Array.h に変数を追加するにはどうすればよいでしょうか?

クラッシュログは次のようになります。

0 投票する
1 に答える
3410 参照

android - SDK 22+ をターゲットとする Android ライブラリの ART ランタイム (vmSafeMode) と dex2oat を無効にしますか?

したがって、ART ランタイムを適切に無効にするには、アプリケーションのマニフェスト タグにandroid:vmSafeMode="true"を追加します。

私が個人的に抱えている問題は、Android ライブラリを開発しているため、アプリケーション タグがないことです。

つまり、インスタント ランを使用している場合 (dex2oat はすべてを実行する必要があります)、またはライブラリを使用している誰かがインスタント ランを使用している場合、デバッグが非常に遅くなります。

manifestPlaceholders = [vmSafeModeEnabled: "true"]build.gradle で使用しようとしましたが、これは効果がありません。

誰にも洞察がありますか?

同様に、

結果に違いはありませんでした。アプリの起動ごとに dex2oat がかなりの時間を費やしていることを今でも確認しています。

もちろん、これらのオプションはすべてアプリケーションでは問題なく機能しますが、ライブラリ/SDK 開発ではまったく機能しません。

0 投票する
0 に答える
26 参照

android - Field が dex の注釈メンバー型として表示されるのはどのようなシナリオですか?

この議論が示すように、Java はプリミティブ、String、Enum、Array、および Annotation のみをアノテーション メンバー タイプとしてサポートしているようです:
Java アノテーション メンバーに使用できるタイプ

ただし、Android アート ランタイムでは、注釈を処理するときにFieldサポートされるタイプがあります。Art はフィールド インデックスを読み取り、対応するオブジェクトを作成します。コードは次のとおりです。

JavaFieldは注釈メンバー型としてサポートしていないため、どのシナリオFieldで dex の注釈メンバー型として表示されますか? また、その製造方法は何ですか?

前もって感謝します!