winrar(圧縮ファイルを開くためにs/w)でapkファイルを開くとき。 apkの中にたくさんのファイルが入っています。 class.dexは1つです。私の質問は、このファイルの役割は何ですか、私たちが同じファイルを変更/削除するとAPKに影響しますか?apkファイル内のclasses.dexファイルの役割
答えて
APKファイルを作成するには、まずAndroid用のプログラムをコンパイルし、そのすべての部分を1つのファイルにパッケージします。これは、そのプログラムのコード(これらは.dex files
です)、リソース、アセット、証明書、マニフェストファイルのすべてを保持します。
プログラムは通常Java
に書かれ、bytecode
にコンパイルされます。デバイスにインストールする前に、Java Virtual Machine-compatible .class files
からDalvik-compatible .dex
(Dalvik Executable)ファイルに変換されます。コンパクトなDalvik Executable形式は、メモリとプロセッサ速度の面で制約のあるシステムに適しています。
- classes.dex:のDalvik仮想マシンが理解できるDEXファイル形式でコンパイルされたクラス
.dexファイルはAPKのリソースを保持しているように、これらのファイルのいずれかの編集が 直接意志APKに影響を与えます。
.dexファイル コンパイル済みのAndroidアプリケーションコードファイル。
Androidのプログラムは、順番に、デバイス上の単一の.apkファイルにzip形式で圧縮されている.dex (Dalvik Executable)
ファイルにコンパイルされています。 .dexファイルは、Javaプログラミング言語で書かれたコンパイル済みアプリケーションを自動的に翻訳することで作成できます。
これらのファイルを削除すると、APKに影響します。
classes.dexは基本的にアプリケーションロジックのすべてです。与えられたアプリケーションのコードはjavaで書かれ、クラスファイルにコンパイルされ、これらのクラスファイルはdalvik VMフォーマットにクロスコンパイルされます(多くの最適化を伴います)。アプリケーションコードでもある.soファイルがあるかもしれませんが、これらはNDKが使用されたときに生成されます。 このファイルは削除できません。しかし、最初にこのユーティリティhttps://code.google.com/p/smali/を実行することによってそれを変更することができます。このコンパイルされたデックスからsmaliコードが生成されます。これはjavaと幾分似ており、理解できます。また、ツールApkOneClickまたはApkMultiToolを使用してsmaliファイルからJavaソースを取得することもできますが、これらはおそらく完璧ではないため、さらに修正する必要があります。必要なコードを変更したら、再度classes.dexをビルドして、既存のzip/apkファイルに入れてください。既存の証明書ファイル(META-INF)はもう有効ではないので、電話またはエミュレータにインストールするには、このフォルダを削除してapkパッケージを辞退する必要があります。詳細情報については
あなたもWhat are .dex files in Android?
この質問をチェックすることができます。また、これはAPKでhttp://blog.vogella.com/2011/02/14/disassemble-android-dex
.dexファイルが作られている圧縮ファイルで既存のツールを使用してDEXファイルを逆アセンブルに大きなチュートリアルですアプリケーションコード内のすべてのJavaクラスのうちの1つです。 jarファイルとは異なります。 jarファイルは、分離された.classファイルの集合です。解凍したらjar、すべてのクラスを別々に取得します。一方、.dexファイルは、アプリケーションコードからすべての.classファイルで構成された単一のファイルです。
コードコンパイル・フロー: 複数の.javaファイル - >複数.classesファイル - >単一.dexファイル
.dexファイルDVMによって実行されている実行可能ファイルがある...のDalvik仮想マシンこれはAndroid用のランタイムです。
.dexにはリソースが含まれません。リソースは個別に.apkの/ resフォルダに保持されます
このファイルの役割は何ですか?
classes.dex
のAndroidでの役割は、プレーンJavaのJARファイルの役割とよく似ています。これはバイトコードを含むファイルです。 Androidの場合、バイトコードはDalvikバイトコードであり、Javaバイトコードとは異なります。
同じファイルを変更/削除するとapkに影響しますか?
classes.dex
を変更すると、プログラムの動作が変更されます。再プログラム後に動作する場合と動作しない場合があります。 classes.dex
を削除すると、アプリケーションにコードがなく、そのコードが動作するとは思わないはずです。
- 1. apkのclasses.dexファイルを変更するには
- 2. Android APKファイルの内容
- 3. .xibファイル内のプレースホルダの役割は何ですか?
- 4. Designer.csファイルのc#での役割
- 5. APK内のファイルを読み取る
- 6. apkのclasses.dexはどこにありますか?
- 7. apkファイルの解析
- 8. APKのリバースエンジニアリングC++ファイル
- 9. MacマシンのAPKファイル
- 10. Cプロジェクトでの.sファイルの役割は何ですか?
- 11. Tomcat 6のwarファイル展開におけるtempフォルダの役割
- 12. Googleドライブ(GSuite)のフォルダとファイルの異なる役割
- 13. ビュー内でのASP.NET MVCチェックの役割
- 14. APK拡張ファイル
- 15. Classes.dexのAndroid.SMSthief.A2e76(PUP)
- 16. XamarinのBuidのapkファイル
- 17. apkのファイルとプロンプトのインストール
- 18. SonataAdminBundleの役割
- 19. ファイルをtalend内の他のファイルに分割する
- 20. chmファイル内のトピックを割り当て
- 21. 役割とAuthorizeAttributeが、役割は
- 22. 可能な役割:ファイル拡張子を変更する
- 23. apkファイルをzipファイルに変換する
- 24. Azureのワーカーの役割は役割の状態が不明
- 25. APK内の同じパスに重複しているファイル
- 26. ビルドAPK私はBATファイルの内容を持っているapktool
- 27. apk内のファイルを指していますか?
- 28. カスタムフェイスブックの役割(デベロッパーアプリケーション)
- 29. Djangoユーザーの役割
- 30. レールcancanの役割?
複数の.classファイルが存在する場合、なぜclasses.dexが1つしかないのか知りませんか?これはdexingによって行われた最適化によるか、それは.jarファイルのようなパッケージのちょうど良いものですか? – PSIXO
dexファイルには私が信じるリソースが含まれていません。 classes.dexが作成された後にマージされます。 – zgulser