Как сделать интерфейс в android studio

Добавил пользователь Владимир З.
Обновлено: 04.10.2024

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

Если какая-то специфичная особенность, из тех которые просит заказчик, требует особые функциональные возможности, которые невозможно сделать с помощью встроенных в Android View-компонентов, тогда нужно реализовывать собственный View-компонент (Custom View). Это не значит, что нужно всё взять и бросить, просто потребуется некоторое время на его реализацию, к тому же это довольно интересный и увлекательный процесс.

Я недавно попал в похожую ситуацию: мне нужно было создать индикатор страниц для Android ViewPager. В отличи от iOS, Android не предоставляет такой View-компонент, поэтому мне пришлось делать его самому.

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

Фотографии телефонов

Рисуем!

Так как в большинстве случаев разработка Custom View-комопонента занимает больше времени, чем работа с обычными View-компонентами, создавать их целесообразно только тогда, когда нет более простого способа реализовать специфичную особенность, или когда у вас есть ниже перечисленные проблемы, которые Custom View-компонент может решить:

  • Производительность. Если у вас есть много View-компонентов в одном layout-файле и вы хотите оптимизировать это с помощью создания единственного Custom View-компонента;
  • Большая иерархия View-компонентов, которая сложна в эксплуатации и поддержке;
  • Полностью настраиваемый View-компонент, которому нужна ручная отрисовка;

Если вы ещё не пробовали разрабатывать Custom View, то эта статья - отличная возможность окунуться в эту тему. Здесь будет показана общая структура View-компонента, как реализовывать специфичные вещи, как избежать распространённые ошибки и даже как анимировать ваш View-компонент!

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

Жизненный цикл Android View

Constructor

Каждый View-компонент начинается с Constructor'а. И это даёт нам отличную возможность подготовить его, делая различные вычисления, устанавливая значения по умолчанию, ну или вообще всё что нам нужно.

Но для того чтобы сделать наш View-компонент простым в использовании и установке, существует полезный интерфейс AttributeSet. Его довольно просто реализовать и определённо стоит потратить на это время, потому что он поможет вам (и вашей команде) в настройке вашего View-компонента с помощью некоторых статических параметров на последующих экранах. Во-первых, создайте новый файл и назовите его "attrs.xml". Этот файл может содержать все атрибуты для различных Custom View-компонентов. Как вы можете видеть в этом примере есть View-компонент названный PageIndicatorView и один атрибут piv_count.

Скриншот PhpStorm

Во-вторых, в конструкторе вашего View-компонента, вам нужно получить атрибуты и использовать их как показано ниже.

  • При создании кастомных атрибутов, добавьте простой префикс к их имени, чтобы избежать конфликтов имён с другими View-компонентами. Обычно добавляют аббревиатуру от названия View-компонента, поэтому у нас префикс "piv_";
  • Если вы используете Android Studio, то Lint будет советовать вам использовать метод recycle() до тех пор пока вы сделаете это с вашими атрибутами. Причина заключается в том, что вы можете избавиться от неэффективно связанных данных, которые не будут использоваться снова;

onAttachedToWindow

После того как родительский View-компонент вызовет метод addView(View), этот View-компонент будет прикреплён к окну. На этой стадии наш View-компонент будет знать о других View-компонентах, которые его окружают. Если ваш View-компонент работает с View-компонентами пользователя, расположенными в том же самом "layout.xml" файле, то это хорошее место найти их по идентификатору (который вы можете установить с помощью атрибутов) и сохранить их в качестве глобальной ссылки (если нужно).

onMeasure

Этот метод означает, что наш Custom View-компонент находится на стадии определения собственного размера. Это очень важный метод, так как в большинстве случаев вам нужно определить специфичный размер для вашего View-компонента, чтобы поместиться на вашем макете.

При переопределении этого метода, всё что вам нужно сделать, это установить setMeasuredDimension(int width, int height).

Скриншот навигации

