Pull to refresh

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 раз выше экрана.

Практическая эксплуатация, которая отличается от максимальных нагрузок. Хотя бы посмотреть как загружен телефон в Energy Profiler, где видно, что обычно CPU на 100% не работает.

UFO just landed and posted this here

Хм, aab, это те самые, которые для работы требуют отдать Гуглу свой приватный ключ для подписи приложения? А оно точно надо? Так самые, которые создают геморрой при попытке поставить в приложении язык отличный от телефона?

Те кто испугался, что APK больше не будет, это не так. Вы, по-прежнему, сможете скачивать и устанавливать APK-файлы с других источников, тут нет никаких ограничений. 

А так где гарантии что это долго продлится?

... тут нет никаких ограничений, на данный момент.

Согласен. Особенно на фоне движений самого Гугла в сторону закрытия экосистемы в полный аналог iOS, чтобы потом не смогли устанавливать из других источников, даже альтернативных плей-маркетов.

Да, все эти «мы заботимся об оптимизации» — это прекрасно, но тот факт, что Гугл теперь по сути *требует* передавать ему инструмент, позволяющий произвольно модифицировать APK и распространять от моего имени, крайне огорчает. Раньше я мог быть уверен, что к пользователю попал ровно тот код, который я подписал и залил в магазин. Сейчас такой уверенности нет

Раньше я мог быть уверен, что к пользователю попал ровно тот код, который я подписал и залил в магазин

И что вам придавало такую уверенность?

Все публичные ключи и сертификаты для проверки подлинности апк конечный юзер получает (и получал) в самом апк, загруженном со стора. Т.е. от гугла, а не от разработчика.

В теории гугл запросто мог и раньше перед отдачей на девайс модифицировать апк и, например, банально переподписывать его своим ключом. Левый апдейт конечно так не подсунешь, но если с первой установки отдавать переподписанные апк, то вообще никто ничего не заметит (ну ок, разве что автор кинется сверять подписи, но тут как бы уже история с Боржоми и почками). Ну или если совсем по беспределу, то пойти дальше и выпустить OTA апдейт ОС, отключающий верификацию подписей вообще.

Единственное, на чем строится вся уверенность - это доверие к гуглу и тому, что он не будет беспределить. Что тогда, что сейчас. Не вижу, что здесь принципиально поменялось.

В теории гугл запросто мог и раньше перед отдачей на девайс модифицировать апк и, например, банально переподписывать его своим ключом
При этом немалый процент приложений ломался бы, проверяющих собственную целостность, или использующих ключ подписи как ключ внешнего API
если совсем по беспределу, то пойти дальше и выпустить OTA апдейт ОС
Эх, если бы Гугл мог выпускать OTA на любые телефоны, а не только на пиксели, у нас не было бы проблем с тем, что вендор забросил какую-то модель телефона…

"Понятным языком" не должно быть в ущерб логике и реальности.

Сравнение размеров на разных ОС это вообще бред какой-то, вы уж тогда размер запакованного и подготовленного маркетом .ipa модуля с .apk сравнивайте, а не распакованный vs архив. От значений "разница -4.3x" мне просто страшно. Это что и в каких единицах измерения? "отрицательных дробных минус х"?

К первой части претензии, конечно, тоже есть, но они скорее к оригиналу, который вы перевели без указания авторства.

UFO just landed and posted this here

машинный несжатый код весит много

Пруфы есть?

1-е, С++ std lib все линкуют в Android статически, в Java stdlib (JDK) всегда линкуется "динамически". Причем, в эту JDK сверху входят и работа с XML, Calendar, SQL.

2-е, без вызовов JNI / Java в Android не обойтись (Android API / UI), а все эти обертки жрут просто тонну кода.

После компиляции DEX кода ARTом в машинный код он продолжает использовать Java библиотеки, установленные в системе. Статическая stdlib там внезапно ниоткуда не появится )

Статические увеличивают как раз размер C++ библиотек, а не Java Runtime. Про что и аргумент, что на практике С++ код весит больше.

"затронем тему, почему Android никогда не обгонит iOS по производительность, но при этом всегда будет менее требовательным к железу." — и почему так получается?

Не обгонит по производительности, очевидно, из-за джавы и аппаратного разнообразия. А менее требовательным к железу он не является.

Вплоть до Android версии 4.4 KitKat приложения запускались через виртуальную машину Dalvik, которая работала по принципу Just In time компиляции или JIT-компиляции


JIT появился только в 2.2. Вспоминаю китайские планшеты на 2.1, вот уж где действительно было медленно.

Да, помню, на nexus one когда вышло обновление с 2.2 angry birds стал прям летать)

Ну они, конечно, правы. Наверное. Но вот AOT compilation я действительно ценил - наверное, самый маложрущий андроид был как раз пятый. И быстрый. А поскольку обновлялось всё пока телефон был на зарядке - плевать я хотел на время компиляции. Ну и при обновлении софта телефона - вполне можно было подождать.

