কমান্ড লাইন থেকে আপনার অ্যাপ তৈরি করুন

আপনি Gradle wrapper কমান্ড লাইন টুল ব্যবহার করে আপনার অ্যান্ড্রয়েড প্রকল্পে উপলব্ধ সমস্ত বিল্ড কাজ সম্পাদন করতে পারেন। এটি Windows ( gradlew.bat ) এর জন্য একটি ব্যাচ ফাইল এবং Linux এবং Mac ( gradlew.sh ) এর জন্য একটি শেল স্ক্রিপ্ট হিসাবে উপলব্ধ, এবং এটি Android স্টুডিওর সাথে আপনার তৈরি প্রতিটি প্রকল্পের রুট থেকে অ্যাক্সেসযোগ্য।

র‍্যাপার দিয়ে একটি টাস্ক চালানোর জন্য, একটি টার্মিনাল উইন্ডো থেকে নিম্নলিখিত কমান্ডগুলির একটি ব্যবহার করুন (অ্যান্ড্রয়েড স্টুডিও থেকে, দেখুন > টুল উইন্ডোজ > টার্মিনাল নির্বাচন করুন):

  • উইন্ডোজ কমান্ড শেলে:
    gradlew task-name
  • Mac, Linux, বা Windows PowerShell-এ:
    ./gradlew task-name

আপনার প্রকল্পের জন্য উপলব্ধ সমস্ত বিল্ড কাজের একটি তালিকা দেখতে, tasks সম্পাদন করুন:

gradlew tasks

এই পৃষ্ঠার বাকি অংশটি Gradle র‍্যাপারের সাথে আপনার অ্যাপটি তৈরি এবং চালানোর মূল বিষয়গুলি বর্ণনা করে৷ আপনার অ্যান্ড্রয়েড বিল্ড কীভাবে সেট আপ করবেন সে সম্পর্কে আরও তথ্যের জন্য, আপনার বিল্ড কনফিগার করুন দেখুন।

আপনি কমান্ড লাইন টুলের পরিবর্তে অ্যান্ড্রয়েড স্টুডিও টুল ব্যবহার করতে পছন্দ করলে, আপনার অ্যাপ তৈরি করুন এবং চালান দেখুন।

বিল্ড ধরনের সম্পর্কে

ডিফল্টরূপে, প্রতিটি অ্যান্ড্রয়েড অ্যাপের জন্য দুটি বিল্ড ধরনের উপলব্ধ রয়েছে: একটি আপনার অ্যাপ ডিবাগ করার জন্য— ডিবাগ বিল্ড—এবং ব্যবহারকারীদের কাছে আপনার অ্যাপটি প্রকাশ করার জন্য— রিলিজ বিল্ড। আপনি একটি ডিভাইসে আপনার অ্যাপ স্থাপন করার আগে প্রতিটি বিল্ড থেকে প্রাপ্ত আউটপুট অবশ্যই একটি শংসাপত্রের সাথে স্বাক্ষর করতে হবে। ডিবাগ বিল্ড স্বয়ংক্রিয়ভাবে SDK টুল দ্বারা প্রদত্ত একটি ডিবাগ কী দিয়ে স্বাক্ষরিত হয় (এটি অনিরাপদ এবং আপনি এটি দিয়ে Google Play Store-এ প্রকাশ করতে পারবেন না), এবং রিলিজ বিল্ডটি অবশ্যই আপনার নিজের ব্যক্তিগত কী দিয়ে স্বাক্ষর করতে হবে।

আপনি যদি রিলিজের জন্য আপনার অ্যাপ তৈরি করতে চান, তাহলে উপযুক্ত সাইনিং কী দিয়ে আপনার অ্যাপে সাইন করাও গুরুত্বপূর্ণ। আপনি যদি সবেমাত্র শুরু করে থাকেন, তবে, আপনি একটি ডিবাগ APK তৈরি করে একটি এমুলেটর বা একটি সংযুক্ত ডিভাইসে আপনার অ্যাপগুলি দ্রুত চালাতে পারেন৷

