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

| 25.02.2014

На прошлом уроке мы создали первое приложение под Андроид. Сейчас настало время узнать про структуру приложения. Как говорится, «что, где и для чего».

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

Если мы взглянем на боковую колонку в левой части редактора, то увидим обзор основных папок и файлов созданного проекта FirstApp:

src — здесь находится «исходный код» нашего приложения (java-классы). Как вы помните, пока что мы создали всего один класс MainActivity.java, который отвечает за отображение первого (и единственного) экрана с выводом приветствия. Сам класс хранится в «пакете» ru.androiddocs.firstapp

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

gen — хранилище генерируемых системных файлов. В частности, здесь располагается файл R.java, в котором хранятся идентификаторы всех ресурсов, создаваемых в проекте (строковые ресурсы и т. п.). Изменять здесь что-то вручную крайне не рекомендуется

Android 4.4, Android Private Libraries — системные файлы и библиотеки

bin — скомпилированные файлы проекта. В частности, здесь можно найти созданный архив приложения FirstApp.apk, который можно скопировать на свой девайс и установить

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

libs — различные библиотеки, используемые приложением

res — ресурсы проекта. Здесь имеются ресурсы различного типа:

- иконки и картинки приложения для различного типа и характеристик экрана (хранятся в папках drawable-…)
- xml-файлы, описывающие структуру и элементы экрана (layout)
- ресурсы, описывающие элементы меню (menu)
- константы различного типа (values), например, строковые данные (strings.xml), стили (styles.xml) и т.п.

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

AndroidManifest.xml — файл описания проекта (поддерживаемые версии SDK, версия приложения и т.п.)

Данная структура создается автоматически при создании нового проекта в IDE (например, Eclipse).

Ключевую роль при запуске нашего приложения является класс MainActivity.java. Как видно из кода, здесь содержится всего один метод onCreate, который отрабатывается при запуске приложения.

1
2
3
4
5
6
7
8
9
10
11
12
13
package ru.androiddocs.firstapp;
 
import android.app.Activity;
import android.os.Bundle;
 
public class MainActivity extends Activity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }    
}

В методе onCreate устанавливается компоновка или внешний вид экрана с помощью метода setContentView(R.layout.activity_main). В качестве параметра передается id схемы компоновки — это файл activity_main.xml, расположенный в каталоге layout. Если мы захотим при запуске отображать другой экран, то нам нужно просто заменить в скобках идентификатор на id другого layout.

activity_main.xml построен с помощью следующего кода:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<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"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >
 
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />
 
</RelativeLayout>

Layout может иметь различную структуру, но в нашем случае используется RelativeLayout (более подробно об этих типах мы поговорим позднее). Сам макет содержит всего один элемент или виджет — TextView, который служит обычно для отображения какого-либо текста. Сам текст здесь не виден, а все потому, что мы подгружаем его из файла строковых ресурсов strings.xml, обращаясь к нему по идентификатору:

1
android:text="@string/hello_world"

Такой способ более предпочтителен, так как все текстовые данные хранятся в одном файле, и в дальнейшем можно будет легко добавить новую языковую версию. Если мы заглянем в содержимое файла strings.xml, то увидим простую структуру:

1
2
3
4
5
6
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">FirstApp</string>
    <string name="action_settings">Settings</string>
    <string name="hello_world">Hello world!</string>
</resources>

Попробуйте сейчас изменить текст ресурса hello_world. Сохраните и вновь запустите приложение.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*