10 февраля 2014 г.

Созадем простое приложение в Eclipse

В интегрированной среде разработки Eclipse можно управлять, редактировать, компилировать, выполнять и отлаживать приложения. Подключаемый модуль ADT Plugin для Eclipse предоставляет пользователям дополнительные инструменты, применяемые для разработки Android-приложений. Можно также воспользоваться подключаемым модулем ADT Plugin для управления различными версиями платформы Android. Это требуется в случае разработки приложений, предназначенных для различных устройств, на которых установлены различные версии операционной системы Android. После первого запуска среды Eclipse появится вкладка Welcome(Добро пожаловать):

e 001

На этой вкладке находится ряд ссылок-пиктограмм щелкнув на которые вы попадете в соответствующие разделы.
Щелкните на кнопке Workbench(Рабочая среда), чтобы отобразить перспективу разработки Java, в которой начинается разработка Android-приложений. В Eclipse поддерживается разработка приложений на нескольких языках программирования. Каждый установленный набор инструментов Eclipse представлен отдельной
перспективой разработки.

Создание нового проекта
Чтобы начать программировать на Android в Eclipse, выполните команды File->NewProject… (Файл->НовыйПроект…) для отображения диалогового окна New Project(Новый проект)

e 002

Это окно также можно отобразить с помощью раскрывающегося списка New(Создать) панели инструментов.

e 003

Раскройте узел Android, выберите параметр Android Application Project (Проект Приложения Android) и щелкните на кнопке Next>(Далее>). На экране появится диалоговое окно New Android Project(Новый проект Android)

Проект— это группа связанных файлов, например файлы кода и изображения, которые формируют приложение. В диалоговом окне New Projectможно создать проект «с нуля» либо воспользоваться существующим исходным кодом (например кодом из книги или примеров поставляемых с Android SDK).

Кстати сказать, окошко New Android Application сильно поменялось, начиная с названия и кончая содержанием. Так что будем разбираться по ходу пьесы.
И так поехали! Заполняем поля как показано на скриншоте

e 005

Application Name (Имя Приложения) – это имя которое будет отображаться в PlayStore, а так же в диспетчере приложений на устройстве, на которое будет установлено приложение.

Project Name (Имя Проекта) – имя проекта используемое только в Eclipse. Должно быть уникальным в рабочей среде. Обычно оно такое же как и Application Name, но я сделал другим чтобы стало яснее где какое имя будет отображаться.

Package Name (Имя Пакета) – это имя ДОЛЖНО БЫТЬ УНИКАЛЬНЫМ ИДЕНТИФИКАТОРОМ вашего приложения. То есть вы должны быть уверены что ни кто так свое приложение больше не назовет. И это имя должно оставаться одним и тем же на протяжении всего жизненного цикла приложения (версии приложения могут меняться, но имя должно оставаться одним и тем же).

Minimun Required SKD – минимальная версия Android необходимая для функционирования вашего приложения. Это означает по существу минимальную версию SDK, которая необходима, чтобы приложение нормально работало. И кроме того, Андроид просто не позволит установить приложение, если на устройстве стоит версия Андроид у которой номер API меньший, чем указанный в этом параметре.

Target SDK – целевая или максимальная версия Android на которой приложение будет точно работать и было протестировано. Рекомендуется устанавливать этот параметр как можно в более высокое значение.

Compile SDK – версия SDK из установленных вами с помощью которой будет компилироваться приложение.

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

И так жмем Next и видим следующее окошко

e 006

убираем галку с Create custom launcher icon ижмем Next

e 007

выбираем Blank Activity и жмем Next и видим следующее окошко

e 008

заполняем как на экране и жмем Finish и видим перспективу разработки проекта Java

e 009

Желтым я подсветил то, на что стоит обратить особое внимание, чтобы стало понятно куда какие названия прилепились. Далее раскрываем узел, затем узел layout и дважды кликаем на main.xml и о чудо! видим как будет выглядеть наше приложение! Щелкнув оп main.xml мы вызвали редактор ADT Visual Layout Editor. С его помощью можно создать графический интерфейс пользователя путем перетаскивания в окно приложения компонентов GUI, таких как Buttons, TextViews, ImageViewsи др.

e 010

Немножко перенастроим нашу среду чтобы все было получше видно

e 011