এছাড়াও আপনি আপনার build.gradle.kts ফাইলে একটি কাস্টম বিল্ড টাইপ সংজ্ঞায়িত করতে পারেন এবং debuggable true অন্তর্ভুক্ত করে এটিকে একটি ডিবাগ বিল্ড হিসাবে স্বাক্ষর করার জন্য কনফিগার করতে পারেন। আরও তথ্যের জন্য, বিল্ড ভেরিয়েন্ট কনফিগার করুন দেখুন।

একটি APK তৈরি করুন এবং স্থাপন করুন

যদিও একটি অ্যাপ বান্ডেল তৈরি করা হল আপনার অ্যাপকে প্যাকেজ করে প্লে কনসোলে আপলোড করার সর্বোত্তম উপায়, আপনি যখন দ্রুত একটি ডিবাগ বিল্ড পরীক্ষা করতে চান বা অন্যদের সাথে স্থাপনযোগ্য আর্টিফ্যাক্ট হিসাবে আপনার অ্যাপ শেয়ার করতে চান তখন একটি APK তৈরি করা আরও উপযুক্ত।

একটি ডিবাগ APK তৈরি করুন

তাৎক্ষণিক অ্যাপ টেস্টিং এবং ডিবাগিংয়ের জন্য, আপনি একটি ডিবাগ APK তৈরি করতে পারেন। ডিবাগ APK SDK টুল দ্বারা প্রদত্ত একটি ডিবাগ কী দিয়ে স্বাক্ষরিত এবং adb মাধ্যমে ডিবাগ করার অনুমতি দেয়।

একটি ডিবাগ APK তৈরি করতে, একটি কমান্ড লাইন খুলুন এবং আপনার প্রকল্প ডিরেক্টরির মূলে নেভিগেট করুন। একটি ডিবাগ বিল্ড আরম্ভ করতে, assembleDebug টাস্ক আহ্বান করুন:

gradlew assembleDebug

এটি project_name / module_name /build/outputs/apk/module_name -debug.apk নামে একটি APK তৈরি করে। ফাইলটি ইতিমধ্যেই ডিবাগ কী দিয়ে সাইন ইন করা হয়েছে এবং zipalign এর সাথে সারিবদ্ধ করা হয়েছে, তাই আপনি অবিলম্বে একটি ডিভাইসে এটি ইনস্টল করতে পারেন৷

অথবা APK তৈরি করতে এবং অবিলম্বে একটি চলমান এমুলেটর বা সংযুক্ত ডিভাইসে এটি ইনস্টল করতে, পরিবর্তে installDebug আহ্বান করুন :

gradlew installDebug

উপরের টাস্কের নামগুলির "ডিবাগ" অংশটি বিল্ড ভেরিয়েন্ট নামের একটি উট-কেস সংস্করণ, তাই আপনি যে বিল্ড টাইপ বা ভেরিয়েন্টটি একত্রিত বা ইনস্টল করতে চান তার সাথে এটি প্রতিস্থাপন করা যেতে পারে। উদাহরণস্বরূপ, যদি আপনার "ডেমো" পণ্যের স্বাদ থাকে, তাহলে আপনি assembleDemoDebug টাস্ক দিয়ে ডিবাগ সংস্করণ তৈরি করতে পারেন।

প্রতিটি ভেরিয়েন্টের জন্য উপলব্ধ সমস্ত বিল্ড এবং ইন্সটল টাস্ক দেখতে (আনইন্সটল টাস্ক সহ), tasks টাস্ক চালান।

এমুলেটরে আপনার অ্যাপটি কীভাবে চালাবেন এবং একটি ডিভাইসে আপনার অ্যাপ চালাবেন সে সম্পর্কে বিভাগটিও দেখুন।

একটি রিলিজ বান্ডেল বা APK তৈরি করুন

