^Back To Top

foto1 foto2 foto3 foto4 foto5


Get Adobe Flash player

Ngày nay có nhiều thiết bị Android được sản xuất và kéo theo đó là số lượng người dùng hệ điều hành này cũng tăng lên. Trong đó có bạn đã quen thuộc với Android ngay từ những ngày đầu phát triển, có bạn thì mới làm quen với Android sau này. Bài viết sẽ trình bày thuật ngữ định dạng tập tin và biên dịch tập tin trong hệ điều hành Android.

Tập tin .apk: Tập tin thực thi ứng dụng trong hệ điều hành Android. Mỗi ứng dụng Android được biên dịch và đóng gói trong một tập tin duy nhất bao gồm tất cả các mã của ứng dụng (tập tin dex.), các file xml quy định các đoạn mã thực thi và hiển thị, các file ảnh trong phần mềm. Các tập tin gói ứng dụng có thể có tên bất kỳ nhưng phải sử dụng phần mở rộng apk.

Trong môi trường Java chuẩn, mã nguồn java được biên dịch thành các tập tin .class chứa các mã nhị phân Java. Máy ảo Java có thể đọc được các tập tin .class trong này. Tương ứng mỗi lớp khi biên dịch sẽ thành một tập tin .class tương ứng.

Trong nền tảng Android, mã nguồn Java cũng được biên dịch thành các tập tin .class. Máy ảo Dalvik không đọc được các tập tin nhị phân Java này, nên công cụ dx trong Android SDK sẽ tổ chức các tập tin .class này thành một tập tin .dex (Dalvik Executable) duy nhất. Một tập tin .class chứa thông tin một lớp, nhưng một tập tin .dex chứa tổng hợp của nhiều lớp. Tập tin dex này sẽ được dùng để chạy trên máy ảo Dalvik.

Đây là những đoạn mã thực thi đã được đóng gói trong các tập tin apk. Các đoạn mã trong một phần mềm Android được biên dịch vào các tập tin .dex và chúng lần lượt được nén vào một tập tin apk duy nhất. Trên thiết bị các tập tin .dex có thể được tạo ra bằng cách tự động dịch ngược lại các ứng dụng đã được biên soạn bằng ngôn ngữ lập trình Java.

Hình 1. Thành phần trong tập tin .jar và .apk

Do việc tổ chức dữ liệu thành các hằng (Constant) và lưu trữ thành kho (Pool) để tiện truy xuất và tối ưu việc sử dụng tài nguyên, nên kích thước tập tin .apk nhỏ hơn rất nhiều so với tập tin .jar (Hình 1)

Có thể hình dung và so sánh quá trình biên dịch và đóng gói các thành phần trong một dự án Java thông thường và dự án Android như sau:

Hình 2. So sánh quá trình biên dịch và đóng gói ứng dụng Java và ứng dụng Android

TÀI LIỆU THAM KHẢO

[1] Trương Thị Ngọc Phượng, Lập trình Android, Nhà xuất bản Thời đại, 2012.