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

Google Play Instant تجربه‌های غنی و بومی را با ضربه زدن روی پیوند وب ارائه می‌کند. افراد می توانند برنامه شما را بدون نصب اولیه تجربه کنند و سطح و کیفیت بالاتری از تعامل را ممکن می سازد. برای بارگیری یک برنامه فوری به همان سرعتی که یک صفحه وب معمولی تلفن همراه انجام می دهد، باید یک برنامه فوری با ساختار و کارآمد ایجاد کنید. هرچه باینری برنامه فوری شما کوچکتر باشد، سریع‌تر بارگذاری می‌شود و تجربه کاربر روان‌تر است.

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

Refactor به چندین ماژول ویژگی

بزرگترین پیشرفت در اندازه باینری برنامه شما زمانی رخ می دهد که برنامه را به چندین ماژول ویژگی تغییر دهید. با یک ماژول ویژگی پایه شروع کنید، سپس جریان های کاری مرتبط با موضوع را در ماژول های ویژگی خود استخراج کنید. یک فعالیت شروع و یک URL منحصر به فرد به هر ماژول ویژگی اختصاص دهید تا کاربران بتوانند گردش کار ماژول را با موفقیت کامل کنند.

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

بهترین شیوه ها

هنگام بازسازی برنامه خود، بهترین روش های زیر را در نظر داشته باشید:

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

منابع برنامه را به روز کنید

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

کاهش حجم فایل تصاویر

با استفاده از فرمت فایل WebP به جای PNG، می‌توانید به میزان قابل توجهی حجم کل نقشه‌های برنامه خود را کاهش دهید. Google Play Instant پشتیبانی کاملی از WebP از جمله شفافیت و فشرده‌سازی بدون تلفات ارائه می‌کند، بنابراین کیفیت تصویر ثابت باقی می‌ماند.

در صورت امکان، همه الزامات سازگاری با عقب را برای استفاده از سایر تصاویر PNG حذف کنید. اگر باید از تصاویر PNG استفاده کنید، آنها را در ماژولی که برای ساخت و نصب برنامه استفاده می شود قرار دهید.

زبان های استفاده نشده را حذف کنید

اگر برنامه شما از چندین زبان پشتیبانی می کند، تا جایی که می توانید منابع محلی را کاهش دهید. اگر از کتابخانه "app compat" مانند android.support.v7.appcompat استفاده می کنید، این مرحله به ویژه برای تکمیل مفید است. این کتابخانه شامل پیام‌هایی به زبان‌های بسیاری است که ممکن است برنامه شما از برخی از آنها پشتیبانی نکند.

برای کسب اطلاعات بیشتر، نحوه حذف منابع جایگزین استفاده نشده ، به ویژه زبان های بلااستفاده را بررسی کنید.

حذف فایل های اضافی

ممکن است برنامه شما دیگر از برخی از منابعی که به پروژه خود وارد کرده اید استفاده نکند. برای کمک به حذف این منابع، Android Studio یک بررسی Lint برای این وضعیت خاص دارد. برای استفاده از ابزار، مراحل زیر را انجام دهید:

  1. Control+Alt+Shift+I ( Command+Alt+Shift+I در سیستم عامل مک را فشار دهید).
  2. در گفتگوی ظاهر شده، "unused resources" تایپ کنید.
  3. برای شروع فرآیند بازرسی استفاده از منابع، گزینه Unused resources را انتخاب کنید.

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

کتابخانه های استفاده نشده را حذف کنید

با افزایش دامنه برنامه، می تواند تعداد شگفت انگیزی از وابستگی ها را به خود بگیرد، به ویژه یکی از انواع زیر:

  • کتابخانه های بومی: کتابخانه هایی که حاوی کدهای بومی هستند که برنامه فوری شما هرگز آن را اجرا نمی کند.
  • وابستگی های گذرا: کتابخانه هایی که کتابخانه های وارد شده برنامه شما به آنها وابسته است.

Android Studio چندین ابزار مفید برای شناسایی وابستگی های اضافی در پروژه برنامه شما دارد:

کتابخانه های خارجی

نمای پروژه اندروید استودیو شامل بخش کتابخانه های خارجی است.

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

تحلیلگر APK

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

پس از اینکه مشخص کردید برنامه شما به کدام کتابخانه ها نیاز ندارد، با افزودن خطوطی مشابه موارد زیر به فایل ساخت Gradle، آنها را حذف کنید:

<feature_module>/build.gradle

شیار

dependencies {
    implementation('some-important-but-large-library') {
        exclude group: 'com.example.imgtools', module: 'native'
    }
}

کاتلین

dependencies {
    implementation('some-important-but-large-library') {
        exclude(group = "com.example.imgtools", module = "native")
    }
}

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

پیاده سازی تحویل ابری دارایی ها

اگر نیاز دارید که اندازه را بیشتر کوچک کنید، ممکن است لازم باشد به تحویل دارایی های ابری تکیه کنید.