WinRar(圧縮ファイルを開くためのソフトウェア)でAPKファイルを開くとき。APK内にたくさんのファイルが詰め込まれています。その中にclasses.dex
は1つあります。私の質問は、このファイルの役割は何ですか?同じファイルを変更/削除すると、APKに影響しますか?
5 に答える
APK ファイルを作成するには、まず Android 用のプログラムをコンパイルし、そのすべての部分を 1 つのファイルにパッケージ化します。これには、そのプログラムのすべてのコード (これらは.dex files
)、リソース、アセット、証明書、およびマニフェスト ファイルが保持されます。
プログラムは一般的に で作成されJava
、コンパイルされbytecode
ます。これらは、デバイスにインストールする前Java Virtual Machine-compatible .class files
に(Dalvik Executable) ファイルに変換されます。Dalvik-compatible .dex
コンパクトな Dalvik Executable 形式は、メモリとプロセッサの速度に制約があるシステムに適しているように設計されています。
- classes.dex: Dalvik 仮想マシンが理解できる dex ファイル形式でコンパイルされたクラス
.dex ファイルには APK リソースが保持されているため、これらのファイルを編集すると APK に直接影響します。
.dex ファイル コンパイルされた Android アプリケーション コード ファイル。
Android プログラムはファイルにコンパイルされ、デバイス上で 1 つの.apk.dex (Dalvik Executable)
ファイルに圧縮されます。.dex ファイルは、Java プログラミング言語で記述されたコンパイル済みアプリケーションを自動的に翻訳することによって作成できます。
はい、これらのファイルを削除すると、APK に影響します。
このファイルの役割は何ですか?
Android での の役割はclasses.dex
、プレーンな Java での JAR ファイルの役割に似ています。バイトコードを含むファイルです。Android の場合、バイトコードは Java バイトコードとは異なる Dalvik バイトコードです。
同じファイルを変更/削除すると、apk に影響しますか?
を変更classes.dex
すると、プログラムの動作が変更され、再パッケージ後に動作する場合と動作しない場合があります。を削除するclasses.dex
と、アプリケーションにコードがなくなり、動作することを期待できなくなります。
apk の .dex ファイルは、アプリケーション コード内のすべての Java クラスで構成される圧縮ファイルです。jarファイルとは異なります。jar ファイルは、分離された .class ファイルのコレクションです。.jar を解凍すると、すべてのクラスが個別に取得されます。一方、.dex ファイルは、アプリケーション コードのすべての .class ファイルで構成される単一のファイルです。
コードのコンパイル フロー: 複数の .java ファイル --> 複数の .classes ファイル --> 単一の .dex ファイル
.dex ファイルは、Android のランタイムである DVM...Dalvik 仮想マシンによって実行される実行可能ファイルです。
.dex にはリソースが含まれません。リソースは、.apk の /res フォルダーに個別に保持されます