воскресенье, 20 декабря 2009 г.

Изменить ориентацию в эмуляторе

Чтобы изменить ориентацию в эмуляторе, нужно нажать Ctrl+F12, тогда, например, из портретной ориентации эмулятор перейдет в альбомную.

суббота, 19 декабря 2009 г.

Создание нового проекта для Андроида

Будем создавать новый проект для Андроида через командную строку. В Инете много руководств, которые описывают создание проекта для Андроида с помощью Eclipse, NetBeans и других IDE. Не то чтобы я противник IDE, но иногда полезно пару раз ручками самому все сделать.

Итак, нам опять потребуется тул android.exe из каталога /tools.

Для создания нового проекта нужно запустить следующую команду:

android create project -n test1 -t 3 -p d:\prj2\android\test1 -k com.android.acme.test1 -a Test1


В результате, в консольке будет выведен следующее:

Created project directory: d:\prj2\android\test1
Created directory D:\PRJ2\android\test1\src\com\android\acme\test1
Added file d:\prj2\android\test1\src\com\android\acme\test1\Test1.java
Created directory D:\PRJ2\android\test1\res
Created directory D:\PRJ2\android\test1\bin
Created directory D:\PRJ2\android\test1\libs
Created directory D:\PRJ2\android\test1\res\values
Added file d:\prj2\android\test1\res\values\strings.xml
Created directory D:\PRJ2\android\test1\res\layout
Added file d:\prj2\android\test1\res\layout\main.xml
Added file d:\prj2\android\test1\AndroidManifest.xml
Added file d:\prj2\android\test1\build.xml


Как видно, создана куча новых каталогов и файлов, в том числе файл сборки. Чтобы собрать приложение, необходимо, чтобы на машине была установлена Java и Ant.

Разберем параметры команды android create project. Этих параметров пять, и четыре из них обязательны. Итак:

-n - имя проекта. Необязательно.
-t - платформа, под которую проект собирается. Обязательно.
-p - путь с каталогу проекта. Обязательно.
-k - полное имя пакета. Обязательно.
-a - имя Activity. Обязательно.

Activity - это что-то вроде instance приложения в Андроиде.

Что еще очень удобно, так это то, что создается готовый (хотя и пустой) проект, который можно сразу же собрать и установить в Андроид. Для этого в файле сборки есть все необходимые таргеты.

Создание виртуального устройства (AVD)

После того, как я скачал SDK, я решил посмотреть, как выглядит эмулятор Андроида. Но не тут-то было! Запустив из командной строки emulator.exe, я получил следующую ошибку:

emulator: ERROR: You did not provide the name of an Android Virtual Device
with the '-avd ' option. Read -help-avd for more information.

If you *really* want to *NOT* run an AVD, consider using '-data '
to specify a data partition image file (I hope you know what you're doing).


Для того, чтобы эмулятор заработал, необходимо ему указать имя виртуального устройства, которое он будет запускать. Перед этим устройство, естественно, надо создать. Так как я установил Android SDK на чистую машину, то никакого устройства на ней, естественно, не было создано.

Хорошо, тогда разберемся, как же создавать виртуальное устройство (AVD - Android Virtual Device).

Сначала просмотрим список всех AVD. Наберем в командной строке следующее:

android list avd

В ответ получим:
Android Virtual Devices:


Т.е. никаких устройств еще не создано. Что ж, создадим нашу первую АВэДэшку. При создании AVD необходимо указывать target, т.е. платформу, которую будет эмулировать это AVD. Просмотр списка платформ делается командой

android list targets

У меня на машине эта команда выдала вот такой длинющий список (это потому что я скачал и установил все компоненты, которые были указаны в SDK Manager):

Available Android targets:
id: 1 or "android-2"
Name: Android 1.1
Type: Platform
API level: 2
Revision: 1
Skins: HVGA (default), HVGA-L, HVGA-P, QVGA-L, QVGA-P
id: 2 or "android-3"
Name: Android 1.5
Type: Platform
API level: 3
Revision: 1
Skins: HVGA (default), HVGA-L, HVGA-P, QVGA-L, QVGA-P
id: 3 or "android-4"
Name: Android 1.6
Type: Platform
API level: 4
Revision: 1
Skins: HVGA (default), QVGA, WVGA800, WVGA854
id: 4 or "android-5"
Name: Android 2.0
Type: Platform
API level: 5
Revision: 1
Skins: HVGA (default), QVGA, WQVGA400, WQVGA432, WVGA800, WVGA854
id: 5 or "android-6"
Name: Android 2.0.1
Type: Platform
API level: 6
Revision: 1
Skins: HVGA (default), QVGA, WQVGA400, WQVGA432, WVGA800, WVGA854
id: 6 or "Google Inc.:Google APIs:3"
Name: Google APIs
Type: Add-On
Vendor: Google Inc.
Revision: 3
Description: Android + Google APIs
Based on Android 1.5 (API level 3)
Libraries:
* com.google.android.maps (maps.jar)
API for Google Maps
Skins: QVGA-P, HVGA-L, HVGA (default), QVGA-L, HVGA-P
id: 7 or "Google Inc.:Google APIs:4"
Name: Google APIs
Type: Add-On
Vendor: Google Inc.
Revision: 2
Description: Android + Google APIs
Based on Android 1.6 (API level 4)
Libraries:
* com.google.android.maps (maps.jar)
API for Google Maps
Skins: WVGA854, HVGA (default), WVGA800, QVGA
id: 8 or "Google Inc.:Google APIs:5"
Name: Google APIs
Type: Add-On
Vendor: Google Inc.
Revision: 1
Description: Android + Google APIs
Based on Android 2.0 (API level 5)
Libraries:
* com.google.android.maps (maps.jar)
API for Google Maps
Skins: WVGA854, WQVGA400, HVGA (default), WQVGA432, WVGA800, QVGA
id: 9 or "Google Inc.:Google APIs:6"
Name: Google APIs
Type: Add-On
Vendor: Google Inc.
Revision: 1
Description: Android + Google APIs
Based on Android 2.0.1 (API level 6)
Libraries:
* com.google.android.maps (maps.jar)
API for Google Maps
Skins: WVGA854, WQVGA400, HVGA (default), WQVGA432, WVGA800, QVGA

Допустим, что мы хотим создать эмулятор для Android 1.6. В списке эта платформа идет с id=3. Тогда в командной строке нужно набрать:

android create avd -n avd1 -t 3

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

Android 1.6 is a basic Android platform.
Do you wish to create a custom hardware profile [no]n
Created AVD 'avd1' based on Android 1.6, with the following hardware config:
hw.lcd.density=160

Вы уже поняли, что было создано устройство с именем "avd1". Теперь попробуем запустить эмулятор:

emulator -avd avd1

Вуаля: эмулятор запущен, и мы видим следующее окошечко:



В разделе документации Developing - Tools - AVDs можно подробнее прочитать о настройках АВэДэшечек. Файлы конфигурации AVD лежат по следующим адресам: ~/.android/avd/ (для Linux/Mac), C:\Documents and Settings\\.android\ для Windows XP, и C:\Users\\.android\ для Windows Vista.

Ярлыки: ,