कमांड लाइन से अपना ऐप्लिकेशन बनाना

इसका इस्तेमाल करके, अपने Android प्रोजेक्ट के लिए उपलब्ध सभी बिल्ड टास्क पूरे किए जा सकते हैं Gradle रैपर कमांड लाइन टूल. यह समय है Windows (gradlew.bat) और शेल के लिए बैच फ़ाइल के रूप में उपलब्ध Linux और Mac (gradlew.sh) की स्क्रिप्ट में काम करता है और Android Studio से बनाए जाने वाले हर प्रोजेक्ट के रूट से ऐक्सेस किया जा सकता है.

रैपर की मदद से टास्क चलाने के लिए, इनमें से किसी एक निर्देश का इस्तेमाल करें टर्मिनल विंडो (Android Studio में, व्यू > टूल विंडो > चुनें टर्मिनल):

  • Windows Command Shell पर:
    gradlew task-name
  • Mac, Linux या Windows PowerShell पर:
    ./gradlew task-name

बिल्ड के लिए उपलब्ध सभी टास्क की सूची देखने के लिए अपने प्रोजेक्ट में, tasks को एक्ज़ीक्यूट करें:

gradlew tasks

इस पेज के बाकी हिस्से में, ऐप्लिकेशन बनाने और उसे चलाने की बुनियादी बातों के बारे में बताया गया है को Gradle रैपर के साथ कौन इस्तेमाल कर सकता है. अपना विज्ञापन नेटवर्क कैसे सेट अप करें Android बिल्ड के लिए, कॉन्फ़िगर करें आपका बिल्ड.

अगर आपको कमांड लाइन के बजाय, Android Studio टूल का इस्तेमाल करना है टूल की जानकारी के लिए, अपना ऐप्लिकेशन बनाना और चलाना देखें.

बिल्ड टाइप के बारे में जानकारी

डिफ़ॉल्ट रूप से, हर Android ऐप्लिकेशन के लिए दो तरह के बिल्ड उपलब्ध होते हैं: इसका इस्तेमाल, ऐप्लिकेशन को डीबग करने के लिए किया जाता है. जैसे, डीबग बिल्ड और दूसरा, अपने ऐप्लिकेशन को रिलीज़ करने का तरीका उपयोगकर्ताओं के लिए—रिलीज़ बिल्ड. हर एक से मिला आउटपुट आपको अपना ऐप्लिकेशन किसी डिवाइस. डीबग बिल्ड अपने-आप, SDK टूल (यह सुरक्षित नहीं है. साथ ही, इसे Google Play पर पब्लिश नहीं किया जा सकता Store) से साइन किया जाता है और रिलीज़ बिल्ड पर अपनी निजी कुंजी से साइन किया जाना चाहिए.

अगर आपको रिलीज़ के लिए अपना ऐप्लिकेशन बनाना है, तो यह ज़रूरी है कि सही साइनिंग पासकोड से अपने ऐप्लिकेशन पर हस्ताक्षर करें. अगर आपने अभी-अभी शुरुआत की है, तो आप अपने ऐप्लिकेशन को इसके ज़रिए एम्युलेटर या कनेक्ट किया गया डिवाइस डीबग APK बनाना.

अपने build.gradle.kts में, पसंद के मुताबिक बिल्ड टाइप भी तय किया जा सकता है फ़ाइल पर मिलेगी और इसे डीबग बिल्ड के तौर पर साइन किए जाने के लिए कॉन्फ़िगर कर सकती है. इसके लिए, debuggable true. ज़्यादा जानकारी के लिए, बिल्ड वैरिएंट कॉन्फ़िगर करना लेख पढ़ें.

APK बनाना और डिप्लॉय करना

हालांकि, ऐप्लिकेशन बंडल बनाना, पासवर्ड बनाने का सबसे सही तरीका है अपने ऐप्लिकेशन को पैकेज करें और उसे Play Console पर अपलोड करें. APK बनाना बेहतर होता है यह विकल्प उस समय के लिए सही है जब आपको फटाफट डीबग बिल्ड की जांच करनी हो या अपने ऐप्लिकेशन को शेयर करना हो के रूप में इस्तेमाल किया जा सकता है.

