О некоторых «особенностях» Android Studio

в 0:00, , рубрики: java, разработка мобильных приложений, Разработка под android, метки: ,

Предисловие

Являясь специалистом в области JAVA и отвечая, в силу своих должностных обязанностей, за подбор технических специалистов, некоторое время назад я получил задачу от руководства подобрать в компанию нескольких разработчиков под Android, при этом имеющих хорошее знание JAVA. Не имея ранее опыта работы в этом направлении, я поверхностно познакомился с Android SDK и с типовыми задачами, которые приходится решать мобильным разработчикам, и приступил к собеседованию кандидатов. После ряда проведенных собеседований я понял, что многие кандидаты, имеющие реальные приложения в Google Play и адекватно отвечающие на вопросы связанные с разработкой под Android, непосредственно в JAVA практически не разбирались. Мне стало интересно, а насколько быстро человек, разбирающий в JAVA и не имевший ранее опыта разработки мобильных приложений, может быть готов к разработке несложных программ под Android.

Данный эксперимент я решил поставить на себе, поставив цель написать небольшое приложение под Android, поддерживающее Android API 9+, использующее Activity, фрагменты (включая ListFragment), ViewPager, диалоговые окна, работу со встроенной SQLite DB, переопределенную панель действий и имеющее приемлемый пользовательский интерфейс, с последующим размещением приложения в Google Play. Данную цель я достиг за 1.5 месяца и это время включало детальное изучение принципов разработки под Android и непосредственно саму разработку. При этом все работы выполнялись исключительно в свободное от работы время и пол месяца из указанного срока ушло на подготовку контента. Кому интересно посмотреть на полученный результат, то это можно сделать здесь.

Теперь непосредственно о том, чем хочется поделиться с теми, кто планирует начать заниматься разработкой под android с использование Android Studio. Разработку своего приложения я вел с использование последней версии Android Studio (на тот момент это была 2.3.2). При работе с ней я столкнулся с некоторыми «особенностями», которые оказали влияние на мою работу и заставили терять время и искать решение на стороне. Сегодня я хочу поделиться информацией о них и рассказать о возможных способах решения этих проблем.

1. Невозможность просмотра папки data в DDMS при работе с эмулятором API выше 23

Одна из самых неприятных проблем с которой мне пришлой встретиться и на решение которой я потратил два вечера. Выявил я ее, когда впервые реализовывал копирование заранее подготовленной SQLite DB. Первый блин, как известно, комом и копирование не сработало так как я ожидал — приложение контент не видело. Мне, естественно, в первую очередь стало интересно посмотреть, что же реально лежит на месте БД, которую я копировал. Для тех, кто не знает, DDMS (Android Device Monitor) позволяет просматривать содержимое папки data при запуске приложения на эмуляторе. Однако попытка открыть эту папку в проводнике DDMS не увенчалась успехом: папка просто не открывалась.

Посчитав, что иметь возможность просматривать внутреннее содержимое папки, где приложение хранит свои данные, достаточно важно, забросив ошибку с копированием, я переключился на решение этой проблемы. Первая моя мысль была, что я что-то или установил не так, или необходимо задать какие-то дополнительные права на просмотр. Тщательное повторное штудирование материала в Интернете на эту тему показало, что у меня все в порядке, но просматривать папку по прежнему не удавалось. Наконец, на каком-то форуме я нашел единственную заметку которая мне помогла: оказалось, что есть баг, из-за которого невозможно просматривать папки data в DDMS при работе с эмулятором API выше 23. Я, конечно, тестирую свое приложение при различных конфигурациях эмулятора, но при разработке, обычно, использовал первый настроенный мной эмулятор, который использовал API 25. При запуске эмулятора с API меньше 23 я смог без проблем получить доступ к нужной мне папке и просмотреть ее содержимое.

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

2. Отступ в иконках при генерации иконок из картинок с помощью встроенного в Android Studo генератора

Т.к. я совсем не дизайнер и дело это не очень люблю, то создание всех необходимых приложению картинок и, в частности, иконок для запуска приложения, было для меня довольно сильной головной болью. Однако, разработчики Android Studio позаботились о таких как я и встроили генератор иконок внутрь редактора. Вызывается он следующим образом: в проекте на папке res надо нажать на правую кнопку и вызвать New > Image Asset.

Каково же было мое удивление, когда выяснилось, что иконки, которые генерируются из картинок (секция Image), получаются не в полном размере, а с отступлением от краев, в результате чего мои иконки выглядели гораздо мельче других иконок на устройстве. Я так и не разобрался полностью в мотивации разработчиков Android Studio, но чем бы это не было вызвано мне это не подходило. Большая часть ссылок на генераторы иконок, которая есть в сети, имеет ту же проблему.

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

3. Неконтролируемое переключение на русский язык при генерации ключа из Android Studio

С этой проблемой я столкнулся уже в самом конце, когда готовил приложение к выпуску. При генерации ключа с помощь в Android Studio (делается это командой Build > Generate Signed APK) при заполнении диалогового окна с именем сертификата и пароля к нему, в какой-то момент, происходит неожиданное переключение шрифта на русский язык. После этого в Android Studio можно использовать только русский язык не зависимо от того какой язык выбран у вас на компьютере. Первый раз я посчитал это глюком Windows и перезагрузил ноут. Но при повторной попытке ситуация повторилась вновь. Найти способ вылечить это я не нашел, так что эту особенность надо просто иметь ввиду.

На этом все. Спасибо за внимание. Надеюсь кому-нибудь моя статья была полезна.

Автор: Наташа

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js