Распаковал apk (он zip), и первое что бросилось в глаза - библиотеки для разных процессоров.
Предположу что нам нужна только одна папка (для конкретного типа процессора), но в пакете - их 4.
В распакованном виде приложение весит 700 мб. Если оставить только нужный набор библиотек - 360 мб - можно убрать. И это сразу половина.
Поправьте меня если ошибаюсь.
Сейчас говнокодеры везде, повсюду. Hello World чтобы написать, подключают библиотеку, на 100500 гигов. В итоге, программа которая должна занимать 1КБ весит 100МБ, грузит проц и жрет память, но Hello World пишет.
Ага, привет калькуляторы весом по 20-50 мб. Ещё вопрос программистам - Нахера калькуляторам доступы к памяти, журналом вызова, камере, gps и т.д. Единственная мысль - собирают инфу и продают всяким сервисам, но это не объясняет и половины всех запрашиваемых доступов
Да и FMX в целом хорошо работает на андроид. Я за 3 дня написал приложение (для вин и андроид) для просмотра 3D панорам нашей компании.
Ну а общий вес (там внутри есть несколько текстур штатных) получился вот такой. Но это отладочный вес. Релизный вроде, мб 40 весит
Смотря о каких библиотеках речь. Или вы стандартные библиотеки не считаете? Ведь RTL и фреймворк для GUI - как правило поставляются по умолчанию для многих языков.
Ну RTL и GUI могут быть вшиты уже в саму ОС, например как API в андроиде. Вылизано всё, мусора минимум. Если без свистоперделок конечно.
Что значит вшиты? RTL и GUI - это всегда прослойка фреймворка и/или среды. RTL - вообще отношения к ОС не имеет. Это пробросы и инструменты для работы приложения (и разруливание кроссплатформы, например), а GUI - ни кто в чистом виде не использует для отдельной платформы. Ни кто не пишет используя исключительно, например, winapi (описать процедуру WndProc, запустить циклы обработки событий, описывать каждое событие).
у меня с этой тенденции бомбит и полыхает уже лет 10-15 как.
и чем дальше, тем жарче.
не проходит и дня, чтоб я вслух не матерился на воображаемых говнокодеров, которые творят какое-то дерьмо. вот даже пишу это сейчас, и аж руки трясутся ))))
приложения, сайты, браузеры, программы - везде. везде, блин!
Не разбираешься не пиши.
Их выперли из Гугл плей.
Раньше там ты скачивал приложение только для своего процессора.
Теперь, они вынуждены собирать одно приложение, которое заработает на любом процессоре. Вот и вырасло раза в 4 по размеру
с комментариев угарнул
"writeGlobalValues" - считываем переданные переменные
ну и в целом вообще от всех комментариев можно избавиться, переименовав методы
preparePL(GlobalId)
=>
preparePlayList(BookGlobalId)
а можно ж и посильнее заморочиться, но я не знаю специфики джавы/что оно такое и разработки под андроид
а можете предложить объяснение, зачем в apk какие-то 100-метровые либы под разные процы нужны?
Ну, т.к. я являюсь одним из тех самым говнокодеров, про которых писал, я могу лишь только ответить - ХУЙ ЗНАЕТ, можно обойтись и без этих библиотек, сделать приложение, которое будет работать значительно быстрее и весить значительно меньше. Но разработчикам за это не платят.
Прошли те времена, когда писали программы имея ограничения в 512КБ ПЗУ и 8КБ ОЗУ. Как хочешь, так и ебись.
В итоге, в моем телефоне оперативки больше и процессор мощнее, чем компьютеры у половины населения земли. Что позволяет разработчикам существенно повысить скорость разработки новой свистоперделки с помощью всяких говноФреймворков и прочей хуеты, за счет моего железа(кошелька), попутно засерая мой смартфон. Насколько я понимаю, в настоящее время оптимизацией заморачиваются только AAA++ проекты.
Но и оспаривать комментатора выше тоже не буду, так как юзер тупеет со временем, он в душе не ебет, что у него там за процессор? с какой архитектурой, поэтому разработчики даже не предлагают ему варианты выбора при скачивании приложений. Вот тебе хуева туча вариантов, ОС сама разберется откуда грузить.
Так же все похуй на память и кэш, поэтому приложение погоды, может люто тормозить и занимать по гигу дискового пространства.
Но есть и отдельная сторона медали, если я например использую свой авторский код и не совсем олень, то его сложнее сломать, ибо хуй знает как там у меня все устроено, нежели когда находят какую-нить уязвимость в плагине WP, сканируют все сайты и ложат их тысячами.
Проблема с этим начинается когда над проектом работает сотня людей и что бы ознакомиться с процессами нужно поднимать тонну документациии разного качества. В таких проектах гораздо ценнее те, кто может сказать какой метод/функцию/подпрограмму вызвать, что бы не писать велосипед с нуля, покрывая тестами
предложу свою версию. думаю либы - это для создания виртуалки в виртуалке в виртуалке. штоб обеспечить самую безопасную безопасность банковскому приложению зелёного банка.
Обычно, самое простое объяснение - правильное. Поэтому на 99,9% уверен, что разрабам просто похуй, что их приложение весит 500метров.
По изначальной задумке, приложение должно писаться на java и быть кроссплатформенным. Маленько, удобненько. Компилируем его в объект-код, его при установке компилируем в код целевого процессора и запускаем на виртуальной джява-машине. Ок, сделали.
Упс! Оно тормозное! Ничо страшного: переписываем весь код на сипипи, компилируем в "библиотеку". Джява-приложение становится лаунчером функций из библиотеки и её интерфейсом к системным эвентам. Удобно, библиотека работает без виртуалки, очень быстро. Упс! Процы разные бывают! Ничо страшного: кладём в апк версии библиотеки, скомпилированные для всех процов!
Печально, но ничего с этим не поделать. Андроид крут именно мультиплатформенностью, делать приложения, скомпилированные сразу в код процессора, как в иос, нельзя.
может ли среднестатистический пользователь понять, какую версию из четырех ему качать?
Это если выкладывать отдельный .apk под каждую архитектуру.
Логично бы выложить 4 версии отдельно и пятую с подписью: я дурак, я не знаю, какую ставить.
В качестве бреда - можно выложить "установщик". Ео запускаешь - а он подтягивает нужные библиотеки, или нужную версию для устройства. Только забота о пользователя у них не в приоритете. Они спят и думают как побольше бабла срубить.
Логично бы выложить 4 версии отдельно и пятую с подписью: я дурак, я не знаю, какую ставить.
Это тебе так хочется. Разрабам и саппорту это нахрен не упало.
Apk же хранит все возможные варианты билдов под все цпу (указанные при сборке)
плюс все варианты аспектов (картинок) для всех размеров экранов (по 5 шт каждых)
и вот и набегает туча места.
судя по тому что сбер не публикуется в пасторе, он распространяется через apk. Вот от туда и жирный вес. Универсальный инсталлятор для всех возможных устройств.
Нафига мой телефон после установки сохраняет все неподошедшие ему варианты? На кой мне на телефоне с процессором на АРМ7 либы для арм8, х86 и х64?
но на сколько мне известно пользоваться им умеет только гугломаркет. Остальные вынуждены предоставлять apk.
А ответ тут простой. Apk удобно распространять. А дела пользователей не забртят дистрибьюторов. Хотя надо признать, что многие разработчики стараются максимально минимизировать размер приложения при установке. Из личного опыта удавалось сжать с 80мб до 9 за счёт минификации, оптимизации ассетов, и запакован в aab.
Так распространяя apk как раз заботятся о пользователе. aab без развитого маркета, типа гугловского, будет выглядеть как установка какого нибудь openwrt - огромная такая база, из которой нужно выбрать тип процессора, версию ядра, цвет глаз разработчика, версию системы и т.д. Большинство пользователей не справится.
Но разве невозможно/слишком сложно сделать то же приложение которое весит не условные 500 мб из которых 300 - мусорные библиотеки, а приложение весом в 200 и ещё 20 сами докачаются под процессор, ядро и т.д. при первом запуске? То есть - это реально так сложно или проггеры просто забили болт?
Сейчас же много игр которые имеют установщик небольшой, а остальное качается при первом запуске, и нормально всё работает
У тебя смешались понятия "распространение" и "установка". То, что распространяется АПК со всеми вариантами либ и графики, это нормально. Вопрос в том, почему при установке из этого полного набора не выкидывается всё кроме одного нужного варианта.
В те времена когда это изобретались, установщики получалось действительно крошечные и занимали пару мб. Наверно по этому и не парились. Ну а потом пошло-поехало.
Вас вводят в заблуждение, apk после установки тоже не имеет не подходящих архитектур. Он распаковывается и берёт только нужную. Дополнительный вес - это вес после распаковки, кеш и подгрузки статичных данных
Первый раз услышал про aab, и решил почитать.
Последние* нововведения в магазине очень круто выглядят.
https://habr.com/ru/company/droider/blog/568760/
"когда вы заходите в Google Play и скачиваете приложение, то Google Play сам собирает для вас идеальную APK-шку только с необходимым набором данных: подгружается только графика необходимого разрешения, библиотеки только под вашу архитектуру и только тот языковой пакет, который выбран у вас в системе."
Вот только Сбер из стора убрали, и он распространяется по apk, а там всё в куче
В распакованном виде приложение весит 700 мб. Если оставить только нужный набор библиотек - 360 мб - можно убрать. И это сразу половина.Распаковываются только библиотеки для используемой архитектуры.
По картинке всё видно, нужно выбрать 1 вариант из 4-х, а остальные удалить. Посчитайте пожалуйста для каждой архитектуры какой процент от общего объема останется, если удалить 3 ненужных. Спасибо!










Банковское сообщество
3.9K постов6.4K подписчика
Правила сообщества
Нельзя:
1. Оскорблять пользователей;
2. Публиковать материал, не относящийся к банковской сфере;
3. Заниматься откровенной рекламой;
4. Призывать модераторов попусту.
Доп. пункт: Публикация, удовлетворяющая всем требованиям, но получившая отрицательный рейтинг, удаляется