डीबग APK बनाएं

ऐप्लिकेशन की तुरंत जांच और डीबग करने के लिए, डीबग APK बनाया जा सकता है. डीबग APK को, SDK टूल से मिले डीबग पासकोड से साइन किया जाता है और adb के ज़रिए डीबग करने की अनुमति देता है.

डीबग APK बनाने के लिए, कमांड लाइन खोलें और अपने प्रोजेक्ट डायरेक्ट्री में मौजूद डेटा. डीबग बिल्ड शुरू करने के लिए, assembleDebug टास्क:

gradlew assembleDebug

इससे module_name-debug.apk नाम का एक APK बनता है project_name/module_name/build/outputs/apk/. फ़ाइल पहले से ही डीबग कुंजी से साइन की गई है और अलाइन की गई है zipalign, ताकि आप ये काम कर सकें तुरंत किसी डिवाइस पर इंस्टॉल हो जाता है.

इसके अलावा, APK बनाने और उसे तुरंत ही रनिंग एम्युलेटर पर इंस्टॉल करने के लिए या कनेक्ट किए गए डिवाइस के बजाय, installDebug शुरू करें:

gradlew installDebug

"डीबग" ऊपर दिए गए टास्क नाम का हिस्सा सिर्फ़ एक बिल्ड वैरिएंट के नाम का ऊंट-केस वाला वर्शन हो, ताकि इसे किसी भी बिल्ड टाइप से बदला जा सके या जिसे आपको असेंबल या इंस्टॉल करना है. उदाहरण के लिए, अगर आपके पास "डेमो" है प्रॉडक्ट फ़्लेवर है, तो आप इसका इस्तेमाल करके डीबग वर्शन बना सकते हैं assembleDemoDebug टास्क.

हर वैरिएंट के लिए उपलब्ध सभी बिल्ड और इंस्टॉल टास्क देखने के लिए (इनमें ये शामिल हैं अनइंस्टॉल करने के टास्क), tasks टास्क चलाएं.

साथ ही, एम्युलेटर पर अपना ऐप्लिकेशन चलाने और किसी डिवाइस पर अपना ऐप्लिकेशन चलाने का तरीका बताने वाला सेक्शन भी देखें.

रिलीज़ बंडल या APK बनाना

जब आप अपने ऐप्लिकेशन को रिलीज़ और डिस्ट्रिब्यूट करने के लिए तैयार होते हैं, तब आपको जिस रिलीज़ बंडल या APK पर आपके निजी पासकोड से हस्ताक्षर किया गया है. ज़्यादा जानकारी के लिए, अपने ऐप्लिकेशन पर हस्ताक्षर करने का तरीका जानने के लिए, कमांड लाइन.

अपने ऐप्लिकेशन को एम्युलेटर पर डिप्लॉय करें

'Android एम्युलेटर' का इस्तेमाल करने के लिए, आपको Android वर्चुअल बनाना होगा Android Studio का इस्तेमाल करने वाला डिवाइस (AVD).

एवीडी की सुविधा चालू करने के बाद, Android Emulator को चालू करें और अपने ऐप डाउनलोड करना है:

  1. कमांड लाइन में, यहां नेविगेट करें android_sdk/tools/ और एम्युलेटर को इस तरह शुरू करें: AVD बताए जाने पर:

    emulator -avd avd_name

    अगर आपको एवीडी के नाम के बारे में पता नहीं है, तो लागू करें emulator -list-avds.

  2. अब Gradle इंस्टॉल करने के टास्क में से किसी एक का इस्तेमाल करके, अपना ऐप्लिकेशन इंस्टॉल किया जा सकता है डीबग APK बनाने का तरीका बताने वाले सेक्शन में बताया गया है या adb टूल.

    अगर APK को डेवलपर झलक SDK टूल का इस्तेमाल करके बनाया गया है (अगर targetSdkVersion संख्या के बजाय अक्षर) है, तो आपको -t विकल्प APK इंस्टॉल करने के लिए, install निर्देश का इस्तेमाल करें.

    adb install path/to/your_app.apk
    

    आपके बनाए गए सभी APK इसमें सेव किए जाते हैं project_name/module_name/build/outputs/apk/.

