کد خبر: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. را به وجود آورید.

نظرها

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

    خبرهای بیشتر
    فهرست مصادیق محتوای مجرمانه در فضای مجازی
    فهرست مصادیق محتوای مجرمانه در فضای مجازی چیست؟

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

    بهترین هدفون برای گوشی
    معرفی بهترین هدفون برای گوشی موبایل

    موبایل‌های هوشمند به محل مناسبی برای گوش دادن به موسیقی و تماشای فیلم تبدیل شده...

    استخراج بیت کوین با کامپیوتر و لپتاپ
    آیا استخراج بیت کوین با کامپیوتر و لپتاپ سودآوری دارد؟

    این روزها که بیت کوین رکوردهای قیمت جدیدی را در بازار ثبت کرده است، افراد زیادی به...

    آسیب مغزی ناشی از کرونا
    بازگشت آسیب مغزی ناشی از کرونا

    یک مطالعه توسط دانشمندان اروپایی نشان داده است که ویروس کووید-19 می‌تواند رگ‌های...

    مراسم Grammy چیست
    مراسم گرمی چیست؟ | زمان برگزاری گرمی ۲۰۲۲

    مراسم Grammy یکی از مهم‌ترین محفل‌های موسیقی است که در آن، موسیقی‌دانان گرد هم جمع...

    4 اشکال فنی؛ با معایب دنا پلاس اتوماتیک آشنا شوید

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

    سیگنال خرید سهام در بورس
    سیگنال خرید سهام در بورس چطور صادر می شود؟

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

    تغییر حالت موی افراد در فتوشاپ
    آموزش تغییر حالت موی افراد در فتوشاپ

    یکی از سرگرمی‌های جالب که رواج خاصی بین کاربران نوجوان دارد، تغییر حالت موی افراد...

    آموزش حذف اکانت کلاب هاوس برای همیشه

    علیرغم محبوبیت بسیار اپلیکیشن clubhouse، ذوق استفاده از این برنامه برای برخی افراد به...

    تلسکوپ جیمز وب
    تیزبین‌تر از هابل؛ تلسکوپ جیمز وب چه رازهایی را آشکار می‌کند؟

    تلسکوپ جیمز وب ناسا که قرار است جانشین تلسکوپ فضایی هابل شود، به صورت کامل مونتاژ و...