В узле проекта содержимое проекта организовано в виде различных файлов и папок, в том числе:
src— папка, включающая исходные файлы проекта Java;
gen— папка, содержащая файлы Java, сгенерированные IDE;
Android 2.3.3— папка, включающая версию Android framework, выбранную при создании приложения;
res— папка, в которой находятся файлы ресурсов, связанные с приложением, такие как макеты GUI и изображения, используемые в приложении.
другие папочки рассмотрим позже.
При создании Android-приложения с помощью Eclipse макет интерфейса пользователя хранится в XML-файле, который по умолчанию на-зывается main.xml. Благодаря определению элементов GUI в XML-файле можно легко отделить логику приложения от его презентации. Файлы макетов являются ресурсамиприложения и хранятся в папке resпроекта. Макеты GUI находятся в подпапке папки layout.
Чтобы просмотреть XML-содержимое файла, выберите вкладку  с именем файла макета (в данном случае, main.xml). Чтобы вернуться обратно к представлению Visual Layout Editor, выберите вкладку Graphical Layout(Графический макет).
В принципе это приложение можно уже запустить на исполнение. Я запустил его используя  Genymotion, так как это гораздо быстрее чем эмулятор Андроид из SDK и даже Intel.

e 012

Полезное видео по данной теме

И так продолжаем эксперименты с первым нашим проектом.

Удаление и воссоздание файла main.xml
В процессе создания приложения для этой главы вместо заданного по умолчанию файла main.xml будет использоваться новый файл макета, RelativeLayout(в этом файле определяется относительное расположение компонентов). Чтобы заменить заданный по умолчанию файл main.xml, выполните следующие действия:
1) Убедитесь в том, что файл main.xmlзакрыт, потом щелкните на нем правой кнопкой мыши (в папке /res/layout проекта) и выберите команду Delete(Удалить) для удаления файла.
2) В узле Androidвыберите параметр Android XML Layout File и жмите Next

e 014

3) Далее указываем имя создаваемого файла main.xml и выбираем RelativeLayout и жмем Next

e 015

4) Удостоверяемся что файлик создается в каталоге /res/layout

e 016

и жмем Finish и попадаем в уже знакомое окошко

e 017

Настройка размера и разрешения экрана в Visual Layout Editor
Поскольку операционная система Android может выполняться на множестве различных  устройств, в комплект поставки Visual Layout Editor входит ряд различных конфигураций устройств, представляющих разные размеры и разрешения экрана. Эти на-стройки выбираются в раскрывающемся списке Device Configurations (Конфигурации устройства)

e 018

Если стандартные конфигурации не соответствуют устройству, для которого разрабатывается приложение, можно создать собственную конфигурацию устройства «с нуля» либо путем копирования и изменения одной из имеющихся конфигураций.
Для создания примеров в книге мы использовали основное тестовое устройство Samsung Nexus S, которое снабжено 4-дюймовым экраном с разрешением 480×800 пикселей (WVGA). Рекомендуется разрабатывать масштабируемуюбиблиотеку Android GUI, которая позволит корректно формировать изображения на экранах различных устройств. Благодаря свойству масштабируемости не требуется точное соответствие области проектирования Visual Layout Editor экранам физических устройств. Достаточно выбрать подобную конфигурацию устройства.

Размеры и разрешение изображений и экрана

Поскольку экраны устройств Android имеют различные размеры, разрешения и пиксельные плотности экрана (выражается в точках на дюйм или DPI), поддерживаются изображения (и другие ресурсы), которые выбираются операционной системой в соответствии с пиксельной плотностью экрана устройства. Поэтому в папке res проекта находятся четыре подпапки:
drawable-xhdpi (сверхвысокая плотность)
drawable-hdpi (высокая плотность)
drawable-mdpi (средняя плотность)
drawable-ldpi (низкая плотность)

Пиксельные плотности устройств Android

xhdpi Сверхвысокая плотность — примерно 320 точек на дюйм
hdpi Высокая плотность — примерно 240 точек на дюйм
mdpi Средняя плотность — примерно 160 точек на дюйм
ldpi Низкая плотность — примерно 120 точек на дюйм
nodpi Отсутствие масштабирования ресурсов независимо от плотности экрана
Шаг 1. Добавление изображений в проект
Для данного приложения в проект нужно добавить изображения Deitel bug (bug.png) и логотипа Android (android.png). Эти изображения находятся в папке images вместе с примерами книги. Чтобы добавить изображения в проект, выполните следующие действия:
1. В окне Package Explorerоткройте папку проекта res.
2. Найдите и откройте папку images, которая находится среди примеров книги, потом перетащите изображения в папку, которая находится в подпапке drawable-hdpi папки res.

e 019
e 020

Теперь изображения могут использоваться в приложении.

Шаг 2. Изменения свойства Id макета RelativeLayout
С помощью окна Properties(Свойства) можно сконфигурировать свойства выбранного макета или компонента без непосредственного редактирования XML-кода. Если окно Propertiesне отображается, отобразите его двойным щелчком на пункте RelativeLayout в окне Outline(Структура).

e 021

Выберите компонент RelativeLayout, затем, выполнив прокрутку в окне Properties, выберите свойство Idи присвойте ему значение:

@+id/welcomeRelativeLayout