ज़्यादा जानकारी के लिए, Android Emulator पर ऐप्लिकेशन चलाएं देखें.

अपने ऐप्लिकेशन को किसी फ़िज़िकल डिवाइस पर डिप्लॉय करें

किसी डिवाइस पर ऐप्लिकेशन को चलाने से पहले, आपको यूएसबी चालू करना होगा डीबग किया जा रहा है. आपको यह विकल्प यहां मिलेगा सेटिंग > डेवलपर के लिए सेटिंग और टूल.

ध्यान दें: Android 4.2 और उसके बाद के वर्शन पर, डेवलपर के लिए सेटिंग और टूल, डिफ़ॉल्ट रूप से छिपे होते हैं. इसे उपलब्ध कराने के लिए, Settings > पर जाएं फ़ोन के बारे में जानकारी और बिल्ड पर टैप करें संख्या सात बार होनी चाहिए. खोजने के लिए पिछली स्क्रीन पर वापस जाएं डेवलपर के लिए सेटिंग और टूल.

डिवाइस को सेट अप करने और यूएसबी से कनेक्ट होने के बाद, अपना ऐप्लिकेशन इंस्टॉल किया जा सकता है बताए गए Gradle इंस्टॉल टास्क में से किसी एक का इस्तेमाल करके डीबग APK बनाने का तरीका जानने के लिए या adb टूल:

adb -d install path/to/your_app.apk

आपके बनाए गए सभी APK इसमें सेव किए जाते हैं project_name/module_name/build/outputs/apk/.

ज़्यादा जानकारी के लिए, यह देखें किसी हार्डवेयर डिवाइस पर ऐप्लिकेशन चलाएं.

ऐप्लिकेशन बंडल बनाना

Android ऐप्लिकेशन बंडल में आपके सभी ऐप्लिकेशन शामिल होते हैं कोड और संसाधन इकट्ठा करता है, लेकिन APK जनरेट करने और Google पर साइन इन करने में रुकावट डालता है ऐप्लिकेशन चलाएं. APK के उलट, ऐप्लिकेशन बंडल को सीधे किसी डिवाइस पर डिप्लॉय नहीं किया जा सकता. इसलिए, अगर आप किसी APK का तेज़ी से परीक्षण करना चाहते हैं या उसे किसी के साथ शेयर करना चाहते हैं अगर ऐसा नहीं है, तो आपको इसके बजाय एक APK बनाना चाहिए.

ऐप्लिकेशन बंडल बनाने का सबसे आसान तरीका: Android Studio का इस्तेमाल करके ऐसा किया जा सकता है. हालांकि, अगर आपको ऐप्लिकेशन बंडल का इस्तेमाल करते हैं, तो ऐसा करने के लिए Gradle या bundletool जैसा कि नीचे दिए गए सेक्शन में बताया गया है.

Gradle की मदद से ऐप्लिकेशन बंडल बनाना

अगर आपको कमांड लाइन से ऐप्लिकेशन बंडल जनरेट करना है, तो bundleVariant अपने ऐप्लिकेशन के बेस मॉड्यूल पर टास्क को ग्रेड करें. उदाहरण के लिए, नीचे दिया गया निर्देश, डीबग वर्शन के लिए ऐप्लिकेशन बंडल बनाता है की जानकारी शामिल है:

./gradlew :base:bundleDebug

अगर आपको Play Console में अपलोड करने के लिए, साइन किया गया बंडल बनाना है, तो आपको इन चीज़ों की ज़रूरत होगी सबसे पहले बेस मॉड्यूल की build.gradle.kts फ़ाइल को अपने ऐप्लिकेशन की हस्ताक्षर करने के लिए इस्तेमाल की जाने वाली जानकारी. ज़्यादा जानने के लिए, अपने ऐप्लिकेशन को साइन करने के लिए, Gradle को कॉन्फ़िगर करें. उदाहरण के लिए, इसके बाद अपने ऐप्लिकेशन और Gradle को रिलीज़ किया जा सकता है ऐप्लिकेशन बंडल अपने-आप जनरेट करता है और साइनिंग के साथ उस पर साइन करता है जानकारी देनी होगी, जो आप build.gradle.kts फ़ाइल में देते हैं.

