воскресенье, 9 июня 2013 г.

Манифест

Итак мы создали свой первый проект для Андроида и теперь следует переходить к его частностям, и конкретике.

Первое что мы сделаем это найдем наш проект в системе "файловых координат" вашего девайса, и поэтому я для вас очертил его местоположение на этом рисунке в виде пути к головной папке всех проектов в вашей системе (см. текст обведенный красным прямоугольником). Но это не всегда обязательно так. Реально проект может находится где угодно, но только проекты созданые из ядра инструментария AIDE. Итак полный путь к папке, с учетом имени твоего проекта будет таким

/sdcard/AppProjects/Имя_проекта

Открываем эту папку и мы видим, что в ней несколько других папок и файлов. На момент начала проекта нас интересует пока только - 2 папки (res, src) и один файл, который во всех проектах имеет одинаковое название, и который определяет наш текущий проект . Этот файл называется - AndroidManifest.xml

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

<?xml version="1.0" encoding="utf-8"?>

Это объявление говорит всем, что далее следует текст формата xml версии 1.0 и в кодировке utf-8. Именно эта декларация позволяет всем без дополнительных проверок использовать кодировку в том виде как она представлена - и в конечный результат вставлять эти данные так как требуется в реалии. К примеру если выходной документ будет сформирован в другой кодировке, например КОИ-8Р (на сегодня экзот))), то приведенный текст будет перекодирован из utf-8 соответствено в кои-8.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.mycompany.myapp"
  android:versionCode="1"
  android:versionName="1.0" >

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

  <application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >
    <activity
      android:label="@string/app_name"
      android:name=".MainActivity" >
      <intent-filter >
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
    </activity>
  </application>
</manifest>

Здесь приведен самый главный файл твоего проекта, который определяет всю структуру его и фактическую начинку. Сейчас мы не будем расшифровывать каждый атрибут каждого тега манифеста, а лишь остановимся на главной структуре его.

Любой манифест всегда начинается с тега manifest, и им заканчивается, а его главные атрибуты oпределяют


xmlns:android="http://schemas.android.com/apk/res/android"
пространство имен - этот параметр всегда применяется в любом документе нашего проекта как коннектор пространства имен в системе android
package = "com.mycompany.myapp"
идентификатор пакета, который однозначно определяет принадлежность к проекту

Следующий, правда не обязательный, но информационно очень нужный тег определяющий диапазон использования нашего проекта на различных девайсах это тег uses-sdk. Его атрибуты мы все объяснять не будем сейчас, но остановимся лишь на двух, а именно

android:minSdkVersion="8"
атрибут номера версии SDK минимального использования в девайсах. Если в твоем девайсе используется SDK более ранней версии, чем указан в этом параметре, то твоему пакету будет отказано в установке в девайс
android:targetSdkVersion="16"
параметр указывает на текущую версию SDK. Этот параметр часто становится источником многих ошибок, из-за которых пакет после компиляции и установке в девайс не запускается, и причина здесь в соответствии версии SDK твоего девайса и установленной в параметре. В любом случае версия твоего SDK должна быть равна или меньше этого параметра, иначе при запуске пакет запустится с ошибкой

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

И еще если ты открываешь файл манифеста в AIDE для редактирования - то всегда текущий пакет закрывается, и автоматом открывается пакет на который ссылается файл манифеста только что тобой открытым.

!! до встрече.