আপনি যখন আপনার অ্যাপটি প্রকাশ এবং বিতরণ করতে প্রস্তুত হন, তখন আপনাকে অবশ্যই একটি রিলিজ বান্ডেল বা APK তৈরি করতে হবে যা আপনার ব্যক্তিগত কী দিয়ে স্বাক্ষরিত। আরও তথ্যের জন্য, কমান্ড লাইন থেকে কীভাবে আপনার অ্যাপে সাইন ইন করবেন সে বিষয়ে বিভাগে যান।

এমুলেটরে আপনার অ্যাপ স্থাপন করুন

অ্যান্ড্রয়েড এমুলেটর ব্যবহার করতে, আপনাকে অবশ্যই অ্যান্ড্রয়েড স্টুডিও ব্যবহার করে একটি অ্যান্ড্রয়েড ভার্চুয়াল ডিভাইস (এভিডি) তৈরি করতে হবে।

একবার আপনার একটি AVD হয়ে গেলে, অ্যান্ড্রয়েড এমুলেটর চালু করুন এবং আপনার অ্যাপটি নিম্নরূপ ইনস্টল করুন:

  1. একটি কমান্ড লাইনে, android_sdk /tools/ এ নেভিগেট করুন এবং আপনার AVD নির্দিষ্ট করে এমুলেটর চালু করুন:

    emulator -avd avd_name

    আপনি যদি AVD নাম সম্পর্কে নিশ্চিত না হন, emulator -list-avds চালান।

  2. এখন আপনি কীভাবে একটি ডিবাগ APK বা adb টুল তৈরি করবেন সে বিষয়ে বিভাগে উল্লিখিত গ্রেডল ইনস্টল কাজগুলির যেকোনো একটি ব্যবহার করে আপনার অ্যাপটি ইনস্টল করতে পারেন।

    যদি APK একটি ডেভেলপার প্রিভিউ SDK ব্যবহার করে তৈরি করা হয় (যদি targetSdkVersion একটি সংখ্যার পরিবর্তে একটি অক্ষর হয়), তাহলে আপনাকে অবশ্যই একটি টেস্ট APK ইনস্টল করতে install কমান্ডের সাথে -t বিকল্পটি অন্তর্ভুক্ত করতে হবে।

    adb install path/to/your_app.apk
    

    আপনার তৈরি করা সমস্ত APK project_name / module_name /build/outputs/apk/ এ সংরক্ষিত হয়।

আরও তথ্যের জন্য, Android এমুলেটরে অ্যাপ চালান দেখুন।

একটি শারীরিক ডিভাইসে আপনার অ্যাপ স্থাপন করুন

আপনি একটি ডিভাইসে আপনার অ্যাপ চালানোর আগে, আপনাকে অবশ্যই আপনার ডিভাইসে USB ডিবাগিং সক্ষম করতে হবে। আপনি সেটিংস > বিকাশকারী বিকল্পগুলির অধীনে বিকল্পটি খুঁজে পেতে পারেন।

দ্রষ্টব্য: Android 4.2 এবং নতুন সংস্করণে, বিকাশকারী বিকল্পগুলি ডিফল্টরূপে লুকানো থাকে৷ এটি উপলব্ধ করতে, সেটিংস > ফোন সম্পর্কে যান এবং বিল্ড নম্বরে সাতবার আলতো চাপুন। বিকাশকারী বিকল্পগুলি খুঁজতে পূর্ববর্তী স্ক্রিনে ফিরে যান।

একবার আপনার ডিভাইসটি সেট আপ হয়ে গেলে এবং USB এর মাধ্যমে সংযুক্ত হয়ে গেলে, আপনি কীভাবে একটি ডিবাগ APK বা adb টুল তৈরি করবেন সে বিষয়ে বিভাগে উল্লিখিত Gradle ইনস্টল কাজগুলি ব্যবহার করে আপনার অ্যাপ ইনস্টল করতে পারেন:

adb -d install path/to/your_app.apk

