Что требовалось сделать
В приложении есть локальная мини-игра и веб-раздел. У них разные задачи: игра хранит прогресс на устройстве, а встроенный браузер открывает веб-продукт, обрабатывает переходы и запрашивает доступ к функциям телефона.
Для такой работы важны детали, которые легко пропустить при первой сборке: возврат по кнопке «Назад», выбор файла, скачивание документа, поворот экрана, восстановление после пересоздания приложения и понятная ошибка при сбое сети.
Что реализовано
- Локальные экраны и игровая логика на Kotlin, сохранение прогресса, обучение, звук и тактильный отклик.
- WebView с историей переходов, всплывающими окнами, полноэкранным видео и возвратом к локальному экрану.
- Выбор и загрузка файлов через системные окна Android; камера и микрофон запрашиваются отдельным разрешением.
- Внешние ссылки открываются с подтверждением. Ошибка TLS останавливает загрузку и показывает понятное состояние.
- Восстановление истории браузера и состояния экрана при штатном пересоздании Activity.
- Раздельные варианты Debug и Release, настройки сборки вне исходников, уменьшение релиза средствами R8.
Компиляция и декомпиляция: что входит в работу
Собираю проекты через Gradle в APK для установки и AAB для дальнейшей публикации. Проверяю идентификатор пакета, номер версии, разрешения, ресурсы и подпись конкретного файла.
Опыт разбора готовых APK включает изучение манифеста, ресурсов, подключённых библиотек и поведения интерфейса. Частичный разбор помог описать нужное поведение и реализовать его в собственном приложении.
Восстановление исходного проекта по APK зависит от языка, обфускации и состава сборки. Поэтому перед оценкой сначала изучаю сам файл и доступные исходники. Разбор выполняю для собственных приложений или при наличии разрешения правообладателя.
Как проверялось
В проектах есть автоматические тесты игровой логики, адресов переходов, согласия на аналитику и очереди событий. Для релизных кандидатов сохранены результаты сборки, lint, проверки подписи и сценариев на эмуляторе.
Отдельно проверялись выбор файлов, разрешения, восстановление браузера, отсутствие сети и ошибки сертификата. Для воспроизводимости у кандидата фиксируются версия и контрольная сумма APK.
Результат и границы
Есть собственные исходники и рабочие сборки приложений, а также повторяемая процедура их подготовки и проверки. Этот опыт использую в задачах по созданию Android-приложений, подключению веб-раздела и сопровождению существующего проекта.
Кейс описывает разработку и проверку сборок. Условия публикации, приёмку магазина и работу внешних сервисов проверяю отдельно для каждого приложения. Рост продаж или число установок в этом проекте не измерялись.