کد خبر:1320084
اشتراک گذاری
مرتب‌سازی نظرها براساس:

مطلب تخصصی برنامه‌نویسان اندروید؛

آموزش ساخت فایل aab به زبان ساده

آموزش ساخت فایل aab

در حاصل حاضر اکثر توسعه‌دهندگان اپلیکیشن از فرمت باندل اپلیکیشن اندروید یا همان aab. برای ایجاد برنامه خود استفاده می‌کنند. در این مطلب با آموزش ساخت فایل aab از طریق خط فرمان همراه ما باشید.

آموزش ساخت فایل aab

فرایند ساخت پروژه‌های اندرویدی معمولا توسط گردل (Gradle) مدیریت می‌شود. با این حال می‌توان بدون استفاده از این سیستم و تنها از طریق خط فرمان، یک باندل اپلیکیشن اندروید (aab.*) را ایجاد کرد.

باندل اپلیکیشن اندروید (یا همان فایل aab.) در حال حاضر فرمت دلخواه توسعه‌دهندگان برای ایجاد اپلیکیشن در گوگل پلی است. این فرمت شامل تمام منابع و کدهای کامپایل شده اپلیکیشن می‌شود. فایل aab به ناشر اپلیکیشن اجازه می‌دهد تا داده‌های اضافی را حذف کرده و بدین ترتیب، علاوه بر افزایش سرعت دانلود، در مصرف پهنای باند و حافظه نیز صرفه‌جویی شود.

همچنین بخوانید: زبان‌های برنامه‌نویسی پرطرفدار در ایران.

ناگفته نماند که یک محیط توسعه یکپارچه نظیر Android Studio به طور خودکار و تنها با یک کلیک می‌تواند فایل aab را به وجود آورد. اما گاهی اوقات لازم است این کار را به صورت دستی و تنها از طریق خط فرمان انجام دهید، مخصوصا اگر در حال ساخت ابزار انحصاری خود برای ایجاد اپلیکیشن های اندرویدی هستند.  

مرحله 1- برای ساخت فایل aab. از طریق خط فرمان، ابتدا ابزارهای لازم را مهیا می‌کنیم، یعنی aapt2 و bundletool. aapt2 نسخه دوم ابزار Android Asset Packaging بوده و از اینجا قابل دانلود است.  فایل jar دانلود شده، شامل فایل اجراشدنی aapt2 می‌شود.

از طرف دیگر، bundletool برای کار با باندل های اپلیکیشن مورداستفاده قرار می‌گیرد و می‌توانید آن را از اینجا دانلود کنید. ترجیحا به سراغ نسخه -all-0-10-0.jar بروید، چون می‌تواند با java -jar path/to/above/bindletool.jar کار کنید.

علاوه بر دو ابزار بالا، ساخت فایل aab. همچنین به javac (کامپایلر جاوا)، jarsigner (بخشی از JDK)، dx (بخشی از ابزار ساخت Android SDK، برای تبدیل بایت کد جاوا به بایت کد Dalvik) و zip/unzip احتیاج دارد.  

مرحله 2- تمام منابع را به وسیله aapt2 کامپایل کنید. تک‌تک فایل‌های منبع ماژول اصلیتان باید کامپایل شوند.

aapt2 compile project/app/src/main/res/**/* -o compiled_resources

با این کار، دایرکتوری compiled_resources حاوی فایل‌هایی مثل layout_activity_main.xml.flat می‌شود.

مرحله 3- منابع را در یک APK موقتی لینک کرده، فایل R.java را ساخته و منابع را به فرمت پروتوباف تبدیل کنید.

aapt2 link --proto-format -o temporary.apk \

           -I android_sdk/platforms/android-NN/android.jar \

           --manifest project/app/src/main/AndroidManifest.xml \

           -R compiled_resources/*.flat \

           --auto-add-overlay --java gen

با این کار، فایل temporary.apk ساخته می‌شود که حاوی منابع و منیفست در فرمت پروتوباف (پروتکل بافرز گوگل) است. همچنین فایل R.java (در gen/my/package/R.java) ساخته می‌شود که توسط کد جاوا برای ارجاع به منابع مورداستفاده قرار می‌گیرد. این فایل باید حاوی android.jar برای پلتفرم هدف باشد (بخشی از Android SKD). 

مرحله 4- حال، فایل‌های منبع جاوا را کامپایل می‌کنیم. از آنجا که R.java ساخته شده است، به راحتی می‌توان این کار را انجام داد.

javac -source 1.7 -target 1.7 \

      -bootclasspath $JAVA_HOME/jre/lib/rt.jar \

      -classpath android_sdk/platforms/android-NN/android.jar \

      -d classes \

      gen/**/*.java project/app/src/main/java/**/*.java

