Как стать автором
Обновить
288.66

Разработка под Android *

Пишем под самую популярную мобильную ОС

Сначала показывать
Порог рейтинга
Уровень сложности

Я купил и оживил одну из первых китайских смартфонов-подделок на Android. Что он из себя представляет в 2022?

Время на прочтение10 мин
Количество просмотров8K

Что вы скажете, услышав сейчас "смартфон с тачскрином, большим 4.2" дисплеем и ОС Android за 4.000 рублей"? Ухмылку? А в 2011, когда смартфоны на Android стоили немалых денег? Когда основной мобильной ОС в СНГ была Symbian? Когда встретить кнопочный аппарат можно было куда чаще, нежели полноценный смартфон с тачскрином? Я тоже помню это время, а ещё это время помнит наш сегодняшний гость - прямой представитель тех самых "топовых девайсов за свои деньги" Hero H7000! Этот девайс был выпущен в начале 2011 года, и является одной из первых китайский подделок на Android, причём копировал он Windows Phone смартфон - HTC HD7! В этой статье мы будем портировать прошивку с другого аппарата, и посмотрим - как можно применить такой девайс в наше время

Читать далее
Всего голосов 36: ↑33 и ↓3+30
Комментарии19

Пишем приложение на Mi Band 7 с сервисной частью

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров31K

Недавно я купил себе Mi band 7, по началу хотел купить 6-ую версию, пока не узнал, что на 7-ой обновилась операционная система и теперь она поддерживает установку приложений. Да, официально они об этом не заявили, но умельцы уже сделали множество приложений. Они ставят их как циферблаты, и это вполне обычные приложения. Но все эти приложения работают только локально на самом MiBand 7, не имея возможности взаимодействовать ни с телефоном, ни с интернетом. Я углубился в байткод приложения и документации по ZeppOS чтобы найти способ создавать приложения, взаимодействующие с интернетом, в этой статье я опишу свой путь. В итоге у меня получилось сделать запрос в интернет с часов и даже запустить мост для отладки приложений. 

Читать далее
Всего голосов 160: ↑160 и ↓0+160
Комментарии24

Как я случайно обошёл блокировку Google Pixel и получил за это $70 тысяч

Время на прочтение8 мин
Количество просмотров83K

Я обнаружил уязвимость, похоже, затронувшую все телефоны Google Pixel: вы можете дать мне любое заблокированное устройство Pixel, и я верну его вам разблокированным. Баг устранили в обновлении безопасности 5 ноября 2022 года.

Проблема позволяла атакующему с физическим доступом к телефону обойти меры защиты экрана блокировки (отпечаток пальца, PIN и так далее), получив полный доступ к устройству пользователя. Уязвимость зафиксирована как CVE-2022-20465; она может затронуть и устройства Android других производителей. Мои рекомендации по патчу и сырой баг-репорт, отправленные Google, можно найти здесь: feed.bugs.xdavidhu.me.
Читать дальше →
Всего голосов 192: ↑189 и ↓3+186
Комментарии163

Как в Android запрещали фоновую работу и улучшали расход батареи

Время на прочтение15 мин
Количество просмотров19K

Когда-то работа в фоне была простой. Теперь в Android есть множество ограничений: работа в фоне, доступ к файловой системе, разрешения на которые надо получить одобрение модераторов Google Play и другие. Со всеми ними разработчикам приходится работать. Недавно я выступил с докладом на эту тему на конференции DUMP, а теперь написал текст на его основе для Хабра. Давайте вспомним, с чего все начиналось и как менялись требования с каждой новой версией Android.

Читать далее
Всего голосов 40: ↑40 и ↓0+40
Комментарии25

Истории

Китай, Android и чипы RISC-V: зачем китайские компании добавляют поддержку открытой архитектуры в мобильную ОС

Время на прочтение4 мин
Количество просмотров9.7K

