Главная » Разработка для Android » Компиляция и отладка приложений

0

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

В меню Run выберите  пункт Run или Debug — для запуска  приложения в соответствии с сохраненными настройками либо Run Configurations,  либо Debug Configurations — для выбора конкретной  сохраненной  конфигурации.

Если  вы используете плагин  ADT, компиляция или отладка  вашего приложения будет происходить  следующим образом:

текущий  проект скомпилируется в исполняемый файл  платформы

Android с расширением .dex;

исполняемый файл  и внешние  ресурсы  упакуются  в файл  пакета

Android с расширением .apk;

запустится выбранное виртуальное устройство (если вы выбрали AVD, и он в данный момент не запущен);

приложение установится на целевое устройство;

приложение запустится.

Для отладки используется отладчик Eclipse, в нем можно задавать точки остановки для отладки кода ваших программ.

Если все выполнено правильно, вы увидите новую Активность, запущен- ную в эмуляторе (рис. 2.7).

Рис. 2.7.

Изучаем код приложения Hello World

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

Активность — это базовый класс для визуальных и интерактивных ком- понентов вашего приложения. Проще говоря, он соответствует классу Form в традиционных языках  программирования. В листинге  2.1 приведен  код класса на основе Активности. Обратите  внимание,  что он наследует  класс Активности, перекрывая метод onCreate.

Листинг 2.1. Hello World

package com.paad.helloworld;

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);

}

}

В приведенном  шаблоне  не хватает макета визуального интерфейса. В Android визуальные компоненты называются Представлениями (Views), которые соответствуют компонентам традиционных языков программиро- вания.

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

@Override

public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main);

}

Ресурсы проектов Android хранятся в папке res, которая находится в де- реве папок вашего проекта. Она включает  подпапки  drawable, layout и values. Плагин  ADT интерпретирует эти ресурсы для обеспечения  доступа к ним на этапе разработки  через переменную R (глава 3).

В листинге 2.2 приводится код макета пользовательского интерфейса из файла main.xml, который создается шаблоном проекта Android.

Листинг 2.2. Макет проекта Hello World

<?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="Hello World, HelloWorld"

/>

</LinearLayout>

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

Чтобы  получить  доступ к элементам  интерфейса в коде своих про- грамм, необходимо добавить атрибут идентификатора к объявлениям этих элементов в XML-файле. Вы можете использовать метод findViewById для получения ссылки на каждый из обозначенных таким способом элементов. В приведенном ниже отрывке XML-кода продемонстрировано добавление атрибута ID к виджету Text View в шаблоне приложения Hello World:

<TextView android:id="@+id/myTextView" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Hello World, HelloWorld"

/>

Вот так можно получить доступ к этому элементу в коде программы:

TextView myTextView = (TextView)findViewById(R.id.myTextView);

Альтернативный способ (хотя и нерекомендуемый) — объявление ма- кета непосредственно в коде программы (листинг  2.3).

Листинг 2.3. Объявление макета в коде программы

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

LinearLayout.LayoutParams lp;

lp = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);

LinearLayout.LayoutParams textViewLP;

textViewLP = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);

LinearLayout ll = new LinearLayout(this);

ll.setOrientation(LinearLayout.VERTICAL);

TextView myTextView = new TextView(this);

myTextView.setText("Hello World, HelloWorld");

ll.addView(myTextView, textViewLP);

this.addContentView(ll, lp);

}

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

В главе 4 вы научитесь  создавать  комплексные макеты, а также до- бавлять к ним представления.

Источник: Майер P. Android 2 : программирование приложений для планшетных компьютеров и смартфонов : [пер. с англ. ] / Рето Майер. — М. : Эксмо, 2011. — 672 с. — (Мировой компьютерный бестселлер).

По теме:

  • Комментарии