پرش به مطلب اصلی

خروجی اندروید

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

خروجی اندروید معمولاً در دو فرمت اصلی ارائه می‌شود:

  • APK
  • AAB

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

مهم

اگر قصد انتشار اپلیکیشن در مارکت‌ها یا ارائه نسخه‌های بعدی را دارید، فقط انتخاب نوع خروجی کافی نیست. باید به امضای دیجیتال اپلیکیشن و مدیریت Keystore هم توجه کنید. برای توضیحات کامل‌تر، صفحه مدیریت کلید را مطالعه کنید.


APK چیست؟

APK مخفف Android Package است و فایل نصب مستقیم اپلیکیشن اندروید محسوب می‌شود.

با فایل APK می‌توانید اپلیکیشن را مستقیماً روی گوشی یا تبلت اندرویدی نصب کنید. این فرمت برای تست، نصب دستی، انتشار در برخی مارکت‌ها و ارسال فایل مستقیم به کاربران کاربرد دارد.

کاربردهای APK

از APK معمولاً در این موارد استفاده می‌شود:

  • نصب مستقیم روی دستگاه اندرویدی
  • تست اپلیکیشن قبل از انتشار
  • ارسال فایل برای مشتری یا کاربر
  • انتشار در مارکت‌های داخلی یا مارکت‌هایی که APK دریافت می‌کنند
  • قرار دادن لینک مستقیم دانلود اپ
  • ارسال فایل برای بررسی یا رفع مسدودی Google Play Protect
یادداشت

اگر می‌خواهید اپ را خارج از گوگل‌پلی نصب یا منتشر کنید، معمولاً APK گزینه مناسب‌تری است.


AAB چیست؟

AAB مخفف Android App Bundle است و فرمت پیشنهادی گوگل‌پلی برای انتشار اپلیکیشن‌های اندرویدی محسوب می‌شود.

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

کاربردهای AAB

از AAB معمولاً در این موارد استفاده می‌شود:

  • انتشار اپلیکیشن در Google Play
  • کاهش حجم نصب نهایی برای کاربران
  • ارائه نسخه بهینه‌تر برای دستگاه‌های مختلف
  • مدیریت بهتر منابع و معماری‌های مختلف توسط گوگل‌پلی
مهم

برای انتشار در Google Play، فرمت استاندارد و پیشنهادی معمولاً AAB است. اما برای نصب مستقیم یا ارسال لینک دانلود، APK کاربردی‌تر است.


تفاوت APK و AAB

تفاوت اصلی APK و AAB در نحوه نصب و انتشار آن‌هاست.

موردAPKAAB
نوع فایلفایل نصب مستقیمبسته انتشار برای گوگل‌پلی
نصب مستقیم روی گوشیداردندارد
مناسب برای تست دستیبلهمعمولاً خیر
مناسب برای مارکت‌های داخلیبله، در بسیاری مواردبستگی به مارکت دارد
مناسب برای Google Playقابل استفاده در برخی شرایط، اما پیشنهاد اصلی نیستبله، گزینه پیشنهادی
کاهش حجم نصب برای کاربرمحدودتربهتر و هوشمندتر
نیاز به پردازش توسط گوگل‌پلیندارددارد
نکته

اگر هدف شما انتشار در گوگل‌پلی است، AAB را انتخاب کنید. اگر هدف شما نصب دستی، تست، انتشار در مارکت‌های داخلی یا ارسال فایل مستقیم است، APK انتخاب مناسب‌تری است.


چرا حجم خروجی اندروید ممکن است زیاد باشد؟

در اپ‌های ساخته‌شده با Flutter، حجم فایل خروجی فقط مربوط به صفحات و محتوای اپلیکیشن شما نیست. بخشی از حجم خروجی مربوط به زیرساخت اجرای اپ است.

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

مواردی که روی حجم خروجی تأثیر می‌گذارند