Вот версионность ресурсов (особенно от разрешения экрана) - наверное, действительно правильный ход.

А с "магией профилирования"... Я помню, как на телефон работающий полтора дня от зарядки до зарядки поставил яндекс навигатор, и он за полчаса его разогрел и посадил батарею в 20% от 80 на том самом JIT. Нет, на следующий день (после компиляции) снова всё стало хорошо, но больно уж неожиданно было.

после просмотра пары роликов - узнал слог автора с первого абзаца

Жалко что не рассмотрели как с помощью AAB Google будет иметь жесткий контроль над разработчиками и усиливать безопасноcть Google Play, а возможно и бороться со сторонними магазинами

Так формат AAB открыт, кто мешает стороннему магазину перепаковывать приложения в AAB?

Вопрос не в ограничении использования, а в том что Google лешит разработчиков иметь доступ к ключу подписи. Также при упаковке сборке APK из AAB добавляется специальная метадата для валидации откуда сборка. Так что даже залив одинаковые AAB в разные магазины, сделать одинаковую подпись, то сборки будут отличаться.

Пока не догоняю, какие от этого будут последствия.
AAB из разных магазинов будут разные, это плохо?
Платформа Android в какой-то момент начнёт устанавливать AAB только из магазина гугла?
Ну, часть сервисов гугла того же, вроде пушей, карт, логина через учетку гугл, работают только если приложение подписано ключем разработчика зарегистрированным в firebase/гугл консоли. Некоторые сторонние SDK и библиотеки тоже на проверку подписи завязываются. Это можно попробовать обойти, но для этого придется рута получать и много ковыряться с системой, либо по жесткому ковырять декомпилированное приложение и пересобирать заново, и то с тем же гуглом не прокатит просто приложение взломать.
Еще у крупных разработчиков у которых много приложений и они связаны между собой есть возможность защиты этого самого взаимодействия подписью (инфу можно найти по запросу в гугл: protection level signature android). И если подписывать разными подписями потеряется возможность такого взаимодействия, если сервис будет вообще все одной подписью подписывать наоборот уязвимости создаст когда приложения разных разработчиков между собой такие взаимодействия осуществлять смогут.
Если разработчик выложит где нибудь отдельно apk подписанный тем же ключом — хорошо. Но мало кто это делает. А для сторонних сервисов которые из гугл плея приложения позволяют устанавливать на девайсы без оного — это плохо, так как они будут вынуждены пересобирать и подписывать какой то своей подписью с которой будут вышеописанные проблемы.
Документация google говорит, что разработчик просто передаёт свои ключи гуглу. То есть AAB подписан в итоге ключом разработчика и не должно быть проблем с несовместимостью подписей.
Да, и гугл использует ключ чтобы собрать и поставить приложение с этой подписью. Но больше этого ключа ни у кого нет, и остальным для той же операции (сборка apk из бандла) придется свои ключи использовать, а не ключ разработчика.
Да, теперь вижу. Ключ можно создать на аккаунте «в облаке», но забрать его себе нельзя.
Да нет, ключ таки у разработчика есть, но только у гугла и разработчика. У остальных нету.
Как я понял, ключ разработчика не тот ключ, которым финально подписывается приложение. А upload key — просто на время передачи apk от разработчика в магазин, а дальше переподписывается ключом, не покидающим гугл.

Иначе какие сложности? Разработчик отдаст этот ключ в другой магазин, и всё.
В файрбейс и прочие сервисы загружается оттиск ключа именно которым приложение подписывается в итоге, а не ключ загрузки.
Ну и как бы если разработчик выкладывает свое приложение на сайте своем или в альтернативных сторах сам — проблем не будет естественно. Проблемы будут у тех кто по каким то причинам не может/хочет ставить из гугл плея. Ибо выкладывают куда то еще свои приложения даже не проценты разработчиков, а ничтожные доли процентов.
То есть, проблемы будут у пиратов, которые перевыкладывают из сторов без ведома автора?
Ээээ, а в чем пиратство бесплатное приложение скачать из другого источника?
Например у меня в читалке на электронных чернилах гугл сервисы есть, а стора нет. И приложения для читалки качаю с таких источников.
Я только «за» то, чтобы источников было больше.

К сожалению, «бесплатность» приложения по умолчанию не означает, что можно без ведома автора публиковать его в любом сторе.
Ну, автор может и рад бы сам публиковать, но выкладывать каждый раз обновления на эти сотни сервисов и сайтов сторонних — задолбаешься. Еще и пользователи будут жаловаться если что то не работает на их девайсе с обрезком гугл сервисов.
З.Ы. наше приложение например только в гугл плее есть, но мы только за если его качают из других источников, если нет возможности из стора поставить по каким то причинам. Изредка по просьбе пользователей даже старые версии для андроида ниже 5 скидываем, благо они пока еще работают, просто фич меньше, багов больше, и немного устарели.
Sign up to leave a comment.