আপনার তৈরি করা সমস্ত APK project_name / module_name /build/outputs/apk/ এ সংরক্ষিত হয়।

আরও তথ্যের জন্য, হার্ডওয়্যার ডিভাইসে অ্যাপ চালান দেখুন।

একটি অ্যাপ বান্ডিল তৈরি করুন

অ্যান্ড্রয়েড অ্যাপ বান্ডেলগুলিতে আপনার অ্যাপের সংকলিত কোড এবং সংস্থানগুলি অন্তর্ভুক্ত থাকে, তবে APK তৈরি করা এবং Google Play-তে সাইন করা পিছিয়ে যায়। একটি APK থেকে ভিন্ন, আপনি সরাসরি একটি ডিভাইসে একটি অ্যাপ বান্ডিল স্থাপন করতে পারবেন না। সুতরাং, আপনি যদি দ্রুত পরীক্ষা করতে চান বা অন্য কারও সাথে একটি APK ভাগ করতে চান, তবে আপনার পরিবর্তে একটি APK তৈরি করা উচিত।

একটি অ্যাপ বান্ডেল তৈরি করার সবচেয়ে সহজ উপায় হল Android Studio ব্যবহার করে । যাইহোক, যদি আপনাকে কমান্ড লাইন থেকে একটি অ্যাপ বান্ডিল তৈরি করতে হয়, তাহলে নিচের বিভাগে বর্ণিত হিসাবে আপনি Gradle বা bundletool ব্যবহার করে তা করতে পারেন।

Gradle এর সাথে একটি অ্যাপ বান্ডেল তৈরি করুন

আপনি যদি কমান্ড লাইন থেকে একটি অ্যাপ বান্ডিল তৈরি করতে চান, তাহলে আপনার অ্যাপের বেস মডিউলে bundle Variant গ্রেডল টাস্কটি চালান। উদাহরণস্বরূপ, নিম্নলিখিত কমান্ডটি বেস মডিউলের ডিবাগ সংস্করণের জন্য একটি অ্যাপ বান্ডেল তৈরি করে:

./gradlew :base:bundleDebug

আপনি যদি Play Console-এ আপলোড করার জন্য একটি স্বাক্ষরিত বান্ডেল তৈরি করতে চান, তাহলে আপনাকে প্রথমে আপনার অ্যাপের সাইনিং তথ্যের সাথে বেস মডিউলের build.gradle.kts ফাইলটি কনফিগার করতে হবে। আরও জানতে, আপনার অ্যাপ সাইন করার জন্য গ্র্যাডল কীভাবে কনফিগার করবেন সে সম্পর্কে বিভাগে যান। আপনি তারপরে, উদাহরণস্বরূপ, আপনার অ্যাপের রিলিজ সংস্করণ তৈরি করতে পারেন, এবং Gradle স্বয়ংক্রিয়ভাবে একটি অ্যাপ বান্ডেল তৈরি করে এবং আপনি build.gradle.kts ফাইলে দেওয়া স্বাক্ষর তথ্যের সাথে স্বাক্ষর করে।

আপনি যদি পরিবর্তে একটি পৃথক পদক্ষেপ হিসাবে একটি অ্যাপ বান্ডেলে স্বাক্ষর করতে চান, আপনি কমান্ড লাইন থেকে আপনার অ্যাপ বান্ডেলে স্বাক্ষর করতে jarsigner ব্যবহার করতে পারেন। একটি অ্যাপ বান্ডেল তৈরি করার কমান্ড হল:

jarsigner -keystore pathToKeystore app-release.aab keyAlias

bundletool ব্যবহার করে একটি অ্যাপ বান্ডিল তৈরি করুন

bundletool হল একটি কমান্ড লাইন টুল যা অ্যান্ড্রয়েড স্টুডিও, অ্যান্ড্রয়েড গ্রেডল প্লাগইন এবং Google Play আপনার অ্যাপের সংকলিত কোড এবং সংস্থানগুলিকে অ্যাপ বান্ডিলে রূপান্তর করতে এবং সেই বান্ডেলগুলি থেকে স্থাপনযোগ্য APK তৈরি করতে ব্যবহার করে।

