Пример Hello World для Android

Давайте начнём настоящее программирование на основе фреймворка Android. Прежде чем начать писать свой первый пример с использованием Android SDK, убедитесь, что вы следовали инструкциям вAndroid - Environment Setupруководстве по завершению настройки среды разработки Android. Также я предполагаю, что у вас есть некоторые знания об IDE Eclipse.

Теперь давайте начнем писать простое Android-приложение, которое может вывести "Hello World".

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

Первый шаг — создать простое Android-приложение с помощью Eclipse IDE. Выберите пункты File -> New -> Project и в конце выберите Android New Application из списка мастеров. Теперь используйте следующее окно мастера, чтобы назвать приложение HelloWorld:

图片

Затем следуйте предоставленным инструкциям, оставляя все входные данные по умолчанию, до последнего шага. После успешного создания проекта вы увидите следующий интерфейс проекта -

图片


Структура Android-приложения

Прежде чем запускать приложение, вам нужно ознакомиться с некоторыми каталогами и файлами в Android-проекте -

Hello World示例

Порядковый номер Папка, файл и описание
1 src: Содержит все исходные файлы .java в проекте. По умолчанию включает исходный файл MainActivity.java, соответствующий классу активности, который будет запущен при запуске приложения через значок приложения.
2 gen: Содержит файл .R, созданный компилятором, который ссылается на все ресурсы в проекте. Этот файл нельзя изменять.
3 bin: Эта папка содержит файл пакета .apk, собранный Android с помощью APT, а также все остальное, необходимое для запуска Android-приложения.
4 res/drawable-hdpi: Этот каталог содержит все drawable-объекты, предназначенные для экранов с высокой плотностью.
5 res/layout: В этом каталоге хранятся файлы, используемые для определения пользовательского интерфейса.
6 res/values: В этом каталоге хранятся различные XML-файлы, содержащие набор ресурсов, например определения строк и цветов.
7 AndroidManifest.xml: Это файл манифеста приложения, в котором описываются основные характеристики приложения и определяются его различные компоненты.

В следующих разделах приведён обзор некоторых важных файлов приложения.


Файл главной активности

Код главной активности находится в Java-файле MainActivity.java. Это фактический файл приложения, который будет преобразован в исполняемый файл Dalvik и запущен. Ниже приведён код по умолчанию, сгенерированный мастером приложений для приложения Hello World -

package com.example.helloworld;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.support.v4.app.NavUtils;

public class MainActivity extends Activity {

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

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

Здесь R.layout.activity_main ссылается на файл activity_main.xml в каталоге res/layout. onCreate() — один из многих методов, вызываемых после загрузки активности.


Файл манифеста

Независимо от того, какой компонент вы разрабатываете в составе своего приложения, необходимо объявить все компоненты в файле manifest.xml, расположенном в корневом каталоге проекта приложения. Этот файл является интерфейсом между операционной системой Android и вашим приложением; поэтому, если вы не объявите свои компоненты в этом файле, они не будут распознаны операционной системой. Например, манифест-файл по умолчанию выглядит следующим образом:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.helloworld"
   android:versionCode="1"
   android:versionName="1.0" >

   <uses-sdk
      android:minSdkVersion="8"
      android:targetSdkVersion="22" />

   <application
       android:icon="@drawable/ic_launcher"
       android:label="@string/app_name"
       android:theme="@style/AppTheme" >

       <activity
          android:name=".MainActivity"
          android:label="@string/title_activity_main" >

          <intent-filter>
             <action android:name="android.intent.action.MAIN" />
             <category android:name="android.intent.category.LAUNCHER"/>
          </intent-filter>

       </activity>

