воскресенье, 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 для редактирования - то всегда текущий пакет закрывается, и автоматом открывается пакет на который ссылается файл манифеста только что тобой открытым.

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

суббота, 8 июня 2013 г.

Начало

Первое что мне пришло в голову это начать свой проект. Обычно для этого есть много различных средств для создания проекта для Андроида и их описано в инете не меряно. Но я погрешу на истину и расскажу только о том варианте, который сейчас начинает раскручиваться самой компанией Google, в рамках создания специализированной студийной оболочки, так и называемой в ходу, как Android Studio

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

Итак вся наша первоначальное знакомство с AIDE мы начнем с того как создать проект в рамках приведенной выше системы. Приложение дает возможность создавать вам проект в двух системах синтеза. Это


Android SDK c Java/Xml
здесь проекты используют полный набор средств системы создания проектоав на основе языка Java, так же включен интеректавный помошник, позволяющий неопытным юзерам использовать прямые вставки из API Android
Android NDK c C/C++
проекты созданые с использованием пакета NDK позволяют тебе создавать приложения на языке С и С++ - фактически в машинных кодах. В отличии от первого варианта - все приходится делать вручную

Начинаем с самого простого это кликаем по значку и тут же появляется приглашение к созданию любого из шести проектов. Нас сейчас не должны волновать все проекты, нас сейчас интересует только первый - который построен на создании рабочего приложения на основе Android SDK c Java/XML. В нашем случае мы выбираем конкретно "Android Hello World App" (см п.1).

Это очень простой проект, но достаточный для понимания и изучения всего процесса построения приложения в рамках текущего инструмента. Далее мы должны ввести имя проекта (см.п.2). Здесь желательно, чтобы не было проблем с совместимостью - использовать латиницу. Разработчики системы пректов, так же обязывают чтобы первая буква была прописная, но это необязательно.

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

Следующим обязательным моментом при создании проекта - это определение имени проекта (см.п.3). Правила для этого пункта имеют некоторые особености, главная из которых - это уникальность этого имени, так как оно фигурирует в GooglePlay - как идентификатор твоего приложения и проекта, поэтому форма этого поля такая необычная

Форма имени пакета состоит обычно из нескольких имен соединеных точкой и представляет собой формат доменого имени в in-arpa - т.е написаная шиворот на выворот.

Здесь допустимы любые комбинации, но только не должно быть прописных букв и названий проектов начинающихся с com.example.* Этот префикс пакета не принимает Google Play - для размещения приложений в его системе.

Мы не будем сейчас объяснять п.4 - для вас важно лишь то что там должна стоять галочка.

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

!!! все.