عوامل اصلی حجم خروجی شامل موارد زیر است:

  • موتور اجرای Flutter یا Flutter Engine
  • کتابخانه‌های رابط کاربری
  • فایل‌های سیستمی موردنیاز اندروید
  • تصاویر، آیکن‌ها و فونت‌های استفاده‌شده در پروژه
  • فایل‌های صوتی، ویدئویی، PDF یا سایر فایل‌های حجیم
  • معماری‌های مختلف پردازنده
  • کتابخانه‌ها و افزونه‌های مورد استفاده در اپلیکیشن
یادداشت

حجم خروجی در اپلیکیشن‌های Flutter ممکن است نسبت به برخی اپ‌های ساده اندرویدی بیشتر باشد. این موضوع در بسیاری از موارد طبیعی است و لزوماً نشانه وجود مشکل در پروژه نیست.


چرا روش فعلی خروجی‌گیری استفاده می‌شود؟

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

ممکن است برخی تنظیمات باعث شوند حجم خروجی کمی بیشتر شود، اما در مقابل مزایای مهمی ایجاد می‌کنند.

مزایای این روش

  • افزایش سازگاری با دستگاه‌های مختلف اندرویدی
  • کاهش احتمال خطا هنگام نصب
  • کاهش مشکلات انتشار در مارکت‌ها
  • اجرای پایدارتر اپلیکیشن
  • جلوگیری از بروز خطاهای مربوط به معماری دستگاه
  • اطمینان بیشتر از عملکرد فایل خروجی روی نسخه‌های مختلف اندروید
مهم

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


روش‌های کاهش حجم خروجی

اگر حجم فایل خروجی برای شما مهم است، می‌توانید با رعایت چند نکته، حجم نهایی را کمتر کنید.

1. استفاده از AAB برای گوگل‌پلی

اگر قصد انتشار در Google Play را دارید، استفاده از AAB می‌تواند باعث کاهش حجم نصب نهایی برای کاربران شود.

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

نکته

AAB معمولاً باعث نمی‌شود فایل پروژه شما همیشه بسیار کوچک شود، اما می‌تواند حجم نصب نهایی برای کاربر را بهینه‌تر کند.


2. حذف فایل‌های غیرضروری

فایل‌هایی که در پروژه استفاده نمی‌شوند، بهتر است حذف شوند؛ مخصوصاً اگر حجم زیادی دارند.

نمونه فایل‌هایی که بهتر است بررسی شوند:

  • تصاویر استفاده‌نشده
  • آیکن‌های اضافی
  • فونت‌های غیرضروری
  • فایل‌های صوتی و ویدئویی تستی
  • فایل‌های PDF یا اسناد حجیم
  • فایل‌های موقت یا نسخه‌های قدیمی منابع
هشدار

هر فایلی که داخل پروژه قرار می‌دهید، ممکن است وارد خروجی نهایی شود و حجم فایل APK یا AAB را افزایش دهد.


3. بهینه‌سازی تصاویر و فایل‌ها

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

پیشنهادها:

  • از تصاویر با ابعاد بیش از حد بزرگ استفاده نکنید.
  • فرمت مناسب برای تصاویر انتخاب کنید.
  • تصاویر را با ابزارهای فشرده‌سازی بهینه کنید.
  • از چند نسخه غیرضروری از یک تصویر استفاده نکنید.
  • برای آیکن‌ها و تصاویر ساده، در صورت امکان از فرمت‌های سبک‌تر استفاده کنید.
یادداشت

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


4. آنلاین کردن محتوای حجیم

اگر اپ شما شامل محتوای حجیم مانند ویدئو، صوت، فایل PDF یا بسته‌های آموزشی است، بهتر است این فایل‌ها را مستقیماً داخل اپ قرار ندهید.

به جای آن می‌توانید فایل‌ها را روی سرور یا فضای ذخیره‌سازی آنلاین قرار دهید و داخل اپ فقط لینک یا امکان دانلود آن‌ها را قرار دهید.

مزایای آنلاین کردن محتوا

  • کاهش حجم خروجی APK یا AAB
  • امکان به‌روزرسانی محتوا بدون ساخت خروجی جدید
  • کاهش زمان دانلود اولیه اپ
  • مدیریت بهتر فایل‌های حجیم
  • امکان ارائه محتوای متفاوت به کاربران مختلف
