dexファイルに関する質問があります
dex
ファイルとは何ですか?具体的な情報が必要な場合は、これを手伝ってください。実際の例は大歓迎です!
。dexファイルについて:
Dalvik Virtual Machine
(Androidシステムの主力)の最も注目すべき機能の1つは、Javaバイトコードを使用しないことです。代わりに、DEXと呼ばれる自家製の形式が導入され、バイトコード命令でさえJavaバイトコード命令と同じではありません。
Compiled Android application code file.
Androidプログラムは.dex
(Dalvik Executable)ファイルにコンパイルされ、デバイス上の単一の.apk
ファイルに圧縮されます。 .dex
ファイルは、Javaプログラミング言語で書かれたコンパイル済みアプリケーションを自動的に翻訳することにより作成できます。
Dexファイル形式:
1. File Header
2. String Table
3. Class List
4. Field Table
5. Method Table
6. Class Definition Table
7. Field List
8. Method List
9. Code Header
10. Local Variable List
AndroidにはDalvik Executable Format
(。dexファイル)に関するドキュメントがあります。詳細については、公式ドキュメントをご覧ください。 Dex File Format
.dex
ファイルはJavaクラスファイルと似ていますが、古いAndroidバージョンのDalkvik Virtual Machine(DVM)で実行され、インストール時にデバイスでネイティブコードにコンパイルされました。新しいAndroidバージョンのART。
Android-sdkで提供されるdecompile
ツールを使用して、dexdump
.dexを実行できます。
jar file
ファイルからJava class file
または.dex
を作成するためのReverse Engineering Techniquesもあります。
.dex file
コンパイルされたAndroidアプリケーションコードファイル。
Androidプログラムは.dex(Dalvik Executable)ファイルにコンパイルされ、デバイス上の単一の.apkファイルに圧縮されます。 .dexファイルは、Javaプログラミング言語で記述されたコンパイル済みアプリケーションを翻訳することにより、Androidによって自動的に作成できます。
dex
ファイルは、Dalvik VMで実行されるファイルです。
Dalvik VMには、パフォーマンスの最適化、検証、および監視のためのいくつかの機能が含まれており、そのうちの1つはDalvik Executable(DEX)です。
Javaソースコードは、Javaコンパイラによって.class
ファイルにコンパイルされます。次に、Android SDKの一部であるdx
(dexer)ツールが、.class
ファイルを処理して、Dalvikバイトコードを含むDEX
というファイル形式にします。 dx
ツールは、クラスに存在する冗長な情報をすべて削除します。 DEX
では、アプリケーションのすべてのクラスが1つのファイルにまとめられています。次の表に、JVM jarファイルとdex
ツールで処理されるファイルのコードサイズの比較を示します。
この表では、システムライブラリ、Webブラウザーアプリケーション、および汎用アプリケーション(目覚まし時計アプリ)のコードサイズを比較しています。すべての場合において、dexツールはコードのサイズを50%以上削減しました。
標準のJava環境では、Javaコードの各クラスは1つの.class
ファイルになります。つまり、Javaソースコードファイルに1つのパブリッククラスと2つの匿名クラスがある場合、たとえばイベント処理の場合、Javaコンパイラーは合計3つの.class
ファイルを作成します。
コンパイル手順はAndroidプラットフォームでも同じであるため、複数の.class
ファイルが作成されます。ただし、.class
ファイルが生成された後、「dx」ツールを使用して、すべての.class
ファイルを単一の.dex
またはDalvik実行可能ファイルに変換します。 Dalvik VMで実行されるのは.dex
ファイルです。 .dex
ファイルはメモリ使用量に対して最適化されており、設計は主にデータの共有によって駆動されます。