При настройке размера Custom View-компонента вы должны обработать случай, когда у View-компонента может быть определённый размер, который пользователь (прим. переводчика: программист работающий с вашим View-компонентом) будет устанавливать в файле layout.xml или программно. Для вычисления этого свойства, нужно проделать несколько шагов:

  • Рассчитать размер необходимый для содержимого вашего View-компонента (ширину и высоту);
  • Получить MeasureSpec вашего View-компонента (ширину и высоту) для размера и режима;
  • Проверить MeasureSpec режим, который пользователь устанавливает и регулирует (для ширины и высоты);

Посмотрите на значения MeasureSpec:

  1. MeasureSpec.EXACTLY означает, что пользователь жёстко задал значения размера, независимо от размера вашего View-компонента, вы должны установить определённую ширину и высоту;
  2. MeasureSpec.AT_MOST используется для создания вашего View-компонента в соответствии с размером родителя, поэтому он может быть настолько большим, насколько это возможно;
  3. MeasureSpec.UNSPECIFIED - на самом деле размер обёртки View-компонента. Таким образом, с этим параметром вы можете использовать желаемый размер, который вы расчитали выше.

Перед установкой окончательных значений в setMeasuredDimension, на всякий случай проверьте эти значения на отрицательность Это позволит избежать любых проблем в предпросмотре макета.

onLayout

Этот метод позволяет присваивать размер и позицию дочерним View-компонентам. У нас нет дочерних View-компонентов, поэтому нет смысла переопределять этот метод.

onDraw

Вот здесь происходит магия. Два объекта, Canvas и Paint, позволяют вам нарисовать всё что вам нужно. Экземпляр объекта Canvas приходит в качестве параметра для метода onDraw, и по существу отвечает за рисование различных фигур, в то время как объект Paint отвечает за цвет этой фигуры. Простыми словами, Canvas отвечает за рисование объекта, а Paint за его стилизацию. И используется он в основном везде, где будет линия, круг или прямоугольник.

Скриншот PhpStorm

Создавая Custom View-компонент, всегда учитывайте, что вызов onDraw занимает довольно много времени. При каких-то изменениях, сроллинге, свайпе вы будете перерисовывать. Поэтому Andorid Studio рекомендует избегать выделение объекта во время выполнения onDraw, вместо этого создайте его один раз и используйте в дальнейшем.

Скриншот PhpStorm

Скриншот PhpStorm

  • При отрисовке, имейте в виду переиспользование объектов вместо создания новых. Не полагайтесь на вашу IDE, которая должна подсветить потенциальную проблему, а сделайте это самостоятельно, потому что IDE может не увидеть этого, если вы создаёте объекты внутри методов вызываемых в onDraw;
  • Во время отрисовки, не задавайте размер прямо в коде. Обрабатывайте случай, когда у других разработчиков может быть тот же самый View-компонент, но с другим размером, поэтому делайте ваш View-компонент зависимым от того размера, который ему присвоен;

View Update

Из диаграммы жизненного цикла View-компонента, вы можете заметить что существует два метода, которые заставляют View-компонент перерисовываться. Методы invalidate() и requestLayout() могут помочь вам сделать ваш Custom View-компонент интерактивным, что собственно поможет изменять его внешний вид во время выполнения. Но почему их два?

Метод invalidate() используется когда просто нужно перерисовать View-компонент. Например, когда ваш View-компонент обновляет свой текст, цвет или обрабатывает прикосновение. Это значит, что View-компонент будет вызывать только метод onDraw, чтобы обновить своё состояние.

Метод requestLayout(), как вы можете заметить будет производить обновление View-компонента через его жизненный цикл, только из метода onMeasure(). А это означает, что сразу после обновления View-компонента вам нужно его измерить, чтобы отрисовать его в соответствии с новыми размерами.

Animation

Анимации в Custom View-компонентах, это по кадровый процесс. Это означает, что если вы например захотите сделать анимированным процесс изменения радиуса круга от маленького к большому, то вам нужно увеличивать его последовательно и после каждого шага вызывать метод invalidate для отрисовки.