مهم

اگر فایل‌های ویدئویی، صوتی یا PDF را داخل اپ قرار دهید، حجم خروجی نهایی به همان نسبت افزایش پیدا می‌کند.


انتخاب معماری‌های دستگاه

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

معماری‌های رایج اندروید

معماری‌های رایج در اندروید شامل موارد زیر هستند:

armeabi-v7a

این معماری برای دستگاه‌های قدیمی‌تر یا برخی دستگاه‌های ۳۲ بیتی استفاده می‌شود.

arm64-v8a

این معماری برای بیشتر دستگاه‌های جدید اندرویدی استفاده می‌شود و امروزه یکی از مهم‌ترین معماری‌ها برای انتشار اپ است.

x86_64

این معماری بیشتر برای شبیه‌سازها، برخی دستگاه‌های خاص یا محیط‌های تست استفاده می‌شود.


تأثیر معماری روی حجم خروجی

اگر همه معماری‌ها را در یک فایل خروجی قرار دهید، فایل نهایی بزرگ‌تر می‌شود؛ چون کتابخانه‌های لازم برای چند نوع پردازنده داخل یک فایل قرار می‌گیرند.

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

یادداشت

انتخاب معماری کمتر می‌تواند حجم فایل را کاهش دهد، اما ممکن است باعث شود اپ روی برخی دستگاه‌ها نصب یا اجرا نشود.


کدام معماری‌ها را انتخاب کنیم؟

برای بیشتر اپلیکیشن‌ها، پشتیبانی از معماری‌های زیر کافی است:

  • arm64-v8a
  • armeabi-v7a

این دو معماری، بیشتر دستگاه‌های اندرویدی را پوشش می‌دهند.

در برخی موارد خاص، اگر برای شبیه‌سازها یا دستگاه‌های خاص خروجی می‌گیرید، ممکن است به x86_64 هم نیاز داشته باشید.

نکته

اگر مطمئن نیستید، بهتر است تنظیمات پیش‌فرض خروجی را تغییر ندهید تا اپ روی دستگاه‌های بیشتری قابل نصب باشد.


نکته مهم برای انتشار در کافه‌بازار و مایکت

در مارکت‌هایی مثل کافه‌بازار و مایکت، امکان آپلود چند فایل APK با معماری‌های مختلف برای یک اپلیکیشن وجود دارد.

بنابراین اگر قصد انتشار اپ در این مارکت‌ها را دارید، به جای استفاده از یک APK شامل همه معماری‌ها، می‌توانید چند خروجی APK جداگانه برای معماری‌های مختلف بگیرید؛ مثلاً:

  • arm64-v8a
  • armeabi-v7a
  • x86_64 در صورت نیاز

با این روش، هر کاربر فقط فایل APK مناسب دستگاه خود را دانلود و نصب می‌کند. در نتیجه حجم دانلود برای کاربر نهایی کمتر می‌شود.

نکته

برای کاهش حجم اپ در کافه‌بازار و مایکت، می‌توانید چند خروجی APK جداگانه با معماری‌های مختلف بسازید و همه آن‌ها را برای یک اپ در مارکت بارگذاری کنید.

مهم

اگر چند خروجی APK برای معماری‌های مختلف می‌سازید، همه خروجی‌ها باید با همان Package Name و همان Keystore ساخته شوند تا به عنوان نسخه‌های یک اپلیکیشن شناخته شوند.


ساخت و مدیریت Keystore برای خروجی اندروید

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

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

مهم

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


ساخت Keystore جدید در اپ ادیتور

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

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

اطلاعاتی که معمولاً برای ساخت کلید نیاز است شامل موارد زیر است:

  • عنوان یا نام نمایشی کلید
  • رمز عبور Keystore
  • نام کلید یا Alias
  • رمز عبور Alias
  • نام و نام خانوادگی
  • نام سازمان یا شرکت، در صورت وجود
  • شهر یا منطقه
  • استان
  • کد کشور، مانند IR برای ایران
