ज़िपअलाइन

zipalign, ZIP फ़ॉर्मैट वाला एक संग्रह अलाइन टूल है. इसकी मदद से, यह पक्का किया जा सकता है कि सभी बिना कंप्रेस की गई फ़ाइलें संग्रह में फ़ाइल की शुरुआत के हिसाब से अलाइन किए जाते हैं. इससे फ़ाइलों को सीधे इसके ज़रिए ऐक्सेस किया जा सकता है mmap(2) , रैम से इस डेटा को कॉपी करने और आपके ऐप्लिकेशन के मेमोरी के इस्तेमाल को कम करने की ज़रूरत नहीं पड़ती.

अपनी APK फ़ाइल को वितरित करने से पहले उसे ऑप्टिमाइज़ करने के लिए zipalign का उपयोग करें असली उपयोगकर्ता. अगर Android Studio का इस्तेमाल करके बनाया गया है, जिसमें 'Android Gradle प्लग इन (AGP') का इस्तेमाल किया जाता है, तो यह स्वचालित रूप से हो जाता है. इस स्थिति में, आपको अब भी zipalign का इस्तेमाल करके यह पुष्टि करनी चाहिए कि APK अलाइन है, लेकिन आपको उसे अलाइन करने की ज़रूरत नहीं है. यह दस्तावेज़ मुख्य रूप से, कस्टम बिल्ड सिस्टम बनाने की सुविधा मिलती है.

चेतावनी: आपको zipalign का इस्तेमाल बिल्ड प्रोसेस में शामिल किया जाना चाहिए. यह पॉइंट इस बात पर निर्भर करता है कि ऐप्लिकेशन-हस्ताक्षर करने वाले किस टूल का इस्तेमाल किया जा रहा है:

  • अगर आप apksigner, zipalign का इस्तेमाल करते/करती हैं का इस्तेमाल, APK फ़ाइल पर हस्ताक्षर करने से पहले किया जाना चाहिए. यदि आप अपने वह APK जो apksigner का इस्तेमाल कर रहा है और APK में और बदलाव कर रहा है, उसका हस्ताक्षर अमान्य हो जाएगा.
  • अगर आप jarsigner का इस्तेमाल करते/करती हैं (इसका सुझाव नहीं दिया जाता), zipalign का इस्तेमाल APK फ़ाइल के बाद किया जाना चाहिए हस्ताक्षर किया गया है.

अलाइनमेंट पाने के लिए, zipalign ज़िप लोकल फ़ाइल हेडर में "extra" फ़ील्ड के साइज़ को बदल देता है सेक्शन. इस प्रोसेस से, "extra" फ़ील्ड में मौजूद डेटा में भी बदलाव हो सकता है.

इस्तेमाल

अगर आपके APK में शेयर की गई लाइब्रेरी (.so फ़ाइलें) हैं, तो -P 16 का इस्तेमाल करें ताकि यह पक्का किया जा सके कि वे 16 केआईबी वाले पेज की सीमा से मेल खाते हैं. यह सीमा mmap(2) के लिए सही है 16KiB और 4KiB, दोनों डिवाइसों के लिए उपलब्ध है. अन्य फ़ाइलों के लिए, जिनका अलाइनमेंट zipalign पर ज़रूरी अलाइनमेंट आर्ग्युमेंट, 4 बाइट तक अलाइन होना चाहिए 32-बिट और 64-बिट, दोनों सिस्टम पर.

infile.apk को अलाइन करने और उसे outfile.apk के तौर पर सेव करने के लिए:

zipalign -P 16 -f -v 4 infile.apk outfile.apk

existing.apk के अलाइनमेंट की पुष्टि करने के लिए, नीचे दिए गए निर्देश का इस्तेमाल करें.

zipalign -c -P 16 -v 4 existing.apk

विकल्प

इस टेबल में, zipalign के उपलब्ध विकल्प दिए गए हैं:

विकल्प ब्यौरा
-सी सिर्फ़ अलाइनमेंट की जांच करता है (फ़ाइल में बदलाव नहीं करता).
-एफ़ मौजूदा आउटपुट फ़ाइल को ओवरराइट कर देता है.
-घ° टूल सहायता दिखाता है.
-पी <pagesize_kb> यह सुविधा, बिना कंप्रेस की गई .so फ़ाइलों को KiB में बताए गए पेज साइज़ के हिसाब से अलाइन करती है. मान्य विकल्प <pagesize_kb> में, 4, 16, और 64 हैं.
-p 4KiB पेज अलाइनमेंट, बिना कंप्रेस की गई .so फ़ाइलों को अलाइन करता है. हमारा सुझाव है कि आप इसके बजाय, -P 16 का इस्तेमाल करें, क्योंकि -p अब काम नहीं करता.
-v वर्बोस आउटपुट.
-ज़ेड Zopfli का इस्तेमाल करके फिर से कंप्रेस करता है.