Основы создания приложений и работы с базами данных мобильной системы android

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

Государственное образовательное  учреждение высшего профессионального  образования

 

 

 

 

 

 

 

ОСНОВЫ СОЗДАНИЯ ПРИЛОЖЕНИЙ И РАБОТЫ С БАЗАМИ ДАННЫХ МОБИЛЬНОЙ  СИСТЕМЫ ANDROID

Курсовая работа

 

 

 

 

 

 

 

                                                     Выполнил:

                   

 

_______________________________

    Научный руководитель:

  

_______________________________

 

 

             Дата сдачи

«___»______________________2010г.

Оценка:_________________________

 

 

 

 

 

Барнаул 2012

 

 

План работы:

 

Введение……………………………………………………………………………2

  1. Введение в Android……………………………………………….……….......3
    1. . История создания ОС………………………………………..……….…...3

     1.2. Основные сведения о системе Android…………………….…..….…….4

     1.3. Базовые компоненты Android…………………………………….....…...6

2.  Разработка приложений для Android……………………………..…….…….7

     2.1. Основные виды приложений……………………………………….……7

     2.2. Изучение структуры приложения  на основе программы To-Do-List.…8

     2.3. Файл AndroidManifest.xml………………………………………………..11

   2.3.1. Описание файла…………………………………………..………11

   2.3.2. Конфигурирование основных настроек файла…………………12

     2.4. Класс Application в Android……………………………………………..14

     2.5. Активности в  Android……………………………………………………16

3.  Работа с базами данных и источниками данных…………………………..19

      3.1. Базы данных SQLite……………………………………………………..19

          3.1.1. Вставка, удаление и обновление строк в таблицах SQLite……24

      3.2. Источники данных  Android и работа с ними………………………….25

         3.2.1. Основные сведения и создание источника данных……………25

    3.2.2. Использование источников данных…………………………….28

Заключение……………………………………………………………………….31

Литература………………………………………………………………………..32

 

 

 

 

 

 

 

 

 

Введение

 

Целью данного курсового проекта  является изучение ОС Android и получения навыков программирования для этой системы, а так же работы с базами данных этой системы. В настоящее время в связи с широким распространением данной операционной мобильной системы растет востребованность к приложениям различной направленности. В связи с этим данная тема очень актуальна, так как в ней будут изложены и разобраны сведения, которые помогут разобраться во многих аспектах системы Android.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  1. Введение в Android

 

1.1.История создания ОС

 

В 2007 году группой производителей мобильных устройств, провайдеров беспроводной связи и разработчиков программного обеспечения (особенно Google) был сформирован Альянс разработчиков открытых стандартов мобильных устройств (ОНА, Open Handset Alliance) с целью создания беспроводных технологий следующего поколения. В отличие от существующих платформ, новая платформа должна быть бесплатной, основанной на открытых стандартах, позволяющих снизить затраты на разработку и увеличить прибыль. Разработчики мобильных приложений должны также иметь полный доступ к функциям телефона для создания инновационных приложений.

И 2008 году Альянс разработчиков  открытых стандартов мобильных устройств анонсировал платформу Android и объявил о запуске открытого бета-тестирования. Как и большинство подобных проектов, платформа Android прошла через серию ревизий. В итоге было выпущено несколько предрелизных версий Android SDK. Первым мобильным телефоном на базе платформы Android стал Т-Mobile G1, продажи которого начались в конце 2008 года. В течение 2009 года все больше и больше мобильных телефонов, а также других типов устройств, основанных на платформе Android, достигли мировых рынков. На данный момент произведено более 65 моделей мобильных телефонов, доступных в продаже по всему миру. Помимо них есть многочисленные планшеты Android и устройства для чтения электронных книг, десятки готовящихся к выпуску устройств и даже бытовая электроника под управлением Android. Причем скорость, с которой новые мобильные устройства на базе Android достигают мировых рынков, продолжает увеличиваться. В Соединенных Штатах все основные поставщики электронной техники уже включают устройства на базе платформы Android и свои линейки продуктов.

Компания Google с самого начала способствовала развитию Альянса разработчиков открытых стандартов мобильных устройств. Интернет-гигант фактически владеет проектом Android и руководит сообществом разработчиков Android.

 

 