یادداشت

عنوان کلید فقط برای نمایش در پنل است و می‌تواند فارسی باشد؛ اما بهتر است اطلاعات هویتی مثل نام، سازمان، شهر و استان را با کاراکترهای لاتین وارد کنید.


آپلود Keystore آماده

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

برای آپلود و استفاده از کلید آماده، معمولاً به موارد زیر نیاز دارید:

  • فایل Keystore
  • رمز عبور Keystore
  • Alias
  • رمز عبور Alias
مهم

اگر قبلاً اپلیکیشن خود را با یک Keystore مشخص منتشر کرده‌اید، برای ساخت نسخه جدید همان اپ حتماً باید همان کلید قبلی را آپلود و استفاده کنید.


نگهداری امن Keystore

بعد از ساخت یا آپلود کلید، حتماً اطلاعات آن را در جای امن نگهداری کنید.

موارد مهم برای نگهداری:

  • فایل Keystore را در چند محل امن ذخیره کنید.
  • رمز Keystore را فراموش نکنید.
  • Alias و رمز Alias را ذخیره کنید.
  • مشخص کنید هر اپ با کدام Keystore ساخته شده است.
  • اطلاعات کلید را در اختیار افراد غیرمطمئن قرار ندهید.
هشدار

گم شدن فایل Keystore یا فراموش کردن رمزهای آن می‌تواند باعث شود دیگر نتوانید نسخه جدید اپلیکیشن منتشرشده را به‌عنوان آپدیت همان اپ ارائه کنید.


اطلاعات بیشتر درباره مدیریت کلید

در این صفحه فقط به نکات ضروری Keystore در ارتباط با خروجی اندروید اشاره شد.

برای آموزش کامل‌تر درباره ساخت کلید، مشاهده لیست کلیدها، آپلود کلید آماده، استفاده از کلید برای اپ‌های مختلف، رفع مسدودی Google Play Protect و نکات امنیتی، صفحه زیر را مطالعه کنید:


نکات مهم قبل از دریافت خروجی

قبل از ساخت خروجی نهایی اندروید، موارد زیر را بررسی کنید:

  • نوع خروجی را درست انتخاب کرده باشید؛ APK یا AAB
  • اگر قصد انتشار در گوگل‌پلی دارید، استفاده از AAB را بررسی کنید
  • اگر قصد نصب مستقیم یا انتشار در مارکت‌های داخلی دارید، APK مناسب‌تر است
  • Package Name اپلیکیشن بدون دلیل تغییر نکرده باشد
  • Keystore صحیح انتخاب شده باشد
  • رمزهای Keystore و Alias درست وارد شده باشند
  • فایل‌های حجیم و غیرضروری از پروژه حذف شده باشند
  • معماری‌های موردنیاز به درستی انتخاب شده باشند
نکته

قبل از دریافت خروجی نهایی، یک خروجی تست بگیرید و آن را روی چند دستگاه مختلف بررسی کنید.


جمع‌بندی

در اپ ادیتور می‌توانید خروجی اندروید را در دو فرمت APK و AAB دریافت کنید.

APK برای نصب مستقیم، تست، انتشار در برخی مارکت‌ها و ارسال لینک دانلود مناسب است.
AAB فرمت پیشنهادی گوگل‌پلی است و می‌تواند نصب نهایی را برای کاربران بهینه‌تر کند.

حجم خروجی اندروید به عواملی مثل Flutter Engine، منابع پروژه، فایل‌های حجیم، معماری‌های پردازنده و افزونه‌های استفاده‌شده بستگی دارد. برای کاهش حجم می‌توانید فایل‌های غیرضروری را حذف کنید، تصاویر را بهینه کنید، محتوای حجیم را آنلاین کنید و در صورت انتشار در گوگل‌پلی از AAB استفاده کنید.

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

برای جزئیات کامل‌تر درباره کلیدها، صفحه زیر را مطالعه کنید: