ฉันมีคำถามบางอย่างเกี่ยวกับไฟล์ dex
- คืออะไร
dex
แฟ้มใน Android? - dex ทำงานอย่างไรกับ Android
- พวกเขาจะใช้ในการดีบักแอพ Android อย่างไร
- มันคล้ายกับไฟล์คลาส Java หรือไม่?
ฉันต้องการข้อมูลที่เฉพาะเจาะจงโปรดช่วยในเรื่องนี้และยินดีต้อนรับทุกตัวอย่างจริง!
ฉันมีคำถามบางอย่างเกี่ยวกับไฟล์ dex
dex
แฟ้มใน Android?ฉันต้องการข้อมูลที่เฉพาะเจาะจงโปรดช่วยในเรื่องนี้และยินดีต้อนรับทุกตัวอย่างจริง!
คำตอบ:
เกี่ยวกับไฟล์. dex:
หนึ่งในคุณสมบัติที่โดดเด่นที่สุดของDalvik Virtual Machine
(workhorse ภายใต้ระบบ Android) คือมันไม่ได้ใช้ Java bytecode รูปแบบดั้งเดิมที่เรียกว่า DEX ถูกนำมาใช้แทนและแม้แต่คำสั่ง bytecode ก็เหมือนกับคำสั่ง Java bytecode
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
.dex
ไฟล์คล้ายกับไฟล์คลาส Java แต่ถูกเรียกใช้ภายใต้ Dalkvik Virtual Machine (DVM) สำหรับ Android เวอร์ชันเก่าและรวบรวมในเวลาติดตั้งบนอุปกรณ์เพื่อใช้เป็นรหัสเนทีฟพร้อมกับ ART ในเวอร์ชัน Android ที่ใหม่กว่า
คุณสามารถdecompile
. dex โดยใช้dexdump
เครื่องมือที่มีให้ใน android-sdk
นอกจากนี้ยังมีเทคนิควิศวกรรมย้อนกลับเพื่อสร้างjar file
หรือjava class file
จาก.dex
ไฟล์
dexdump
ไม่ใช่เครื่องถอดรหัส แต่เป็นเครื่องแยกชิ้นส่วน
.dex file
ไฟล์รหัสแอปพลิเคชัน Android ที่คอมไพล์แล้ว
โปรแกรม Android ถูกคอมไพล์เป็นไฟล์. doc (Dalvik Executable) ซึ่งจะถูกบีบอัดเป็นไฟล์. apk ไฟล์เดียวบนอุปกรณ์ ไฟล์. dex สามารถสร้างขึ้นโดยอัตโนมัติโดย Android โดยการแปลแอพพลิเคชั่นที่รวบรวมซึ่งเขียนด้วยภาษาโปรแกรม Java
dex
ไฟล์เป็นไฟล์ที่ถูกเรียกใช้งานบน Dalvik VM
Dalvik VM มีคุณสมบัติหลายประการสำหรับการเพิ่มประสิทธิภาพการตรวจสอบและการตรวจสอบซึ่งหนึ่งในนั้นคือDalvik ปฏิบัติการ (DEX)
ซอร์สโค้ด Java ถูกคอมไพล์โดยคอมไพเลอร์ Java เป็น.class
ไฟล์ จากนั้นdx
เครื่องมือ (dexer) ซึ่งเป็นส่วนหนึ่งของ Android SDK ประมวลผล.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
ไฟล์ที่เรียกใช้งานบน Dalvik VM .dex
ไฟล์ที่ได้รับการปรับให้เหมาะสมกับการใช้งานหน่วยความจำและการออกแบบที่เป็นแรงผลักดันหลักโดยการแบ่งปันข้อมูล