zipalign

Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.

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

Bạn nên sử dụng zipalign để tối ưu hoá tệp APK trước khi phân phối tệp đó cho người dùng cuối. Quá trình này sẽ tự động diễn ra nếu bạn xây dựng bằng Android Studio. Tài liệu này dành cho những người bảo trì hệ thống xây dựng tuỳ chỉnh.

Thận trọng: Bạn phải sử dụng zipalign tại 1 trong 2 điểm cụ thể trong quá trình xây dựng ứng dụng, tuỳ thuộc vào công cụ ký ứng dụng bạn sử dụng:

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

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

Để biết thêm thông tin về cách sử dụng zipalign khi xây dựng ứng dụng, vui lòng đọc phần Ký ứng dụng của bạn.

Mức sử dụng

Nếu APK của bạn chứa thư viện chia sẻ (tệp .so), bạn nên sử dụng -p để đảm bảo rằng những thư viện đó được căn chỉnh với ranh giới trang 4KiB 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 với zipalign, Studio 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:

zipalign -c -v 4 existing.apk

Bạn có thể sử dụng zipalign -h để xem toàn bộ tập hợp cờ được hỗ trợ.