Ваш лучший друг в анимации Custom View-компонентов - это ValueAnimator. Этот класс будет помогать вам анимировать любые значения от начала до конца и даже обеспечит поддержку Interpolator (если нужно).

Не забывайте вызывать метод Invalidate каждый раз, когда изменяется значение анимации.

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


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

1- Что такое Layout?

Android Layout это класс управляющий как его подкомпоненты появляются на экране. Любой компонент является View (или дочерним от View) может быть дочерним Layout. Все классы Layout расширены из класса ViewGroup (дочерний View), поэтому вы тоже можете создать кастомизированный Layout, создав расширенный класс из ViewGroup.

  • Иллюстрация показывает иерархию наследия можеду интерфейсами в Android.


2- Стандартные Layout в Android

LinearLayout это ViewGroup который располагает дочерние компоненты по единственному направлениюб вертикально или горизонтально. Вы можете определить направление используя: android:orientation.

RelativeLayout это ViewGroup который изображает View в связанной позиции. Позиция каждого View может быть определен как связанный к другим дочерним View (например слева или внизу другого View) или в позициях связанных с родителем RelativeLayout (например расставить внизу, слева или в центре).

TableLayout это ViewGroup который отображает дочерние компоненты в строках и столбцах.

FrameLayout это заполнитель на экране который вы можете использовать для отображение индивидуального View.

AbsoluteLayout позволяет указать точное местоположение детей. Расположите детей по координатам x, y.

3- RelativeLayout

RelativeLayout это ViewGroup который изображает View в связанной позиции. Позиция каждого View может быть определен как связанный к другим дочерним View (например слева или внизу другого View) или в позициях связанных с родителем RelativeLayout (например расставить внизу, слева или в центре).


RelativeLayout это мощная утилита для дизайна интерфейса для пользователя, потому что она может исключить View группы и оставляет плоскую иерархию, а так же повысить производительность. Если используете несколько вложенных групп LinearLayout, вы можете их заменить единственным RelativeLayout.












4- LinearLayout

LinearLayout это ViewGroup который распределяет дочерние View по единственному направлению, по вертикали или по горизонтали.


5- TableLayout

TableLayout упорядочивает View внутри в формате таблицы. Точнее, TableLayout это ViewGroup содержащий один или более TableRow, каждый TableRow это строка (row) в таблице, содержащая ячейки (cell). Под-View могут быть расположены в одной ячейке или объединенной ячейке одной строки. В отличии от таблицы HTML, вы не можете объединить последовательные ячейки в столбце.



6- GridLayout

GridLayout использует сетку бесконечно тонких линий для отделения области рисования на: строки, столбцы и ячейки (cell). Он так же помогает расположить (span) строки и столбцы, то есть позволяет объединить смежные ячейки в большую ячекйку (прямоугольник) чтобы содержать View.


В GridLayout, определение размеров и границ похоже на LinearLayout. Выравнивание/гравитация (Alignment/gravity)так же работают как гравитация (gravity) в LinearLayout и использует похожие константы: left, top, right, bottom, center_horizontal, center_vertical, center, fill_horizontal, fill_vertical и fill.

Не похожий на другое большигство инструментов, Android GridLayout не соединяет данные со строками или столбцами. Вместо этого, все делается с помощью Aligment (выравнивание) и гибкостью соединяется с самими компонентами.

Гибкость столбцов определятся из gravity (гравитации) компонентов в столбцах. Если компоненты определяют gravity, столб является гибким, если нет. то является негибким.

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




С GridLayout, если в колонне сетки нет объекта, ширина этой сетки будет равняться 0. Так же если строка сетки не имеет объекта, высота сетки будет равна 0.

В GridLayout атрибут layout_columnWeight это тяжесть по столбцу (column) объекта в ячейке, он влияет размещение по столбцу, по умолчанию его значение 0.

