Для подписчиков

10 фич Kotlin, которые заставят тебя бросить Java: Null Safety, Extension Methods и прочие крутые штуки

Во время написания этой статьи произошло очень большое событие — язык программирования Kotlin был признан официальным языком программирования для платформы Android. Год назад мы уже писали про этот язык программирования, но жизнь не стоит на месте, и в этой статье я расскажу тебе о том, какими фичами этот язык смог покорить меня, старого и закаленного программиста :).

Для подписчиков

Заработок на Android: продаем контент через In-app Billing API

Если тебе удалось создать действительно полезное приложение, то стоит задуматься о монетизации своих трудов. Встроенная реклама всегда уродует продукт, да и много денег она не принесет. Лучше всего дать пользователю возможность просто заплатить — за дополнительные функции или в знак благодарности.

Автоматизируем работу с программами на Android при помощи Accessibility Service

Способы, позволяющие автоматизировать пользовательские действия, чтобы программа работала с интерфейсами чужих софтин так, как будто это живой человек, совершенно закономерно интересуют программистов, хакеров и безопасников. Кто сказал «негласно автоматизировать работу с мобильным банком»? :) Стыдитесь, товарищ! Мы за мирную автоматизацию. В прошлой статье по Accessibility Service мы сфокусировались на получении данных экрана, а сегодня мы научим Accessibility Service делать работу на устройстве за нас!

Xakep #219

Dagger 2: оживляем старый Java-код для Android с помощью крутого фреймворка

Если тебе приходилось переписывать старый код только для того, чтобы он заработал в новом проекте, значит, ты кое-что упустил. Наш журнал спешит на помощь, срочно выкидывай «костыли» и «ржавые велосипеды» — с этого дня твоя жизнь круто поменяется. :)

Xakep #218

Как я ковырял чужой код. Что полезного можно найти внутри известных приложений для Android

Пока Евгений Зобнин учит тебя защищать свой код от чужих глаз и шаловливых ручонок, я решил занять позицию хитрого разработчика, который всегда рад, скажем так, «поучиться» кое-чему у создателей снискавших определенную популярность приложений ;). В этой статье я расскажу, как я анализировал код чужих программ и нашел одну интересную недокументированную функцию для работы с виджетами приложений.

На чем писать мобильные приложения: сравниваем Intel XDK, NativeScript и Xamarin

В предыдущей статье мы рассмотрели Silo-подход к разработке мобильных приложений, а также часть самых популярных black box средств разработки: среды Apache Cordova и Adobe Fuse. Сегодня мы продолжим изучать «черный ящик» и рассмотрим еще несколько популярных и известных средств разработки, а затем перейдем к заключительной теме — кросс-платформенному подходу.

Xakep #218

Кастомный Android: делаем свою прошивку из стоковой, не копаясь в исходниках

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

Пишем свой Dialer для Android и работаем со звонками на низком уровне

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

Xakep #218

Строим мобильное приложение на Firebase — бесплатном и мощном бэкэнде Google

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

Xakep #218

Служба, которая не спит. 3 способа обойти режимы энергосбережения Android в своей программе

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

Xakep #218

Мобильная разработка: выбираем инструментарий. Silo, black box или cross-platform?

Первый iPhone был представлен десять лет назад, в 2007-м. Через год появился магазин приложений от Apple. Тогда же на сцену вышел Android, а вместе с ним магазин приложений Google Play. Хотя сама идея продавать ПО для мобильных телефонов не была новой, именно появление iPhone, Android и Windows Phone ознаменовало образование современного рынка мобильного ПО, каким мы его знаем сейчас.

Xakep #217

Секретный код. Прячем конфиденциальную информацию внутри своих приложений для Android

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

Xakep #216

Кодинг для Chromecast. Транслируем видео на телевизор из своего приложения для Android

Китайские интернет-магазины предлагают медиаплееры на любой вкус, цвет и конфигурацию за небольшие деньги. Омрачает всеобщую радость лишь то, что Android на экране телевизора смотрится отлично, а вот управлять им совершенно неудобно. Одна небезызвестная корпорация добра выпустила Chromecast — гаджет, более дружелюбный для пользователя. Сегодня мы рассмотрим это устройство и даже напишем код под него.

Xakep #216

Фишинг на Android. Разбираем техническую сторону типовых атак

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

Xakep #215

Красота из фрагментов. Как улучшить UI в Android c помощью класса Fragment

Создать хороший UI сложно, особенно если у тебя еще не так много опыта в этой области. Поэтому вот тебе быстрый тест на знание вопроса: если ты привык, что для нового окна обязательно нужен Activity или вместо плавной анимации в свеженаписанной программе почему-то происходят конвульсии, — эта статья для тебя :).

Xakep #215

Куда уходит память. Разбираемся с memory leaks в Java на примере Spring и Log4j

Каждый, кто разрабатывал веб-приложения на Java, сталкивался с проблемой утечек памяти при остановках и переустановках своих программ. Если же об этом ты слышишь впервые, то могу заверить: с очень большой вероятностью твои творения текут. Причин может быть огромное множество, и об одной из них я бы хотел рассказать в этой статье.