अगर आपको इसके बजाय, किसी ऐप्लिकेशन बंडल पर अलग चरण के तौर पर साइन करना है, तो इसका इस्तेमाल किया जा सकता है jarsigner का इस्तेमाल करें. ऐप्लिकेशन बनाने के लिए निर्देश बंडल है:

jarsigner -keystore pathToKeystore app-release.aab keyAlias

बंडलटूल का इस्तेमाल करके ऐप्लिकेशन बंडल बनाना

bundletool एक कमांड-लाइन टूल है. यह Android Studio, Android Gradle है प्लगिन और Google Play का इस्तेमाल करके आपके ऐप्लिकेशन के कंपाइल किए गए कोड को बदला जाता है और संसाधनों को ऐप्लिकेशन बंडल में भी शामिल किया जा सकता है और उन बंडल से डिप्लॉय किए जा सकने वाले APK जनरेट किए जा सकते हैं.

इसलिए, यह करना फ़ायदेमंद है bundletool के साथ ऐप्लिकेशन बंडल की जांच और स्थानीय तौर पर फिर से बनाया गया Google Play, APKs कैसे जनरेट करता है, आपको आम तौर पर ऐप्लिकेशन बंडल खुद बनाने के लिए bundletool को शुरू करें—आपको इसके बजाय Android Studio या Gradle टास्क का इस्तेमाल करना चाहिए, जैसा कि पिछले सेक्शन में बताया गया है.

हालांकि, अगर आपको ऐप्लिकेशन बनाने के लिए Android Studio या Gradle टास्क का इस्तेमाल नहीं करना है, तो बंडल—उदाहरण के लिए, कस्टम बिल्ड टूलचेन का इस्तेमाल करने पर, bundletool कमांड लाइन से, पहले से कंपाइल किए गए कोड का इस्तेमाल करके ऐप्लिकेशन बंडल बनाएं और संसाधन. अगर आपने पहले से ऐसा नहीं किया है, तो GitHub रिपॉज़िटरी से bundletool डाउनलोड करें.

इस सेक्शन में बताया गया है कि अपने ऐप्लिकेशन के कंपाइल किए गए कोड और संसाधनों को कैसे पैकेज करें, और कमांड लाइन से bundletool का इस्तेमाल करके उन्हें किसी Android ऐप्लिकेशन बंडल.

प्रोटो फ़ॉर्मैट में मेनिफ़ेस्ट और संसाधनों को जनरेट करें

bundletool को आपके ऐप्लिकेशन प्रोजेक्ट के बारे में कुछ जानकारी की ज़रूरत होती है, जैसे कि के मेनिफ़ेस्ट और रिसॉर्स देने के साथ-साथ Google का प्रोटोकॉल बफ़र फ़ॉर्मैट—जिसमें को "प्रोटोबफ़" भी कहा जाता है और *.pb फ़ाइल एक्सटेंशन का इस्तेमाल करता है. प्रोटोबफ़ भाषा न्यूट्रल, प्लैटफ़ॉर्म न्यूट्रल, और एक्सटेंसिबल तकनीक उपलब्ध कराएं स्ट्रक्चर्ड डेटा को क्रम से लगाने के लिए—यह एक्सएमएल की तरह है, लेकिन छोटा, तेज़ और आसान.

AAPT2 डाउनलोड करें

अपने ऐप्लिकेशन की मेनिफ़ेस्ट फ़ाइल और संसाधन टेबल यहां जाकर जनरेट की जा सकती है यह प्रोटोबफ़ फ़ॉर्मैट Google Maven रिपॉज़िटरी.