সুতরাং, bundletool দিয়ে অ্যাপ বান্ডিল পরীক্ষা করা এবং Google Play কীভাবে APK তৈরি করে তা স্থানীয়ভাবে পুনরায় তৈরি করা কার্যকর হলেও, অ্যাপ বান্ডিল নিজেই তৈরি করার জন্য আপনাকে সাধারণত bundletool ব্যবহার করতে হবে না—আপনার পরিবর্তে Android স্টুডিও বা গ্রেডল কাজগুলি ব্যবহার করা উচিত, যেমনটি পূর্বে বর্ণিত হয়েছে বিভাগ

যাইহোক, আপনি যদি বান্ডিল তৈরি করতে Android স্টুডিও বা গ্রেডল কাজগুলি ব্যবহার করতে না চান—উদাহরণস্বরূপ, আপনি যদি একটি কাস্টম বিল্ড টুলচেন ব্যবহার করেন—আপনি পূর্ব-সংকলিত কোড এবং সংস্থানগুলি থেকে একটি অ্যাপ বান্ডিল তৈরি করতে কমান্ড লাইন থেকে bundletool ব্যবহার করতে পারেন . আপনি যদি ইতিমধ্যে এটি না করে থাকেন, GitHub সংগ্রহস্থল থেকে bundletool ডাউনলোড করুন

এই বিভাগটি বর্ণনা করে যে কীভাবে আপনার অ্যাপের সংকলিত কোড এবং সংস্থানগুলি প্যাকেজ করতে হয় এবং কীভাবে সেগুলিকে অ্যান্ড্রয়েড অ্যাপ বান্ডেলে রূপান্তর করতে কমান্ড লাইন থেকে bundletool ব্যবহার করতে হয়।

প্রোটো বিন্যাসে ম্যানিফেস্ট এবং সংস্থান তৈরি করুন

bundletool জন্য Google-এর প্রোটোকল বাফার ফরম্যাটে থাকার জন্য আপনার অ্যাপ প্রজেক্ট, যেমন অ্যাপের ম্যানিফেস্ট এবং রিসোর্স সম্পর্কে কিছু তথ্যের প্রয়োজন হয়—যা "protobuf" নামেও পরিচিত এবং *.pb ফাইল এক্সটেনশন ব্যবহার করে। প্রোটোবাফগুলি স্ট্রাকচার্ড ডেটা সিরিয়ালাইজ করার জন্য একটি ভাষা-নিরপেক্ষ, প্ল্যাটফর্ম-নিরপেক্ষ এবং এক্সটেনসিবল মেকানিজম প্রদান করে-এটি XML-এর মতো, কিন্তু ছোট, দ্রুত এবং সহজ।

AAPT2 ডাউনলোড করুন

আপনি Google Maven রিপোজিটরি থেকে AAPT2 এর সর্বশেষ সংস্করণ ব্যবহার করে প্রোটোবাফ ফর্ম্যাটে আপনার অ্যাপের ম্যানিফেস্ট ফাইল এবং রিসোর্স টেবিল তৈরি করতে পারেন।

Google এর Maven সংগ্রহস্থল থেকে AAPT2 ডাউনলোড করতে, নিম্নরূপ এগিয়ে যান:

  1. রিপোজিটরি ইনডেক্সে com.android.tools.build > aapt2- এ নেভিগেট করুন।
  2. AAPT2 এর সর্বশেষ সংস্করণের নাম কপি করুন।
  3. নিম্নলিখিত URL-এ আপনি যে সংস্করণের নামটি অনুলিপি করেছেন তা সন্নিবেশ করুন এবং আপনার লক্ষ্য অপারেটিং সিস্টেম নির্দিষ্ট করুন: https://dl.google.com/dl/android/maven2/com/android/tools/build/aapt2/ aapt2-version /aapt2- aapt2-version - [windows | linux | osx] .jar

    উদাহরণস্বরূপ, উইন্ডোজের জন্য সংস্করণ 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 - windows .jar

  4. একটি ব্রাউজারে URL-এ নেভিগেট করুন—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 আপনার বিভিন্ন সংকলিত সংস্থানগুলিকে একটি একক APK-তে লিঙ্ক করে, সেখানে 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 ব্যবহার করার আগে, আপনাকে প্রথমে জিপ ফাইলগুলি প্রদান করতে হবে যেগুলির প্রত্যেকটিতে একটি প্রদত্ত অ্যাপ মডিউলের জন্য সংকলিত কোড এবং সংস্থান রয়েছে৷ প্রতিটি মডিউলের জিপ ফাইলের বিষয়বস্তু এবং সংগঠন অ্যান্ড্রয়েড অ্যাপ বান্ডেল ফরম্যাটের মতো। উদাহরণস্বরূপ, আপনার অ্যাপের বেস মডিউলের জন্য একটি base.zip ফাইল তৈরি করা উচিত এবং এর বিষয়বস্তু নিম্নরূপ সাজানো উচিত:

ফাইল বা ডিরেক্টরি বর্ণনা
manifest/AndroidManifest.xml প্রোটোবাফ ফরম্যাটে মডিউলটির প্রকাশ।
dex/... আপনার অ্যাপের এক বা একাধিক সংকলিত DEX ফাইল সহ একটি ডিরেক্টরি৷ এই ফাইলগুলির নাম নিম্নরূপ হওয়া উচিত: classes.dex , classes2.dex , classes3.dex , ইত্যাদি।
res/... সমস্ত ডিভাইস কনফিগারেশনের জন্য প্রোটোবাফ ফর্ম্যাটে মডিউলের সংস্থানগুলি রয়েছে৷ সাবডিরেক্টরি এবং ফাইলগুলি একটি সাধারণ APK-এর মতোই সংগঠিত হওয়া উচিত৷
root/... , assets/... , এবং lib/... এই ডিরেক্টরিগুলি অ্যান্ড্রয়েড অ্যাপ বান্ডেল ফর্ম্যাট সম্পর্কে বিভাগে বর্ণিত ডিরেক্টরীগুলির সাথে অভিন্ন৷
resources.pb প্রোটোবাফ ফরম্যাটে আপনার অ্যাপের রিসোর্স টেবিল।

আপনি আপনার অ্যাপের প্রতিটি মডিউলের জন্য জিপ ফাইল প্রস্তুত করার পরে, নিম্নলিখিত বিভাগে বর্ণিত হিসাবে আপনি আপনার অ্যাপ বান্ডেল তৈরি করতে bundletool পাঠাতে পারেন।

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 আপনার অ্যাপ বান্ডিল তৈরি করতে মডিউল জিপ ফাইল 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 ফাইল রয়েছে যা অ্যাপ স্টোর করে এমন মেটাডেটা প্রদান করে, যেমন Google Play, বান্ডেল থেকে APK তৈরি করার সময় প্রয়োজন হয়। যদিও bundletool আপনার জন্য এই ফাইলটি তৈরি করে, আপনি একটি BundleConfig.json ফাইলে মেটাডেটার কিছু দিক কনফিগার করতে পারেন এবং এটিকে bundletool build-bundle কমান্ডে পাস করতে পারেন— bundletool পরবর্তীতে প্রতিটি অ্যাপ বান্ডেলে অন্তর্ভুক্ত প্রোটোবাফ সংস্করণের সাথে এই ফাইলটিকে রূপান্তর করে এবং মার্জ করে।

