Tôi sẽ tìm hiểu một chút về Dalvik VM, dex và Smali.Mã Smali Android là gì
Tôi đã đọc về smali, nhưng vẫn không thể hiểu rõ vị trí của nó trong chuỗi trình biên dịch. Và mục đích của nó.
Dưới đây một số câu hỏi:
- Như tôi biết, Dalvik là máy ảo khác chạy bytecode, trong trường hợp của Android nó là mã byte dex.
- Smali là gì? Hệ điều hành Android hay Dalvik Vm có làm việc trực tiếp với nó hay chỉ là cùng một byexode dex nhưng dễ đọc hơn đối với con người?
- Có gì đó giống như dissasembler cho Windows (như OllyDbg) thực thi chương trình bao gồm mã máy khác nhau (D3, 5F chẳng hạn) và có lệnh lắp ráp thích hợp cho mỗi mã máy, nhưng Dalvik Vm cũng là phần mềm, đại diện của bytecode
- Có môi trường ART mới. Nó vẫn còn sử dụng bytecode hay nó thực hiện mã nguồn gốc trực tiếp?
Cảm ơn bạn trước.
Bạn có thể đề xuất điều gì đó cần đọc để hiểu sâu hơn về điều này không? Nó rất thú vị đối với tôi – brqgddez
Bạn có thể xem chi tiết định dạng dex tại https://source.android.com/devices/tech/dalvik/dex-format.html – Antimony
Nhưng tại sao lại sử dụng smali nếu chúng ta có các công cụ như jadx decompiler, có thể nhận mã Java dễ đọc hơn nhiều so với smali? – JustAMartin