Xakep #214

VK.com как бэкенд: подводные камни. Решаем проблемы по заявкам читателей

В прошлых статьях была описана разработка мобильного приложения со всеми любимым VK в роли бесплатного и услужливого сервера. Как это часто случается со всякими хитровыкрученными системами, рано или поздно они обрастают мелкими, но досадными проблемами, затрудняющими их использование. И как только это случается, журнал «Хакер» снова приходит на помощь!

Xakep #213

Material Design за 15 минут: проверяем, на что способен ConstraintLayout

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

Xakep #212

Изучаем Gradle: что умеет система сборки приложений Android Studio

Большинство программистов, разрабатывающих для Android, хотя бы слышали о системе автоматической сборки Gradle. При этом лишь немногие из использующих эту систему кодеров уделяют достаточно времени, чтобы как следует изучить ее возможности. А ведь Gradle очень полезен не только для простой настройки сборки, но и для решения весьма нестандартных задач!

Xakep #212

Скрытый API: интерфейсы, которые Android прячет от разработчиков

В одной из своих предыдущих статей я уже писал о механизме под названием «уровень доступа» (protection level), который определяет, может ли твой код обращаться к тем или иным функциям ОС. Высокий уровень доступа получает только системный софт, поэтому для простых смертных он закрыт. Однако есть в Android и еще одна интересность, имя которой — скрытый API. И чтобы получить к нему доступ, не нужен root, не надо подписывать приложение ключом прошивки, достаточно лишь немного пораскинуть мозгами.

Xakep #211

VK.com — твой бесплатный бэкенд. Пишем свой клиент для стены группы vk.com

В прошлой статье мы рассмотрели несколько интересных способов использования бездонных хранилищ наследия Павла Дурова. В сегодняшнем материале я предложу тебе развить эту тему и поделюсь навыками разработки клиента для нашей любимой социальной сети.

Xakep #211

Android Studio: 10 траблов начинающего разработчика и их решения

Начиная осваивать разработку для любой платформы, ты обязательно сразу же наткнешься на множество с первого взгляда незаметных подводных камней. Неопытные разработчики для Android рискуют отбить о них обе ноги. В этой статье мы рассмотрим типичные проблемы новичков: расщепим приложение на Lite и Pro, встроим в него автоматические краш-репорты, автоматизируем тестирование, обфусцируем и оптимизируем код, а также создадим для него все необходимые ресурсы. Поехали!

Xakep #211

Как перестать кодить на Java и начать жить: сто* причин изучить Kotlin

Ребята из JetBrains сделали очень много крутых вещей, среди которых Kotlin — молодой, но очень перспективный язык программирования под JVM и Android. В этой статье я покажу, чем этот язык может заинтересовать Android-разработчика и заставить его навсегда позабыть про Java.

Xakep #210

О чем молчат книги по Android. 5 проблем, о которых не пишут в документации

В программировании все меняется со скоростью, близкой к скорости света: нам приходится постоянно что-то изучать, пробовать чужие решения, изобретать собственные велосипеды, менять алгоритмы, внедрять стеки новых технологий — словом, участвовать в гонке без финиша. Найти информацию, порой даже в официальных источниках, бывает очень проблематично. Не веришь? Что ж, добро пожаловать в ад!

Xakep #210

Используем VK.com в своих целях: 5 готовых рецептов

Малолетним пользователям Вконтактик дарит безграничные возможности онлайн-общения. Зрелым сотрудникам специальных служб — добровольно и собственноручно созданные досье на вышеуказанную группу граждан. А что он может дать программисту? Разумеется, бесплатную инфраструктуру для его приложения! И никакой головной боли с надежностью сервера и оплатой хостинга ;)

Xakep #209

Пишем модули для троянов для Android. Часть 2

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

Xakep #209

Как создать себе IoT. Часть 2: завершение проекта

В прошлой статье мы собрали сеть из датчиков и андроидофона с использованием BLE (Bluetooth Low Energy, Bluetooth Smart), поюзали SensorTag 2 от Texas Instruments и ознакомились с характеристиками и профилями. Узнали мы и как можно принимать и передавать данные через BLE на Android с железа. Сегодня мы свяжем полученные SensorTag’ом данные об окружающей среде через смартфон c небольшим облачным сервисом.

Xakep #209

Многопоточная разработка для Android, часть 2. Раздаем задачи по сервисам

В продолжении темы прошлого номера мы узнаем, каким образом в Android можно генерировать дополнительные потоки и зачем это может понадобиться. Сегодня поговорим о таком компоненте приложения, как сервисы, и опишем их роли в мобильном мире Android. Сервисы и потоки тесно переплетены между собой, поэтому, если ты еще не читал прошлый номер «Хакера», начни с моей статьи, будет полезно!

Xakep #209

Intel Multi-OS Engine: ожидания и реальность кросс-платформенной разработки

Фреймворк Multi-OS Engine — технология Intel, предназначенная для разработки кросс-платформенных мобильных приложений для iOS и Android из-под Windows или OS X. При этом на выходе должны получаться нативные приложения для каждой из платформ. А получаются ли? Давай посмотрим.

