Comments 50
Такое чувство что надо вернуть обратно Dalwik: "То есть приложения транслировались в нативный код прямо во время исполнения, то есть “на лету”".
Процессоры и флешпамять стали быстрее, батареи увеличили ёмкость в раза 4. Причин тормозить и экономить энергию нет.
Имхо, до тех пор, пока Ваш смартфон не живёт на одном заряде хотя бы неделю, при обычном для Вас использовании, про "Причин экономить энергию нет" даже не заикайтесь.
Доля процессора в энергопотреблении намного меньше экрана. Отключите экран и потребление процессора не сильно окажет влияние на время работы. Производитель моего первого смартфона на Samsung S5PC111 и PowerVR SGX540 (экран Super AMOLED 800х480 ) с Android 2.3 заявлял, что аккумулятор 1500мАч способен продержаться до 768 минут в режиме разговора и до 750 часов в режиме ожидания, более 24 часов при воспроизведении музыки. При воспроизведении видео аккумулятор разряжался примерно за 7 часов.
Доля процессора в энергопотреблении намного меньше экрана.
А я и не утверждал обратного, я писал в целом о смартфоне. Да над энергопотреблением за годы неплохо поработали, да ёмкость батареи значительно увеличилась. Однако, смартфон в среднем дольше 2-х суток редко живёт, если не отключать всё и вся, и это когда батарея свежая.
Поэтому, причин экономить энергию вполне себе достаточно, как минимум не расходовать её там, где можно обойтись.
И во времена Android.2.3 телефон 2-х суток работы не достигал. Очевидно, что цели увеличивать длительность автономной работы нет. Пользователя приучили заряжать телефон минимум раз в сутки. И всё "сэкономленное" скармливается на поддержание работы каналов связи и программ, работающих непрозрачно для пользователя. А с точки зрения пользователя я не вижу тормозов ни на 2-й версии, ни на 10-й. Базовый функционал тот же - браузер, email, мессенджер, фото/видео.
Чего-то "нового", что мне бы понравилось я не видел с 5-й версии. Что появилось "нового" в телефонах, кроме фотокамер и их алгоритмов? Чем занимается процессор? Зачем надо "еще больше" и "быстрее"?
По-моему дальше его кроят как удобно и необходимо Google, а не пользователю. Я потерял к этой системе интерес - для меня она выглядит попавшей в тупик развития. Для пользователя уже нет ничего, что можно еще любить в этой ОС.
Собственно по этим мотивам есть две публикации на тему "Android окукливается и сообщество потворствует этому" от @IMnEpaTOP и @Roman_Cherkasov и я согласен с авторами, что "Андроид растратил всё, что мы в нём любили".
И возвращаясь к первоначальному комментарию о Dalwik, возможно, я бы сейчас бы с удовольствием купил бы телефон на Android 2 на современном железе: Браузер, почта, мессенджер и фотовидеокамера.
Не уверен, что тот браузер откроет все современные сайты, а та камера будет снимать в качестве, к которому все привыкли.
Всё субъективно. Для меня браузер на A2 - это утерянный рай. Facebook обычно посещаю на старом телефоне. Habr там тоже работает. Современные мобильные браузеры познаются в сравнении - они не удобны для тех действий что мне нужны. А некоторые вещи в современных не работают - не дают скопировать текст на некоторых сайтах, сохранить фото.
Фото тоже субъективная тема. У старого другое фокусное расстояние, нет сильной широкоугольности как у современных. Вполне хватает 5 Мп для фотофиксации события. Например эти фото с него.
Если серьезно, то единственная причина долгожительства этого телефона - размер. Комфортный для меня размер. Попытки купить другой телефон много лет останавливаются дискомфортом от габаритов. Из последнего понравился iPhone 12 mini - по размерам мне идеален. Возможно решусь перейти на эту платформу.
Доля процессора в энергопотреблении намного меньше экранаНе уверен. По физике, вся потраченная энергия уходит в тепло. Так при нагрузке на процессор телефон ощутимо греется, а при включенном экране не греется.
По какой физике вся потраченная энергия уходит в тепло? Как тогда вообще полезная работа происходит?
Смартфон не делает «полезную работу» (в физическом смысле этого термина
Да? А как тогда переносится заряд от батареи к компонентам?
как произведение силы на перемещение
Это механическая работа.
Но речь даже не об этом. Заставить светиться экран - это тоже затраты энергии. Энергия аккумулятора переходит в кинетическую энергию фотонов, и частично в нагрев компонентов.
Да? А как тогда переносится заряд от батареи к компонентам?В конечном итоге всё это уходит в тепло.
Но речь даже не об этом. Заставить светиться экран — это тоже затраты энергии. Энергия аккумулятора переходит в кинетическую энергию фотонов, и частично в нагрев компонентов.Так и есть. Но это немного. Достаточно закрыть экран бумажкой, и весь свет перейдёт в тепло. И такого тепла будет заметно меньше, чем нагрев от работы процессора.
Достаточно закрыть экран бумажкой, и весь свет перейдёт в тепло
Конечно же нет. Такое произойдет только если бумажка не пропускает и не отражает свет, то есть является абсолютно черным телом, чего в принципе не бывает.
Но я как бы не пытаюсь спорить кто больше жрет - проц или экран, я понятия не имею. Просто пытаюсь донести, что нельзя все сравнивать по тепловыделению. Энергия может преобразовываться в очень разные виды
Я нашёл тесты (хотя очень старые, но порядок величин верный)
www.cas.mcmaster.ca/~rzheng/course/CAS765fa13/CH10.pdf
LCD-экран от 33 до 74 mW в зависимости от картинка, подсветка под ним от 194 до 1313 mW в зависимости от яркости.
Пиковое потребление разных моделей Snapdragon от 3 до 11 W
https://en.wikipedia.org/wiki/List_of_Qualcomm_Snapdragon_processors#Snapdragon_888/888+_5G_(2021)
То есть в 5-10 раз выше экрана.
Хм, aab, это те самые, которые для работы требуют отдать Гуглу свой приватный ключ для подписи приложения? А оно точно надо? Так самые, которые создают геморрой при попытке поставить в приложении язык отличный от телефона?
Те кто испугался, что APK больше не будет, это не так. Вы, по-прежнему, сможете скачивать и устанавливать APK-файлы с других источников, тут нет никаких ограничений.
А так где гарантии что это долго продлится?
... тут нет никаких ограничений, на данный момент.
Согласен. Особенно на фоне движений самого Гугла в сторону закрытия экосистемы в полный аналог iOS, чтобы потом не смогли устанавливать из других источников, даже альтернативных плей-маркетов.
Раньше я мог быть уверен, что к пользователю попал ровно тот код, который я подписал и залил в магазин
И что вам придавало такую уверенность?
Все публичные ключи и сертификаты для проверки подлинности апк конечный юзер получает (и получал) в самом апк, загруженном со стора. Т.е. от гугла, а не от разработчика.
В теории гугл запросто мог и раньше перед отдачей на девайс модифицировать апк и, например, банально переподписывать его своим ключом. Левый апдейт конечно так не подсунешь, но если с первой установки отдавать переподписанные апк, то вообще никто ничего не заметит (ну ок, разве что автор кинется сверять подписи, но тут как бы уже история с Боржоми и почками). Ну или если совсем по беспределу, то пойти дальше и выпустить OTA апдейт ОС, отключающий верификацию подписей вообще.
Единственное, на чем строится вся уверенность - это доверие к гуглу и тому, что он не будет беспределить. Что тогда, что сейчас. Не вижу, что здесь принципиально поменялось.
В теории гугл запросто мог и раньше перед отдачей на девайс модифицировать апк и, например, банально переподписывать его своим ключомПри этом немалый процент приложений ломался бы, проверяющих собственную целостность, или использующих ключ подписи как ключ внешнего API
если совсем по беспределу, то пойти дальше и выпустить OTA апдейт ОСЭх, если бы Гугл мог выпускать OTA на любые телефоны, а не только на пиксели, у нас не было бы проблем с тем, что вендор забросил какую-то модель телефона…
Спасибо за объяснения простым и понятным языком!
"Понятным языком" не должно быть в ущерб логике и реальности.
Сравнение размеров на разных ОС это вообще бред какой-то, вы уж тогда размер запакованного и подготовленного маркетом .ipa модуля с .apk сравнивайте, а не распакованный vs архив. От значений "разница -4.3x" мне просто страшно. Это что и в каких единицах измерения? "отрицательных дробных минус х"?
К первой части претензии, конечно, тоже есть, но они скорее к оригиналу, который вы перевели без указания авторства.
машинный несжатый код весит много
Пруфы есть?
1-е, С++ std lib все линкуют в Android статически, в Java stdlib (JDK) всегда линкуется "динамически". Причем, в эту JDK сверху входят и работа с XML, Calendar, SQL.
2-е, без вызовов JNI / Java в Android не обойтись (Android API / UI), а все эти обертки жрут просто тонну кода.
После компиляции DEX кода ARTом в машинный код он продолжает использовать Java библиотеки, установленные в системе. Статическая stdlib там внезапно ниоткуда не появится )
"затронем тему, почему Android никогда не обгонит iOS по производительность, но при этом всегда будет менее требовательным к железу." — и почему так получается?
Вплоть до Android версии 4.4 KitKat приложения запускались через виртуальную машину Dalvik, которая работала по принципу Just In time компиляции или JIT-компиляции
JIT появился только в 2.2. Вспоминаю китайские планшеты на 2.1, вот уж где действительно было медленно.
Ну они, конечно, правы. Наверное. Но вот AOT compilation я действительно ценил - наверное, самый маложрущий андроид был как раз пятый. И быстрый. А поскольку обновлялось всё пока телефон был на зарядке - плевать я хотел на время компиляции. Ну и при обновлении софта телефона - вполне можно было подождать.
Вот версионность ресурсов (особенно от разрешения экрана) - наверное, действительно правильный ход.
А с "магией профилирования"... Я помню, как на телефон работающий полтора дня от зарядки до зарядки поставил яндекс навигатор, и он за полчаса его разогрел и посадил батарею в 20% от 80 на том самом JIT. Нет, на следующий день (после компиляции) снова всё стало хорошо, но больно уж неожиданно было.
после просмотра пары роликов - узнал слог автора с первого абзаца
Жалко что не рассмотрели как с помощью AAB Google будет иметь жесткий контроль над разработчиками и усиливать безопасноcть Google Play, а возможно и бороться со сторонними магазинами
Вопрос не в ограничении использования, а в том что Google лешит разработчиков иметь доступ к ключу подписи. Также при упаковке сборке APK из AAB добавляется специальная метадата для валидации откуда сборка. Так что даже залив одинаковые AAB в разные магазины, сделать одинаковую подпись, то сборки будут отличаться.
AAB из разных магазинов будут разные, это плохо?
Платформа Android в какой-то момент начнёт устанавливать AAB только из магазина гугла?
Еще у крупных разработчиков у которых много приложений и они связаны между собой есть возможность защиты этого самого взаимодействия подписью (инфу можно найти по запросу в гугл: protection level signature android). И если подписывать разными подписями потеряется возможность такого взаимодействия, если сервис будет вообще все одной подписью подписывать наоборот уязвимости создаст когда приложения разных разработчиков между собой такие взаимодействия осуществлять смогут.
Если разработчик выложит где нибудь отдельно apk подписанный тем же ключом — хорошо. Но мало кто это делает. А для сторонних сервисов которые из гугл плея приложения позволяют устанавливать на девайсы без оного — это плохо, так как они будут вынуждены пересобирать и подписывать какой то своей подписью с которой будут вышеописанные проблемы.
Иначе какие сложности? Разработчик отдаст этот ключ в другой магазин, и всё.
Ну и как бы если разработчик выкладывает свое приложение на сайте своем или в альтернативных сторах сам — проблем не будет естественно. Проблемы будут у тех кто по каким то причинам не может/хочет ставить из гугл плея. Ибо выкладывают куда то еще свои приложения даже не проценты разработчиков, а ничтожные доли процентов.
Например у меня в читалке на электронных чернилах гугл сервисы есть, а стора нет. И приложения для читалки качаю с таких источников.
К сожалению, «бесплатность» приложения по умолчанию не означает, что можно без ведома автора публиковать его в любом сторе.
З.Ы. наше приложение например только в гугл плее есть, но мы только за если его качают из других источников, если нет возможности из стора поставить по каким то причинам. Изредка по просьбе пользователей даже старые версии для андроида ниже 5 скидываем, благо они пока еще работают, просто фич меньше, багов больше, и немного устарели.
Как Android пришел к AAB? Что будет с APK? Разбор