Если вы определяете другое значение помимо 0 для layout_columnWeight вам нужно настроить значение layout_gravity (гравитация layout) для объекта, это обязательно, без указания значения объекта layout_gravity может не отобразиться на сетке:

  • Значения для layout_gravity для данного случая должны быть:
  • left
  • right
  • center_horizontal
  • center
  • fill_horizontal
  • fill






В GridLayout атрибут layout_rowWeight это тяжесть по строкам (row) объекта в ячейке, он влияет на расположение по строками, значение по умолчанию является 0.






7- FrameLayout

FrameLayout это простой лейаут(layout), который может содержить один или много дочерних View, и они могут быть перекрыты (overlap) друг другом. Вам нужно использовать атрибут android:layout_gravity для дочерних View чтобы определить их местоположения.

View more Tutorials:

Это онлайн курс вне вебсайта o7planning, который мы представляем, он включает бесплатные курсы или курсы со скидкой.

Есть несколько способов разработки приложений для Android, но на сегодняшний день официальный и самый популярный способ - это Android Studio. Это официальная среда разработки, созданная в Google и с помощью нее были разработаны большинство приложений, которыми вы пользуетесь каждый день.

Впервые об Android Studio было объявлено на конференции Google I/O в 2013, а первая версия вышла в 2014 году. До этого большинство приложений разрабатывались в Eclipse, которая представляет из себя более универсальную среду для Java. Android Studio делает разработку приложений намного проще, но она по-прежнему остается сложной. Начинающим пользователям нужно изучить много материалов чтобы уверено ее использовать.

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

Что такое Android Studio?

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

В то же время Android Studio дает доступ к Android SDK, это расширение Java, которое позволяет приложениям работать на устройстве и использовать его оборудование. Вы можете запускать программы для тестирования в эмуляторе или сразу на подключенном к компьютеру телефоне. Кроме того, Android Studio выдает различные подсказки во время кодинга, например, подчеркивает ошибки.

Установка Android Studio

SUBSYSTEM=="usb", ATTR=="0bb4", MODE="0666", GROUP="plugdev"


Здесь 0bb4 - это идентификатор производителя устройства, вы можете его узнать, выполнив lsusb:


Если не отображается, попробуйте выполнить adb devices. Когда установка будет завершена, вы сможете открыть программу из главного меню:


Как пользоваться Android Studio

1. Создание проекта

Если вы запускаете Android Studio впервые, то перед вами появится окно с возможностью создания нового проекта:

Выберите "Start new Android Project". В следующем окне введите название приложения и имя домена компании, эта информация будет использоваться для расположения файлов приложения в файловой системе Android.

На следующем этапе создания приложения нужно выбрать платформу. Нас интересует смартфон Android, а версию возьмем 4.2, это одна из самых распространенных:


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

Также нужно будет ввести некоторые параметры для Activity:

2. Файлы проекта

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

Программирование в Android Studio выполняется в файлах Java, который имеет такое же имя, как и у Activity. Однако, внешний вид приложения находится в другом файле - это файл xml в котором на языке разметки описаны все элементы приложения. Таким образом, если вы хотите создать кнопку, то вам придется описать ее в xml файле, а чтобы привязать для нее действия - используйте файл Java.

Вот эта строчка кода загружает макет из XML файла:

setContentView (. R.layout activity_main );

Это значит, что мы могли бы использовать один макет для нескольких Activity, а также одна Activity может иметь несколько файлов XML с описанием отображения. Так или иначе, вы можете получить доступ ко всем файлам проекта в левой части окна, а вкладки над рабочей областью позволяют переключаться между теми файлами, которые сейчас открыты.

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

Еще есть папка Values, в которой содержатся XML файлы со значениями различных переменных.

Основная информация о приложении содержится в файле AndroidManifest.xml, здесь описаны полномочия, название приложения, миниатюра, и другое.

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

3. Визуальный редактор XML

Как вы заметили при редактировании XML файлов внизу страницы появляется две вкладки - "Text" и "Design". Здесь вы можете не только вручную писать код, но и добавлять нужные элементы в графическом режиме. В окне "Palete" можно выбрать вид виджета, который нужно добавить:

