Android: Как создатьсвое первое приложение
Кубан Джакипов2011
web: https://sites.google.com/site/bishkekgtug/twitter: http://twitter.com/#!/BishkeksGTUG
Кто я?
● В команде Сайбирс (sibers.com)● Люблю открытые разработки● Опыт разработки андроид приложений 6+
мес.● Участник Bishkek GTUG
Содержание
1. Краткий обзор платформы Андроид 2. Средства разработки3. Установка окружения4. Обзор Android SDK4. Знакомство с базовыми компонентами Андроид5. Вопросы
Краткий обзор платформы Андроид
2005 годиюль — Компания Google купила Android Inc.
2007 год5 сентября —было официально объявлено о создании группы компаний Open Handset Alliance (OHA)23 сентября — первое устройство на базе платформы Android T-Mobile G1(HTC Dream).
2009 год30 апреля — вышло официальное обновление Android 1.5 (Cupcake).15 сентября — вышла версия Android 1.6 (Donut).26 октября — выпущена версия Android 2.0 (Eclair).
2010 годмай — выпущена Android 2.2 (FroYo)декабрь — выпущена Android 2.3 (Gingerbread)
2011 год22 февраля — выпущена Android 3.0 (Honeycomb)19 октября - выпущена Android 4.0 (Ice Cream Sandwich)
Краткая история
Цифры
Деление рынка смартфонов
* source Nielsen
Средства разработки
Разработка
На каких языках программирования можно разрабатывать приложения на андроид?
Разработка1. Java 2. Кофеин для андроида
● кросс-платформенные средства разработки○ PhoneGap (JavaScript, HTML5, CSS3○ Appcelerator Titanium
● альтернативные языки Ruboto (JRuby), Mirah, Scala, Clojure, Kawa● нативные инструменты разработки (NDK) С/C++● несвободные альтернативы
○ MonoDroid○ Adobe AIR (в след. презентации)
● Scripting Layer for Android (SL4A) Beanshell, JavaScript (Rhino), JRuby, Lua, Python, Perl, PHP, Shell, Tcl
● Mobile Boilerplate● Rhomobile Rhodes
IDE
● Eclipse● Netbeans● IntelliJ IDEA
Установка окружения
Установка окружения
1. Установка JDK (java.com)2. Установка Android SDK (d.android.com)3. Устанавливаем плагин ADT на Eclipse
Установка JDK
Скачиваем Java JDK с java.com
Установка Android SDK
Скачиваем и распаковываем Android SDK с d.android.com
Установка ADT
1. Добавляем репозиторий https://dl-ssl.google.com/android/eclipse (Help -> install new software)
2. Устанавливаем Eclipse ADT3. Настраиваем ADT с Android SDK
Preferences -> Android (указ на скач SDK)
Полная инструкция доступна на сайте http://developer.android.com/sdk/installing.html
Инструменты ADT
● Emulator● Logcat● AVD manager● SDK manger● File Explorer● Profiller● Debug● Другие инструменты
Android SDK и AVD manager
Emulator
DDMS - Davlik Debug Monitor Server
Demo
Знакомство с базовыми компонентами приложения
Hardware Abstraction Layer
Базовые компоненты
Начнем
Manifest
Манифест представляет главную информацию о приложении:
● название приложения● необходимые права доступа● указываются возможные активиты и сервисы● указывается миним. и макс. API запуска ● указывается список библиотек
Пример манифеста
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.sibers.mobilerater" android:versionCode="1"android:versionName="1.0"> <uses-sdk android:minSdkVersion="4" /><supports-screens android:xlargeScreens="true" /><uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name="android.permission.READ_PHONE_STATE" /><application android:icon="@drawable/icon" android:label="@string/app_name"android:theme="@android:style/Theme.NoTitleBar"><activity android:name=".activities.HomeActivity"android:label="@string/app_name" android:configChanges="keyboardHidden|orientation"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity><activity android:name=".activities.JurisdictionActivity"android:configChanges="orientation" /></application></manifest>
Activity
● Базовый компонент приложения ● Создает окно приложения● Отвечает за взаимодействие с пользователем
Цикл жизни активити
Методы создания активити
public class ExampleActivity extends Activity { protected void onCreate(Bundle savedInstanceState);
protected void onStart(); protected void onRestart();
protected void onResume();
protected void onPause();
protected void onStop();
protected void onDestroy(); }
Основные методы активити
● setContentView, findViewById - связь с интерфейсом и конкретной View
● startActivity, startActivityForResult - запуск другой Activity, явный или неявный
● onActivityResult - обработка результата работы другой Activity
Ресурсы
● Графика и аудио● Строки● Разметка интерфейса пользователя● Стили● XML-файлы● Произвольные файлы
Размещение ресурсов
Следующие папки доступны для размещения● anim - xml c описанием анимации● color - xml c цветовыми настройками● drawable - картинки● layout - xml разметка интерфейса ● raw - произвольные файлы● values - строки, массивы, размеры, стили, цвета в xml● xml - произвольные xml файлы
Доступ к ресурсам с помощью кода
// Указываем layout для экранаsetContentView(R.layout.screen)
// Находим ViewTextView tv = (TextView) findViewById(R.id.tv);tv.setText(getString(R.string.hello));
Доступ к ресурсам в xml
Доступ ресурсов между собой осуществляется следующим образом:
@[<package-name>:]<resource_type>/<resource_name>
Примеры:<TextView android:textColor="@color/red" android:text="@string/hello" ... />
<ImageView android:drawable="image.png" ... />
Альтернативные ресуры
Ресурсы для разных размеров экрана
● телефоны (240x320; 240x400; 480x800 .....)● планшеты (1024x600; 2048x1536 ... )● и т.д
Классификация размеров экрана
Альтернативные ресуры
Задаются модификаторами , см ниже примеры:
res/layout/my_layout.xml // layout for normal screen size ("default")res/layout-small/my_layout.xml // layout for small screen sizeres/layout-large/my_layout.xml // layout for large screen sizeres/layout-xlarge/my_layout.xml // layout for extra large screen sizeres/layout-xlarge-land/my_layout.xml // layout for extra large in landscape orientation
res/drawable-mdpi/my_icon.png // bitmap for medium densityres/drawable-hdpi/my_icon.png // bitmap for high densityres/drawable-xhdpi/my_icon.png // bitmap for extra high density
Demo
+ примеры Google и другие разработки
Литература
● d.android.com● android-developers.blogspot.com ● android books on amazon (http://goo.gl/KfoL6)● habrahabr.ru
Вопросы?
web: https://sites.google.com/site/bishkekgtug/group: https://groups.google.com/forum/#!forum/bishkek-gtugtwitter: http://twitter.com/#!/BishkeksGTUGfacebook: http://www.facebook.com/pages/Bishkek-GTUG/277717478922516
Всем спасибо за внимание!
Благодарности:
IT.KG