Google की Maven रिपॉज़िटरी से AAPT2 डाउनलोड करने के लिए, यह तरीका अपनाएं:

  1. com.android.tools.build > पर जाएं aapt2 को डेटा स्टोर करने की जगह का इंडेक्स होना चाहिए.
  2. AAPT2 के नए वर्शन का नाम कॉपी करें.
  3. आपने जिस वर्शन का नाम कॉपी किया है उसे नीचे दिए गए यूआरएल में डालें और अपना टारगेट ऑपरेटिंग सिस्टम: https://dl.google.com/dl/android/maven2/com/android/tools/build/aapt2/aapt2-version/aapt2-aapt2-version-[windows | linux | osx].Jar

    उदाहरण के लिए, Windows के लिए 3.2.0-alpha18-4804415 वर्शन डाउनलोड करने के लिए, इस्तेमाल करेगा: https://dl.google.com/dl/android/maven2/com/android/tools/build/aapt2/3.2.0-alpha18-4804415/aapt2-3.2.0-alpha18-4804415-विंडो.जर

  4. किसी ब्राउज़र में यूआरएल पर जाएं—AAPT2 जल्द ही डाउनलोड होना शुरू हो जाएगा.

  5. अभी डाउनलोड की गई JAR फ़ाइल को अनपैकेज करें.

अपने ऐप्लिकेशन के संसाधनों को इकट्ठा करने के लिए, AAPT2 का इस्तेमाल करें. इसके लिए, नीचे दिए गए निर्देश का इस्तेमाल करें:

aapt2 compile \
project_root/module_root/src/main/res/drawable/Image1.png \
project_root/module_root/src/main/res/drawable/Image2.png \
-o compiled_resources/

लिंक करने के दौरान, जहां AAPT2, कंपाइल किए गए अलग-अलग संसाधनों को . प्रोटोबफ़ प्रारूप में --proto-format फ़्लैग शामिल करें, जैसा कि नीचे दिखाया गया है:

aapt2 link --proto-format -o output.apk \
-I android_sdk/platforms/android_version/android.jar \
--manifest project_root/module_root/src/main/AndroidManifest.xml \
-R compiled_resources/*.flat \
--auto-add-overlay

इसके बाद आप आउटपुट APK से सामग्री निकाल सकते हैं, जैसे कि आपके ऐप्लिकेशन AndroidManifest.xml, resources.pb और अन्य संसाधन फ़ाइलें—अभी में दिया जा सकता है. इनपुट तैयार करते समय आपको इन फ़ाइलों की ज़रूरत पड़ेगी bundletool के लिए आपको अपना ऐप्लिकेशन बंडल बनाना होगा, जैसा कि यहां बताया गया है सेक्शन में जाएं.

पहले से कंपाइल किया गया पैकेज कोड और संसाधन

bundletool का इस्तेमाल करके अपने ऐप्लिकेशन के लिए ऐप्लिकेशन बंडल जनरेट करने से पहले, आपको ये काम करने होंगे पहले ऐसी ZIP फ़ाइलें उपलब्ध कराएं, जिनमें प्रत्येक दिया गया ऐप मॉड्यूल. हर मॉड्यूल की ZIP फ़ाइल का कॉन्टेंट और उसकी व्यवस्था बहुत सटीक है Android ऐप्लिकेशन बंडल फ़ॉर्मैट से मिलता-जुलता है. उदाहरण के लिए, आपको अपने ऐप्लिकेशन के बेस मॉड्यूल के लिए base.zip फ़ाइल बनानी चाहिए और इसकी सामग्री को इस प्रकार व्यवस्थित करें:

फ़ाइल या डायरेक्ट्री ब्यौरा
manifest/AndroidManifest.xml प्रोटोबफ़ फ़ॉर्मैट में मॉड्यूल का मेनिफ़ेस्ट.
dex/... आपके ऐप्लिकेशन की कंपाइल की गई एक या उससे ज़्यादा DEX फ़ाइलों वाली डायरेक्ट्री. ये फ़ाइलें नाम इस तरह होना चाहिए: classes.dex, classes2.dex, classes3.dex वगैरह
res/... इसमें सभी डिवाइस के लिए, मॉड्यूल के संसाधन प्रोटोबफ़ फ़ॉर्मैट में मौजूद होते हैं कॉन्फ़िगरेशन. उप-डायरेक्ट्री और फ़ाइलों को इसके समान व्यवस्थित किया जाना चाहिए किसी सामान्य APK की तरह होता है.
root/..., assets/..., और lib/... ये डायरेक्ट्री, इस बारे में सेक्शन में बताई गई डायरेक्ट्री के समान हैं Android ऐप्लिकेशन बंडल फ़ॉर्मैट हो.
resources.pb प्रोटोबफ़ फ़ॉर्मैट में, आपके ऐप्लिकेशन की संसाधन टेबल.

अपने ऐप्लिकेशन के हर मॉड्यूल के लिए ZIP फ़ाइल बनाने के बाद, उन्हें पास किया जा सकता है bundletool में, अपना ऐप्लिकेशन बंडल बनाने के लिए, नीचे दिए गए सेक्शन में बताए गए तरीके का इस्तेमाल करें.

बंडलटूल का इस्तेमाल करके अपना ऐप्लिकेशन बंडल बनाएं

अपना ऐप्लिकेशन बंडल बनाने के लिए, bundletool build-bundle निर्देश का इस्तेमाल इस तरह करें नीचे दी गई जानकारी देखें:

bundletool build-bundle --modules=base.zip --output=mybundle.aab

नीचे दी गई टेबल में, build-bundle कमांड के लिए फ़्लैग के बारे में ज़्यादा जानकारी दी गई है विवरण:

चिह्नित करें ब्यौरा
--modules=path-to-base.zip, path-to-module2.zip,path-to-module3.zip यह नीति उन मॉड्यूल की ZIP फ़ाइलों के बारे में बताती है जो bundletool को चाहिए इसका इस्तेमाल करके, अपना ऐप्लिकेशन बंडल बनाएं.
--output=path-to-output.aab आउटपुट *.aab फ़ाइल का पाथ और फ़ाइल का नाम तय करता है.
--config=path-to-BundleConfig.json वैकल्पिक कॉन्फ़िगरेशन फ़ाइल का पाथ बताता है, जिसका इस्तेमाल करके बनाने की प्रोसेस को पसंद के मुताबिक बनाने के लिए किया जा सकता है. इस बारे में ज़्यादा जानने के लिए, डाउनस्ट्रीम APK जनरेशन को पसंद के मुताबिक बनाना.
--metadata-file=target-bundle-path:local-file-path यह bundletool को एक वैकल्पिक मेटाडेटा फ़ाइल का पैकेज बनाने का निर्देश देता है शामिल हैं. इस फ़ाइल का इस्तेमाल, यह जानने के लिए किया जा सकता है कि ProGuard मैपिंग या आपके ऐप्लिकेशन की DEX फ़ाइलों की पूरी सूची, जो आपके टूलचेन या ऐप स्टोर के अन्य चरणों के लिए भी उपयोगी हो सकते हैं.

target-bundle-path एक पाथ बताता है, जो के रूट से मिलता-जुलता है जिस ऐप्लिकेशन बंडल में आपको मेटाडेटा फ़ाइल को पैकेज करना है, और local-file-path लोकल मेटाडेटा का पाथ बताता है फ़ाइल से मेल खाना चाहिए.

डाउनस्ट्रीम APK जनरेशन को पसंद के मुताबिक बनाएं

ऐप्लिकेशन बंडल में एक BundleConfig.pb फ़ाइल होती है, जो ऐप्लिकेशन का मेटाडेटा उपलब्ध कराती है बंडल से APK जनरेट करते समय, Google Play जैसे स्टोर के लिए ज़रूरी है. हालांकि, bundletool आपके लिए यह फ़ाइल बनाता है, लेकिन कुछ पहलुओं को कॉन्फ़िगर किया जा सकता है मेटाडेटा को BundleConfig.json फ़ाइल में डाल सकता है और उसे bundletool build-bundle निर्देश—bundletool बाद में कन्वर्ज़न वैल्यू में बदल देता है और इसे मर्ज कर देता है फ़ाइल होती है, जिसमें हर ऐप्लिकेशन बंडल में प्रोटोबफ़ वर्शन शामिल होता है.

उदाहरण के लिए, यह कंट्रोल किया जा सकता है कि कॉन्फ़िगरेशन वाले APKs की किन कैटगरी को चालू करना है या बंद करें. BundleConfig.json फ़ाइल के बंद होने का उदाहरण नीचे दिया गया है ऐसे कॉन्फ़िगरेशन APKs जिन्हें हर एक अलग भाषा को टारगेट करता हो (यानी, सभी भाषाओं के संसाधन उनसे जुड़े बेस में शामिल होते हैं या सुविधा APK):

{
  "optimizations": {
    "splitsConfig": {
      "splitDimension": [{
        "value": "LANGUAGE",
        "negate": true
      }]
    }
  }
}

अपनी BundleConfig.json फ़ाइल में, यह भी तय किया जा सकता है कि किस फ़ाइल टाइप को छोड़ना है इसका इस्तेमाल करने वाले APK को कंप्रेस किए बिना ग्लोब पैटर्न, इस तरह से:

{
  "compression": {
    "uncompressedGlob": ["res/raw/**", "assets/**.uncompressed"]
  }
}

ध्यान रखें कि डिफ़ॉल्ट रूप से, bundletool आपके ऐप्लिकेशन की मूल जगह को कंप्रेस नहीं करता लाइब्रेरी (Android 6.0 या इसके बाद वाले वर्शन पर) और संसाधन टेबल (resources.arsc). आप इनमें क्या कॉन्फ़िगर कर सकते हैं, इसके बारे में पूरी जानकारी आपका BundleConfig.json, bundletool config.proto की जांच करें फ़ाइल, जिसे Proto3 का इस्तेमाल करके लिखा गया है सिंटैक्स.

किसी ऐप्लिकेशन बंडल से अपना ऐप्लिकेशन डिप्लॉय करना

अगर आपने ऐप्लिकेशन बंडल बनाया है और उस पर हस्ताक्षर किए हैं, APKs जनरेट करने और उन्हें डिप्लॉय करने के लिए, bundletool का इस्तेमाल करें डिवाइस.

कमांड लाइन से अपने ऐप्लिकेशन पर हस्ताक्षर करें

अपने ऐप्लिकेशन पर हस्ताक्षर करने के लिए, आपको Android Studio की ज़रूरत नहीं है. ऐप्लिकेशन यहां से साइन किया जा सकता है कमांड लाइन, जिसमें APK के लिए apksigner या ऐप्लिकेशन बंडल के लिए jarsigner का इस्तेमाल किया जा रहा है, या बिल्ड के दौरान Gradle को कॉन्फ़िगर करें, ताकि यह आपके लिए साइन कर सके. दोनों ही स्थितियों में, आपको पहले इसका इस्तेमाल करके निजी पासकोड जनरेट करें keytool जैसा कि नीचे दिखाया गया है:

keytool -genkey -v -keystore my-release-key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias my-alias

ऊपर दिया गया उदाहरण आपको कीस्टोर और कुंजी के लिए पासवर्ड के लिए संकेत देता है, और "खास नाम" फ़ील्ड सेट अप करना ज़रूरी है. इसके बाद, यह कीस्टोर को my-release-key.jks फ़ाइल के रूप में सेव करता है, वर्तमान डायरेक्ट्री (आप इसे जहां चाहें, वहां ले जा सकते हैं). कीस्टोर एक कुंजी मौजूद होती है, जो 10,000 दिनों तक मान्य होती है.

अब अपने APK या ऐप्लिकेशन बंडल को मैन्युअल तरीके से साइन किया जा सकता है या साइन करने के लिए Gradle को कॉन्फ़िगर किया जा सकता है जैसा कि नीचे दिए गए सेक्शन में बताया गया है.

कमांड लाइन का इस्तेमाल करके, अपने ऐप्लिकेशन पर मैन्युअल तरीके से साइन करें

अगर आपको कमांड लाइन से किसी ऐप्लिकेशन बंडल पर हस्ताक्षर करना है, तो jarsigner. अगर इसके बजाय आप APK पर साइन करना चाहते हैं, तो आपको zipalign और apksigner का इस्तेमाल करना होगा जैसा कि नीचे बताया गया है.

  1. कमांड लाइन खोलें—Android Studio में जाकर, View > टूल की विंडो > टर्मिनल—और उस डायरेक्ट्री पर जाएं जहां आपका साइन नहीं किया गया APK पता लगाया गया.
  2. zipalign का इस्तेमाल करके साइन नहीं किए गए APK को अलाइन करें:

    zipalign -v -p 4 my-app-unsigned.apk my-app-unsigned-aligned.apk
    

    zipalign पक्का करता है कि सभी बिना कंप्रेस किए गए डेटा की शुरुआत फ़ाइल की शुरुआत के संबंध में एक खास बाइट अलाइनमेंट, जो किसी ऐप्लिकेशन के इस्तेमाल में होने वाली रैम को कम करने के लिए किया जा सकता है.

  3. apksigner का इस्तेमाल करके अपने APK पर निजी पासकोड से साइन करें:

    apksigner sign --ks my-release-key.jks --out my-app-release.apk my-app-unsigned-aligned.apk
    

    इस उदाहरण में, साइन किए गए APK को my-app-release.apk के तौर पर दिखाया गया है को सुरक्षित रखने के लिए, साइन-अप करने के बाद एकल KeyStore फ़ाइल: my-release-key.jks.

    apksigner टूल, हस्ताक्षर करने के अन्य विकल्पों के साथ काम करता है. इनमें ये विकल्प शामिल हैं अलग निजी कुंजी और प्रमाणपत्र फ़ाइलों का उपयोग करके APK फ़ाइल पर हस्ताक्षर करना, और हस्ताक्षर के लिए एक से ज़्यादा लोगों का इस्तेमाल करके, APK पर हस्ताक्षर करना. ज़्यादा जानकारी के लिए, apksigner देखें संदर्भ.

    ध्यान दें: apksigner टूल का इस्तेमाल करने के लिए, आपको जिनमें Android SDK बिल्ड टूल का वर्शन 24.0.3 या उसके बाद का वर्शन हो. SDK Manager का इस्तेमाल करके, इस पैकेज को अपडेट किया जा सकता है.

  4. यह पुष्टि करना कि आपका APK साइन किया हुआ है:

    apksigner verify my-app-release.apk
    

अपने ऐप्लिकेशन को साइन करने के लिए, Gradle को कॉन्फ़िगर करें

मॉड्यूल-लेवल की build.gradle.kts फ़ाइल खोलें और signingConfigs {} ब्लॉक, जिसमें storeFile की एंट्री हैं, storePassword, keyAlias, और keyPassword, और फिर उस ऑब्जेक्ट को आपके बिल्ड टाइप में signingConfig प्रॉपर्टी. उदाहरण के लिए:

Kotlin

android {
    ...
    defaultConfig { ... }
    signingConfigs {
        create("release") {
            // You need to specify either an absolute path or include the
            // keystore file in the same directory as the build.gradle file.
            storeFile = file("my-release-key.jks")
            storePassword = "password"
            keyAlias = "my-alias"
            keyPassword = "password"
        }
    }
    buildTypes {
        getByName("release") {
            signingConfig = signingConfigs.getByName("release")
            ...
        }
    }
}

ग्रूवी

android {
    ...
    defaultConfig { ... }
    signingConfigs {
        release {
            // You need to specify either an absolute path or include the
            // keystore file in the same directory as the build.gradle file.
            storeFile file("my-release-key.jks")
            storePassword "password"
            keyAlias "my-alias"
            keyPassword "password"
        }
    }
    buildTypes {
        release {
            signingConfig signingConfigs.release
            ...
        }
    }
}

अब, जब आप Gradle टास्क शुरू करने से, Gradle आपके ऐप्लिकेशन को साइन करता है (और आपके लिए zipलाइन चलाता है).

इसके अलावा, आपने साइनिंग पासकोड के साथ रिलीज़ बिल्ड कॉन्फ़िगर किया हो, "इंस्टॉल करें" टास्क उस बिल्ड टाइप के लिए उपलब्ध है. इससे आपको कॉन्टेंट बनाने, अलाइन करने, और साइन करें और एम्युलेटर या डिवाइस पर रिलीज़ APK को इंस्टॉल करें. installRelease टास्क.

आपके निजी पासकोड से साइन किया गया ऐप्लिकेशन, डिस्ट्रिब्यूशन के लिए तैयार है. हालांकि, आपको ऐसा करना चाहिए सबसे पहले, पब्लिश करने के तरीके के बारे में और पढ़ें ऐप्लिकेशन और Google Play के लॉन्च से जुड़ी चेकलिस्ट देखें.