Для добавления его достаточно перетащить на макет приложения. Например, я добавил WebView, Button, Plain Text и Text. С помощью синей рамки вы можете изменять размер элементов, а также изменять их положение.

Затем добавьте эти строки в конец метода onCreate:

WebView mywebview = (WebView) findViewById(R.id.webView);
mywebview.loadUrl("https://losst.ru");


4. Использование Gradle

В Android Studio все инструменты реализованы просто и красиво. Но некоторые из них более сложные. Один из таких инструментов, которые вы могли заметить - это Gradle. Это инструмент автоматизации сборки, который существенно упрощает превращение всех этих файлов в один готовый APK.

Время от времени вам придется редактировать настройки Gradle, которые находятся в файлах *.gradle, а также если что-то перестанет работать, то вы всегда сможете выбрать в меню "Build" опцию "Clear project", которая часто помогает.

5. Сборка и отладка

Когда вы будете готовы протестировать приложение, у вас будет два варианта - либо запустить его на реальном устройстве, либо в эмуляторе.

Запустить приложение на устройстве очень просто. Достаточно подключить его по USB и выполнить "Run", затем "Run App". Обратите внимание, что в настройках телефона должна быть разрешена отладка по USB и установка из недостоверных источников:




В открывшемся окне вам предстоит выбрать устройство или создать виртуальное. После выбора устройства приложение практически мгновенно запустится на нем.


Там же можно переключиться на вкладку "Monitors" и посмотреть информацию об устройстве, нагрузку на процессор, память и так далее.

6. ADV Manager

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

С помощью Android Virtual Device вы можете эмалировать размер, внешний вид, мощность любого другого устройства Android. Но перед тем как перейти дальше, нужно скачать необходимые компоненты. Откройте меню "Tools" -> "Android" -> "ADV Manager":

Здесь выберите "Create Virtual Device":


Затем выберите модель устройства, которое хотите эмулировать.


Дальше нужно скачать прошивку для устройства. Выберите "Download" и примите условия лицензионного соглашения:

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

8. SDK Manager

Если вы разрабатываете приложение только для определенной версии Android или же хотите создать виртуальное устройство под управлением определенной версии, то вам понадобятся некоторые компоненты и инструменты SDK. Вы можете получить их через SDK Manager, который находится в "Tools" -> "SDK Manager".



Здесь есть все необходимое, например, Glass Kit и Android Repository. Просто установите флажок рядом с нужным компонентом и нажмите "Oк".

9. Упаковка APK

Рано или поздно вы закончите тестирование своего приложения и оно будет готово выйти в большой мир. Чтобы загрузить его на Google Play вам нужно создать подписанный APK. Для этого выберите в меню "Tools" пункт "Create signed APK":


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






Тип сборки выберите "Release", это нужно чтобы убрать все лишнее из APK файла. Затем нажмите кнопку "Finish".

Ваш путь только начинается

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

Например, если вы хотите синхронизировать приложение с облаком, вам понадобится инструмент Firebase. Также вы можете захотеть использовать GitHub, где вы можете сохранять резервные копии своих проектов. Также существует Android NDK для разработки приложений без Java, на C++.

Компания Google сделала множество шагов чтобы использование Android Studio было простым и максимально легким. Лучшая стратегия развития - начать разрабатывать простое приложения и по мере необходимости изучать сложные библиотеки, тогда вы увидите что Android Studio на самом деле замечательный и очень полезный инструмент.

Как пользоваться Android Studio

Рассказываю об основном инструменте для разработки Android-приложений, созданном самой компанией Google. Краткий гайд по основам работы с Android Studio.

Что такое Android Studio?

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

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

Устанавливаем и настраиваем Android Studio

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

Для Linux и macOS есть опция установки Android Studio с помощью командной строки, используя менеджеры пакетов apt, dnf и brew.

Также стоит иметь в виду, что для работы с Android Studio на ПК должен быть установлен Java.

Создаем свой первый проект

