برنامه های داده در برخی کشورها می تواند بیش از 10٪ از درآمد ماهانه یک کاربر معمولی هزینه داشته باشد. این بدان معناست که به حداقل رساندن حجم دانلود برنامه شما و اجازه دادن به کاربر برای کنترل نحوه استفاده برنامه شما از داده ها می تواند برای بسیاری از کاربران یک مزیت بزرگ و ملموس داشته باشد. به حداقل رساندن اندازه دانلود همچنین به صرفه جویی در فضای ذخیره سازی داخلی کمک می کند، که در برخی دستگاه ها منبع کمیاب است.
در اینجا میتوانید چند استراتژی برای کمک به بهینهسازی میزان دادهای که برنامهتان استفاده میکند، هم از طریق شبکه و هم در حافظه داخلی پیدا کنید.
کاهش حجم برنامه
کاهش اندازه برنامه یکی از راههای اساسی است که میتوانید به کاربر کمک کنید تا داده کمتری مصرف کند، هم از نظر دادههای شبکه و هم از نظر حافظه داخلی. در این بخش چندین روش برای کاهش اندازه برنامه توضیح داده شده است.
اندازه دارایی گرافیکی APK را کاهش دهید
- داراییهای گرافیکی اغلب بیشترین سهم را در اندازه APK دارند. بهینه سازی این موارد می تواند منجر به دانلودهای کوچکتر و در نتیجه زمان نصب سریعتر برای کاربران شود.
- برای دارایی های گرافیکی مانند آیکون ها، از فرمت Scalable Vector Graphics (SVG) استفاده کنید. تصاویر SVG در مقایسه با گرافیک بیت مپ از نظر اندازه کوچک هستند و می توانند در زمان اجرا با هر وضوحی ارائه شوند. کتابخانه پشتیبانی Android یک پیاده سازی سازگار با عقب برای منابع برداری به Android 2.1 (سطح API 7) ارائه می دهد. با این پست متوسط با بردارها شروع کنید.
- برای تصاویر غیر برداری مانند عکس ها، از WebP برای کاهش زمان بارگذاری تصویر و صرفه جویی در پهنای باند شبکه استفاده کنید. ثابت شده است که WebP به اندازه فایل های کوچکتر از همتایان PNG و JPG خود با حداقل کیفیت تصویر یکسان منجر می شود. حتی در تنظیمات با اتلاف، WebP می تواند تصویری تقریباً یکسان با تصویر اصلی تولید کند. اندروید از اندروید 4.0 (API سطح 14: Ice Cream Sandwich) و پشتیبانی از WebP شفاف و بدون ضرر را از اندروید 4.2 (سطح API 17: Jelly Bean) پشتیبانی میکند.
- اگر تصاویر بزرگ زیادی در چند تراکم دارید، از پشتیبانی از چند APK استفاده کنید تا APK خود را بر اساس تراکم تقسیم کنید. این منجر به ساختهایی میشود که برای تراکمهای خاص هدفگذاری شدهاند، به این معنی که کاربرانی که دستگاههای با چگالی پایین دارند، مجبور به دریافت جریمه دانلود داراییهای با چگالی بالا استفاده نشده نخواهند بود.
- برای اطلاعات بیشتر در مورد کاهش اندازه APK، به کاهش اندازه APK و کوچک کردن کد و منابع خود مراجعه کنید. علاوه بر این، میتوانید راهنمای دقیقی در مورد کاهش اندازه APK در این سری از پستهای متوسط پیدا کنید.
اندازه کد را کاهش دهید
- هر کتابخانه در پروژه Android شما در حال اضافه کردن کدهای بالقوه استفاده نشده به APK است. در استفاده از کتابخانه های خارجی به ویژه مراقب باشید زیرا همه کتابخانه ها برای استفاده در برنامه های تلفن همراه طراحی نشده اند. اطمینان حاصل کنید که کتابخانههایی که برنامه شما استفاده میکند برای استفاده از تلفن همراه بهینه شده باشند.
- بهینه سازی کد کامپایل شده خود را با استفاده از ابزاری مانند ProGuard در نظر بگیرید. ProGuard کدی را که استفاده نمی شود شناسایی می کند و آن را از APK شما حذف می کند. همچنین با تنظیم
minifyEnabled=true
،shrinkResources=true
درbuild.gradle
، کوچک شدن منابع را در زمان ساخت فعال کنید — این به طور خودکار منابع استفاده نشده را از APK شما حذف می کند. - هنگام استفاده از خدمات Google Play، باید به طور انتخابی فقط API های ضروری را در APK خود قرار دهید .
- برای اطلاعات بیشتر در مورد کاهش اندازه کد در APK خود، آموزش اندروید در مورد نحوه اجتناب از چارچوب های تزریق وابستگی را ببینید.
اجازه دهید برنامه به حافظه خارجی (SD) منتقل شود
- دستگاههای کمهزینه اغلب با فضای ذخیرهسازی کمی عرضه میشوند. کاربران می توانند این را با کارت های SD گسترش دهند. با این حال، برنامهها قبل از اینکه کاربران بتوانند آنها را منتقل کنند، باید صریحاً اعلام کنند که از نصب در حافظه خارجی پشتیبانی میکنند.
- اجازه دهید برنامه شما با استفاده از پرچم
android:installLocation
در AndroidManifest.xml در حافظه خارجی نصب شود. برای اطلاعات بیشتر در مورد فعال کردن برنامه خود برای انتقال به حافظه خارجی، راهنمای Android در محل نصب برنامه را ببینید.
استفاده از دیسک برنامه پس از نصب را کاهش دهید
- پایین نگه داشتن استفاده از دیسک برنامه به این معنی است که کاربران کمتر احتمال دارد برنامه شما را در زمانی که فضای خالی دستگاه کم است حذف نصب کنند. مهم است که محدودیتهایی را در اطراف حافظه پنهان خود اعمال کنید - این از افزایش نامحدود استفاده از دیسک برنامه شما جلوگیری میکند. مطمئن شوید که دادههای کش خود را در
getCacheDir()
قرار میدهید — سیستم میتواند فایلهای قرار داده شده در اینجا را در صورت نیاز حذف کند، بنابراین آنها به عنوان فضای ذخیرهسازی متعهد به برنامه نشان داده نخواهند شد.
استفاده از شبکه قابل تنظیم را ارائه دهید
پلتفرم اندروید شامل چندین راه است که می توانید به کاربر کنترل استفاده از شبکه برنامه خود را بدهید و آن را برای نیازهای خود بهینه کنید. برای مثال، در اولین استفاده، برنامه شما میتواند کاربر را از طریق تنظیمات مرتبط با شبکه راهنمایی کند. همچنین می توانید صفحه تنظیمات شبکه را از خارج از برنامه ارائه دهید.
برای انتخاب شبکه کاربران، تجربیات ورود به سیستم را ارائه دهید
- برنامههایی که به کاربران اجازه میدهند استفاده از داده را کاهش دهند، به خوبی مورد استقبال قرار میگیرند، حتی اگر نیازهای داده سنگینی داشته باشند. اگر برنامه شما از پهنای باند قابل توجهی استفاده میکند (مثلاً برنامههای پخش ویدیو)، میتوانید تجربه ورود به شبکه را برای کاربران فراهم کنید تا استفاده از شبکه را پیکربندی کنند. برای مثال، میتوانید به کاربر اجازه دهید تا جریانهای ویدیویی با نرخ بیت پایینتر را در شبکههای سلولی اجباری کند.
- تنظیمات اضافی برای کاربران برای کنترل همگامسازی دادهها، واکشی اولیه، و رفتار استفاده از شبکه (به عنوان مثال، واکشی از قبل همه دستههای اخبار ستارهدار فقط در Wi-Fi)، همچنین به کاربران کمک میکند تا رفتار برنامه شما را مطابق با نیازهای خود تنظیم کنند.
- برای اطلاعات بیشتر در مورد مدیریت استفاده از شبکه، آموزش مدیریت استفاده از شبکه اندروید را ببینید.
یک صفحه تنظیمات شبکه ارائه دهید
- میتوانید از خارج از برنامه با استفاده از صفحه تنظیمات شبکه به تنظیمات شبکه برنامه بروید. می توانید این صفحه را از صفحه تنظیمات سیستم یا از صفحه استفاده از داده های سیستم فراخوانی کنید.
- برای ارائه صفحه تنظیمات برگزیده شبکه که کاربران می توانند از داخل برنامه شما و همچنین از تنظیمات سیستم به آن دسترسی داشته باشند، در برنامه خود فعالیتی را اضافه کنید که از عملکرد
ACTION_MANAGE_NETWORK_USAGE
پشتیبانی می کند. - برای اطلاعات بیشتر در مورد افزودن صفحه تنظیمات برگزیده شبکه، آموزش Android در مورد پیاده سازی یک فعالیت ترجیحی را ببینید.
منابع اضافی
برای کسب اطلاعات بیشتر در مورد این موضوع، منابع اضافی زیر را مشاهده کنید: