덱스 파일 에 관한 질문이 있습니다
dex
안드로이드 에서 파일 이란 무엇입니까 ?- Android에서 dex는 어떻게 작동합니까?
- Android 앱을 디버깅하는 데 어떻게 사용됩니까?
- Java 클래스 파일과 비슷합니까?
나는 구체적인 정보가 필요하며 이것에 대해 도와주십시오. 실제 사례는 환영합니다!
덱스 파일 에 관한 질문이 있습니다
dex
안드로이드 에서 파일 이란 무엇입니까 ?나는 구체적인 정보가 필요하며 이것에 대해 도와주십시오. 실제 사례는 환영합니다!
답변:
.dex 파일 정보 :
Dalvik Virtual Machine
(Android 시스템 에서 가장 중요한 기능)의 가장 주목할만한 기능 중 하나는 Java 바이트 코드를 사용하지 않는다는 것입니다. 대신 DEX라는 자체 형식이 도입되었으며 바이트 코드 명령어도 Java 바이트 코드 명령어와 동일하지 않습니다.
Compiled Android application code file.
Android 프로그램은 .dex
(Dalvik Executable) 파일 로 컴파일되어 .apk
장치 의 단일 파일 로 압축됩니다 . .dex
파일은 Java 프로그래밍 언어로 작성된 컴파일 된 응용 프로그램을 자동으로 번역하여 작성할 수 있습니다.
덱스 파일 형식 :
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
사용하여 .dex 할 수 있습니다 dexdump
.
일부도 있습니다 리버스 엔지니어링 기술 을 만들 jar file
거나 java class file
A로부터 .dex
파일.
dexdump
은 디 컴파일러가 아니라 디스어셈블러라는 것입니다.
.dex file
컴파일 된 Android 애플리케이션 코드 파일
Android 프로그램은 .dex (Dalvik Executable) 파일로 컴파일되어 장치의 단일 .apk 파일로 압축됩니다. .dex 파일은 Java 프로그래밍 언어로 작성된 컴파일 된 응용 프로그램을 번역하여 Android에서 자동으로 만들 수 있습니다.
dex
file은 Dalvik VM에서 실행되는 파일입니다.
Dalvik VM에는 성능 최적화, 검증 및 모니터링을위한 여러 기능이 포함되어 있으며 그 중 하나는 DEX (Dalvik Executable) 입니다.
Java 소스 코드는 Java 컴파일러에 의해 .class
파일 로 컴파일됩니다 . 그런 다음 dx
Android SDK의 일부인 (dexer) 도구는 .class
파일을 DEX
Dalvik 바이트 코드가 포함 된 파일 형식으로 처리합니다 . 이 dx
도구는 클래스에있는 모든 중복 정보를 제거합니다. 에서 DEX
모든 응용 프로그램의 클래스는 하나 개의 파일로 압축된다. 다음 표는 JVM jar 파일의 코드 크기와 dex
도구가 처리 한 파일의 비교를 제공합니다 .
이 표는 시스템 라이브러리, 웹 브라우저 응용 프로그램 및 범용 응용 프로그램 (알람 시계 응용 프로그램)의 코드 크기를 비교합니다. 모든 경우에 dex 도구는 코드 크기를 50 % 이상 줄였습니다.
표준 Java 환경에서 Java 코드의 각 클래스는 하나의 .class
파일이됩니다. 즉, Java 소스 코드 파일에 하나의 공용 클래스와 두 개의 익명 클래스가 있으면 이벤트 처리에 대해 말하면 Java 컴파일러는 총 세 개의 .class
파일 을 작성 합니다.
컴파일 단계는 Android 플랫폼에서 동일하므로 여러 .class
파일 이 생성됩니다 . 그러나 .class
파일이 생성 된 후에 는“dx”도구를 사용하여 모든 .class
파일을 단일 .dex
또는 Dalvik Executable 파일로 변환 합니다. 그것은이다 .dex
달빅 VM에서 실행되는 파일. .dex
파일은 메모리 사용을 위해 최적화되었으며, 디자인은 주로 데이터의 공유에 의해 구동된다.