تکه کد بالا، فایل‌های class. را در دایرکتوری classes ایجاد می‌کند. بر اساس وابستگی‌ها، مسیر کلاس (classpath) می‌تواند شامل pathها یا jarهای دیگری باشد.

مرحله 5- در این هنگام باید فایل APK موقتی (که قبلا ساخته شده) را استخراج کنیم. پس:

unzip temporary.apk -d staging  

یک APK تنها یک فایل زیپ نمایشی است. کد بالا باعث می‌شود تا تمام محتویات temporary.apk در دایرکتوری staging قرار داده شود.

مرحله 6- حال باید فایل staging/AndroidManifest.xml را به فایل staging/manifest انتقال دهیم (دایرکتوری که باید ساخته شود). سپس stating/dex/ را ایجاد کرده و از dx برای تبدیل بایت کد جاوا (در فایل‌های class.) به بایت کد دالویک (مناسب برای اجرا روی اندروید) استفاده می‌کنیم.

dx --dex --output=staging/dex/classes.dex classes/

مرحله 7- محتوای ماژول اصلی را به یک فایل زیپ تبدیل می‌کنیم:

cd staging; zip -r ../base.zip *

مرحله 8- باندل را می‌سازیم:

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

مرحله 9- و در نهایت آن را امضا می‌کنیم:

jarsigner -keystore mykeystore.jks bundle.aab my-id

به همین راحتی می‌توانید یک فایل aab. را به وجود آورید.

نظرها

سر‌خط آخرین خبرها

خبرهای بیشتر
سامسونگ شریک تجاری مسابقات بازی‌های موبایلی اسنپدراگون پرو شد

براساس اعلام کوالکام، گیمرها در مسابقات سری اسنپدراگون پرو، در سطوح Mobile...

بازی محبوب و سرگرم کننده Middle East Empire؛ شورشی برای تسخیر خاورمیانه

 Middle East Empire – امپراتوری خاورمیانه بازی جدید، محبوب و سرگرم کننده در سبک...

آموزش راه‌های انتقال اطلاعات از گوشی اندروید به آیفون

 هر ساله با معرفی انواع مختلفی از گوشی‌های اپل، بسیاری از کاربران تمایل...

مدیاتک از تراشه دایمنسیتی 8200 برای پرچمدارهای مقرون‌به‌صرفه رونمایی کرد

 مدیاتک چند وقت پیش از تراشه پرچمدارش برای سال 2023 با نام دایمنسیتی 9200 رونمایی...

شناسایی بیماری آلزایمر قبل از بروز علائم با آزمایش خون!

با تست آزمایشگاهی جدیدی که دانشمندان ساخته‌اند، شناسایی آلزایمر سال‌ها پیش...

درمان میکروب معده با قطره‌ خوراکی بره موم

گروهی از محققان یکی از شرکت‌های خلاق به فرمولاسیون قطره‌ خوراکی برای از بین...

ژاپنی‌ها از برف هم انرژی تولید می‌کنند!

طبق گزارش رسانه ها، محققان ژاپنی در آئوموری، که یکی از برفی‌ترین شهر‌های...

پیام هشدار زلزله به دلیل تست این سرویس بوده است

دریافت پیام هشدار زلزله توسط برخی مشترکان تلفن همراه بخاطر ‌اشتباه در تست...

ساخت یک اپلیکیشن همه‌ منظوره توسط مایکروسافت

ظاهراً مایکروسافت تصمیم دارد سوپر اپلیکیشنی توسعه دهد که کاربران با استفاده...

هوش مصنوعی جدید گوگل که قادر به انجام مذاکره و امضای توافق با دیگران است

پژوهشگران آمریکایی وابسته به شرکت گوگل در یک ابداع ارزشمند و پیشرو، موفق به...