Top.Mail.Ru

Android Studio. Первое приложение

helloМы создадим проект, рассмотрим его структуру и напишем первое приложение –«Hello», состоящее из одной формы.

Шаг 1: Создание нового проекта

sozdanie novogo proekta

Задаем конфигурацию нового проекта

config

Application name – непосредственно имя программы, которое будет отображаться в списке приложений в смартфоне. Можно брать имя проекта без префикса. Пишем «MyHello».

Company Domain – идентификатор приложения (доменное имя), которое используется для однозначной идентификации вашего приложения. Даже если две разные организации создали приложение для Android с одинаковым именем, то все таки полное имя приложения будет различным, потому что доменные имена организаций различны. Доменное имя компании вводится в обратном порядке, например, ru.turbopro. Если вы не планируете публиковать свое приложение на Google Play, то можете просто выбрать фиктивное доменное имя компании. В нашем случае – ru.turbopro.

Project location – место расположения нашего проекта на жестком диске.

После того, как вы ввели имя приложения, доменное имя и расположение проекта, нажмите на кнопку "Next" в правом нижнем углу диалогового окна.

Шаг 2: Выбор форм-факторов и уровня API

Форм фактор – это размеры экрана и типы устройств: телефон, планшет, телевизор, носимые устройства (часы) и очки Google. Для каждого форм-фактора можно выбрать уровень API приложения. Более того, разные платформы требуют различные версии SDK.

Минимальная версия определяет нижний уровень Android, на котором ваше приложение может запуститься.

Для того чтобы выбрать необходимый уровень, предлагается воспользоваться ссылкой «Помогите выбрать» «Help me choose».

help choose

По умолчанию устанавливается версия Android 4.0.3, что покрывает более 90% устройств Android. Опция «Help me choose» показывает распределение мобильных устройств по уровням API (версий Андроид), например, уровень API 19 используют только 49.5% всех мобильных устройств. Чем ниже уровень API, тем больше охват мобильных устройств и меньше возможностей доступных для программиста и наоборот.

uroven api

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

Выбирая значение «Minimum SDK» следует иметь ввиду, что такая версия SDK должна быть инсталлирована, если это не так, то необходимо установить требуемый уровень с помощью Менеджера SDK.

У нас установлена версия SDK 22, поэтому для экспериментов  выбираем API 22 опции "телефон и планшет".

api22

Затем нажмите кнопку "Next".

Шаг 3: Добавить активность

На данном шаге необходимо выбрать "окно" или "экран" (деятельность), которое Android-приложение будет использовать. Возможно использование более одного «окна».

okno ekran

Выбираем "Blank Activity". Затем нажмите кнопку "Далее".

Шаг 4: Настройка файлов активности

fail aktivnosti

На данном шаге мастер предложил нам варианты имен: файла активности, макета, заголовка и меню. Оставляем без изменений и нажмем кнопку "Finish".

Далее продолжительное время идет процесс создания нового проекта.

process sozdaniya

Проект создан и готов к запуску.

proekt gotov

Рассмотрим структуру проекта.

struktura proekta

Каталог app - корневой каталог всех файлов, непосредственно связанных с приложением.

Каталог src содержит все исходные коды для Android приложения.

Подкаталог androidTest предназначен для тестов Android проекта.

Подкаталог main содержит основной исходный код для Android приложения.

Подкаталог java здесь располагается наш код

Подкаталог res содержит ресурсы, используемые в приложении

Так же как и в Eclipse следующие папки имеют одинаковое назначение:

/res/layout

В эту папку помещаются файлы, в которых в формате XML описывается внешний вид форм, расположение элементов управления – виджетов. Мастер создал разметку для нашей единственной формы и назвал её activity_main.xml.

/res/drawable

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

/res/values

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

/res/menu – здесь хранятся файлы меню

/res/ AndroidManifest.xml 

Манифест— структурный ХМL-файл, всегда имеет название AndroidManifest.xml для всех приложений. Он задает конфигурацию приложения: объявляет компоненты приложения, перечисляет любые библиотеки, связанные с приложением (помимо библиотек Android, связанных по умолчанию), и объявляет разрешения, которые приложение предоставляет.

Начиная с версии android 4.3 была изменена структура папки drawable. Теперь значки приложения необходимо располагать в папках mipmap-hdpi, mipmap-mdpi, mipmap-xhdpi, mipmap-xxhdpi.

struktura papki

Теперь рассмотрим код нашего приложения.

Файл MainActivity.java

Мастер сгенерировал класс для главной формы приложения

package ru.turbopro.myhello;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {

int id = item.getItemId();

//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}

return super.onOptionsItemSelected(item);
}
}

Класс MainActivity является классом, представляющим экран приложения или его визуальный интерфейс. Родителем нашего класса является класс  Activity.

Класс Activity представляет обычный класс java.
Activity – одно окно приложения, которое обладает следующими свойствами:
• Activity может занимать весь экран или его часть.
• Activity может быть запущена из других компонент приложения или из другого приложения.
• Activity может возвращать результат.
По умолчанию класс Activity содержит три метода: метод onCreate() создает новый объект activity, метод onCreateOptionsMenu() создает меню приложения и метод onOptionsItemSelected обрабатывает выбор элементов меню. Экран приложения, который мы видим на мобильном устройстве, создается в методе OnCreate().
В методе OnCreate() идет обращение к методу родительского класса и установка ресурса разметки дизайна:

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

к данной форме привязывается компоновка нашего экрана, описанная в файле /res/layout/activity_main.xml. Компоновку экрана, часто называют разметкой экрана и она относится к ресурсам приложения.

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

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

Содержимое класса R можно посмотреть по адресу:

Packages/app/ru.turbopro.myhello /R.java

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

ОБРАТИТЕ ВНИМАНИЕ

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