среда, 12 января 2011 г.

Разработка приложения для Android. Часть 1: Теория.

  Решил написать свой аудио-плеер для Android, т.к. не нашёл удобного простого плеера с поддержкой audioboost (в наушниках совсем ничего не слышно). Уже есть основной функционал, первым делом реализовал audioboost :), сейчас работаю над интерфейсом.
  Параллельно с написанием плеера и изучением системы буду систематизировать полученные знания, и преобразовывать их в краткие заметки. Первая статья - основные принципы работы приложений под Android.


  Приложения для Android пишутся на JAVA. Скомпилированный код с ресурсами хранятся в *.apk файле.  Каждое приложение имеет свой собственный процесс, который работает в своей виртуальной машине. Система автоматически закрывает "долго простаивающие" процессы.
  Каждому приложению система Android по-умолчанию присваивает уникальный Linux User ID. На ресурсы приложения устанавливаются такие разрешения, чтобы доступ к ним (ресурсам) был возможен только для "владельца" (Linux User ID), хотя есть способы использовать их в других приложениях (например: для этого можно создать приложения с одинаковыми Linux User ID)
  Приложение Android имеет четыре основных компонента:
  Activities
  Данная компонента - это визуальный интерфейс. "На нём" размещаются различные контролы (кнопки, текстбоксы, чекбоксы и т.д.). В одном приложении может быть несколько Activity. Сам класс Activity не содержит описания контролов, их необходимо описать в XML-файле (res/layout/*.xml). Для того чтобы связать код с визуальной частью, в методе onCreate() класса пишем setContentView(R.layout.имя_XML_файла) (маленькое практическое отступление от теории, более подробно будет рассмотрено в следующих частях :)).
  Services
  Сервисы не имеют графического интерфейса, выполняются в фоне. Например, можно использовать для воспроизведения музыки. Сервисы, как и другие компоненты, по-умолчанию выполняются в главном потоке, что может приводить к подвисаниям графического интерфейса, поэтому рекомендуется создать для них свой отдельный поток.
  BroadcastReceivers
  Также не имеет графического интерфейса. Это что-то вроде глобального "обработчика и генератора событий". К примеру можно обработать (например: октрыть Activity) сообщения о низком заряде батареи, повороте экрана и т.п. Либо сгенерировать сообщение об окончании загрузки файла. Как я писал, BroadcastReceiver не имеет графического интерфейса, но у него есть способы визуального уведомления, для этого используется NotificationManager. С его помощью можно показать уведомление пользователю, проиграть звуковой сигнал, включить вибрацию.
  Content providers
  С его помощью определённые ресурсы приложения могут быть доступны другим приложениям.

  Все перечисленные компоненты описываются в файле AndroidManifest.xml приложения(подробнее позже, либо здесь).
  В следующий раз раскажу об установке среды для разработки Android приложений.

При перепечатке материала на странице должна присутствовать ссылка на главную страницу www.gizmonder.com  

3 комментария: