zipalign

zipalign là một công cụ căn chỉnh tệp lưu trữ zip giúp đảm bảo mọi tệp không nén trong kho lưu trữ được căn chỉnh tương ứng với phần đầu tệp. Công cụ này cho phép truy cập trực tiếp vào các tệp thông qua mmap(2) , giúp hạn chế việc phải sao chép dữ liệu này trong RAM và làm giảm mức sử dụng bộ nhớ của ứng dụng.

Hãy sử dụng zipalign để tối ưu hoá tệp APK trước khi phân phối cho người dùng cuối. Nếu bạn dùng Android Studio để xây dựng ứng dụng, trình bổ trợ Android cho Gradle (AGP) sẽ tự động thực hiện việc này. Trong trường hợp đó, bạn vẫn nên sử dụng zipalign để xác minh tệp APK đã được căn chỉnh nhưng bạn không cần phải tự mình thực hiện thao tác này. Tài liệu này chủ yếu dành cho những nhà bảo trì hệ thống xây dựng tuỳ chỉnh.

Thận trọng: Bạn cần phải sử dụng zipalign tại một điểm cụ thể trong quy trình xây dựng. Điểm đó tuỳ thuộc vào công cụ ký ứng dụng mà bạn dùng:

  • Nếu sử dụng apksigner, bạn phải dùng zipalign trước khi tệp APK được ký. Nếu bạn ký vào tệp APK bằng apksigner và thực hiện thêm các thay đổi đối với tệp APK này thì chữ ký sẽ không hợp lệ.
  • Nếu sử dụng jarsigner (không nên), bạn phải dùng zipalign sau khi tệp APK được ký.

Để căn chỉnh được, zipalign sẽ thay đổi kích thước của trường "extra" trong phần Local File Header (Tiêu đề tệp cục bộ) của tệp zip. Quá trình này cũng có thể thay đổi dữ liệu hiện có trong các trường "extra".

Cách sử dụng

Nếu tệp APK của bạn có chứa thư viện cùng chung (tệp .so), bạn nên dùng -p để đảm bảo những thư viện đó được căn chỉnh theo ranh giới trang 4 KiB (phù hợp với mmap(2)). Đối với các tệp khác có cách căn chỉnh được xác định theo đối số căn chỉnh bắt buộc của zipalign, Android Studio sẽ căn chỉnh thành 4 byte trên cả hệ thống 32 bit và 64 bit.

Để căn chỉnh infile.apk và lưu tệp dưới dạng outfile.apk:

zipalign -p -f -v 4 infile.apk outfile.apk

Để xác nhận cách căn chỉnh của existing.apk, hãy dùng lệnh sau. Nếu bạn sử dụng Android Studio hoặc AGP để tạo ứng dụng, đây là lệnh bạn nên dùng để xác minh việc tệp APK đã được căn chỉnh.

zipalign -c -v 4 existing.apk

Tuỳ chọn

Bảng sau đây liệt kê các tuỳ chọn zipalign hiện có:

Tuỳ chọn Nội dung mô tả
-c Chỉ kiểm tra cách căn chỉnh (không sửa đổi tệp).
-f Ghi đè tệp đầu ra hiện có.
-h Hiện thông tin trợ giúp về công cụ.
-p Căn chỉnh trang cho tệp .so không nén.
-v Chế độ đầu ra chi tiết.
-z Nén lại bằng Zopfli.