После установки включаем Android Studio и видим перед собой окно с надписью New Project. IDE предлагает нам создать новую программу. Если такое окно не появилось, то открываем New Project вручную, кликнув сначала по кнопке File в верхнем левом углу, а потом на New Project.

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


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

Если надо создать приложение с нуля без конкретики, то стоит выбрать Basic Activity. В нем будет одна кнопка, панель управления и текстовое поле, где можно разместить любой контент на свое усмотрение.

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

Структура интерфейса Android Studio

Основное окно делится на 4 основных блока:

Palette – это все окна, которые уже есть в вашем приложении. По мере разработки их количество будет увеличиваться.

Component Tree – здесь будут все компоненты, даже если они не относятся к конкретному окну.

Design Editor – главное окно с выбранным окном приложения или редактором кода.

Главное окно Android Studio

Что за куча файлов вокруг?

Разработка комплексных приложений не укладывается в рамки одного скрипта и одного файла разметки, как это принято, например, в базовой веб-разработке. Хотя логика тут схожая.

Вас встретит документ под названием ИмяПриложения.java Это что-то в духе основы для программы. Как index.html при разработке веб-сайта, но не для всей разметки, а для подключения других компонентов и управления ими.

С чего начать разработку своего приложения?

Все документы хранятся в файловом менеджере в левой части интерфейса Android Studio. Там можно найти основной XML-документ, отвечающий за разметку контента в вашем детище.

Один из XML-файлов в Android Studio

В нем можно обнаружить такие поля, как

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

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

Типы файлов. Зачем их так много?

Есть еще несколько директорий, с которыми стоит ознакомиться чуть ли не после первого включения Android Studio:

res – это сокращение от resources. Тут будут лежать дополнительные файлы, необходимые вашей программе, например картинки, используемые вместо стандартных иконок интерфейса, или просто изображения, задействованные в работе ПО.

layout – тут лежат все XML-документы с разметкой для разных компонентов приложения.

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

Сборщик приложения – Gradle

Как вы могли догадаться, приложение не поступает в Google Play в таком разрозненном виде. Обилие файлов Android Studio нужно упаковать во что-то удобоваримое и запускаемое на смартфонах.

Gradle в Android Studio

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

Вам нужно знать о Gradle то, что у него есть конфигурационный файл build.gradle. В нем нужно указать зависимости проекта (если вы используете сторонние программные библиотеки для добавления продвинутых функций в вашу программу, недоступных в AS по умолчанию).

Запустить Gradle можно следующим образом:

Кликаем по меню Build в верхней части окна.

Выбираем свой проект и ждем.

Деббагинг на реальном устройстве

Чтобы запустить написанный вами код на реальном устройстве:

Подключаем гаджет к компьютеру с помощью USB-кабеля (в режиме дебаггинга).

Потом нажимаем на кнопку Run в верхней панели управления интерфейсом.

После этого выбираем пункт Run App.

Graddle быстро создаст сборку программы и запустит ее в тестовом режиме. В этом режиме вся информация о работе программы записывается в журнал событий, отображающийся во вкладке logcat. Если что-то пойдет не так, прочитать о случившемся можно будет именно там. А еще полезная информация о работе с программой (нагрузка на процессор, энергопотребление) отображается во вкладке Monitor.

Дебаггинг с AVD-менеджером

AVD, Android Virtual Devices – это система эмуляции Android-устройств с различными характеристиками. Она нужна на тот случай, если у вас нет подходящего телефона или планшета. Также не стоит забывать о сумасшедшей фрагментации мира Андроидов, а ведь это сотни различных чипов, разрешений и дизайнов. Нельзя скупить тысячи устройств и на всех протестировать ПО. Но AVD-менеджер эту задачу упрощает.

AVD Manager в Android Studio

Чтобы включить AVD-менеджер:

Открываем меню Tools в верхней части окна Android Studio.

В выпавшем списке опций выбираем Android.

А потом AVD Manager.

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

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

Работа с SDK-менеджером

