Экономика стран

К сожалению, большинство людей, которые будут ими затронуты почти весь мир, не будут иметь никакого влияния на результат. Вести Экономика Дайджест иностранной прессы за 14 августа.
Вести Экономика Греции снова придется списывать долги Греция не сможет самостоятельно расплатиться по долгам, и понадобится новая реструктуризация долгов, чтобы спасти страну от банкротства.

Вичавлюємо мінімум з програми

  1. приступаємо
  2. Включаємо поділ архітектур
  3. Стиснення зображень без втрат
  4. Включаємо повну лінковку бібліотек
  5. підсумок

Нещодавно прочитав на Apptractor статтю про вплив розміру програми на його скачування, кому цікаво прочитати можна по засланні . Я знаю кілька способів зменшення розміру APK додатки, але ось на скільки сильно вони допоможуть, це був цікавий питання. Для експериментів потрібно було знайти робоче великі додатки, в якому є що оптимізувати.
Допоміг у цьому мені Xamarin Studio, який видає при запуску різні додатки-приклади. Для препарування вибрав додаток Acquaint, вихідні коди доступні на GitHub по засланні .
За описом в додатку доступний наступний функціонал:

  • Перегляд контактів
  • відображення карти
  • текстові повідомлення
  • побудова маршрутів
  • Дзвінки та пошта

Реалізовано на Xamarin.Forms, Xamarin.Android, Xamarin.iOS, мене звичайно ж цікавить нативная Android реалізація.

приступаємо

Я може здамся капітаном, але дам очевидний рада, щоб додаток займало менше місця його потрібно збирати в конфігурації Release. Так для професійних розробників це звичайна справа, але новачків тільки прийшли в світ Xamarin думаю варто про це повідомити.

І так з'ясуємо ж скільки наш додаток займає спочатку місця І так з'ясуємо ж скільки наш додаток займає спочатку місця

При складанні початкових кодів зі сховищ 29.8 Мб - пристойний розмір. Що ж приступимо до оптимізації.

Включаємо поділ архітектур

Так як Android система популярна, то підтримує безліч архітектур, зокрема ARM яка в свою чергу включає в себе ARMv8, ARMv7, а так же x86 яка ділиться на 32 і 64 бітну. Чим більше архітектур вибрано в проекті, тим на більшій кількості пристроїв буде працювати додаток. Це в свою чергу додає зайві мегабайти в APK, при тому що ваш пристрій з ARMv8 ніколи не буде використовувати код для x86, тому логічно буде компілювати для кожної архітектури свій APK, щоб зменшити розмір.

Заходимо в настройки проекту і дивимося які архітектури проставлені для додатка Acquaint
Заходимо в настройки проекту і дивимося які архітектури проставлені для додатка Acquaint   Як бачимо виставлені всі галочки, тому опція «Генерувати для кожної архітектури свій APK» в даній ситуації буде нам корисна
Як бачимо виставлені всі галочки, тому опція «Генерувати для кожної архітектури свій APK» в даній ситуації буде нам корисна.

Заходимо в настройки проекту і дивимося які архітектури проставлені для додатка Acquaint   Як бачимо виставлені всі галочки, тому опція «Генерувати для кожної архітектури свій APK» в даній ситуації буде нам корисна

Збираємо додаток знову і дивимося на розмір.

Збираємо додаток знову і дивимося на розмір

Тепер у нас створюється 5 APK, розмір яких від 23.9 Мб до 24.1 Мб не погано, нам вдалося виграти 5Мб. Приступимо до наступного способу.

Стиснення зображень без втрат

Картинки і різна графіка завжди присутній в додатку у вигляді іконок, сплешскрінов, і інших png і jpg файлів. Ця графіка займає істотну частину програми та далеко не завжди оптимізована, всередину файлу може бути зашита непотрібна мета-інформація або використовуватися висока глибина кольору, яка в поточному зображенні просто не потрібна.

Існує безліч різних оптимізаторів зображень, під macOS я використовую ImageOptim , На мій погляд це найкраще рішення, яке поєднує в собі безліч різних оптимізаторів, завдяки цьому картинка стискується до мінімальних розмірів.
Існує безліч різних оптимізаторів зображень, під macOS я використовую   ImageOptim   , На мій погляд це найкраще рішення, яке поєднує в собі безліч різних оптимізаторів, завдяки цьому картинка стискується до мінімальних розмірів

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

Під Windows на жаль мені не вдалося знайти гарне рішення зі стиснення, виникає дві проблеми або поганий і незручний інтерфейс, або стиснення дуже слабке.

В якості безкоштовного сервісу зі стиснення можу порадити TinyPNG

І так, закидаємо папку проекту в програму, стиснення процес тривалий особливо для PNG, так само залежить від ступеня стиснення яку Ви оберете. Через якийсь час бачимо результат:
І так, закидаємо папку проекту в програму, стиснення процес тривалий особливо для PNG, так само залежить від ступеня стиснення яку Ви оберете
ImageOptim зберіг нам додаткові 860Кб, зберемо проект знову і подивимося чи допомогло це.

Через якийсь час бачимо результат:   ImageOptim   зберіг нам додаткові 860Кб, зберемо проект знову і подивимося чи допомогло це

Результат на обличчя, тепер додаток займає від 23 Мб до 23.3 Мб. Рухаємося далі.

Включаємо повну лінковку бібліотек

З цим способом потрібно бути обережно, тому що він може порахувати Ваш код невживаних і вирізати його при складанні. Я використовував цей спосіб в одному зі своїх проектів і після цього додаток падало при запуску, довелося повозитися щоб з'ясувати що пішло не так, тому якщо Вам дорого час, або не використовуйте цей спосіб, або застосовувати його в останню чергу, коли вже інші варіанти зменшення розміру не допомагають.

Заходимо в настройки проекту і далі вибираємо опцію на скріншоті нижче.
Заходимо в настройки проекту і далі вибираємо опцію на скріншоті нижче

Якщо додаток після цієї опції валиться на пристрої то необхідно вказати Ваші збірки як ігноровані. Якщо і це не допомогло, то справа в системних збірках, необхідно так само додати їх в ігноровані.

Мені пощастило, після повної лінковки додаток запустилось і успішно довантажити контакти.
Подивимося скільки тепер воно займає місця.

Подивимося скільки тепер воно займає місця

Новий розмір програми від 17.4 Мб до 17.6 Мб, повна лінковка творить чудеса.

підсумок

Після застосування всіх способів мені вдалося стиснути додаток з 29.8 Мб до 17.6 Мб, а це трохи більше 40%! Цифра величезна, завдяки такій оптимізації кількість завантажень Ваших додатків повинні підвищиться.

Частина даних способів може бути застосована і до iOS додатків.

І на останок ще кілька корисних порад:

  • Виносьте зайву графіку на backend, після першого запуску її можна докачати в додаток.
  • Якщо в додатку використовується аудіо, то можна пограти з бітрейтом для зменшення розміру
  • Аналогічно з відео, настройка бітрейта дасть виграш в розмірі

Успіхів у зменшенні додатків!

Навигация сайта
Реклама
Панель управления
Календарь новостей
Популярные новости
Информация
Экономика стран www.mp3area.ru © 2005-2016
При копировании материала, ссылка на сайт обязательна.