Что вы скажете, услышав сейчас "смартфон с тачскрином, большим 4.2" дисплеем и ОС Android за 4.000 рублей"? Ухмылку? А в 2011, когда смартфоны на Android стоили немалых денег? Когда основной мобильной ОС в СНГ была Symbian? Когда встретить кнопочный аппарат можно было куда чаще, нежели полноценный смартфон с тачскрином? Я тоже помню это время, а ещё это время помнит наш сегодняшний гость - прямой представитель тех самых "топовых девайсов за свои деньги" Hero H7000! Этот девайс был выпущен в начале 2011 года, и является одной из первых китайский подделок на Android, причём копировал он Windows Phone смартфон - HTC HD7! В этой статье мы будем портировать прошивку с другого аппарата, и посмотрим - как можно применить такой девайс в наше время
Разработка под Android *
Пишем под самую популярную мобильную ОС
Пишем приложение на Mi Band 7 с сервисной частью
Недавно я купил себе Mi band 7, по началу хотел купить 6-ую версию, пока не узнал, что на 7-ой обновилась операционная система и теперь она поддерживает установку приложений. Да, официально они об этом не заявили, но умельцы уже сделали множество приложений. Они ставят их как циферблаты, и это вполне обычные приложения. Но все эти приложения работают только локально на самом MiBand 7, не имея возможности взаимодействовать ни с телефоном, ни с интернетом. Я углубился в байткод приложения и документации по ZeppOS чтобы найти способ создавать приложения, взаимодействующие с интернетом, в этой статье я опишу свой путь. В итоге у меня получилось сделать запрос в интернет с часов и даже запустить мост для отладки приложений.
Как я случайно обошёл блокировку Google Pixel и получил за это $70 тысяч
Я обнаружил уязвимость, похоже, затронувшую все телефоны Google Pixel: вы можете дать мне любое заблокированное устройство Pixel, и я верну его вам разблокированным. Баг устранили в обновлении безопасности 5 ноября 2022 года.
Проблема позволяла атакующему с физическим доступом к телефону обойти меры защиты экрана блокировки (отпечаток пальца, PIN и так далее), получив полный доступ к устройству пользователя. Уязвимость зафиксирована как CVE-2022-20465; она может затронуть и устройства Android других производителей. Мои рекомендации по патчу и сырой баг-репорт, отправленные Google, можно найти здесь: feed.bugs.xdavidhu.me.
Как в Android запрещали фоновую работу и улучшали расход батареи
Когда-то работа в фоне была простой. Теперь в Android есть множество ограничений: работа в фоне, доступ к файловой системе, разрешения на которые надо получить одобрение модераторов Google Play и другие. Со всеми ними разработчикам приходится работать. Недавно я выступил с докладом на эту тему на конференции DUMP, а теперь написал текст на его основе для Хабра. Давайте вспомним, с чего все начиналось и как менялись требования с каждой новой версией Android.
Истории
Китай, Android и чипы RISC-V: зачем китайские компании добавляют поддержку открытой архитектуры в мобильную ОС
Несколько дней назад на сайте RISC-V появилась новость о том, что китайцам удалось добавить поддержку архитектуры RISC-V в Android. На самом деле, никакой сенсации в этом нет — китайские компании занимаются этим проектом уже несколько лет. Да и успех пока неполный — поддержка пока лишь частичная (в частности, речь идет об Android Open Source Project, но все равно, продвижение очень заметное. Но зачем это Поднебесной?
Будни техпода. Разворачиваем Android на Hyper-V
Вопрос, о котором хотелось бы сегодня поговорить, мне кажется, я слышу ежедневно, по несколько раз на дню. Точно не помню, но, мне кажется, что этот вопрос был первым, с которым я столкнулся на данной должности. Звучит он обычно так: «Как мне установить эмулятор Android на ваш сервер?». Серьёзно, когда я только начинал работать, я даже представить не мог, насколько часто я буду отвечать на данный вопрос.
Жизнь выдающихся программистов. Джей Фриман (saurik)
Прошлая серия про талантливую программистку Джастин Танни не оставила равнодушной хабрасообщество. Поэтому продолжаем заполнять нижние строчки хит-парада выдающихся программистов 21 века. Это особенные личности, которым карьера как будто не важна. В силу высокого IQ, врождённой любознательности и особого характера они не способны выполнять скучные, рядовые задания. Только интересные или важные. И только по своей воле, не по указанию сверху.
Следующий герой — более публичный и известный персонаж, про него даже есть статья в Википедии. Гений реверс-инжиниринга Джей Фриман известен под ником saurik, а славу ему принёс каталог «запрещённых» приложений Cydia (для взломанных айфонов).
Что мы используем для анализа Android-приложений
В этой статье расскажем про инструментарий для анализа мобильных приложений, который мы используем каждый день. Для начала поговорим про то, как запускать мобильные приложения, чем смотреть трафик, и рассмотрим инструменты для статического и динамического анализа мобильного приложения.
История Android от L до T
Как для мобильных разработчиков менялся Android с 2014 года и до сегодняшнего дня? Казалось бы, можно просто открыть официальное описание каждой версии и узнать. Но интереснее не просто читать сухие чейнджлоги, а вместе вспомнить все и из отдельных фактов сделать общие выводы.
В июне я выступил с докладом об этом на конференции Mobius, а теперь для аудитории Хабра публикую его текстовую версию. Если есть что добавить — пишите в комментариях!
Превращаем старый телефон на Android в веб-сервер
Есть ли у вас старый телефон на Android? Наверняка есть! В мире накопилось безумное количество всевозможного электронного мусора, и в среднем гражданин развитой страны меняет телефон каждую пару лет, поэтому старые телефоны, вероятно, один из самых распространённых видов электронных отходов.
У меня залежался собиравший пыль старый Motorola G5 Cedric, поэтому я решил сделать с ним что-нибудь, и теперь на нём работает веб-сервер Puma с простым веб-приложением на Sinatra.
Ошибка в stacktrace из продакшена
В этой статье я расскажу про исключительную ситуацию, которая произошла с одним исключением в продакшене нашего Android приложения.
Сложности переноса Papers, Please на мобильные
Я разработал Papers, Please в 2013 году специально с расчётом на десктопные компьютеры и управление мышью. В 2022 году десктопных компьютеров уже не существует и все компьютеры — это мобильные телефоны. Настало время обновить этого динозавра.
Эта статья из тысяч слов и мегабайтов изображений раскроет вам некоторые аспекты портирования игры с большого десктопа на маленький телефон. Отдавая дань прошлому, я написал эту статью как большой кусок текста с вкраплениями тегов img, а не превратил её в яркое видео. Ещё через девять лет я портирую этот пост в VR.
За исключением минимальных модификаций, обеспечивающих работу интерфейса, в этом порте отсутствуют изменения или дополнения контента. Никаких безумных сюжетных поворотов, никаких новых персонажей, никаких озвученных диалогов, никакой стереоскопической графики с рейтрейсингом. И, что самое печальное, никаких разблокируемых скинов и украшательств.
То же блюдо на другой тарелке.
Как мы ускоряли сборку Android-приложения из двух миллионов строк кода
Всем привет! Наверняка каждый Android-разработчик хоть раз сталкивался с проблемой скорости сборки своего проекта. После нехороших слов в адрес кодогенерации, покупок более мощного железа, многочисленных попыток распилить проект на небольшие параллельно собираемые модули и прохождений всех стадий торга мы продолжаем искать решение этой проблемы. К счастью, за годы развития и в Gradle, и Android Gradle Plugin (AGP) появилось много полезных штук для ускорения сборки, о которых я расскажу дальше.
Несмотря на шутку в адрес многомодульности, это действительно полезный подход, но для большого проекта с богатой историей модуляризация может быть очень сложным процессом. Поэтому пока давайте посмотрим, что можно сделать без больших болей на уровне Gradle и AGP.
Я расскажу на примере мобильного Яндекс Браузера. У нас было ~150 Gradle-модулей, ~2 млн LoC на Java/Kotlin, десяток Gradle-плагинов, тысячи строк кода в buildSrc и лёгкая дрожь от вопроса, сколько ещё может переварить билд-система. Не скажу, что это всё было категорически необходимо, но к написанным строчкам кода надо проявлять уважение.
Ближайшие события
История создания игры в одиночку
В игры я люблю играть с детства и играя на работе в очередную игру на телефоне захотелось что то создать самому. Из знаний были только какие то остатки основ программирования на турбо паскале. Начал шерстить интернет и понял что для начала нужно выбрать движок для игры. Игру я собирался делать в 2Д и пошерстив инет нашел несколько вариантов а именно: Unity, Constructor, GameMaker. И поизучав их понял что в unity лучше использовать для 3Д и там все же нужно знать C#. Constructor был простым для новичка как и GameMaker но отказался от него из-за того что там нужно было платить ежемесячно, поэтому выбор сделал в пользу GameMaker.
YouTube Vanced больше нет. Но есть ReVanced
Статья навеяна этой новостью на Хабре
Печальные новости о проекте YouTube Vanced. Гугл потребовал закрытия проекта и удаления готовых дистрибутивов. Разработчики подчинились. Поэтому больше YouTube Vanced с официального сайта не скачать. Возможно есть где-нибудь на зеркалах, но надо быть осторожным. В дистрибутиве могут быть вредные присадки.
Автоматизация тестирования мобильной игры с помощью Airtest IDE и других решений
Автоматизация мобильной игры с помощью Airtest IDE и других решений
Доброго дня всем! Меня зовут Роман Мелкумов, я тестировщик в студии IT Territory. И вот уже более года тестирую мобильную игру Castle Duels, которая сочетает в себе многопользовательские бои и коллекционирование персонажей.
Рефакторинг приложения с десятилетним легаси за три месяца. Опыт Яндекс Музыки
Однажды ты просыпаешься и понимаешь: избыточность компонентов и рассинхронизация в твоём приложении начинают вредить пользователям. Однажды ты смотришь на написанное давным-давно ядро, плачешь горькими слезами, и приходит это некомфортное, но вместе с тем немного соблазнительное ощущение — что рефакторинг назрел. Добро пожаловать на экскурсию по рефакторингу Музыки, начиная с ресёрча и заканчивая эксплуатацией! Я покажу вам реальный код и постараюсь в деталях вспомнить, как мы формировали требования к механизмам и разрабатывали их, рисовали у себя в голове и в коде границы ядра, по одной переделывали очереди и внедряли то, что получилось, в SDK.
Эволюция Server-Driven UI: динамические поля, хэндлеры и многошаг
Server-Driven UI (SDUI) — это подход для динамичного и гибкого пользовательского интерфейса, когда сервер посредством API сообщает приложению, какие компоненты и с каким контентом отображать. Он довольно популярен, и мы его тоже используем на многих экранах — помогает быстро выпускать фичи в продакшн.
В статье покажу, на каких экранах мы его применяем, и расскажу, как развивались у нас подходы гибкого UI, какие плюсы и минусы мы вывели из его использования. Сначала рассмотрим формы на динамических полях, контракты и тонкие моменты создания новых полей. Потом поговорим про динамические флоу, как за ноль калорий на стороне фронта добавлять новых провайдеров для проведения оплаты и закончим зависимыми полями. Всё это с примерами экранов мобильного приложения.
Эпоха красивого кода прошла. Пришло время быдлокода
Эпоха красивого кода прошла. Пришло время быдлокода
Давеча решил я отключить ненужные плагины в настройках Android Studio. Снял галочки напротив плагинов которые для меня не нужны, IDE не предупредила ни о каких возможных проблемах.
Перезапустил IDE, и вуаля:
"Missing essential plugins... Please reinstall from scratch."
Предварительная версия Android 13: возможности, новинки и способ установки
Операционная система Android продолжает совершенствоваться, по крайней мере, на это хотелось бы надеяться. Пару дней назад корпорация Google представила первую тестовую версию Android 13, которая получила кодовое название Tiramisu. Финальный релиз ожидается в третьем квартале 2022 года. О том, что нового появилось в мобильной ОС, а также о способе ее установки — читайте под катом.
Вклад авторов
InlyIT 2917.0alizar 1936.0RoboForm 1900.0phillennium 1618.0bodyawm 1353.1aleksandrit 1145.6Developers_Relations 938.8vedensky 832.0myshyak 679.6Leono 661.0