1.2.Основные сведения о системе Android

 

По широте возможностей платформа Android не уступает операционным системам настольных ПК. Это многоуровневая среда на основе ядра Linux с богатыми функциональными возможностями. В подсистему пользовательского интерфейса входят:

-Окна

-Представления

-Виджеты для отображения общих элементов, таких как редактируемые поля, списки и развертывающиеся списки.

Android содержит встраиваемый браузер  на базе WebKit - того же механизма  с открытым исходным кодом,  который лежит в основе браузера Safari мобильного телефона iPhone.

Android обладает широким спектром  возможностей подключения, охватывающим Wi-Fi, Bluetooth и протоколы передачи данных через сотовую сеть (GPRS, EDGE, 3G и др.). Популярным приемом в приложениях для Android является ссылка на Google Maps для отображения адреса непосредственно в приложении. В стек программного обеспечения Android входит и поддержка сервисов, основанных на определении местоположения (например, GPS), и акселерометров, хотя не все устройства на этой платформе оснащены необходимым оборудованием. Есть также поддержка видеокамеры.

Исторически двумя областями, где мобильные приложения отставали от своих настольных собратьев, были графика/мультимедиа и способы хранения данных. Android решает проблему графики благодаря встроенной поддержке 2-D и 3-D графики, включая библиотеку OpenGL. Задача хранения данных упрощается благодаря наличию в платформе Android популярной базы данных с открытым исходным кодом SQLite.

На рисунке1 показана упрощенная схема уровней программного обеспечения Android.

 

Рисунок 1. Уровни программного обеспечения Android 
 

 

 

 

 

Android-приложения пишутся на языке программирования Java и выполняются в виртуальной машине (VM). Вместо классической виртуальной Java-машины, такой как Java ME (Java Mobile Edition), Android использует собственную VM, разработанную для обеспечения эффективной работы нескольких приложений на одном устройстве.

Виртуальная машина – это открытая технология Dalvik Virtual Machine. Каждое приложение Android запускается внутри экземпляра Dalvik VM, который, в свою очередь заключен в пределах управляемого ядром Linux процесса, как показано на рисунке 2.

 
Рисунок 2. Dalvik VM 
  
 

Так же доступ к устройствам и системным службам Android осуществляется через виртуальную машину Dalvik, которая считается промежуточным слоем. Благодаря использованию VM для выполнения кода программы управляющей системы разработчики получают в свое распоряжение уровень абстракции, который позволяет им не беспокоиться об особенностях конструкции того или иного устройства.

VM Dalvik запускает исполняемые файлы, формат которых оптимизирован под минимальное использование памяти. Создается исполняемый файл с расширением .dex путем трансформирования компилированных классов, написанных на языке Java, используя для этого инструменты, входящие в состав среды разработки.

 

 

    1. Базовые компоненты Android

 

Чтобы начать писать приложения для Android, нужно разобраться с его ключевыми компонентами. Базовые компоненты Android это:

1. Виды – базовые составляющие пользовательского интерфейса(UI), из которых строятся все его элементы. Видом может быть что угодно -  кнопка, текстовой обозначение или поле ввода для текста.

2. Явления – это компоненты  пользовательского интерфейса. Явление  представляет собой отдельное  окно приложения. Обычно явление  содержит один или несколько  видов, хотя это не обязательно.

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

4. Поставщик содержимого – это  механизм использования данных  несколькими приложениями мобильного  устройства. Приложения могут использовать  данные (например, список контактов), не открывая доступ к памяти, способам реализации данных и их структуре.

5. Службы – это фоновые процессы, которые могут работать в течение  очень долгого времени. В  Android различают два вида служб: локальные и удаленные. Локальные службы – это компоненты, доступ к которым открыт только для приложения, запустившего данную службу. Удаленные службы могут использоваться любыми приложениями, работающими в данной системе.

6. AndroidManifest.xml – это файл который определяет содержание и способ работы приложения. Здесь перечисляются явления и службы, а также права, версия системы на которой может работать приложение и т.д.

