問題タブ [android-d8]

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 投票する
1 に答える
181 参照

android - コマンドライン ツールを使用した Android ビルド

.apkソースコードからファイルがどのように構築されるかを理解しようとします。Android Studio またはコマンドgradlewを使用すると、ビルドを簡単に行うことができます。Android Sdk は、.apk をビルドするために使用される複数のツールを提供します。それらのほとんどは、私が何をするかを知っています。

d8: Javaバイトコードからdalvikバイトコードへ

aapt2: リソースをコンパイルしてリンクします。このツールは、.apkコンパイルされたリソースのファイルを作成します。R.java(コード内のリソースを参照するためにも作成します。)

apksigner: を受け取って.apk署名します。そうしないと、Android デバイスにインストールできません。

zipalign: の非圧縮データを整列します.apk

最後の 2 つのツールはapk、すでにすべてのファイルが含まれている で使用されます。私が理解していないのは、コンパイルされたコードとコンパイルされたリソースがどのように組み合わされるかです? 以前aapt2はパッケージ化が行われたものでしたが、Androids Documentationaaptにも記載されていません。ただし、まだ Android Sdk build-tools にあります。新品にはパッケージングのオプションはありません。aaptaapt2

では、問題は、.apkソース コードから完全なコードを作成するために、どのコマンド ライン ツールをどの順序で使用するかということです。ありがとうございました!

編集:私が探しているのは、コマンドラインで段階的に aが作成されるthisに似ています。.apk答えだけが古いaaptを使用していますが、これはもう使用されていないと思います。

編集 2:不足している情報を提供してくれたAllen Shawに 感謝します。でアプリをコンパイルできるようになりましたaapt2。私の質問に対する答えは、単純にaapt2出力と .zip を圧縮することでしたclasses.dex

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

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

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

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

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

前もって感謝します!