Як зменшити розмір файлу .apk для Android і зробити його легшим

зменшити

За останні кілька місяців ми зробили ряд удосконалень для програми Android SignEasy. Ми досягли великих успіхів, намагаючись створити кращий досвід для наших користувачів, і майже за рік зусиль ми перейшли від того, щоб виглядати так (ліворуч, червень 2015 р.), До цього (праворуч, червень 2016 р.)!

Перероблений додаток побудований на принципах Material Design (що є цікавою історією само по собі). Це не тільки відчуває себе швидше, але й забезпечує покращений досвід підписання. Однак, як і всі хороші речі, це оновлення коштувало дорого, а об’єм програми становив майже 35 МБ. Неприпустимо! Ми відчували біль наших користувачів і вирішили, що настав час поставити програму на вкрай необхідну дієту. Ось деякі з технік, які ми використовували.

Бібліотеки вдосталь

Додатки, як правило, використовують купу бібліотек, щоб продовжувати працювати, і я маю на увазі не лише ту сторонній бібліотеку, яку ви додали для анімації. Вам також потрібно включити SDK для зворотної сумісності з будь-яким API Google або навіть для створення матеріалу вашого додатка. Кожна додана вами залежність може суттєво сприяти розміру файлу .apk, особливо якщо ваш додаток уже тривалий час працює. Гарною відправною точкою є обрізання непотрібних бібліотек із вашого додатка.

Непотрібний багаж

Це чудовий інструмент, щоб побачити, які бібліотеки використовує ваш додаток, включаючи кількість методів, кожна з яких має кожен. Чим більше число, тим більше воно в кінцевому рахунку сприяє вашому файлу .apk. Видаліть усі невикористані бібліотеки, особливо громіздкі.

ProTip: Якщо у вашому додатку використовуються сервіси Google Play, переконайтеся, що ви не включаєте цілу інформацію пакет у вашій збірці. З версії 6.5 ви можете вибірково включати потрібні вам бібліотеки - ні більше, ні менше. Це акуратний маленький фокус, який допоміг нам вирізати кілька серйозних МБ.


Завжди ProGuard

Переконайтеся, що ви застосовуєте ProGuard до свого файлу .apk. Це дуже ефективний інструмент, який видаляє всі невикористані класи, методи та поля із пакетованої програми, включаючи будь-які з бібліотек.

Якщо ви використовуєте AppCompat-v7 або підтримуєте бібліотеку-v4 у своєму додатку (що ви, мабуть, робите), переконайтеся, що у вашому файлі ProGuard немає жодного з цих рядків.

Бібліотеки підтримки самі по собі великі, і корисно, якщо ви дозволите ProGuard видаляти всі невикористані класи.

ProTip: Якщо ви використовуєте AppView SearchView у своєму додатку, додавання вищезазначених двох рядків може призвести до поломки. Це пов’язано з тим, що будь-який елемент AppCompat, який використовується в XML як рядок, не буде розпізнаний AAPT, а ProGuard позбавить клас. Щоб цього уникнути, додайте цей рядок назад до конфігурації ProGuard.

(Це працює з будь-яким класом, який використовується в XML як рядок.)

Зменшення та зменшення

Простий прийом - це сказати Gradle зменшити ресурси та видалити невикористані ресурси для вас, коли ви пакуєте програму. У файлі build.gradle додайте наступне до типу збірки, на який ви хочете вплинути:

Управління тягачами

З огляду на широкий спектр пристроїв Android на ринку, розробники, як правило, додають активи для 5 різних щільностей (mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi), а також різні активи, якщо у вас є спеціальний інтерфейс для планшетів, як у нас. Усі ці зображення, упаковані в єдиний файл .apk, суттєво сприяють більшій кількості.