AndroidManifest¶
Манифест, описание приложения
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="ru.ilnurgi1.mycalculator"
android:versionCode="1"
android:versionName="0.9 Beta">
</manifest>
аpplication¶
Тег задает метаданные приложения
android:allowBackup - атрибут
<аctivity> - тег описывает активность
android:name - имя класса Активности.
android:label - заголовок Активности.
android:theme - тема для Активности
android:configChanges - обработка событий при изменений конфигурации
оrientation — положение экрана изменено с портретного на альбомное (или наоборот);
keyboardHidden — клавиатура выдвинута или спрятана;
fontScale — пользователь изменил предпочтительный размер шрифта;
locale — пользователь выбрал новые языковые настройки;
keyboard — изменился тип клавиатуры; например, телефон может иметь 12-клавишную панель, при повороте которой появляется полноценная клавиатура;
touchscreen или navigation — изменился тип клавиатуры или способ навигации.
<intent-filter> - интенты активности
<action> - навзвание интента
android:name
<category> - категория интента
android:name
android.intent.category.DEFAULT
<data>
android:scheme
<service> - каждый класс Сервиса должен иметь тег service
<intent-filter> - Намерения Сервиса
<provider> - все Провайдеры в приложении.
<receiver> - регистрация Широковещательного приемника, не запуская при этом приложение.
<uses-permission> - описывают полномочия, которые, по вашему мнению, нужны приложению для полноценной работы.
android.permission.INTERNET - доступ в интернет
<permission> - ограничения доступа к компоненту приложения
<instrumentation> - Классы, производные от Instrumentation, предоставляют фреймворк для тестирования программных компонентов во время их выполнения.
Они содержат методы-перехватчики, с помощью которых отслеживаются работа программы и ее взаимодействия с системными ресурсами.
<application
android:allowBackup=:true:
android:debuggable="true"
android:icon="@drawable/icon"
android:label="string/app_name"
android:name="MyApplication"
android:theme="@style/my_theme" >
<activity
android:name=".MyActivity"
android:label="@string/app_name"
android:theme="@style/ToDoTheme"
android:configChanges="orientation|keyboardHidden">
<intent-filter>
<action
android:name="ru.ilnurgi1.intent.action.some_action" />
<action
android:name="ru.ilnurgi1.intent.action.some_action2" />
<category
android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action
android:name="android.intent.action.VIEW" />
<data
android:scheme="http" />
<category
android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service
android:enabled="true"
android:name=".MyService">
</service>
<provider
android:permission="com.paad.MY_PERMISSION"
android:name=".MyContentProvider"
android:enabled="true"
android:authorities="com.paad.myapp.MyContentProvider">
</provider>
<receiver
android:enabled="true"
android:label="My Intent Receiver"
android:name=".MyIntentReceiver">
</receiver>
<uses-permission
android:name="android.permission.ACCESS_LOCATION"/>
<permission
android:name="com.paad.DETONATE_DEVICE"
android:protectionLevel="dangerous"
android:label="Self Destruct"
android:description="@string/detonate_description">
</permission>
<instrumentation
android:label="My Test"
android:name=".MyTestClass"
android:targetPackage="com.paad.aPackage">
</instrumentation>
</application>
supports-screens¶
Тег задает экранные размеры, которые поддерживаются (и не поддерживаются) вашим приложением.
smallScreens — экраны с разрешением меньшим, чем обычное HVGA, как правило, речь идет о QVGA;
normalScreens — используется для описания экранов стандартных мобильных телефонов, как минимум HVGA, включая HVGA и WQVGA;
largeScreens — экраны больших размеров, значительно больше, чем у мобильного телефона;
anyDensity — установите значение true, если ваше приложение способно масштабироваться для отображения на экране с любым разрешением.
<supports-screens
android:smallScreens=["false"]
android:normalScreens=["true"]
android:largeScreens=["true"]
android:anyDensity=["false"] />
uses-configuration¶
Тег задает механизмы ввода данных, поддерживаемые вашим приложением
reqFiveWayNav — true, если необходимо устройство ввода, поддерживающее навигацию вверх, вниз, влево, вправо, а также нажатие выделенного элемента; в эту категорию входят как трекболы, так и манипуляторы D-pad;
reqHardKeyboard — если вашему приложению нужна аппаратная клавиатура, укажите значение true;
reqKeyboardType — позволяет задать тип клавиатуры — nokeys, qwerty, twelvekey или undefined;
reqNavigation — если требуется устройство для навигации, укажите одно из следующих значений — nonav, dpad, trackball, wheel или undefined;
reqTouchScreen — если вашему приложению понадобится сенсорный экран, выберите одно из следующих значений — notouch, stylus, finger или undefined.
<uses-configuration
android:reqTouchScreen=["finger"]
android:reqNavigation=["trackball"]
android:reqHardKeyboard=["true"]
android:reqKeyboardType=["twelvekey"]/>
uses-feature¶
Тег задает аппаратные возможности.
Это предотвратит установку программы на устройства, которые не соответсвуют аппаратным требованиям.
android.hardware.camera - если для работы приложения нужна аппаратная камера
android.hardware.camera.autofocus - если требуется камера с автоматической фокусировкой
android:glEsVersion - версия OpenGL ES в виде целого числа. Первые 16 бит соответствуют мажорной версии, а последние — минорной (“0x00010001”)
<uses-feature
android:glEsVersion="0x00010001"
android:name="android.hardware.camera" />
uses-sdk¶
Тег, задает версии SDK, которые должны быть доступны на устройстве, чтобы приложение смогло правильно функционировать.
Основываясь на версии SDK, можно ограничить круг устройств, способных запускать приложение.
Атрибуты тега:
minSDKVersion - указывает на минимальную версию SDK, содержащую API, которая используется в вашей программе.
Если не зададите минимальную версию, применится значение по умолчанию, а ваше приложение не сможет корректно работать, если попытается получить доступ к API, которые недоступны на текущем устройстве.
maxSDKVersion - позволяет определить самую позднюю версию, которую вы готовы поддерживать.
Ваше приложение будет невидимым в Android Market для устройств, управляемых системой с более свежей версией.
Устанавливать значение для этого атрибута рекомендуется только в том случае, если вы абсолютно уверены, что приложение не работает на платформе с версией, выше заданной.
targetSDKVersion - позволяет указать платформу, для которой вы разрабатывали и тестировали приложение.
Устанавливая значение для этого атрибута, вы сообщаете системе, что для поддержки этой конкретной версии не требуется никаких изменений, связанных с прямой или обратной совместимостью.
<uses-sdk
android:minSdkVersion="4"
android:targetSdkVersion="5" />