28 февраля 2014 г.

Структура проекта Андроид (часть 2)

Поскольку информацию приходится собирать по частям из разных источников поэтому приходится одну тему разбивать на несколько частей.
И так поехали еще раз кратенько по каталогам в проекте Андроид.
AP00026
res/layout
В этом каталоге находятся файлы разметки в формате XML которые определяют внешний вид окна и расположение на нем элементов управления. Само окно управляется кодом соответствующей Активности (Activity). В моем примере это файл layout_main.xml.
Каждый файл разметки представляет собой окно приложения.
res/drawable-…
В этих каталогах хранятся графические файлы, предназначенные для отображения на экранах различных плотностей.
res/values
Здесь хранятся XML файлы, в которых хранятся общие константы для всего приложения: текст, цвета, стили и т.п.
Файл R.java
Каждый раз при компиляции проекта, среда разработки создает класс R и помещает его соответственно в файл с названием R.java. Поэтому в ручную этот файл править нет ни какого смысла и необходимости, поскольку он все равно будет перезаписан при каждой новой компиляции. Об этом же говорит и комментарий в начале данного файла. Класс R (от resources) используется для обращения к ресурсам, которые расположены в каталоге res.
Класс R содержит набор внутренних классов с идентификаторами ресурсов, которые создает в зависимости от содержимого каталога res.
  • drawable – для каталога res/drawable;
  • layout – для каталога res/layout;
  • string – для идентификаторов строк в файле string.xml;
  • attr – для дополнительных атрибутов, определяемых во внешнем xml файле.
Файл ActivityMain.java
Это файл создала среда разработки (ADT plugin) с тем именем, что мы задали. Код этого файла как  раз и отображает на экране файл разметки layout_main.xml.

package com.proandroid.ap0001;

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

public class ActivityMain extends Activity {

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

 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
  // Inflate the menu; this adds items to the action bar if it is present.
  getMenuInflater().inflate(R.menu.activity_main, menu);
  return true;
 }

}
Строка номер 12 как раз и выводит на экран содержимое файла разметки layout_main.xml.
Пока что нужно запомнить что Активность (Activity) – это код на языке Java, который управляет отображением и поведением окна приложения и его элементов описанных в файле Разметки (layout).Если в приложении будет несколько окон, то для каждого надо создавать отдельный класс Активности, наследуемый от базового класса Activity.

Комментариев нет:

Отправить комментарий