   </application>
</manifest>

Здесь...Между тегами <application> находятся компоненты, связанные с приложением. Атрибут android:icon задаёт значок приложения, расположенный в res/drawable-hdpi. Это приложение использует изображение с именем ic_launcher.png в папке drawable.

Тег <activity> используется для указания активности. Атрибут android:name задаёт полное имя подкласса класса Activity. Атрибут android:label задаёт строку, используемую для имени активности. Вы можете использоватьтег <activity> для указания нескольких активностей.

Действие intent-фильтра называется android.intent.action.MAIN, что указывает на то, что эта активность используется в качестве точки входа приложения. Категория intent-фильтра называется android.intent.category.LAUNCHER, что указывает на то, что приложение можно запустить с помощью значка лаунчера устройства.

@string ссылается на strings.xml (о котором будет рассказано позже). Поэтому @string/app_name ссылается на app_name, определённый в strings.xml, который на самом деле является "Hello World". Аналогично обычно используются и другие строки в приложении.

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

  • Элемент Activity
  • Элемент Service
  • Элемент Broadcast Receiver
  • Элемент Content Provider

Файл strings

Файл strings.xml находится в папке res/values и содержит весь текст, используемый приложением. Например, названия кнопок, меток, текст по умолчанию и другие подобные строки. Этот файл отвечает за их текстовое содержимое. Файл строк по умолчанию выглядит так:

<resources>
   <string name="app_name">HelloWorld</string>
   <string name="hello_world">Hello world!</string>
   <string name="menu_settings">Settings</string>
   <string name="title_activity_main">MainActivity</string>
</resources>

Файл R

Файл gen/com.example.helloworld/R.java является связующим звеном между Java-файлами activity, такими как MainActivity.java, и ресурсами, такими как strings.xml. Это автоматически сгенерированный файл; не изменяйте содержимое R.java. Ниже приведён пример файла R.java:

/* AUTO-GENERATED FILE.  DO NOT MODIFY.
 *
 * This class was automatically generated by the
 * aapt tool from the resource data it found.  It
 * should not be modified by hand.
 */

package com.example.helloworld;

public final class R {
   public static final class attr {
   }

   public static final class dimen {
      public static final int padding_large=0x7f040002;
      public static final int padding_medium=0x7f040001;
      public static final int padding_small=0x7f040000;
   }

   public static final class drawable {
      public static final int ic_action_search=0x7f020000;
      public static final int ic_launcher=0x7f020001;
   }

   public static final class id {
      public static final int menu_settings=0x7f080000;
   }

   public static final class layout {
      public static final int activity_main=0x7f030000;
   }

   public static final class menu {
      public static final int activity_main=0x7f070000;
   }

   public static final class string {
      public static final int app_name=0x7f050000;
      public static final int hello_world=0x7f050001;
      public static final int menu_settings=0x7f050002;
      public static final int title_activity_main=0x7f050003;
   }

   public static final class style {
      public static final int AppTheme=0x7f060000;
   }
}

Файл разметки

activity_main.xml — это файл разметки, расположенный в каталоге res/layout. На него ссылаются, когда приложение строит свой пользовательский интерфейс. Вы будете очень часто изменять этот файл, чтобы менять разметку приложения. В приложении "Hello World" этот файл имеет разметку по умолчанию со следующим содержимым:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="match_parent" >

   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_centerHorizontal="true"
      android:layout_centerVertical="true"
      android:padding="@dimen/padding_medium"
      android:text="@string/hello_world"
      tools:context=".MainActivity" />

</RelativeLayout>

Это пример простого RelativeLayout; больше содержимого будет объяснено в отдельной главе. TextView — это виджет Android, используемый для построения графических пользовательских интерфейсов. Он содержит множество различных атрибутов, таких как android:layout_width, android:layout_height и т. д., используемых для установки его ширины и высоты, среди прочего. @string ссылается на файл strings.xml в папке res/values. Следовательно, @string/hello_world ссылается на строку с именем hello, определенную в strings.xml: "Hello World!".

Запуск приложения

Давайте попробуем запустить приложение Hello World!, которое мы только что создали. Предполагая, что вы уже создали AVD при настройке окружения. Чтобы запустить приложение из Eclipse, откройте файл активности в вашем проекте и нажмите图片значок. Eclipse устанавливает приложение на AVD и запускает его. Если все пройдет гладко, окно эмулятора отобразится следующим образом -

图片

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

Другие расширения