,

Разработчик создал самый маленький файл APK весом в 1 757 байт

Благодаря различным манипуляциям с компонентами файла APK Джейми Лэнчу удалось создать рекордно «легкий» установочный файл
«Пустое» (не выполняющее никаких функций) простейшее приложение-окно для «зеленого робота», созданное в Android Studio (интегрированной среде разработки), весит 1,5 МБ. Разработчику по имени Джейми Лэнч (Jamie Lynch) удалось уменьшить файл APK (установочный файл для Android) этой программы до рекордно маленького размера — 1 757 байт. В своем блоге программист наглядно показал, как ему удалось это сделать с помощью определенных манипуляций.

Первое, что сделал Лэнч в ходе эксперимента, — выявил наиболее «тяжелые» компоненты файла APK:
  1. classes.dex (содержит весь скомпилированный код в формате DEX, а также ссылки на различные библиотеки в Android) — 74%.
  2. res (содержит графические компоненты приложения) — 20%.
  3. resources.arsc (содержит ссылки на каждый из компонентов файла в res) — 4%.
  4. META-INF (содержит инструменты, проверяющие «целостность» APK-файла) — 2%.
  5. AndroidManifest (содержит информацию о приложении, требуемую операционной системе) — меньше 1%.
Проанализировав установочный файл, разработчик приступил к оптимизации исходного кода. Первым делом Джейми Лэнч удалил из APK неиспользуемые библиотеки и ссылки на них, которые Android Studio автоматически добавляет при создании файла. Это действие позволило уменьшить размер APK на 50%. Далее программист оптимизировал «громоздкие» изображения в формате PNG, хранящиеся в папке res. Благодаря этому, установочный файл уменьшился с 786 до 108 КБ. Все последующие действия разработчик выполнял с меньшими по размеру файлами — resources.arsc, META-INF и AndroidManifest.

В конечном итоге у Джейми Лэнч вышел рекордно «легкий» установочный файл весом всего в 1 757 байт (против исходного на 1,5 МБ). Всю инструкцию «оптимизации» APK с подробными комментариями программист опубликовал в своем блоге.

Материалы по теме:



 

Monstercat
Monstercat , 12 октября 2017 - 18:21   (...)
Вот если бы он сжал 1 гб на 100 мб, может бы я удивился, а так незнаю…
Ответить
FaXiR
FaXiR , 12 октября 2017 - 19:09   (...)
1 Гб сжать на 100Мб?
Ну… 1 гб = 1024Мб
1024 -100 Мб = 924Мб.

А 1Гб до 100Мб сжать не получится. Хотя если например замутить сжиматор с базой данных до 1Тб, то можно размахнуться и из 1Гб сделать 1Мб.
Ответить
Monstercat
Monstercat , 12 октября 2017 - 19:14   (...)
Годно ))
Ответить
DedFez
DedFez 49, 12 октября 2017 - 20:36   (...)
ну почему же, оптимизация. это когда у тебя приложение весит гиг и имеет допустим картинки и видео под каждое разрешение экрана, оптимизируя под конкретное устройство и ты удаляешь тонну того что ненужно и существенно уменьшаешь размер.
Ответить
DEN_GAMER
DEN_GAMER 1, 12 октября 2017 - 21:12   (...)
Например можно в gta sa удалить текстуры для других видеоускорителей и освободить 300 МБ памяти
Ответить
FaXiR
FaXiR , 13 октября 2017 - 07:27   (...)
В наше время, оптимизацию текстур под конкретное устройство, делают владельцы этих устройств)))
Ответить
ars_klas
ars_klas 3, 12 октября 2017 - 22:00   (...)
Cжиматор, лол
Ответить
ars_klas
ars_klas 3, 12 октября 2017 - 22:01   (...)
Берёшь образ диска на 1 гб и сжимаешь, получится пару мб
Ответить
loolz
loolz , 13 октября 2017 - 05:24   (...)
Видео можно очень хорошо компрессовать. Есть архив Тестовый диск — с тестами изобажения для ТВ в контейнере mp4. Распакованные они весят 1,55 ГБ, а в архиве 7z SFX с расширением *.exe сжаты до 21,7 МБ
Ответить
Fazylbekovich_
Fazylbekovich_, 12 октября 2017 - 18:21   (...)
Не могу понять, как он рекордно минимальный, если на маркете много браузеров, которые весят лишь 700-900 кБайт? Или это другое?
Ответить
alexx_97
alexx_97, 12 октября 2017 - 18:27   (...)
Прочти еще раз))
Ответить
witch666
witch666, 12 октября 2017 - 18:37   (...)
1,7 кбайт < 700 кбайт
Ответить
Fazylbekovich_
Fazylbekovich_, 12 октября 2017 - 22:03   (...)
Сорри, тупанул)
Ответить
REG_horse
REG_horse , 12 октября 2017 - 18:40   (...)
Хотелось бы видеть повальный тренд на сжатие apk файлов, примерно такой же когда сняли ограничение в 50мб в Google play.
Ответить
saska31
saska31 , 12 октября 2017 - 18:52   (...)
Я знаю джаву на столько что могу только и создать пустой апк установщик))
Ответить
mmaksymm2404
mmaksymm240429, 12 октября 2017 - 19:46   (...)
Он не установится тебе на телефон.
Ответить
Zdorowij
Zdorowij , 12 октября 2017 - 19:13   (...)
1700 байт=1,5 кбайта, разве нет?
Ответить
nghtmre
nghtmre18, 12 октября 2017 - 20:10   (...)
1700 байт =1.66015625 КБайт, ну или ~1.7
Ответить
id197067879
id1970678795, 12 октября 2017 - 20:31   (...)
Там люди ещё немного поработали над apk (в оригинальной записи есть ссылка на проект на github). Теперь он весит 820 байт.
Ответить
bIgGuN
bIgGuN 3, 14 октября 2017 - 00:27   (...)
678 уже
Ответить
maxcubeecrafter
maxcubeecrafter, 12 октября 2017 - 20:46   (...)
По-моему, фамилия «Lynch» транслитерируется как «Линч», а не «Лэнч». Никто же не видел фильмов от Дэвида Лэнча.
Ответить
dneese
dneese , 12 октября 2017 - 22:33   (...)
APK он сжал а блог про это расписал аж на 3 МБ
Ответить
ajsenzaharov
ajsenzaharov, 13 октября 2017 - 04:00   (...)
Вахах, есть и полноценные игры с 0.20 мбайт
Ответить
id292364208
id292364208 , 13 октября 2017 - 10:23   (...)
Tetris 2017
Ответить
MaksimMarkous
MaksimMarkous , 13 октября 2017 - 14:05   (...)
А где его скачать?
Ответить
saska31
saska31 , 13 октября 2017 - 15:41   (...)
Зачем?
Ответить
MaksimMarkous
MaksimMarkous , 13 октября 2017 - 23:04   (...)
Чтобы иметь брата по разуму
Ответить
NickMeller
NickMeller2/1, 13 октября 2017 - 23:57   (...)
Создал пустой текстовый документ в блокноте с расширением *.apk. Напишите про меня новость?
Ответить

ltybcj
ltybcj, 16 октября 2017 - 20:30   (...)
Статья о статье?
Ответить
Последнее изменение:

Добавить комментарий
Если нужно ответить кому-то конкретно,
лучше нажать на «Ответить» под его комментарием