Хотя Android Studio включает в себя уйму инструментов, в нем отсутствует весомый кусок часто используемых компонентов. Их надо загрузить отдельно, через SDK-менеджер.

Он расположен в том же меню, что и AVD-менеджер – во вкладке Tools на панели инструментов Android Studio.

SDK Manager позволяет загрузить утилиты, необходимые при создании программ для очков Google Glass или для добавления специфичных возможностей в приложение для телефона, которые недоступны в AS в базовой комплектации.

Упаковка приложения в подписанный APK-пакет

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

Чтобы сделать такой пакет:

Открываем вкладку Build, расположенную в панели инструментов.

Выбираем опцию Generate Signed APK.

Gradle соберет для вас подходящий APK, готовый к публикации в Google Play.

А что дальше?

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

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

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

1.1.1.Пошаговое создание проекта без использования программного кода

Запускаем Студию и последовательно выбираем File ® New Project. В результате появится первое диалоговое окно мастера (рис.1.1). Рассмотрим назначение его полей и рекомендации по их заполнению.

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

Поле Package name. Формирует специальный Java-пакет на основе вашего имени из предыдущего поля. В Java используется перевёрнутый вариант для наименования пакетов. Формируемый пакет служит для уникальной идентификации вашего приложения, когда вы будете его распространять. Кнопка справа Edit позволяет отредактировать подготовленный вариант. Это необходимо, например, в тех случаях, когда Вы пишете приложение на заказ и Вам нужно использовать имя пакета, утверждённое заказчиком, а не Ваш вариант по умолчанию.



Рис.1.1. Первое диалоговое окно мастера Рис.1.2. Второе диалоговое окно

Третье поле Project location: позволяет выбрать место на диске для создаваемого проекта.

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

Наряду с выбором типов устройств также предлагается выбор минимальной версии системы программирования (SDK), под которые будут разрабатываться эти приложения. Выбор осуществляется из выпадающего списка в окне Minimum SDK. Для устройств в декабре 2014 года рекомендовано ставить API 16 (Android 4.1 Jelly Beans). При необходимости поддерживать старые устройства можно выбрать другой более ранний вариант, но при этом будет доступен более ограниченный набор средств программирования.

Наряду с устройствами в окне в общем случае предлагается аналогичным образом выбор систем Android TV, Android Wear, Glass. Системы Android TV и Glass в показанном примере не доступны, поэтому показаны серым цветом. Завершаем работу во втором окне нажатием кнопки Next.

В третьем окне (рис.1.3) производится выбор внешнего вида экрана приложения. Предложенные шаблоны позволяют сэкономить время на написание стандартного кода для типичных ситуаций. В то же время, разработчик может вручную написать любой из предложенных вариантов, используя только первый случай Add No Activity, где никаких заготовок не будет.

Список шаблонов постоянно пополняется. В окне 3 предлагаютcя шаблоны следующих типов: 1)Blank Activity, 2)Blank Activity with Fragment, 3)Fullscreen Activity, 4)Google Maps Activity, 5)Google Play Services Activity, 6)Master/Detail Flow.



Рис.1.3. Третье диалоговое окно мастера Рис.1.4. Четвертое диалоговое окно

Шаблон Blank Activity (второй слева в верхнем ряду) предназначен для обычных телефонов. На его изображении дан приблизительный вид приложения с использованием данного шаблона. Для учебных программ этот вариант вполне пригоден. Шаблон Master/Detail Flow предназначен для планшетов с реализацией двухпанельного режима. Шаблон Fullscreen Activity можно использовать для игр, когда требуется дополнительное пространство без лишних деталей. Другие шаблоны нужны для создания приложений с гуглокартами или сервисами Google Play.

В данном проекте надо выбрать вариант Blank Activity(щелчком мыши по его изображению). Затемнажимаем кнопку Nextдля перехода к следующему окну (рис.1.4). В нем слева показан выбранный шаблон внешнего вида экрана приложения (в нашем случае — Blank Activity), а справа надо выбрать опции проекта.

