Framework • Inversion of control (Io. C) – в отличии от библиотек, не пользовательская программа управляет фреймворком, а фреймворк управляет вашей программой. • Расширяемость – пользователь может дополнять функциональность фреймворка, но не изменять его код • Фреймворк без вмешательства пользователя ведет себя “по умолчанию”, все равно делая что-то полезное.
Программирование на Java под ОС Android
Особенности ОС ANDROID • • • Основана на Linux 2. 6 Виртуальная машина Dalvic Android application framework Основной язык программирования – Java Приложения имеют множество точек входа Версия 4. 0 (19 октября 2011) – единая для планшетов и смартфонов
Особенности ОС ANDROID Dalvic VM: • Регистр – ориентированная VM • Оптимизирована под мобильные устройства • Использует собственный байт-код (не Java) - формат файлов не. class, а. dex • Начиная с Android 2. 2 имеет JIT компиляцию
Особенности ОС ANDROID Компонентная модель(программный стек):
Приложения в Android - Распространяются в виде. apk архивов -. apk – развитие идеи JAR, содержит ресурсы программ, исполняемый код. - Файл manifest. mf в. apk архиве хранит настройки установки (требуемые права доступа, список модулей программы, и т. д. )
Приложения в Android • Отображаются на реальные Linux – процессы • Каждому приложению соответствует своя копия VM Dalvic, загруженная в адресное пространство того же процесса. • Для разграничения доступа приложений к файлам (file permissions), для разных приложений, вообще говоря, используются разные Linux User ID. • Существует “йерархия важности” приложений
Компоненты приложения в Android Программный код приложений делится на модули, в зависимости от предназначения: • Activities • Services • Content providers • Broadcast receivers
Компоненты приложения в Android Activity: Activity представляет собой отдельное окно с элементами пользовательского интерфейса. Виды Activity: • полноэкранная • плавающая • встроенная Второе представление определяет Activity, как свободно перемещаемое окно, третье представление позволяет встраивать одну Activity в другую.
Компоненты приложения в Android Service: • Работает в фоновом режиме (не предоставляет пользовательского интерфейса • Может работать когда приложение “не в фокусе”
Компоненты приложения в Android Content provider: • Контент-провайдеры – механизм для использования данных одного приложения (несколькими) другими. • Провайдеры предоставляют данные в виде записей таблиц • URI - позволяет идентифицировать провайдера и конкретную таблицу
Компоненты приложения в Android Broadcast receiver: • Используется для реакции на внешние события – звонок телефона, низкий уровеь батареи и т. п. • Как только происходит событие, которое принимает Broadcast receiver, ОС сама запустит эту компоненту вашего приложения
Компоненты приложения в Android Intents • Используются для связи между различными компонентами приложения или между приложениями в системе. • Позволяют сократить время на разработку, используя компоненты сторонних приложений • Для выполнение некоторых действий требуются разрешения, прописанные в манифесте. • Фильтры входящих Intents Пример Intent - запроса: Intent dial. Intent = new Intent(Intent. ACTION_CALL, Uri. parse("tel: " + "123456789")); start. Activity(intent);
Потоки выполнения и UI в Android • Вся обработка пользовательских действий находится в главном (main) потоке • По умолчанию все компоненты приложения работают в одном потоке • Классы пользовательского интерфейса в общем случае не потокобезопасны.
Класс R • Генерируется автоматически при компиляции, не подлежит редактированию • Позволяет ставить ссылки на ресурсы (картинки, текст, xml …) в коде программы • Используется компонентой ОС Android – Resource manager Пример: R. string_name – доступ к строке из strings. xml set. Content. View(R. layout. main); - исп. main. xml
Установка средств разработки • Установка SDK: Ссылка на SDK (ADK): http: //developer. android. com/sdk/index. html • Ссылка на инструкцию по установке ADT plug-in for Eclipse http: //developer. android. com/sdk/eclipseadt. html#installing
Установка средств разработки • Настройка ADT:
Установка средств разработки • Настройка ADT: Tools -> Manage AVD-> New ->
Ссылки http: //developer. android. com/guide/developing /tools/index. html – описание инструментов, входящих в SDK. Там же Reference по API. http: //appinventor. googlelabs. com/ приложение для ленивых http: //eclipse. dzone. com/news/effective-eclipse -shortcut-key - полезности для Eclipse Habrahabr. ru – куча примеров, все на русском (в поиске)