e 022

Имя каждого объекта определяется с помощью его свойства Id. Это свойство может применяться для получения доступа и изменения компонента, при этом не нужно
знать точное местоположение компонента в XML-коде. Как будет показано позднее, свойство Idтакже может применяться для указания относительного позиционирования компонентов в макете RelativeLayout.

Символ + в конструкции @+id определяет создание нового идентификатора (имя переменной), который указан справа от символа /

Шаг 3. Присваивание свойству Background у RelativeLayout значения
По умолчанию в качестве фонового цвета макета выбирается белый (в нашем случае), но его можно изменить (например, на желтый). Любой цвет представляет собой результат смешения красного, синего и зеленого компонентов, которые называются RGB-компонентами. Каж-дый из этих компонентов может принимать целочисленное значение в диапазоне от 0 до 255. Первый компонент задает количество красного в общем цвете, второй — количество зеленого, а третий — количество синего цвета. Во время работы в интегрированной среде разработки (IDE) для определения цвета используется шестнадцатеричный формат. То есть RGB-компоненты представлены в виде значений в диапазоне 00–FF.
Чтобы изменить фоновый цвет, найдите свойство Backgroundв окне Properties и присвойте ему значение #FFFF33

e 023

Формат #RRGGBB— это пары шестнадцатеричных чисел, которые представляют красный, зеленый и синий цвета соответственно. В Android так-же поддерживаются альфа-значения (прозрачность), которые изменяются в диапазоне 0–255. Значение 0 соответствует полной прозрачности, а значение 255 — полной непрозрачности. Если планируется использовать альфа-значения, укажите цвет в формате #AARRGGBB, где первые две шестнадцатеричных цифры соответствуют альфа-значению.
Если обе цифры каждого компонента цвета одинаковы, можно воспользоваться форма-том #RGBили #ARGB. Например, значение #FFFтрактуется как #FFFFFF.

Шаг 4. Добавление компонента TextView
На этом шаге добавим в пользовательский интерфейс компонент TextView. В списке Form Widgets(Виджеты форм), находящемся в левой части окна Visual Layout Editor, найдите компонент TextViewи перетащите его в область проектирования
e 024
e 025

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

Шаг 5. Настройка свойства Text компонента TextView с помощью строковых ресурсов

Согласно документации Android по ресурсам приложений (developer.android.com/guide/topics/resources/index.html) считается хорошим тоном хранить строки, массивы строк, изображения, цвета, размеры шрифтов, размерности и другие ресурсы приложения так, чтобы их можно было использовать отдельно от кода приложения. Например, после экстернализациицветовых значений все компоненты, использующие один и тот же цвет, могут быть перекрашены путем простого изменения значения цвета в центральном файле ресурса.
Если нужно локализовать приложения, создав версии на нескольких разных языках, сохраните строки отдельно от кода приложения. В результате у вас в дальнейшем появится возможность простого изменения этих строк. В папке resпроекта находится подпапка values, в которой помещен файл strings.xml. Этот файл применяется для хранения строк. Чтобы сформировать локализованные строки для других языков, создайте отдельные папки valuesдля каждого используемого языка.
Например, в папке values-frможет находиться файл strings.xmlдля французского языка, а в папке values-es— файл strings.xml для испанского языка. Можно также формировать названия этих папок с учетом информации о регионе. Например, в папке values-en-US может находиться файл strings.xml для американского диалекта английского языка, а в папке values-en-GB— файл strings.xml для диалекта английского языка, используемого в Великобритании.
Чтобы получить дополнительные сведения о локализации, обратитесь к ресурсам:

developer.android.com/guide/topics/resources/;
providing-resources.html.AlternativeResources;
developer.android.com/guide/topics/resources/localization.html.

Чтобы установить значение свойства Textкомпонента TextView, создадим новый строковый ресурс в файле strings.xml.

1. Выберите компонент TextView.
2. В окне Propertiesнайдите свойство Text, щелкните на значении, заданном по умолчанию, затем щелкните на кнопке с многоточием. Эта кнопка находится в правой
части поля значения свойства и служит для отображения диалогового окна Resource Chooser(Выбор ресурсов).

e 026

3. В диалоговом окне Resource Chooserщелкните на кнопке New String…(Новая строка…), чтобы отобразить диалоговое окно Create New Android String(Создать новую
строку Android)

4. Заполните поля String и New R.string, потом щелкните на кнопке OK, чтобы скрыть диалоговое окно Create New Android Stringи вернуться к окну Resource Chooser.

e 027

5. Автоматически выбирается новый строковый ресурс welcome. Щелкните на кнопке OK для выбора этого ресурса.

e 028