উদাহরণস্বরূপ, আপনি কনফিগারেশন APK-এর কোন বিভাগগুলি সক্ষম বা অক্ষম করতে হবে তা নিয়ন্ত্রণ করতে পারেন৷ একটি BundleConfig.json ফাইলের নিম্নলিখিত উদাহরণটি কনফিগারেশন APKগুলিকে নিষ্ক্রিয় করে যেগুলি প্রতিটি আলাদা ভাষাকে লক্ষ্য করে (অর্থাৎ, সমস্ত ভাষার জন্য সংস্থান তাদের নিজ নিজ বেস বা বৈশিষ্ট্য 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 সিনট্যাক্স ব্যবহার করে লেখা হয়েছে।

একটি অ্যাপ বান্ডেল থেকে আপনার অ্যাপ স্থাপন করুন

আপনি যদি একটি অ্যাপ বান্ডেল তৈরি এবং স্বাক্ষর করে থাকেন, তাহলে APK তৈরি করতে bundletool ব্যবহার করুন এবং সেগুলিকে একটি ডিভাইসে স্থাপন করুন।

কমান্ড লাইন থেকে আপনার অ্যাপ্লিকেশন সাইন ইন করুন

আপনার অ্যাপে সাইন ইন করতে আপনার অ্যান্ড্রয়েড স্টুডিওর প্রয়োজন নেই। আপনি কমান্ড লাইন থেকে আপনার অ্যাপে স্বাক্ষর করতে পারেন, 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. একটি কমান্ড লাইন খুলুন — অ্যান্ড্রয়েড স্টুডিও থেকে, দেখুন > টুল উইন্ডোজ > টার্মিনাল নির্বাচন করুন — এবং আপনার স্বাক্ষরবিহীন APK অবস্থিত যেখানে ডিরেক্টরিতে নেভিগেট করুন।
  2. zipalign ব্যবহার করে স্বাক্ষরবিহীন APK সারিবদ্ধ করুন:

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

    zipalign নিশ্চিত করে যে সমস্ত অসংকুচিত ডেটা ফাইলের শুরুর সাথে সম্পর্কিত একটি নির্দিষ্ট বাইট সারিবদ্ধকরণের সাথে শুরু হয়, যা একটি অ্যাপের দ্বারা ব্যবহৃত RAM এর পরিমাণ হ্রাস করতে পারে।

  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 ম্যানেজার ব্যবহার করে এই প্যাকেজটি আপডেট করতে পারেন।

  4. আপনার APK স্বাক্ষরিত তা যাচাই করুন:

    apksigner verify my-app-release.apk
    

আপনার অ্যাপে সাইন ইন করতে Gradle কনফিগার করুন

মডিউল-স্তরের build.gradle.kts ফাইলটি খুলুন এবং storeFile , storePassword , keyAlias ​​এবং keyPassword এর জন্য এন্ট্রি সহ signingConfigs {} ব্লক যোগ করুন এবং তারপর সেই বস্তুটিকে আপনার বিল্ড টাইপের signingConfig প্রপার্টিতে পাস করুন৷ যেমন:

কোটলিন

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 আপনার অ্যাপে স্বাক্ষর করে (এবং zipalign চালায়)।

উপরন্তু, যেহেতু আপনি আপনার সাইনিং কী দিয়ে রিলিজ বিল্ড কনফিগার করেছেন, "ইনস্টল" টাস্কটি সেই বিল্ড টাইপের জন্য উপলব্ধ। তাই আপনি installRelease টাস্ক সহ একটি এমুলেটর বা ডিভাইসে রিলিজ APK তৈরি, সারিবদ্ধ, সাইন এবং ইনস্টল করতে পারেন।

আপনার ব্যক্তিগত কী দিয়ে স্বাক্ষরিত একটি অ্যাপ বিতরণের জন্য প্রস্তুত, তবে আপনার অ্যাপটি কীভাবে প্রকাশ করবেন সে সম্পর্কে আপনাকে প্রথমে আরও পড়তে হবে এবং Google Play লঞ্চ চেকলিস্ট পর্যালোচনা করতে হবে।