Решил написать свой аудио-плеер для 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
http://www.enterra.ru/android
ОтветитьУдалитьwww.enterra.ru/android
ОтветитьУдалитьhttp://www.enterra.ru/android
ОтветитьУдалить