» Программирование Android

Создание первого Android-приложения

Итак, имеется: любое мобильное Android-устройство, среда для разработки программ и огромное желание создавать собственные приложения. Что делать дальше? Об этом мы сейчас и поговорим.

Как настроить среду разработки мы уже разобрались, так что теперь перейдем к активным действиям. Первым приложением у нас будет классическое «Hello World». Какой функционал оно должно поддерживать? Во-первых, данная программа должна быть доступна из меню приложений в лаунчере после установки. Во-вторых, после запуска приложения должен будет появиться минимальный пользовательский интерфейс с отображением надписи «Hello World». Вот и всё – такие вот элементарные задачи на первый раз для начинающего кодера, которые помогут лучше разобраться в принципах работы при написании своей программы. Так что если огромного опыта программирования на разных язык у вас за плечами нет, то выполнение такого вот простого «домашнего задания» будет очень полезным.

Что ж, запускаем Eclipse и создаём новый Android-проект. Можно ввести следующие данные:

Project name – имя для создаваемого проекта.

Build target – платформа, под которую будем разрабатывать приложение. Если выбрать «Google API’s», то нужные для работы с сервисами Google (например, Google Maps) библиотеки будут встроены в проект автоматически.

Application name – имя программы, видимое для пользователя при её запуске.

Package name – имя пакета, которое обязательно должно быть уникальным среди всех установленных на Android-девайсе пакетов.

После создания проекта, Eclipse построит стандартное дерево каталогов и подготовит основные файлы для Android-приложения. Основным для нас является HelloWorld.java, который отвечает за отображаемую приложением информацию и её обработку. Попытаемся вывести желаемый текст на экран. Посмотрим, что необходимо изменить в коде:

Класс Activity – это один из четырех основных классов, который используются в приложениях Android. Метод onCreate будет вызван каждый раз после запуска приложения, таким образом, сюда может быть помещена функция для вывода нужного нам текста на экран устройства. Приводим код вот в такой вид:

package com.example.hello.world;
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);
   }
}

Мы подключили класс для отображения текста, кроме того, осуществили вывод строки «Hello World». Класс TextView предназначен для отображения текстовой информации пользователю и для её редактирования.

В принципе, первое работоспособное приложение уже создано. Конечно, программный пакет Eclipse изрядно нам помог, но все же. Созданное приложение можно запустить на Android-девайсе или через эмулятор. Удобно, кстати, запускать приложения через режим отладки по USB. При этом можно выполнять запуск приложения прямо в Eclipse на компьютере, но запустится оно уже на мобильном устройстве.

Однако полученный пользовательский интерфейс не блещет дизайнерскими изысками, мягко говоря. Попробуем задать пользовательскую оболочку при помощи xml-файла в layout. В дереве ресурсов открываем файл res/layout/main.xml. Для редактирования файлов желательно использовать не визуальный интерфейс, а обычный, потому как таким образом нагляднее можно проследить проделываемые изменения в коде.

Итак, открыв файл видим приблизительно такую картину:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    />
</LinearLayout>

Что означают те или иные теги мы уже разбирали в другом материале, посвященном программированию на операционной системе Android. Важнее в данном случае то, что в коде уже имеется объявленная автоматически строка «hello». Осталось изменить присвоенное ей по умолчанию значение. Переходим в strings.xml, который находится в директории values. После его открытия видим объявление всех переменных нашего проекта.

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">Hello World, HelloWorld!</string>
    <string name="app_name">Hello World</string>
</resources>

Изменяем данное значение со стандартного скучного «hello» на своё значение. Пускай это будет «Hello World, this is my first android application with XML Layout UI».

Изменения сохраняем, после чего переходим к редактированию основного файла нашего проекта, а именно – HelloWorld.java. Применяем подготовленный ранее main.xml по отношению к Activity нашего приложения. Редактируем код следующим образом:

package com.example.hello.world;

import android.app.Activity;
import android.os.Bundle;

public class HelloWorld extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}

После этого в setContentView будет передаваться не объект TextView, а ссылка на указанный ресурс layout. R.layout.main – это объект, который компилируется из файла main.xml. Но нужно помнить, что R.java класс генерируется автоматически только в SDK Eclipse, а потому для его генерации в других средах разработки потребуются дополнительные действия.

Что ж, проверим результат, для этого запускаем программу и смотрим, что появилось на экране. Естественно, если всё было сделано правильно, то будет выведено сообщение «Hello World, this is my first android application with XML Layout UI». Вот мы и успешно создали первое приложение для операционной системы Android, без особых проблем.