Xakep #208

Пишем приложения с поддержкой плагинов для Android. Часть 1

Приложения с расширяемой функциональностью — обыденная вещь в настольных ОС. Большинство сложных, узкоспециализированных приложений позволяют подключать дополнения в виде плагинов или скриптов. Но как с этим обстоят дела в Android, где каждое приложение замкнуто в свою собственную песочницу, а распространять «просто библиотеки» через маркет нельзя?

Xakep #208

Многопоточная разработка для Android, часть 1

При создании мобильного приложения чуть сложнее «Hello, world» почти наверняка требуется скачать что-то из Сети или считать файл с диска. Для стабильной работы программы в целом эти действия должны совершаться в отдельных потоках. Зачем, когда и как генерировать новые потоки в Android — об этом ты узнаешь в этой статье.

Xakep #207

Как создать себе IoT. Учимся делать интернет вещей на Android и хардкорном железе

К 2020 году на планете будет 50 миллиардов устройств из мира «интернета вещей» (IoT). Это предсказание Cisco, сделанное в 2013 году, начинает сбываться. Дивный новый мир открывается перед хакерами.

«Сердце робота»: Как использовать системный API Android в личных целях

Любой, кто писал более или менее серьезный софт для разных мобильных ОС, знает, что Android — самая открытая для разработчика ОС. Однако и в Android есть ряд системных API, скрытых от сторонних приложений и доступных только стоковому софту. В этой статье мы попробуем разобраться, как получить доступ к этим API и какие возможности они открывают.

Xakep #207

Google Cloud Messaging: экономим батарею и нервную ткань с помощью Push-уведомлений

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

Xakep #206

Лучшие опенсорсные библиотеки для Material Design

В прошлой статье мы рассматривали официальные компоненты и виджеты библиотеки совместимости от Google, позволяющие «старым» (до 5.0) версиям Android прикидываться молодыми и стильными. Сегодня мы рассмотрим некоторые опенсорсные проекты, проверенные временем, разработчиками и, конечно, пользователями приложений.

Xakep #206

Как создать сервис для скрытой съемки на современном Android API

Мир Android развивается очень бурно, и мы, разработчики, имеем счастье каждый день узнавать что-то новое и тем самым становиться лучше. Технологии, которые были передовыми год назад, уже могут быть не так эффективны. К примеру, начиная с API версии 21 был введен новый класс Camera2, предоставляющий возможность управлять камерой. Старому классу Camera присвоен статус deprecated: это значит, что он все еще доступен для использования, но уже очень скоро его исключат и на новых устройствах этот класс работать не будет. Мы ориентируемся на перспективу, для этого сегодня мы изучим новые возможности, разобравшись, зачем же он же пришел на смену старому.

Xakep #206

10 советов на 10 миллионов. Как зарабатывать в магазинах приложений

С 1 июня 2014 года одно из моих приложений пережило 65 обновлений и в декабре 2015-го наконец получило более десяти миллионов установок. Поэтому я почувствовал, что имею моральное право сделать статью с советами о том, как достичь аналогичного процветания.

Xakep #206

Как устроена малварь для Android: разбираем на примерах Taidoor, IXESHE и СozyDuke

Когда антивирусные компании впервые начали публиковать обзоры Flame, с определенного угла зрения они читались как самая настоящая реклама этого продвинутого зловреда. Слаженный коллектив, миллионы долларов «инвестиций», высокие технологии, архитектура, паттерны, высочайшая квалификация... Вкусно звучит, не правда ли? Мы, мобильные кодеры, можем кое-чему у них подучиться!

Xakep #206

Практикум кодера-исследователя: декомпилируем и изучаем Android-малварь

Благодаря открытости и отсутствию встроенной системы защиты (а также легкомыслию пользователей) в Android очень легко заводится различная малварь. Ну а наше программерское дело простое — попробовать разобрать то, что написано злокодером. Посмотрим, как это делается.

Xakep #205

Логгер звонков на Android. Изучаем на жизненных примерах

Такие приложения, как Tasker и Locale, уже давно стали одним из главных аргументов в споре поклонников Android и iOS. Действительно, обычные, не требующие ни прав root, ни прав администратора приложения, а позволяют творить со смартфоном такое, что любой ветеран Linux-скриптинга обзавидуется. Как же они работают и почему подобных приложений нет в других мобильных системах?

Страница 1 из 212
«ХАКЕР» ДОСТУПЕН ТОЛЬКО В ЭЛЕКТРОННОЙ ВЕРСИИ
Оформи подписку — получи:
  • доступ к платным материалам сайта
  • доступ ко всем номерам PDF
4590 р.
на год
490 р.
на месяц
90 р.
за 1 статью

Еженедельный ][-дайджест

Реклама на «Хакере»

Корпоративная подписка

Для подписчиков

Хочешь годовую подписку в подарок?

Каждую неделю, вместе с дайджестом актуальных хакерских трендов, ты можешь получить один из 1000+ еженедельных кодов на скидку от 10 до 50% или один из 5 промокодов на бесплатную годовую подписку на «Хакер»

Данные участников не передаются третьим лицам