7. Источник данных можно представить себе как сервер баз данных. Его задача - управление доступом к хранящимся данным, таким как база данных SQLite. Если приложение совсем простое, источник данных создавать не обязательно.

 

 

 

 

 

 

 

 

 

  1. Разработка приложений для Android

 

2.1. Основные виды приложений

 

Программы переднего  плана

Такое приложение работает, если оно видно на экране, в противном случае его выполнение прекращается. Например, это игры.

Фоновые Сервисы и  Широковещательные приемники

Такие приложения работают незаметно, находясь в фоне, и очень редко  взаимодействуют с пользователем. Вместо того, чтобы полагаться на  пользовательский ввод, они часто отслеживают сообщения или действия, посылаемые аппаратным обеспечением, системой или сторонними программами.

Теоритически возможно создавать  полностью невидимые Сервисы, но на практике все же лучше предусматривать хоть какой-то контроль со стороны пользователя. Как минимум, пользователь должен иметь возможность следить за

работой Сервиса, а также при необходимости настраивать, приостанавливать или прерывать его выполнение.

Приложения смешанного вида

Это приложения, которые реагируют на пользовательский ввод, но не теряют работоспособности, становясь неактивными. Типичные примеры — программы для обмена текстовыми сообщениями и почтовые клиенты. Такие приложения, как правило, объединяют в себе видимые Активности и скрытые фоновые Сервисы. При взаимодействии с пользователем они должны учитывать свое состояние. Например, когда Активность отображается на экране, нужно обновлять графический интерфейс, в противном случае необходимо слать уведомления, чтобы держать пользователя в курсе происходящего.

Виджеты

Иногда приложение может целиком  состоять из единственного виджета. Используя эти компоненты, вы можете создавать интерактивные визуальные элементы, которые можно разместить на домашнем экране.

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

 

 

 

 

 

2.2. Изучение структуры приложения на основе программы To-Do List

 

Для начала необходимо скачать и установить среду разработки Eclipse, SDK для Android и JDK (Java Development Kit).  Eclipse — это среда разработки с открытыми исходными кодами, которая, как правило, используется для программирования Java-приложений. Android SDK – это набор инструментов необходим для разработки приложений. Также в нем есть эмулятор, поэтому, при разработке можно обойтись и без мобильного устройства с установленной системой. Так же желательно установить ATD-плагин который упрощает разработку приложений для Android путем интеграции инструментов разработчика, включая конвертор файлов из формата .class в формат .dex непосредственно  в среду Eclipse. Также плагин добавляет в Eclipse несколько модулей: журнал событий, мастер проектов, автоматическое построение проектов, эмулятор Android, службу мониторинга и т.д.

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

синтаксис и грамматика Java-кода могут  быть использованы и на платформе Android. Тем не менее, некоторые специфические способы оптимизации могут показаться немного противоречивыми.

После установки переходим к  созданию проекта. В процессе будет  необходимо ввести название приложения, а также выбрать имя для  Активности. Далее необходимо создать виртуальное устройство на котором будет тестироваться приложение. После создания есть возможность применить отладочную и рабочуюю конфигурацию для проекта, т.е. закрепить за приложением определенное виртуальное устройство.

 Переходим к рассмотрению структуры приложения. Слева в Eclipse находится дерево папок проекта. Рассмотрим его поподробнее. В папке «src» хранится весь исходный код приложения, а также класс Активность — это базовый класс для визуальных и интерактивных компонентов вашего приложения. Папка «gen» хранит в сгенерированные исходные файлы управления ресурсами. В папке «res» хранятся все ресурсы проекта: в «drawable» – графические файлы, в «layout» файлы мета пользовательского интерфейса, а также файл main.xml (по-умолчанию) который используется для прорисовки экрана и «values» где ранятся строковые ресурсы.

 

Теперь можно перейти к написанию  программы. Приложение To-Do List буди управлять списком задач, используя стандартные графические элементы.  Открываем файл main.xml. Этот файл макета описывает пользовательский интерфейс деятельности в пределах приложения. Редактируем его следующим образом:

 

 

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

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent">

<EditText

android:id="@+id/myEditText"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="New To Do Item"

/>

<ListView

android:id="@+id/myListView"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

/>

</LinearLayout>

 

 

Таким образом мы задаем какие элементы интерфейса будут отображаться на экране. В данном случае это будет панель для ввода текста и обычный  текст. LinearLayout отвечает за стиль разметки экрана приложение и расположения объектов интерфейса. Так же в представлениях мы создаем ID-идентификаторы (@+id/), чтобы затем ссылаться на него в программе.

После описания пользовательского  интерфейса откроем класс Активность в папке «src». В данном примере все изменения будут сделаны в  методе onCreate.

 

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

// Загрузите свою разметку

setContentView(R.layout.main);

// Получите ссылки  на элементы пользовательского  интерфейса

final ListView myListView = (ListView) findViewById (R.id.myListView);

final EditText myEditText = (EditText) findViewById (R.id.myEditText);

}

 

Метод onCreate это – метод обработки событий. Он вызывается после запуска ли перезапуска деятельности. В нем инициализируются статические данные деятельности, а также задает макет методом setContentView(). С помощью этого метода мы можем загрузить разметку, созданную в формате XML,  в класс Активности. Используя метод finViewById() мы получаем ссылки на элементы ListView и EditText описанные в файле main.xml.

Теперь внутри того же метода onCreate создадим строковый массив ArrayList для хранения каждого элемента списка задач, привязать этот массив к элементу интерфейса ListView с помощью нового экземпляра ArrayAdapter.

 

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

final ListView myListView = (ListView) findViewById (R.id.myListView);

final EditText myEditText = (EditText) findViewById (R.id.myEditText);

// Создайте  массив для хранения списка  задач

final ArrayList<String> todoItems = new ArrayList<String>();

// Создайте ArrayAdapter, чтобы привязать массив к ListView

final ArrayAdapter<String> aa;

aa = new ArrayAdapter<String>(this,

android.R.layout.simple_list_item_1, todoItems);

// Привяжите массив к ListView.

myListView.setAdapter(aa);

}

 

ArrayAdapter использует механизм обобщенных типов для привязки AdapterView к массиву объектов определенного класса. По умолчанию ArrayAdapter задействует метод toString для каждого объекта в массиве, чтобы создать и наполнить данными элементы TextView. Альтернативные конструкторы позволяют применять более сложную разметку. Также можно наследовать этот класс, чтобы

заменить экземпляры класса TextView на другие элементы.

Теперь необходимо сделать так, чтобы пользователи могли добавлять в список новые задачи. Создадим для элемента EditText обработчик onKeyListener, который отслеживает нажатие центральной клавиши на манипуляторе D-pad и заносит содержимое EditText в массив, оповещая об этом объект ArrayAdapter. Затем очистим поле ввода, чтобы пользователь мог добавить следующий пункт. Все это необходимо сделать в том же методе onCreate.

 

myEditText.setOnKeyListener(new OnKeyListener() {

public boolean onKey(View v, int keyCode, KeyEvent event) {

if (event.getAction() == KeyEvent.ACTION_DOWN)

if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER){

todoItems.add(0, myEditText.getText().toString());

aa.notifyDataSetChanged();

myEditText.setText("");

return true;}

return false;

}

});

}

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

 

2.3 Файл AndroidManifest.xml

 

2.3.1.Описание файла

 

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

В системе этот файл служит для  установки и обновлению пакетов приложения, запуска деятельности приложения, управлением правами, предоставлению информации о приложении пользователю.

В редакторе ресурсов Eclipse данные этого файла распределяются по нескольким категориям. Это Манифест(Manifest), приложение(Application), права(Permissions), инструментарии(Instrumentation)  и AndroidManifest.xml.

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

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

На вкладке Permissions описаны права, предоставляемые приложению. Здесь могут быть также указаны специальные права, которые требуются тприложению для работы.

На вкладке Instrumentation указываются классы инструментария для мониторинга за приложением. В поле Name вводится полное имя класса подкласса instrumentation вашего приложения, а в поле Target Package (Целевой пакет) вы указываете имя пакета, файл которого содержит <application> для контролируемого приложения.

Файл манифеста Android представляет собой XML-файл. Вы можете редактировать код XML вручную на вкладке AndroidManifest.xml редактора ресурсов.

 

 

 

2.3.2. Конфигурирование основных настроек файла

 

Большинство самых важных настроек приложения задаются атрибутами и дочерними тегами блоков <manifest> и <application>. Пакет приложения определяется в теге <manifest> файла манифеста Android с помощью атрибута package, например:

<manifest

xmlns:android=”http://schemas.android.com/apk/res/android”

package=”com.androidbook.droid1”

android:versionCode=”1”

android:versionName=”1.0”>

 

С помощью тега <uses-library> приложения могут взаимодействовать с другими библиотеками в дополнение к стандартным пакетам Android. Эта возможность доступна на вкладке Application редактора ресурсов.

Например:

<uses-library

android:name=”com.company.sharedutilities” />

 

Затем можно изменить имя и код версии приложения. Имя представляет собой информацию о версии, используемой для отслеживания сборок приложения. Атрибут android:versionName тега <manifest> хранит строковое значение для отслеживания номера сборки приложения. Код версии позволяет платформе Android программно обновлять приложения. Значение атрибута android:versionCode тега <manifest> может быть целое число, используемое платформой Android.

Приложения Android могут быть скомпилированы для совместимости с несколькими различными версиями SDK. В теге <uses-sdk> указывается минимально допустимая версия Android SDK для обеспечения нормальной работы приложения на мобильном телефоне. Атрибут android:minSdkVersion этого тега представляет минимально допустимую версию SDK в виде целого числа.

Атрибут android:label тега <application> хранит строку, представляющую имя

приложения. Можно определить это имя в виде фиксированной строки, как в

следующем примере:

<application

android:label=”My application name”>

Или как вариант, в атрибуте android: label можно указать ссылку на строковый ресурс:

<application

android:label=”@string/app_name”>

В этом случае, имя приложения будет  хранить строковый ресурс app_name в файле

strings.xml.

Атрибут android:icon тега <application> хранит ссылку на строковый ресурс,

представляющий собой значок приложения. Пример:

<application

android:icon=”@drawable/icon”>

 

Можно задать описание приложения. Значение атрибута android:description тега <application> строка, содержащая краткое описание приложения. Система Android использует это описание для отображения информации о приложении.  Можно также указать в этом атрибуте ссылку на строковый ресурс:

<application

android:label=”My application name”

android:description=”@string/app_desc”>

 

В AndroidManifest.xml можно задать значение, которое разрешает или запрещает отладку приложения отладчиком. Для этого атрибуту android:debuggable тега <application> присваивается булево значение. Невозможно проводить отладку приложения, если значение этого атрибута не равно true.

Каждая деятельность перед использованием должна быть регистрирована в файле манифеста Android. Каждый раз необходимо обновлять файл манифеста при добавлении новой деятельности к приложению.

Деятельность представляет собой определенную задачу для вычисления, часто связанную с определенным экраном. Она может быть запущена различными способами с помощью интентов (объектов использующихся для отправки асинхронных сообщений внутри приложения или между приложениями). Каждая деятельность может иметь свою собственную метку (имя) и значок, но по умолчанию метка и значок приложению уже назначены.

Регистрация деятельности производится в разделе Application Nodes вкладки Application. Каждая новая деятельность обладает собственным тегом <activity> в получившемся XML- файле. Например, в следующем фрагменте кода XML происходит определение класса деятельности DroidActivity:

 

<activity

            android:name=”.DroidActivity” />

 

С помощью интент-фильтра возможно определить деятельность как основную точку входа приложения. Интент-фильтр запуска деятельности по умолчанию должен быть сконфигурирован в теге <intent-filter> с типом действия MAIN и категорией LAUNCHER. DroidActivity как основную точку запуска приложения:

 

 

 

<activity

android:name=”.DroidActivity”

android:label=”@string/app_name”>

<intent-filter>

<action

android:name=”android.intent.action.MAIN” />

<category

android:name=”android.intent.category.LAUNCHER” />

</intent-filter>

</activity>

 

Таким образом, тег <intent-filter> покатывает системе Android что все запросы

запуска приложения должны направляться деятельности DroidActivity.

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

Приложения Android могут получить доступ к собственным файлам и базам данных без наличия специальных прав. Однако, если приложению необходимо полнить доступ к совместно используемым или особым ресурсам, права, разрешающие такие действия,  должны быть указаны в теге <uses-permission> файла манифеста Android. Управлять правами возможно на вкладке Permissions в редакторе ресурсов файла манифеста Android.

 

 

2.4.  Класс Application в Android

 

Класс Application – это базовый класс приложения Android. При запуске вначале создается экземпляр этого класс, а потом уже необходимые деятельности.

При самостоятельной реализации класса Application  появляются возможности самостоятельно контролировать приложение, передавать объекты между программными компонентами, контролировать ресурсы, которые используются в нескольких компонентах одного приложения.

При создании процессора программы создается экземпляр класса Application, который описывается и регистрируется в манифесте. Таким образом получается, что этот класс по природе своей Синглтон ( у класса есть только один экземпляр, и предоставляет к нему глобальную точку доступа. Существенно то, что можно пользоваться именно экземпляром класса, так как при этом во многих случаях становится доступной более широкая функциональность.) и должен регистрироваться соответствующим образом, предоставляя доступ к методам и свойствам. Ниже в листинге показан каркас для наследования класса Application и реализации его в качестве синглтона:

 

import android.app.Application;

import android.content.res.Configuration;

 

public class MyApplication extends Application {

private static MyApplication singleton;

// Возвращает экземпляр данного класса

public static MyApplication getInstance() {

return singleton;

}

@Override

public final void onCreate() {

super.onCreate();

singleton = this;

}

}

Создав новый класс Application, нужно зарегистрировать его внутри

тега <application> в манифесте:

 

<application android:icon="@drawable/icon"

         android:name="MyApplication">

[... Вложенные в манифест теги ...]

</application>

 

При запуске приложения создается экземпляр вашей реализации класса

Application. Добавляйте новые свойства для хранения программного состояния и глобальных ресурсов, чтобы иметь возможность получить к ним доступ из компонентов приложения:

 

MyObject value = MyApplication.getInstance().getGlobalStateValue();

MyApplication.getInstance().setGlobalStateValue(myObjectValue);

 

Такой подход особенно эффективен при  передаче объектов между слабосвязанными  частями вашей программы, а также  для контроля за общими ресурсами и состоянием приложения.

Класс Application содержит методы отвечающие за создание и завершение работы приложения, поведение программы при нехватке памяти и изменениях конфигурации. Метод onCreate вызывается при создании приложения, переопределяется для инициализации синглтона программы и создания и инициализации свойств, в которых хранятся состояния приложения или общие    ресурсы. Метод onTerminate может быть вызван при преждевременном завершении работы объекта Application. Хотя если работа приложения прерывается ядром, чтобы освободить ресурсы для других программ, процесс завершится без предупреждения и без вызова метода onTerminate из объекта Application. Метод onLowMemory предоставляет возможность хорошо оптимизированным приложениям освобождать дополнительную память, когда система работает в условиях ограниченных ресурсов. Как правило, вызывается в ситуациях, когда фоновые процессы уже закрыты, а памяти для приложений, находящихся на переднем плане, все еще не хватает. Так как в отличие от объектов Activity приложение не перезапускается при изменения конфигурации необходимо переопределять метод onConfigurationChanged.

Переопределение методов, связанных  с жизненным циклом приложения:

 

public class MyApplication extends Application {

private static MyApplication singleton;

// Возвращает экземпляр данного класса

public static MyApplication getInstance() {

return singleton;

}

@Override

public final void onCreate() {

super.onCreate();

singleton = this;

}

@Override

public final void onTerminate() {

super.onTerminate();

}

@Override

public final void onLowMemory() {

super.onLowMemory();

}

@Override

public final void onConfigurationChanged(Configuration newConfig) {

super.onConfigurationChanged(newConfig);

}

 

}

 

2.5. Активности  в Android

 

При создании экранов с графическим интерфейсом наследуется класс Activity и используются Представления для взаимодействия с пользователем. Каждая Активность — экран (по аналогии с Формой), который приложение может показывать пользователям. Чем сложнее приложение, тем больше экранов нужно.

Основы создания приложений и работы с базами данных мобильной системы android