Ларс Фогель — евангелист Eclipse. Под катом вы найдете перевод его статьи, в которой описан процесс создания Android-приложений с помощью Eclipse. Он использует Eclipse 3.6, Java 1.6 и Android 2.3 (Gingerbread).
1. Разработка для Android
1.1. Операционная система Андроид
Android — это операционная система на базе Linux с интерфейсом программирования Java. Это предоставляет нам такие инструменты, как компилятор, отладчик и эмулятор устройства, а также собственную виртуальную машину Java (Android) (Dalvik Virtual Machine - DVM).Android был создан Open Handset Alliance под руководством Google. Android использует специальную виртуальную машину под названием Dalvik Virtual Machine. Dalvik использует свой специальный байт-код. Поэтому вы не можете запускать стандартный байт-код Java на Android. Android предоставляет инструмент «dx», который позволяет конвертировать файлы классов Java в файлы «dex» (исполняемый файл Dalvik).
Приложения Android упаковываются в файлы .
apk (Android Package) с помощью программы aapt (Android Asset Packaging Tool).
Чтобы упростить разработку, Google предоставляет инструменты разработки Android (ADT) для Eclipse. ADT выполняет автоматическое преобразование файлов классов Java в файлы dex и создает APK во время развертывания.
Android поддерживает 2D- и 3D-графику с использованием библиотек OpenGL, а также хранение данных в базе данных SQLite. Каждое приложение Android запускается в своем собственном процессе и под собственным идентификатором пользователя, который автоматически генерируется Android во время развертывания.
Таким образом, приложение изолировано от других работающих приложений, и неисправное приложение не может легко нанести вред другим приложениям Android.
1.2. Основные компоненты Android
Приложения Android состоят из следующих частей:- Активность /Activity (далее Activity) — схема представления приложений Android. Например, экран, который видит пользователь.
Приложение Android может иметь несколько действий и переключаться между ними во время работы приложения.
- Взгляды /Views — пользовательский интерфейс активности, созданный виджетами классов, наследуемых от «android.view.View».
Схема представлений управляется через «android.view.ViewGroups».
- Услуги /Services — выполняет фоновые задачи без предоставления пользовательского интерфейса.
Они могут уведомить пользователя через систему уведомлений Android.
- Поставщик услуг /Поставщики контента — предоставляют данные приложениям; с помощью поставщика контента ваше приложение может обмениваться данными с другими приложениями.
Android содержит базу данных SQLite, которая может быть поставщиком контента.
- Намерения /Intents (далее называемые намерениями) — это асинхронные сообщения, которые позволяют приложению запрашивать функции у других служб или действий.
Приложение может напрямую создавать намерения для службы или действия (явное намерение) или запрашивать зарегистрированные службы и приложения у Android для получения намерения (неявное намерение).
Например, приложение может запросить контакт из приложения контактов (телефона/адресной книги) устройства посредством намерения.
Приложение регистрируется в намерениях через IntentFilter. Намерения — это мощная концепция, позволяющая создавать слабосвязанные приложения.
- Широковещательный приемник /Broadcast получатель (далее просто Приёмник) — получает системные сообщения и неявные намерения, может использоваться для реагирования на изменения состояния системы.
Приложение может регистрироваться в качестве получателя определенных событий и запускаться в случае возникновения такого события.
Живые папки отображают источник любых данных на рабочем столе без запуска соответствующих приложений.
1.3. Безопасность и разрешения
Android определяет конкретные разрешения для определенных задач.Например, если приложение хочет получить доступ к Интернету, оно должно определить в своем файле конфигурации, что ему нужны соответствующие разрешения.
При установке Android-приложения пользователю отображается экран, на котором ему необходимо предоставить приложению необходимые разрешения.
1.4. AndroidManifest.xml
Приложения Android описываются файлом «AndroidManifest.xml».В этих файлах должны быть указаны все действия, услуги, получатели и поставщики контента приложения.
Он также должен содержать разрешения, необходимые приложению.
Например, если приложению требуется доступ к сети, это следует определить здесь.
«AndroidManifest.xml» можно рассматривать как описание развертывания приложения Android.
Атрибут package является базовым пакетом для следующих элементов Java. Он также должен быть уникальным, потому что.<Эxml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android " package="de.vogella.android.temperature" android:versionCode="1 " android:versionName="1.0 "> <application android:icon="@drawable/icon " android:label="@string/app_name "> <activity android:name=".
Convert
" android:label="@string/app_name "> <intent-filter> <action android:name="android.intent.action.MAIN " /> <category android:name="android.intent.category.LAUNCHER " /> </intent-filter> </activity> </application> <uses-sdk android:minSdkVersion="9 " /> </manifest>
Android Marketplace принимает приложения только один раз для каждого «пакета».
Поэтому хорошей привычкой будет использовать свое обратное доменное имя в качестве «пакета», чтобы избежать конфликтов с другими разработчиками.
«android:versionName» и «android:versionCode» определяют версию вашего приложения.
«имя_версии» — это то, что видит пользователь, и может быть любой строкой.
«versionCode» должен быть целым числом, и Android Market использует его, чтобы определить, предоставили ли вы новую версию, чтобы запускать обновления на устройствах, на которых установлено ваше приложение.
Обычно.
начинается с 1 и увеличивается на единицу при выпуске новой версии приложения.
«активность» определяет действие, в этом примере указывающее на класс «de.vogella.android.temperature.Convert».
Для этого класса зарегистрирован фильтр намерений, который определяет, что это действие запускается при запуске приложения (действие android:name="android.intent.action.MAIN").
Определение категории (category android:name="android.intent.category.LAUNCHER" ) указывает, что это приложение добавляется в каталог приложений на устройстве Android. Значения со знаком @ относятся к файлам ресурсов, содержащим фактические значения.
Это упрощает работу с различными ресурсами, такими как строки, цвета, значки для разных устройств, а также упрощает перевод приложений.
Часть «uses-sdk» в «AndroidManifest.xml» определяет минимальную версию SDK, на которой может работать ваше приложение.
Это предотвратит установку вашего приложения на устройства с более старой версией SDK.
1,5. R.java, Ресурсы и активы
Каталог «gen» в проекте Android содержит сгенерированные значения.«R.java» — это сгенерированный класс, содержащий ссылки на ресурсы из папки «res» проекта.
Эти ресурсы содержатся в каталоге «res» и могут представлять собой значения, меню, диаграммы, значки или изображения или анимацию.
Например, ресурсом может быть изображение или XML-файлы, содержащие определенные строки.
Если вы создаете новые ресурсы, соответствующие ссылки будут автоматически созданы в R.java. Ссылки — это статические значения типа int (целочисленные константы), система Android предоставляет методы для доступа к соответствующим ресурсам.
Например, для доступа к строке с идентификатором ссылки «R.string.yourString» используйте метод getString(R.string.yourString)); Пожалуйста, не пытайтесь изменить «R.java» вручную.
В то время как в каталоге «res» хранятся структурированные значения, известные платформе Android, каталог «assets» можно использовать для хранения любых данных.
В Java вы можете получить доступ к этим данным через AssetsManager и метод getAssets().
1.6. Действия и макеты
Пользовательский интерфейс для действия определяется с помощью макетов.Во время выполнения макеты являются экземплярами «android.view.ViewGroups».
Макет определяет элементы пользовательского интерфейса, их свойства и расположение.
Элементы пользовательского интерфейса основаны на классе android.view.View. ViewGroup — это подкласс View. Макеты могут содержать компоненты пользовательского интерфейса (представления) или другие макеты (ViewGroups).
Не следует слишком сильно вкладывать дочерние элементы в ViewGroups, так как это повлияет на производительность.
Макет можно определить с помощью кода Java или XML. Как правило, для создания макета используйте код Java, если вы не знаете содержимое заранее.
Например, если ваш макет зависит от контента, который вы читаете из Интернета.
Макеты на основе XML определяются с использованием файла ресурсов в папке «/res/layout».
Этот файл определяет группу представлений (см.
параграф 1.2), представления, их отношения и атрибуты для отдельных макетов.
Если элементу пользовательского интерфейса требуется доступ через код Java, присвойте элементу пользовательского интерфейса уникальный идентификатор (id), используя атрибут «android:id».
Чтобы присвоить новый идентификатор элементу пользовательского интерфейса, используйте конструкцию «@+id/yourvalue».
Обычно при этом создается и присваивается новый идентификатор «yourvalue» соответствующему элементу пользовательского интерфейса.
Позже в коде Java вы сможете получить доступ к этим элементам пользовательского интерфейса с помощью метода findViewById(R.id.yourvalue).
Определение макетов с помощью XML обычно предпочтительнее, поскольку оно отделяет логику программы от определения макетов и упрощает определение различных ресурсов макета для разных устройств.
Вы также можете комбинировать оба подхода.
1.7. Деятельность и жизненный цикл
Продолжение следует? Это мой первый такой большой перевод. Буду рад конструктивной критике.Теги: #Android #разработка #Android #Пряники #разработка #программирование #начало #facepalm #разработка Android
-
Пузырьковое Золото
19 Oct, 24 -
Не Все Точки Доступа Wi-Fi Одинаковы
19 Oct, 24 -
У Microsoft Закончились Переводчики?
19 Oct, 24