Android OS. Пишем первое приложение
Android OS - операционная система для мобильных устройств, основанная на ядре Linux. Первая версия датируется октябрем 2008 года. Сегодня довольно много производителей представили свои модели на базе именно этой ОС. Вот недавно и я купил себе один из них, а именно HTC Tattoo. Естественно я загорелся идеей написание собственных программ для этой платформы. В этой статье я расскажу тебе как написать свое первое приложение для современной мобильной ОС.
Инструментарий
Прежде чем что-то писать, надо понять на каком языке, и в какой среде это делать. В качестве среды проще всего использовать Eclipse. Кроме него нам понадобится JDK, Android SDK, и специальный плагин для Eclipse который значительно упростит нам жизнь. О том как все это устанавливать я писать не буду. При минимальных знаниях английского об этом можно прочитать на http://developer.android.com/sdk/installing.html.
Для каждой версии ОС, а их уже достаточно много, SDK свой, и качать все их не стоит (они весят больше 1 Гб). Лучше скачать лишь ту версию, под которую пишется программа, естественно, если она создается для распространения в массы, стоит подумать о работоспособности под всеми основными версиями платформы.
В качестве языка программирования (для основного кода) применяется Java, а для создания пользовательского интерфейса используется и XML. Кроме того интерфейс можно создавать интерактивно, перемещая компоненты мышкой на форму.
Hello, World!
Сегодня мы не будем нарушать традицию и начнем наше изучение с приложения «Привет, Мир!», точнее даже с двух его версий.
В Eclipse наживаем File->New->Project, в списке выбираем Android->Android Project и жмем Next. Далее вводим имя проекта например HelloWorld, и выбираем версию SDK. Далее нужно заполнить 3 поля с неочевидным смыслом. Я заполнил их следующими значениями:
Application name: Hello, World! Package name: com.example.helloworld Create Activity: HelloWorld
Об их смысле я скажу чуть позже, а сейчас жмем Finish. Проект состоит из нескольких папок:
src – исходный код
gen – файлы сгенерированные самой Java
Android 1.6 – у вас может быть другая версия, часть SDK
res – файлы ресурсов, содержит несколько подкаталогов, сейчас самым важным для нас будет layout.
В файле HelloWorld.java уже есть какой-то минимальный код. Давайте немного модифицируем его. Модифицируете его так, чтобы он имел следующий вид.
package com.example.helloworld; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; public class HelloWorld extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView tv = new TextView(this); tv.setText("Hello World!"); setContentView(tv); } }
Мы добавили в наше приложение возможность доступа к TextView – компоненту для отображения текста. Программирование осуществляется через обработку событий. Событие onCreate вызывается при первом запуске приложения. Там мы создаем текстовое поле, и устанавливаем для него текст.
Вызовом setContentView(tv) мы отображаем наше поле на экране. Попробуем запустить проект, но тут выскакивает сообщение о том, что нет совместимого девайса и нужно его создать. Другими словами нужно создать виртуальную машину-телефон на котором запустится наше приложение.
Для того что-бы его создать жмем New, в окне вводим любое имя, а так же выбираем версию ОС, остальные поля можно не заполнять. Как видно можно создать по виртуальному девайсу на каждую версию ОС и проверять программу на работоспособность.
Единственный минус это то, что виртуальные девайсы по умолчанию сохраняются в папке пользователя, и в пути к ней не должно быть русских букв. Пробуем еще раз и ждем порядка минуты пока загрузится эмулятор, и видим наше приложение на экране. На серой полосе в верхней части экрана мы видим надпись Hello, World! – это значение поля Application name, заполняемое при создании проекта, а далее на черном фоне видим надпись Hello World! – как раз тот текст который мы установили для нашего TextView. К сожалению таким образом мы не сможем отобразить на экране больше одного компонента, а это совсем не то, что нам нужно, поэтому придется еще немного модифицировать код. А точнее вернуться к его первоначальному виду.
Вместо создания TextView там была всего одна строка setContentView(R.layout.main). Но что же такое R.layout.main? R – это служебный класс, который находится в папке gen, да и layout тоже. Ну а если проще то на экране будет отображен файл main.xml из папки layout. Откройте его. Судя по первой строке это обычный xml файл. В нем содержится описания компонентов и их свойств. Некоторые компоненты являются контейнерами и содержат в себе другие компоненты. Пример такого уже приведен во второй строке. Это LinearLayout. Он определяет способ расположения других компонентов друг относительно друга, наряду с ним существует несколько других таких компонентов. Поговорим о его свойствах, установленных по умолчанию.
android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"
Первое означает, что компоненты будут располагаться вертикально друг под другом, а два других то, что LinearLayout будет занимать все место, которое для него предназначено, в данном случае весь экран. У него есть еще множество других свойств, но это выходит за рамки данной статьи. Далее в нем содержится уже знакомый нам TextView.
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>Два первых свойства нам знакомы. Значение второго означает то, что компонент будет такой высоты которая нужна, и будет ее менять если это нужно. А вот значением третьего свойства является какое-то странное. Это ссылка на строку которая определена в ресурсах, а именно в файле strings.xml и имеет имя hello. В моем случае оно имеет значение Hello World, HelloWorld!. Запустив приложение мы и увидим его в окне эмулятора.
Заключение
На этом я заканчиваю сегодняшнюю статью. Она была только обзорной и ввела лишь в азы программирования для андроида. Если она кого-то заинтересовала то напишите мне на почту или на форуме и возможно в следующем номере появится следующая статья в которой мы и дальше будем разбираться в программировании для этой ОС.
Written by: Крылов Егор
E-mail:
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
- 8600 просмотров