В первой строке надо задать имя первого экрана. Введен вариант MainActivity. При переименовании в первом поле одновременно происходит переименование и в других полях. Для завершения начальной настройки проекта надо нажать кнопку Finish.

При этом на дисплее откроется окно автоматически построенного приложения Hello World(рис.1.5).В его левой части на вкладке Project появится иерархический список из папок, которые относятся к проекту.


Рис.1.5. Окно построенного приложения Hello World

Для изучения проекта также понадобятся два основных файла — MainActivity и activity_main.xml (res/layout) в центральной части окна. Обычно один из них открывается Студией автоматически (на рис.1.5 – открыт файл activity_main.xml (res/layout)). Если файлы не открыты, то откройте их самостоятельно для редактирования или просмотра двойным щелчком. Таким способом можно открыть любой нужный файл.

1.1.2. Запуск приложения на выполнение

Для отладки приложений можно использовать две основные возможности. 1. Проект выполняется на эмуляторе мобильного устройства (например, телефона). Это виртуальная машина, в которой учтены все существенные особенности реального устройства, и на которой будет запускаться приложение.

2. Также для выполнения проекта можно использовать и реальное устройство.

Для запуска приложения надо нажать на зелёный треугольник Run (Shift+F10) на панели инструментов в верхней части студии. Если эмулятор Студии (программа, имитирующая работу соответствующего мобильного устройства) настроен правильно, а также указано устройство, на котором должна быть выполнена эмуляция, то проект будет запущен. В противном случае сначала надо настроить эмулятор и/или задать устройство и только потом повторно запустить проект.

Если устройство не задано, то Студия поверх окна приложения (рис.1.5) выбрасывает окно запроса, показанное на рис.1.6.

Рассмотрим создание эмулятора на примере телефона. Чтобы создать эмулятор телефона, надо выбрать в меню Студии Tools | Android | AVD Manager. При первом запуске появится диалоговое окно мастера (рис.1.7).


Рис.1.6. Окно запроса эмулируемого устройства


Рис.1.7. Диалоговое окно мастера создания эмулятора

В этом окне надо нажать кнопку Create a virtual device. Появится новое окно (рис.1.8), в котором содержится список возможных эмуляторов для различных мобильных устройств, в том числе — и для часов. Из этого списка надо скачать необходимые эмуляторы. Для начала вполне подойдёт один эмулятор.


Вводим любое понятное имя, например, Android4. Выбираем нужную версию Android, размер экрана и т.д.

При необходимости можно создать эмуляторы для каждой версии ОС и проверять программу на работоспособность. Остальные настройки можно оставить без изменений. Вы всегда можете вернуться к настройкам и отредактировать снова. Часто рекомендуют использовать опцию Use Host GPU, чтобы задействовать возможности графического процессора. Это даёт прирост скорости эмулятора. Нажимаем кнопку OK.

Добавленные эмуляторы будух храниться в менеджере эмуляторов.


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

Помните, что виртуальные машины по умолчанию сохраняются в папке пользователя, и пути к папке не должны содержать русские символы во избежание проблем.

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

К сожалению, очень часто бывает так, что при первом запуске эмулятор загружается, а приложение в нём не запускается. Это происходит от того, что во время загрузки эмулятора ваш компьютер теряет связь с ним. В этом случае вам нужно перезагрузить сервисы. Это можно сделать различными способами — через диспетчер задач, с помощью командной строки и даже в самой Студии. Вот как я делаю через Студию. Через меню Tools | Android | Monitor (DDMS included) запускаем окно Android Debug Monitor. В этом окне есть маленький треугольник, направленный вниз. Нажимаем на него и выбираем пункт reset adb.


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

Upd: Вроде эту проблему решили, эмулятор стал работать стабильнее.

Статьи к прочтению:

Урок 3. Первое андроид-приложение. Структура android проекта. Создание эмулятора Android (AVD)


Похожие статьи:

Запускаем Студию и последовательно выбираем File ® New Project. В результате появится первое диалоговое окно мастера (рис.1.1). Рассмотрим назначение его…

Читайте также: