Основы создания приложений и работы с базами данных мобильной системы android
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
Государственное образовательное учреждение высшего профессионального образования
ОСНОВЫ СОЗДАНИЯ ПРИЛОЖЕНИЙ И РАБОТЫ С БАЗАМИ ДАННЫХ МОБИЛЬНОЙ СИСТЕМЫ ANDROID
Курсовая работа
Выполнил:
______________________________
Научный руководитель:
______________________________
Дата сдачи
«___»______________________201
Оценка:_______________________
Барнаул 2012
План работы:
Введение…………………………………………………………
- Введение в Android……………………………………………….……….
......3 - . История создания ОС………………………………………..……….…...3
1.2. Основные сведения о системе Android…………………….…..….…….4
1.3. Базовые компоненты Android…………………………………….....…...
2. Разработка приложений для Android……………………………..…….…….7
2.1. Основные виды приложений……………………………………….……7
2.2. Изучение структуры приложения
на основе программы To-Do-
2.3. Файл AndroidManifest.xml……………………………
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
Заключение……………………………………………………
Литература……………………………………………………
Введение
Целью данного курсового проекта является изучение ОС Android и получения навыков программирования для этой системы, а так же работы с базами данных этой системы. В настоящее время в связи с широким распространением данной операционной мобильной системы растет востребованность к приложениям различной направленности. В связи с этим данная тема очень актуальна, так как в ней будут изложены и разобраны сведения, которые помогут разобраться во многих аспектах системы Android.
- Введение в 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 - того же механизма
с открытым исходным кодом,
который лежит в основе
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, используя для этого инструменты, входящие в состав среды разработки.
- Базовые компоненты Android
Чтобы начать писать приложения для Android, нужно разобраться с его ключевыми компонентами. Базовые компоненты Android это:
1. Виды – базовые составляющие пользовательского интерфейса(UI), из которых строятся все его элементы. Видом может быть что угодно - кнопка, текстовой обозначение или поле ввода для текста.
2. Явления – это компоненты
пользовательского интерфейса. Явление
представляет собой отдельное
окно приложения. Обычно явление
содержит один или несколько
видов, хотя это не
3. Намерения – это способность сущности выполнить определенное действие. Намерения можно использовать для широковещательных передач сообщений, запуск служб, явлений, набор телефонного номера или ответ на вызов. Также намерения используются системой для уведомления приложения об определенных событиях.
4. Поставщик содержимого – это
механизм использования данных
несколькими приложениями
5. Службы – это фоновые процессы,
которые могут работать в
6. AndroidManifest.xml – это файл который определяет содержание и способ работы приложения. Здесь перечисляются явления и службы, а также права, версия системы на которой может работать приложение и т.д.
7. Источник данных можно представить себе как сервер баз данных. Его задача - управление доступом к хранящимся данным, таким как база данных SQLite. Если приложение совсем простое, источник данных создавать не обязательно.
- Разработка приложений для 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» где ранятся строковые ресурсы.
Теперь можно перейти к
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.
android:orientation="vertical"
android:layout_width="fill_
android:layout_height="fill_
<EditText
android:id="@+id/myEditText"
android:layout_width="fill_
android:layout_height="wrap_
android:text="New To Do Item"
/>
<ListView
android:id="@+id/myListView"
android:layout_width="fill_
android:layout_height="wrap_
/>
</LinearLayout>
Таким образом мы задаем какие элементы интерфейса будут отображаться на экране. В данном случае это будет панель для ввода текста и обычный текст. LinearLayout отвечает за стиль разметки экрана приложение и расположения объектов интерфейса. Так же в представлениях мы создаем ID-идентификаторы (@+id/), чтобы затем ссылаться на него в программе.
После описания пользовательского интерфейса откроем класс Активность в папке «src». В данном примере все изменения будут сделаны в методе onCreate.
public void onCreate(Bundle savedInstanceState) {
super.onCreate(
// Загрузите свою разметку
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(
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,
чтобы привязать массив к
final ArrayAdapter<String> aa;
aa = new ArrayAdapter<String>(this,
android.R.layout.simple_list_
// Привяжите массив к ListView.
myListView.setAdapter(aa);
}
ArrayAdapter использует механизм обобщенных типов для привязки AdapterView к массиву объектов определенного класса. По умолчанию ArrayAdapter задействует метод toString для каждого объекта в массиве, чтобы создать и наполнить данными элементы TextView. Альтернативные конструкторы позволяют применять более сложную разметку. Также можно наследовать этот класс, чтобы
заменить экземпляры класса TextView на другие элементы.
Теперь необходимо сделать так, чтобы пользователи могли добавлять в список новые задачи. Создадим для элемента EditText обработчик onKeyListener, который отслеживает нажатие центральной клавиши на манипуляторе D-pad и заносит содержимое EditText в массив, оповещая об этом объект ArrayAdapter. Затем очистим поле ввода, чтобы пользователь мог добавить следующий пункт. Все это необходимо сделать в том же методе onCreate.
myEditText.setOnKeyListener(
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), инструментарии(
На вкладке 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.
package=”com.androidbook.
android:versionCode=”1”
android:versionName=”1.0”>
С помощью тега <uses-library> приложения
могут взаимодействовать с
Например:
<uses-library
android:name=”com.company.
Затем можно изменить имя и код версии приложения. Имя представляет собой информацию о версии, используемой для отслеживания сборок приложения. Атрибут 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_
В этом случае, имя приложения будет хранить строковый ресурс 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/
В 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_
<intent-filter>
<action
android:name=”android.intent.
<category
android:name=”android.intent.
</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.
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().
MyApplication.getInstance().
Такой подход особенно эффективен при передаче объектов между слабосвязанными частями вашей программы, а также для контроля за общими ресурсами и состоянием приложения.
Класс 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(
super.onConfigurationChanged(
}
}
2.5. Активности в Android
При создании экранов с графическим интерфейсом наследуется класс Activity и используются Представления для взаимодействия с пользователем. Каждая Активность — экран (по аналогии с Формой), который приложение может показывать пользователям. Чем сложнее приложение, тем больше экранов нужно.

- Основы составления бизнес-плана
- Основы составления бухгалтерской отчетности
- Основы составления проектов бюджета
- Основы составления стратегического плана продаж страховых продуктов
- Основы социального государства
- Основы социального государства
- Основы социального предприятия
- Основы современной метрологии во Франции
- Основы современной налоговой системы Российской Федерации
- Основы современной налоговой системы РФ
- Основы современной управленческой этики
- Основы современной ядерной энергетики
- Основы содержания оборотных средств предприятий
- Основы создания и разработка школьного сайта