После выполнения указанных выше шагов в окне Properties появляется свойство Text. Запись в форме @string свидетельствует о том, что существующий строковый ресурс может быть выбран в файле strings.xml, а имя welcome говорит о том, что строковый ресурс выбран в данный момент времени.

e 029

Основное преимущество определения строковых значений заключается в облегчении локализации приложения, осуществляемой путем создания дополнительных
файлов XML-ресурсов для других языков. В каждом файле используется одно и то же имя в поле New R.stringи поддерживается интернационализированная строка в поле String. Потом Android может выбрать соответствующий файл ресурса, основываясь на языке, предпочтительном для пользователя устройства. Дополнительные сведения о локализации можно найти на веб-сайте developer.android.com/guide/topics/resources/localization.html.

Шаг 6. Настройка свойств Text size и Padding top компонента TextView — пиксели, независимые от плотности и от масштабирования

Размеры компонентов GUI и текста на экране Android могут определяться с помощью различных единиц измерения.
Документация, описывающая различные раз-меры экранов, находится на веб-сайте по адресу developer.android.com/guide/practices/screens_support.html и рекомендует для определения размеров компонентов GUI и других экранных элементов использовать пиксели, независимые от плотности, а размеры шрифтов задавать с помощью пикселей, независимых от масштабирования.
Единица измерения Описание
px Пиксель
dp или dip Пиксель, независимый от плотности
sp Пиксель, независимый от масштабирования
in Дюймы
mm Миллиметры

Задание размеров в пикселях, независимых от плотности (dp или dip), позволяет платформе Android автоматически масштабировать графический интерфейс пользователя в зависимости от плотности пикселей экрана физического устройства.
Размер пикселя, независимого от плотности, эквивалентен размеру физического пикселя на экране с разрешением 160 dpi (точек на дюйм). На экране с разрешением
240 dpi размер пикселя, независимого от плотности, будет масштабироваться на коэффициент 240/160 (то есть 1,5). Таким образом, компонент, размер которого составляет 100 пикселей, независимых от плотности, будет масштабирован до размера в 150 физических пикселей на таком экране. На экране с разрешением 120 точек на дюйм каждый независимый от плотности пиксель масштабируется на коэффициент 120/160 (то есть 0,75). Значит, 100 независимых от плотностей пикселей превратятся на таком экране в 75 физических пикселей. Пиксели, независимые от масштаба, масштабируются так же, как и пиксели, независимые от плотности, но их масштаб зависит также и от предпочитаемого размера шрифта, выбираемого пользователем.
А теперь увеличим размер шрифта для компонента TextViewи добавим небольшой отступ над компонентом TextView.
1. Чтобы изменить размер шрифта, выберите компонент TextView, а потом присвойте свойству Text size значение 40sp.
2. Чтобы увеличить отступ между верхним краем макета и компонентом TextView, выберите свойство Layout margin top propertyв разделе Misc(Разное) окна Properties
и присвойте ему значение 10dp.

e 030

Шаг 7. Настройка дополнительных свойств компонента TextView
Сконфигурируйте дополнительные свойства компонента TextViewследующим обра-зом:
1. Свойству Idприсвойте значение @+id/welcomeTextView.
2. Свойству Text colorприсвойте значение #00F(синий).
3. Свойству Text style присвойте значение bold. Чтобы выполнить эту операцию, щелкните в области поля Valu eэтого свойства, затем щелкните на кнопке с многоточием для отображения диалогового окна, в котором выбирается стиль шрифта. Установите флажок bold, потом щелкните на кнопке OK для выбора стиля текста.
4. Чтобы отцентрировать текст компонента TextView при его расположении в нескольких строках свойству Gravityприсвойте значение center. Для выполнения
этой операции щелкните в области поля Valueэтого свойства, потом щелкните на кнопке с многоточием для отображения диалогового окна параметров свойства
Gravity
e 031

Шаг 8. Отображение логотипов Android и Deitel Bug с помощью компонентов ImageViews
1. Перетащите компонент ImageView, находящийся в категории Images & Media (Изображения и медиаресурсы) палитры Visual Layout Editor, в окно Outline(Макет), . Новый компонент ImageViewпоявится ниже узла welcomeTextView.

e 032
e 033
e 034

2. Свойству Id компонента ImageView присвойте значение @+id/droidImageView. В окне Outline отобразится название объекта droidImageView.

e 035

3. Присвойте свойству Layout center horizontalобъекта droidImageViewзначение true, чтобы отцентрировать компонент ImageViewвнутри макета.

e 036

4. Полю Content Description присвоейте занчение @string/droidPic

e 037

5. Подобные действия делаем для рисунка bug.png. При-свойте свойству Id компонента значение @+id/bugImageView.

e 038

Ну и запустим наше первое приложение :)

e 039

усе работает! хотя работать то там особо и нечему :)

Комментариев нет:

Отправить комментарий