Несколько дней назад на сайте RISC-V появилась новость о том, что китайцам удалось добавить поддержку архитектуры RISC-V в Android. На самом деле, никакой сенсации в этом нет — китайские компании занимаются этим проектом уже несколько лет. Да и успех пока неполный — поддержка пока лишь частичная (в частности, речь идет об Android Open Source Project, но все равно, продвижение очень заметное. Но зачем это Поднебесной?
Читать дальше →
Всего голосов 45: ↑45 и ↓0+45
Комментарии15

Будни техпода. Разворачиваем Android на Hyper-V

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров16K

Вопрос, о котором хотелось бы сегодня поговорить, мне кажется, я слышу ежедневно, по несколько раз на дню. Точно не помню, но, мне кажется, что этот вопрос был первым, с которым я столкнулся на данной должности. Звучит он обычно так: «Как мне установить эмулятор Android на ваш сервер?». Серьёзно, когда я только начинал работать, я даже представить не мог, насколько часто я буду отвечать на данный вопрос.
Читать дальше →
Всего голосов 40: ↑37 и ↓3+34
Комментарии13

Жизнь выдающихся программистов. Джей Фриман (saurik)

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров12K

Прошлая серия про талантливую программистку Джастин Танни не оставила равнодушной хабрасообщество. Поэтому продолжаем заполнять нижние строчки хит-парада выдающихся программистов 21 века. Это особенные личности, которым карьера как будто не важна. В силу высокого IQ, врождённой любознательности и особого характера они не способны выполнять скучные, рядовые задания. Только интересные или важные. И только по своей воле, не по указанию сверху.

Следующий герой — более публичный и известный персонаж, про него даже есть статья в Википедии. Гений реверс-инжиниринга Джей Фриман известен под ником saurik, а славу ему принёс каталог «запрещённых» приложений Cydia (для взломанных айфонов).
Читать дальше →
Всего голосов 42: ↑42 и ↓0+42
Комментарии0

Что мы используем для анализа Android-приложений

Время на прочтение8 мин
Количество просмотров10K

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

Читать далее
Всего голосов 26: ↑26 и ↓0+26
Комментарии4

История Android от L до T

Время на прочтение25 мин
Количество просмотров21K

Как для мобильных разработчиков менялся Android с 2014 года и до сегодняшнего дня? Казалось бы, можно просто открыть официальное описание каждой версии и узнать. Но интереснее не просто читать сухие чейнджлоги, а вместе вспомнить все и из отдельных фактов сделать общие выводы. 

В июне я выступил с докладом об этом на конференции Mobius, а теперь для аудитории Хабра публикую его текстовую версию. Если есть что добавить — пишите в комментариях!

Читать далее
Всего голосов 42: ↑42 и ↓0+42
Комментарии17

Превращаем старый телефон на Android в веб-сервер

Время на прочтение4 мин
Количество просмотров45K

Есть ли у вас старый телефон на Android? Наверняка есть! В мире накопилось безумное количество всевозможного электронного мусора, и в среднем гражданин развитой страны меняет телефон каждую пару лет, поэтому старые телефоны, вероятно, один из самых распространённых видов электронных отходов.

У меня залежался собиравший пыль старый Motorola G5 Cedric, поэтому я решил сделать с ним что-нибудь, и теперь на нём работает веб-сервер Puma с простым веб-приложением на Sinatra.

Читать далее
Всего голосов 39: ↑39 и ↓0+39
Комментарии61

Ошибка в stacktrace из продакшена

Время на прочтение8 мин
Количество просмотров5.1K

В этой статье я расскажу про исключительную ситуацию, которая произошла с одним исключением в продакшене нашего Android приложения.

Читать далее
Всего голосов 28: ↑28 и ↓0+28
Комментарии1

Сложности переноса Papers, Please на мобильные

Время на прочтение16 мин
Количество просмотров18K
Mobile-Title

Я разработал Papers, Please в 2013 году специально с расчётом на десктопные компьютеры и управление мышью. В 2022 году десктопных компьютеров уже не существует и все компьютеры — это мобильные телефоны. Настало время обновить этого динозавра.

Эта статья из тысяч слов и мегабайтов изображений раскроет вам некоторые аспекты портирования игры с большого десктопа на маленький телефон. Отдавая дань прошлому, я написал эту статью как большой кусок текста с вкраплениями тегов img, а не превратил её в яркое видео. Ещё через девять лет я портирую этот пост в VR.

За исключением минимальных модификаций, обеспечивающих работу интерфейса, в этом порте отсутствуют изменения или дополнения контента. Никаких безумных сюжетных поворотов, никаких новых персонажей, никаких озвученных диалогов, никакой стереоскопической графики с рейтрейсингом. И, что самое печальное, никаких разблокируемых скинов и украшательств.

То же блюдо на другой тарелке.
Читать дальше →
Всего голосов 65: ↑64 и ↓1+63
Комментарии24

Как мы ускоряли сборку Android-приложения из двух миллионов строк кода

Время на прочтение18 мин
Количество просмотров15K

Всем привет! Наверняка каждый Android-разработчик хоть раз сталкивался с проблемой скорости сборки своего проекта. После нехороших слов в адрес кодогенерации, покупок более мощного железа, многочисленных попыток распилить проект на небольшие параллельно собираемые модули и прохождений всех стадий торга мы продолжаем искать решение этой проблемы. К счастью, за годы развития и в Gradle, и Android Gradle Plugin (AGP) появилось много полезных штук для ускорения сборки, о которых я расскажу дальше.


Несмотря на шутку в адрес многомодульности, это действительно полезный подход, но для большого проекта с богатой историей модуляризация может быть очень сложным процессом. Поэтому пока давайте посмотрим, что можно сделать без больших болей на уровне Gradle и AGP.


Я расскажу на примере мобильного Яндекс Браузера. У нас было ~150 Gradle-модулей, ~2 млн LoC на Java/Kotlin, десяток Gradle-плагинов, тысячи строк кода в buildSrc и лёгкая дрожь от вопроса, сколько ещё может переварить билд-система. Не скажу, что это всё было категорически необходимо, но к написанным строчкам кода надо проявлять уважение.

Читать дальше →
Всего голосов 30: ↑30 и ↓0+30
Комментарии19

Ближайшие события

Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн

История создания игры в одиночку

Время на прочтение7 мин
Количество просмотров15K

В игры я люблю играть с детства и играя на работе в очередную игру на телефоне захотелось что то создать самому. Из знаний были только какие то остатки основ программирования на турбо паскале. Начал шерстить интернет и понял что для начала нужно выбрать движок для игры. Игру я собирался делать в 2Д и пошерстив инет нашел несколько вариантов а именно: Unity, Constructor, GameMaker. И поизучав их понял что в unity лучше использовать для 3Д и там все же нужно знать C#. Constructor был простым для новичка как и GameMaker но отказался от него из-за того что там нужно было платить ежемесячно, поэтому выбор сделал в пользу GameMaker.

Читать далее
Всего голосов 26: ↑26 и ↓0+26
Комментарии35

YouTube Vanced больше нет. Но есть ReVanced

Время на прочтение8 мин
Количество просмотров157K


Статья навеяна этой новостью на Хабре


Печальные новости о проекте YouTube Vanced. Гугл потребовал закрытия проекта и удаления готовых дистрибутивов. Разработчики подчинились. Поэтому больше YouTube Vanced с официального сайта не скачать. Возможно есть где-нибудь на зеркалах, но надо быть осторожным. В дистрибутиве могут быть вредные присадки.

Читать дальше →
Всего голосов 41: ↑41 и ↓0+41
Комментарии97

Автоматизация тестирования мобильной игры с помощью Airtest IDE и других решений

Время на прочтение10 мин
Количество просмотров3.5K

Автоматизация мобильной игры с помощью Airtest IDE и других решений

Доброго дня всем! Меня зовут Роман Мелкумов, я тестировщик в студии IT Territory. И вот уже более года тестирую мобильную игру Castle Duels, которая сочетает в себе многопользовательские бои и коллекционирование персонажей. 

Читать далее
Всего голосов 42: ↑42 и ↓0+42
Комментарии4

Рефакторинг приложения с десятилетним легаси за три месяца. Опыт Яндекс Музыки

Время на прочтение15 мин
Количество просмотров33K


Однажды ты просыпаешься и понимаешь: избыточность компонентов и рассинхронизация в твоём приложении начинают вредить пользователям. Однажды ты смотришь на написанное давным-давно ядро, плачешь горькими слезами, и приходит это некомфортное, но вместе с тем немного соблазнительное ощущение — что рефакторинг назрел. Добро пожаловать на экскурсию по рефакторингу Музыки, начиная с ресёрча и заканчивая эксплуатацией! Я покажу вам реальный код и постараюсь в деталях вспомнить, как мы формировали требования к механизмам и разрабатывали их, рисовали у себя в голове и в коде границы ядра, по одной переделывали очереди и внедряли то, что получилось, в SDK.
Читать дальше →
Всего голосов 57: ↑54 и ↓3+51
Комментарии113

Эволюция Server-Driven UI: динамические поля, хэндлеры и многошаг

Время на прочтение7 мин
Количество просмотров22K

Server-Driven UI (SDUI) — это подход для динамичного и гибкого пользовательского интерфейса, когда сервер посредством API сообщает приложению, какие компоненты и с каким контентом отображать. Он довольно популярен, и мы его тоже используем на многих экранах — помогает быстро выпускать фичи в продакшн. 

В статье покажу, на каких экранах мы его применяем, и расскажу, как развивались у нас подходы гибкого UI, какие плюсы и минусы мы вывели из его использования. Сначала рассмотрим формы на динамических полях, контракты и ​тонкие моменты создания новых полей. Потом поговорим про динамические флоу, как за ноль калорий на стороне фронта добавлять новых провайдеров для проведения оплаты и закончим зависимыми полями. Всё это с примерами экранов мобильного приложения. 

Читать далее
Всего голосов 34: ↑33 и ↓1+32
Комментарии19

Эпоха красивого кода прошла. Пришло время быдлокода

Время на прочтение2 мин
Количество просмотров114K

Эпоха красивого кода прошла. Пришло время быдлокода    

Давеча решил я отключить ненужные плагины в настройках Android Studio. Снял галочки напротив плагинов которые для меня не нужны, IDE не предупредила ни о каких возможных проблемах.

Перезапустил IDE, и вуаля:

"Missing essential plugins... Please reinstall from scratch."

Читать далее
Всего голосов 188: ↑132 и ↓56+76
Комментарии430

Предварительная версия Android 13: возможности, новинки и способ установки

Время на прочтение4 мин
Количество просмотров19K

Операционная система Android продолжает совершенствоваться, по крайней мере, на это хотелось бы надеяться. Пару дней назад корпорация Google представила первую тестовую версию Android 13, которая получила кодовое название Tiramisu. Финальный релиз ожидается в третьем квартале 2022 года. О том, что нового появилось в мобильной ОС, а также о способе ее установки — читайте под катом.
Читать дальше →
Всего голосов 49: ↑49 и ↓0+49
Комментарии13
Изменить настройки темы

Вклад авторов

Работа