Определение совместимости Android 1.6

Определение совместимости Android: Android 1.6
Андроид 1.6 р2
Гугл Инк.
совместимость@android.com

Оглавление
1. Введение ............................................... .................................................. ........... 4
2. Ресурсы................................................. .................................................. ........................ 4
3. Программное обеспечение ................................................. .................................................. ........................ 5
3.1. Совместимость управляемого API ............................ .................................... 5
3.2. Совместимость с программным API .................................. .............................................. 6
3.2.1. Разрешения............................................... .................................................. ... 6
3.2.2. Параметры сборки................................................. .............................................. 6
3.2.3. Совместимость по намерениям................................................. .......................................... 8
3.2.3.1. Основные цели приложения .................................................. ............................ 8
3.2.3.2. Переопределение намерения ................................................. .............................................. 8
3.2.3.3. Пространства имен намерений............................. .................................... 8
3.2.3.4. Намерения трансляции .............................................. .......................................... 9
3.3. Совместимость с собственным API .................................................. .............................................. 9
3.4. Совместимость веб-API .................................................. .............................................. 9
3.5. Поведенческая совместимость API.................................. ................................ 10
3.6. Пространства имен API............................. .................................................. 10
3.7. Совместимость виртуальных машин .................................. ............................ 11
3.8. Совместимость пользовательского интерфейса............................. ................................. 11

3.8.1. Виджеты .................................................. .................................................. ........ 11
3.8.2. Уведомления .................................................. .................................................. 12
3.8.3. Поиск ................................................. .................................................. .......... 12
3.8.4. Тосты................................................................. .................................................. ........... 12

4. Совместимость эталонного программного обеспечения ............................ ................................ 12
5. Совместимость пакетов приложений ............................ ........................ 13
6. Мультимедийная совместимость............................................ ................................................. 13
7. Совместимость инструментов разработчика............................. ........................................ 14
8. Совместимость оборудования ............................................ ................................................. 15
8.1. Отображать ................................................. .................................................. .......... 15
8.1.1. Стандартные конфигурации дисплея .............................................. .................. 15
8.1.2. Нестандартные конфигурации дисплея ............................ ............ 16
8.1.3. Отображение показателей................................................. ................................................. 16

8.2. Клавиатура .................................................. .................................................. ............ 16
8.3. Бессенсорная навигация............................. .............................................. 16
8.4. Ориентация экрана................................................ ................................................. 17
8.5. Сенсорный ввод.................................................. ................................................. 17
8.6. USB ................................................. .................................................. ........................ 17
8.7. Клавиши навигации................................................. .................................................. .. 17
8.8. Wi-Fi ................................................. .................................................. ........................ 17
8.9. Камера .................................................. .................................................. .............. 18
8.9.1. Камеры без автофокуса............................. ................................. 18
8.10. Акселерометр.................................................. .................................................. .. 18
8.11. Компас .................................................. .................................................. .......... 19
8.12. GPS ................................................. .................................................. ................... 19
8.13. Телефония............................................... .................................................. ......... 19
8.14. Регуляторы громкости................................................. .................................................. 19

9. Совместимость производительности............................. ............................................ 19
10. Совместимость моделей безопасности ............................ .......................................... 20
10.1. Разрешения .................................................. .................................................. ..... 20
10.2. Изоляция пользователя и процесса ............................ ................................. 20
10.3. Разрешения файловой системы............................................... .............................................. 21
11. Набор тестов совместимости ............................ .............................................. 21

12. Свяжитесь с нами ............................................ .................................................. ................. 21
Приложение A: Требуемые намерения приложения ............................ ........................ 22
Приложение B: Требуемые цели трансляции ............................ ........................ 0
Приложение C: Будущие соображения............................. ................................... 0

1. Нетелефонные устройства............................................. ................................................. 30
2. Совместимость Bluetooth............................................ ............................................ 30
3. Необходимые аппаратные компоненты............................................. ............................ 30
4. Примеры заявлений............................................. ................................................. 30
5. Сенсорные экраны............................................. .................................................. ......... 30
6. Производительность................................................. .................................................. ............ 31

1. Введение
В этом документе перечислены требования, которые должны быть выполнены для того, чтобы мобильные телефоны были
совместим с Android 1.6. Это определение предполагает знакомство с программой совместимости Android.
[Ресурсы, 1].
Использование слов «должен», «нельзя», «требуется», «должен», «не должен», «следует», «не следует», «рекомендуется»,
«может» и «необязательно» соответствуют стандарту IETF, определенному в RFC2119 [ Ресурсы , 2].
В этом документе «разработчик устройства» или «разработчик» — это лицо или организация, разрабатывающая
аппаратное/программное решение под управлением Android 1.6. «Реализация устройства» или «реализация» — это
разработанное таким образом аппаратное/программное решение.
Чтобы считаться совместимым с Android 1.6, реализации устройства:
1. ДОЛЖЕН соответствовать требованиям, представленным в настоящем Определении совместимости, включая любые документы.
включено посредством ссылки.
2. ДОЛЖЕН пройти тест на совместимость Android (CTS), доступный в рамках Android Open.
Исходный проект [ Ресурсы , 3]. CTS тестирует большинство, но не все компоненты, описанные в этом документе.
документ.
Если это определение или CTS не содержат слов, двусмысленны или неполны, ответственность за это несет устройство.
разработчик для обеспечения совместимости с существующими реализациями. По этой причине Android Open
Исходный проект [ Resources , 4] является одновременно эталонной и предпочтительной реализацией Android. Устройство
разработчикам настоятельно рекомендуется основывать свои реализации на «восходящем» исходном коде.
доступен в проекте Android с открытым исходным кодом. Хотя некоторые компоненты гипотетически можно заменить.
в альтернативных реализациях такая практика настоятельно не рекомендуется, так как прохождение тестов CTS станет
существенно сложнее. Ответственность за обеспечение полной поведенческой совместимости с
стандартная реализация Android, включая набор тестов на совместимость и помимо него.
2. Ресурсы
В этом определении совместимости упоминается ряд ресурсов, которые можно получить здесь.
1. Обзор программы совместимости Android: https://sites.google.com/a/android.com/compatibility/ .
как это работает
2. Уровни требований IETF RFC2119: http://www.ietf.org/rfc/rfc2119.txt .
3. Набор тестов совместимости: http://sites.google.com/a/android.com/compatibility/compatibility-test-
люкс - cts
4. Проект Android с открытым исходным кодом: http://source.android.com/
5. Определения API и документация: http://developer.android.com/reference/packages.html .
6. Поставщики контента: http://code.google.com/android/reference/android/provider/package- .
summary.html
7. Доступные ресурсы: http://code.google.com/android/reference/available-resources.html .
8. Файлы манифеста Android: http://code.google.com/android/devel/bblocks-manifest.html .
9. Справочник по разрешениям Android: http://developer.android.com/reference/android/ .
Манифест.permission.html
10. Константы сборки: http://developer.android.com/reference/android/os/Build.html .
11. WebView: http://developer.android.com/reference/android/webkit/WebView.html .
12. Расширения браузера Gears: http://code.google.com/apis/gears/

13. Спецификация виртуальной машины Dalvik, находится в каталоге dalvik/docs исходного кода.
проверить; также доступно по адресу http://android.git.kernel.org/?p=platform/ .
dalvik.git;a=tree;f=docs;h=3e2ddbcaf7f370246246f9f03620a7caccbfcb12;hb=HEAD

14. Виджеты приложений: http://developer.android.com/guide/practices/ui_guidelines/widget_design.html .
15. Уведомления: http://developer.android.com/guide/topics/ui/notifiers/notifications.html .
16. Руководство по стилю значков строки состояния: http://developer.android.com/guide/practices/ui_guideline .
/icon_design.html#statusbarstructure
17. Менеджер поиска: http://developer.android.com/reference/android/app/SearchManager.html .
18. Тост: http://developer.android.com/reference/android/widget/Toast.html .
19. Приложения для Android: http://code.google.com/p/apps-for-android .
20. Описание APK-файла Android: http://developer.android.com/guide/topics/fundamentals.html .
21. Мост отладки Android (adb): http://code.google.com/android/reference/adb.html .
22. Служба мониторинга отладки Dalvik (ddms): http://code.google.com/android/reference/ddms.html .
23. Обезьяна: http://developer.android.com/guide/developing/tools/monkey.html .
24. Документация о независимости отображения:
25. Константы конфигурации: http://developer.android.com/reference/android/content/res/ .
Конфигурация.html
26. Показатели отображения: http://developer.android.com/reference/android/util/DisplayMetrics.html .
27. Камера: http://developer.android.com/reference/android/hardware/Camera.html .
28. Пространство координат датчика: http://developer.android.com/reference/android/hardware/
SensorEvent.html
29. Справочник по безопасности и разрешениям Android: http://developer.android.com/guide/topics/security/ .
безопасность.html
Многие из этих ресурсов прямо или косвенно получены из Android 1.6 SDK и будут
функционально идентично информации в документации этого SDK. В любых случаях, когда это
Определение совместимости не соответствует документации SDK, считается, что документация SDK
авторитетный. Любые технические детали, представленные в приведенных выше ссылках, считаются включением.
быть частью этого определения совместимости.
3. Программное обеспечение
Платформа Android включает в себя как набор управляемых («жестких») API, так и корпус так называемых «мягких» API.
такие как система Intent, API собственного кода и API веб-приложений. В этом разделе подробно описаны сложные и
программные API, являющиеся неотъемлемой частью совместимости, а также некоторые другие соответствующие технические и пользовательские интерфейсы.
поведение. Реализации устройства ДОЛЖНЫ соответствовать всем требованиям этого раздела.
3.1. Совместимость управляемого API
Управляемая среда выполнения (на базе Dalvik) является основным средством для приложений Android.
Интерфейс программирования приложений Android (API) — это набор интерфейсов платформы Android,
приложения, работающие в управляемой среде виртуальных машин. Реализации устройства ДОЛЖНЫ обеспечивать полную
реализации, включая все документированное поведение, любого документированного API, предоставляемого Android.
1.6 SDK, например:
1. Базовые API-интерфейсы Android на языке Java [Ресурсы, 5].
2. Поставщики контента [Ресурсы , 6].
3. Ресурсы [Ресурсы, 7].
4. Атрибуты и элементы AndroidManifest.xml [Ресурсы, 8].

Реализации устройств НЕ ДОЛЖНЫ исключать какие-либо управляемые API, изменять интерфейсы или подписи API, отклоняться от
из задокументированного поведения или включать неактивные операции, за исключением случаев, когда это специально разрешено настоящей совместимостью.
Определение.
3.2. Совместимость с программным API
В дополнение к управляемым API из раздела 3.1, Android также включает в себя значительное «программное обеспечение» только во время выполнения.
API в виде таких вещей, как намерения, разрешения и подобные аспекты приложений Android.
это не может быть реализовано во время компиляции приложения. В этом разделе подробно описаны «мягкие» API и система.
поведение, необходимое для совместимости с Android 1.6. Реализации устройства ДОЛЖНЫ соответствовать всем
Требования, представленные в этом разделе.
3.2.1. Разрешения
Разработчики устройств ДОЛЖНЫ поддерживать и обеспечивать соблюдение всех констант разрешений, как описано в документации.
Справочная страница разрешений [ Ресурсы , 9]. Обратите внимание, что в разделе 10 перечислены дополнительные требования, связанные с
Модель безопасности Android.
3.2.2. Параметры сборки
API-интерфейсы Android включают в себя ряд констант класса android.os.Build [Resources, 10] , которые
предназначен для описания текущего устройства. Чтобы обеспечить согласованные и значимые значения на всех устройствах.
реализации, таблица ниже включает дополнительные ограничения на форматы этих значений, к которым
реализации устройства ДОЛЖНЫ соответствовать.
Параметр
Комментарии
Версия используемой в данный момент системы Android, на человеческом языке.
android.os.Build.VERSION.RELEASE
читаемый формат. Для Android 1.6 это поле ДОЛЖНО иметь строковое значение.
«1,6».
Версия действующей в данный момент системы Android в формате
android.os.Build.VERSION.SDK
доступен для кода стороннего приложения. Для Android 1.6 это поле
ДОЛЖЕН иметь целое значение 4.
Значение, выбранное разработчиком устройства, обозначающее конкретную сборку.
текущей системы Android в удобочитаемом формате.
Это значение НЕ ДОЛЖНО использоваться повторно для разных сборок, доставленных до конца.
Пользователи android.os.Build.VERSION.INCREMENTAL. Типичное использование этого поля — указать номер сборки или
Идентификатор изменения системы управления версиями использовался для создания сборки. Там
нет никаких требований к конкретному формату этого поля, за исключением того, что оно
НЕ ДОЛЖНО быть нулевым или пустой строкой ("").
Значение, выбранное разработчиком устройства, определяющее конкретную внутреннюю
оборудование, используемое устройством, в удобочитаемом формате. Возможное использование
android.os.Build.BOARD
этого поля предназначено для указания конкретной версии платы, питающей
устройство. Никаких требований к конкретному формату этого поля нет.
за исключением того, что оно НЕ ДОЛЖНО быть нулевым или пустой строкой ("").
Значение, выбранное разработчиком устройства, определяющее имя
android.os.Build.BRAND
компания, организация, физическое лицо и т.п., выпустившие устройство, в
человекочитаемый формат. Возможное использование этого поля — указать OEM-производителя.

и/или оператора связи, продавшего устройство. Никаких требований к
определенный формат этого поля, за исключением того, что оно НЕ ДОЛЖНО быть нулевым или пустым.
нить ("").
Значение, выбранное разработчиком устройства, определяющее конкретный
конфигурация или доработка кузова (иногда называемая «промышленной
android.os.Build.DEVICE
дизайн") устройства. Требований к конкретному формату нет.
этого поля, за исключением того, что оно НЕ ДОЛЖНО быть нулевым или пустой строкой ("").
Строка, которая однозначно идентифицирует эту сборку. Это ДОЛЖНО быть разумно
человек читаемый. Он ДОЛЖЕН следовать этому шаблону:
$(PRODUCT_BRAND)/$(PRODUCT_NAME)/$(PRODUCT_DEVICE)/
$(TARGET_BOOTLOADER_BOARD_NAME):$(PLATFORM_VERSION)/
$(BUILD_ID)/$(BUILD_NUMBER):$(TARGET_BUILD_VARIANT)/
android.os.Build.FINGERPRINT
$(BUILD_VERSION_TAGS)
Например: acme/mydevicel/generic/generic:Donut/ERC77/
3359:userdebug/тестовые ключи
Отпечаток пальца НЕ ДОЛЖЕН содержать пробелов. Если другие поля включены в
в приведенном выше шаблоне есть пробелы, их СЛЕДУЕТ заменить на ASCII
символ подчеркивания («_») в отпечатке пальца.
Строка, которая однозначно идентифицирует хост, на котором была построена сборка, на человеческом языке.
android.os.Build.HOST
читаемый формат. Никаких требований к конкретному формату данного документа нет.
поле, за исключением того, что оно НЕ ДОЛЖНО быть нулевым или пустой строкой ("").
Идентификатор, выбранный разработчиком устройства для обозначения конкретного
релиз в удобочитаемом формате. Это поле может быть таким же, как и
android.os.Build.VERSION.INCREMENTAL, но ДОЛЖНО быть значением
android.os.Build.ID
предназначен для того, чтобы иметь некоторую значимость для конечных пользователей. Нет
требования к конкретному формату этого поля, за исключением того, что оно НЕ ДОЛЖНО
иметь значение NULL или пустую строку ("").
Значение, выбранное разработчиком устройства, содержащее имя
устройство, известное конечному пользователю. Это ДОЛЖНО быть то же имя
android.os.Build.MODEL
в соответствии с которым устройство продается конечным пользователям. Нет
требования к конкретному формату этого поля, за исключением того, что оно НЕ ДОЛЖНО
иметь значение NULL или пустую строку ("").
Значение, выбранное разработчиком устройства, содержащее разработку.
имя или кодовое имя устройства. ДОЛЖЕН быть удобочитаемым, но не
android.os.Build.PRODUCT
обязательно предназначен для просмотра конечными пользователями. Нет никаких требований
в конкретном формате этого поля, за исключением того, что оно НЕ ДОЛЖНО быть нулевым или
пустая строка ("").
Разделенный запятыми список тегов, выбранный разработчиком устройства, который
далее различать сборку. Например, «без знака, отладка». Это поле
android.os.Build.TAGS
НЕ ДОЛЖНО быть нулевым значением или пустой строкой (""), а должен быть один тег (например,
«выпустить») — это нормально.
android.os.Build.TIME
Значение, представляющее отметку времени, когда произошла сборка.
Значение, выбранное разработчиком устройства, определяющее время выполнения.
конфигурация сборки. Это поле ДОЛЖНО иметь одно из значений
android.os.Build.TYPE
соответствует трем типичным конфигурациям среды выполнения Android: «пользователь»,
«userdebug» или «eng».
Имя или идентификатор пользователя (или автоматического пользователя), создавшего
android.os.Build.USER
строить. Никаких требований к конкретному формату этого поля нет.
за исключением того, что оно НЕ ДОЛЖНО быть нулевым или пустой строкой ("").

3.2.3. Совместимость по намерениям
Android использует намерения для достижения слабосвязанной интеграции между приложениями. В этом разделе описываются
требования, связанные с шаблонами намерений, которые ДОЛЖНЫ соблюдаться реализациями устройств. К
«уважается», это означает, что разработчик устройства ДОЛЖЕН предоставить действие Android, услугу или другое
компонент, который определяет соответствующий фильтр намерений, привязывается и реализует правильное поведение для каждого
указанный шаблон намерения.
3.2.3.1. Основные цели приложения
Проект Android upstream определяет ряд основных приложений, таких как телефонный номеронабиратель, календарь,
книга контактов, музыкальный проигрыватель и т. д. Разработчики устройств МОГУТ заменить эти приложения на
альтернативные версии.
Однако любые такие альтернативные версии ДОЛЖНЫ соблюдать одни и те же шаблоны намерений, предоставленные восходящим потоком.
проект. (Например, если устройство содержит альтернативный музыкальный проигрыватель, оно все равно должно соблюдать шаблон намерения.
выдается сторонними приложениями для выбора песни.) Реализации устройства ДОЛЖНЫ поддерживать все шаблоны намерений.
перечислены в Приложении А.
3.2.3.2. Переопределение намерения
Поскольку Android является расширяемой платформой, разработчики устройств ДОЛЖНЫ разрешить каждый шаблон намерения, описанный в разделе
Приложение A будет переопределено сторонними приложениями. Первоначальный проект Android с открытым исходным кодом
разрешает это по умолчанию; Разработчики устройств НЕ ДОЛЖНЫ назначать специальные привилегии системным приложениям.
использование этих шаблонов намерений или запретить сторонним приложениям привязываться к ним и брать на себя контроль над ними.
эти узоры. Этот запрет, в частности, включает в себя отключение пользовательского интерфейса «Выборщик», который позволяет
пользователь может выбирать между несколькими приложениями, которые обрабатывают один и тот же шаблон намерения.
3.2.3.3. Пространства имен намерений
Разработчики устройств НЕ ДОЛЖНЫ включать какой-либо компонент Android, который учитывает любое новое намерение или
Широковещательная передача шаблонов намерений с использованием ACTION, CATEGORY или другой ключевой строки в пространстве имен android.*.
Разработчики устройств НЕ ДОЛЖНЫ включать какие-либо компоненты Android, которые соответствуют каким-либо новым намерениям или
Широковещательная рассылка шаблонов намерений с использованием ДЕЙСТВИЯ, КАТЕГОРИИ или другой ключевой строки в пространстве пакета.
принадлежащий другой организации. Разработчики устройств НЕ ДОЛЖНЫ изменять или расширять какое-либо из намерений.
шаблоны, перечисленные в Приложениях А или Б.
Этот запрет аналогичен тому, который указан для классов языка Java в разделе 3.6.

3.2.3.4. Намерения трансляции
Сторонние приложения используют платформу для трансляции определенных намерений, чтобы уведомить их об изменениях в
аппаратная или программная среда. Android-совместимые устройства ДОЛЖНЫ транслировать общедоступную трансляцию
Намерения в ответ на соответствующие системные события. Список необходимых целей трансляции представлен в
Приложение Б; однако обратите внимание, что SDK может определять дополнительные намерения широковещания, которые также ДОЛЖНЫ быть
заслужено.
3.3. Совместимость с собственным API
Управляемый код, работающий в Dalvik, может вызывать собственный код, представленный в файле .apk приложения в виде ELF.
Файл .so, скомпилированный для соответствующей аппаратной архитектуры устройства. Реализации устройства ДОЛЖНЫ включать
поддержка кода, работающего в управляемой среде, для вызова собственного кода с использованием стандарта Java
Семантика собственного интерфейса (JNI). Следующие API должны быть доступны для машинного кода:
libc (библиотека C)
libm (математическая библиотека)
Интерфейс JNI
libz (сжатие Zlib)
liblog (ведение журнала Android)
Минимальная поддержка C++.
OpenGL ES 1.1.
Эти библиотеки ДОЛЖНЫ быть совместимыми с исходным кодом (т. е. совместимыми с заголовком) и двоично-совместимыми (для данного
архитектура процессора) с версиями, предоставленными в Bionic проектом Android Open Source. С
реализации Bionic не полностью совместимы с другими реализациями, такими как GNU C.
библиотеку, разработчики устройств ДОЛЖНЫ использовать реализацию Android. Если разработчики устройств используют
различная реализация этих библиотек, они должны обеспечивать совместимость заголовков и двоичных файлов.
Совместимость нативного кода является сложной задачей. По этой причине мы хотим повторить, что разработчики устройств
ОЧЕНЬ настоятельно рекомендуется использовать вышеперечисленные реализации библиотек, перечисленных выше, чтобы помочь
обеспечить совместимость.
3.4. Совместимость веб-API
Многие разработчики и приложения полагаются на поведение класса android.webkit.WebView [ Ресурсы ,
11] для своих пользовательских интерфейсов, поэтому реализация WebView должна быть совместима с Android.
реализации. Реализация Android с открытым исходным кодом использует версию механизма рендеринга WebKit для
реализовать WebView.
Поскольку разработать комплексный набор тестов для веб-браузера невозможно, разработчики устройств
ДОЛЖНО использовать конкретную исходную сборку WebKit в реализации WebView. Конкретно:
• WebView ДОЛЖЕН использовать сборку WebKit 528.5+ из исходного дерева Android с открытым исходным кодом для
Андроид 1.6. Эта сборка включает определенный набор исправлений функциональности и безопасности для WebView.
• Строка пользовательского агента, сообщаемая WebView, ДОЛЖНА быть в следующем формате:
Mozilla/5.0 (Linux; U; Android 1.6; <язык>-<страна>; <устройство)
имя>; Сборка/<идентификатор сборки>) AppleWebKit/528.5+ (KHTML, например Gecko)
Версия/3.1.2 Мобильное Safari/525.20.1

◦ Строка «<имя устройства>» ДОЛЖНА совпадать со значением
android.os.Build.MODEL
◦ Строка «<build ID>» ДОЛЖНА совпадать со значением android.os.Build.ID.
◦ Строки «<язык>» и «<страна>» ДОЛЖНЫ соответствовать обычным соглашениям для
код страны и язык, и СЛЕДУЕТ ссылаться на текущую локаль устройства на
время запроса.
Реализации МОГУТ отправлять специальную строку пользовательского агента в автономное приложение браузера. Что
более того, автономный браузер МОЖЕТ быть основан на альтернативной технологии браузера (например, Firefox,
Opera и т. д.). Однако даже если поставляется альтернативное браузерное приложение, компонент WebView
предоставляемые сторонним приложениям, ДОЛЖНЫ быть основаны на WebKit, как указано выше.
Автономное браузерное приложение ДОЛЖНО включать поддержку Gears [ Ресурсы, 12] и МОЖЕТ
включить поддержку некоторых или всех HTML5.
3.5. Поведенческая совместимость API
Поведение каждого типа API (управляемого, программного, собственного и веб-интерфейса) должно соответствовать
предпочтительная реализация Android, доступная в проекте Android с открытым исходным кодом.
Некоторые конкретные области совместимости:
• Устройства НЕ ДОЛЖНЫ изменять поведение или значение стандартного намерения.
• Устройства НЕ ДОЛЖНЫ изменять жизненный цикл или семантику жизненного цикла системы определенного типа.
компонент (например, Сервис, Активность, ContentProvider и т. д.)
• Устройства НЕ ДОЛЖНЫ изменять семантику определенного разрешения.
Приведенный выше список не является исчерпывающим, и ответственность за обеспечение поведенческих характеристик лежит на разработчиках устройств.
совместимость. По этой причине разработчики устройств ДОЛЖНЫ использовать исходный код, доступный через
Проект Android с открытым исходным кодом, где это возможно, а не повторная реализация значительных частей системы.
Набор тестов совместимости (CTS) проверяет значительные части платформы на поведенческую совместимость.
но не все. Ответственность за обеспечение поведенческой совместимости с Android лежит на разработчике.
Проект с открытым исходным кодом.
3.6. Пространства имен API
Android следует соглашениям о пространствах имен пакетов и классов, определенным программированием на Java.
язык. Чтобы обеспечить совместимость со сторонними приложениями, разработчики устройств НЕ ДОЛЖНЫ вносить
любые запрещенные модификации (см. ниже) этих пространств имен пакетов:
• Джава.*
• Явакс.*
• солнце.*
• Андроид.*
• com.android.*
К запрещенным модификациям относятся:
• Реализации устройств НЕ ДОЛЖНЫ изменять общедоступные API на платформе Android.
путем изменения сигнатур любого метода или класса или путем удаления классов или полей классов.

• Разработчики устройств МОГУТ изменять базовую реализацию API, но такие
модификации НЕ ДОЛЖНЫ влиять на заявленное поведение и подпись языка Java любого
общедоступные API.
• Разработчики устройств НЕ ДОЛЖНЫ добавлять какие-либо общедоступные элементы (такие как классы или
интерфейсы или поля или методы существующих классов или интерфейсов) к API-интерфейсам, указанным выше.
«Общедоступный элемент» — это любая конструкция, которая не украшена маркером «@hide» в
вышестоящий исходный код Android. Другими словами, разработчики устройств НЕ ДОЛЖНЫ предоставлять новые API или
изменить существующие API в пространствах имен, указанных выше. Разработчики устройств МОГУТ создавать только внутренние
модификации, но эти модификации НЕ ДОЛЖНЫ рекламироваться или иным образом раскрываться разработчикам.
Разработчики устройств МОГУТ добавлять собственные API, но любые такие API НЕ ДОЛЖНЫ находиться в принадлежащем им пространстве имен.
посредством или со ссылкой на другую организацию. Например, разработчики устройств НЕ ДОЛЖНЫ добавлять API в
com.google.* или подобное пространство имен; только Google может это сделать. Аналогично, Google НЕ ДОЛЖЕН добавлять API в
пространства имен других компаний.
Если разработчик устройства предлагает улучшить одно из пространств имен пакета, указанных выше (например, добавив
новые полезные функции для существующего API или добавление нового API), разработчику СЛЕДУЕТ посетить
source.android.com и начните процесс внесения изменений и кода в соответствии с
информация на этом сайте.
Обратите внимание, что приведенные выше ограничения соответствуют стандартным соглашениям об именах API в Java.
язык программирования; этот раздел просто направлен на то, чтобы укрепить эти конвенции и сделать их обязательными.
путем включения в это определение совместимости.
3.7. Совместимость виртуальных машин
Совместимое устройство Android должно поддерживать полную спецификацию байт-кода Dalvik Executable (DEX) и
Семантика виртуальной машины Dalvik [Ресурсы, 13].
3.8. Совместимость пользовательского интерфейса
Платформа Android включает в себя некоторые API-интерфейсы для разработчиков, которые позволяют разработчикам подключаться к пользователю системы.
интерфейс. Реализации устройств ДОЛЖНЫ включать эти стандартные API-интерфейсы пользовательского интерфейса в пользовательские интерфейсы.
они развиваются, как объяснено ниже.
3.8.1. Виджеты
Android определяет тип компонента, соответствующий API и жизненный цикл, который позволяет приложениям предоставлять
«AppWidget» для конечного пользователя [Ресурсы , 14] . Справочный выпуск Android с открытым исходным кодом включает в себя
Приложение запуска, включающее элементы пользовательского интерфейса, позволяющие пользователю добавлять, просматривать и удалять
AppWidgets с главного экрана.
Разработчики устройств МОГУТ заменить альтернативу эталонному средству запуска (т. е. главному экрану).
Альтернативные средства запуска ДОЛЖНЫ включать встроенную поддержку AppWidgets и предоставлять пользовательский интерфейс.
элементы для добавления, просмотра и удаления AppWidgets непосредственно в панели запуска. Альтернативные пусковые установки МОГУТ
опустите эти элементы пользовательского интерфейса; однако, если они опущены, разработчик устройства ДОЛЖЕН предоставить
отдельное приложение, доступное из панели запуска, которое позволяет пользователям добавлять, просматривать и удалять
AppWidgets.

3.8.2. Уведомления
Android включает API, которые позволяют разработчикам уведомлять пользователей о значимых событиях [Ресурсы, 15]. Устройство
разработчики ДОЛЖНЫ обеспечить поддержку каждого определенного таким образом класса уведомления; конкретно: звуки,
вибрация, свет и строка состояния.
Кроме того, реализация ДОЛЖНА правильно отображать и все ресурсы (значки, звуковые файлы и т. д.)
предусмотрено в API [Ресурсы, 7] или в руководстве по стилю значков строки состояния [Ресурсы , 16]. Устройство
разработчики МОГУТ предоставить альтернативный пользовательский интерфейс для уведомлений, чем тот, который предусмотрен
эталонная реализация Android с открытым исходным кодом; однако такие альтернативные системы уведомления ДОЛЖНЫ
поддерживать существующие ресурсы уведомлений, как указано выше.
3.8.3. Поиск
Android включает API [Ресурсы, 17], которые позволяют разработчикам включать поиск в свои приложения.
и предоставить данные своего приложения для глобального системного поиска. В общем, эта функциональность
состоит из единого общесистемного пользовательского интерфейса, который позволяет пользователям вводить запросы, отображает предложения
по мере ввода пользователем и отображает результаты. API-интерфейсы Android позволяют разработчикам повторно использовать этот интерфейс для предоставления
выполнять поиск в своих приложениях и позволять разработчикам предоставлять результаты общему пользователю глобального поиска.
интерфейс.
Реализации устройства ДОЛЖНЫ включать единый общий общесистемный пользовательский интерфейс поиска, способный
предложения в реальном времени в ответ на действия пользователя. Реализации устройств ДОЛЖНЫ реализовывать API, которые
позволить разработчикам повторно использовать этот пользовательский интерфейс для обеспечения поиска в своих приложениях.
Реализации устройств ДОЛЖНЫ реализовывать API, которые позволяют сторонним приложениям добавлять предложения.
в поле поиска, когда оно запускается в режиме глобального поиска. Если не установлены сторонние приложения, которые
использовать эту функцию, поведением по умолчанию ДОЛЖНО быть отображение результатов веб-поисковой системы и
предложения.
Реализации устройств МОГУТ поставлять альтернативные пользовательские интерфейсы поиска, но ДОЛЖНЫ включать в себя аппаратный или программный интерфейс.
специальная кнопка поиска, которую можно использовать в любое время в любом приложении для вызова системы поиска,
с поведением, предусмотренным в документации API.
3.8.4. Тосты
Приложения могут использовать API «Toast» (определенный в [ Ресурсы, 18]) для отображения коротких немодальных строк на
конечному пользователю, которые исчезают через короткий промежуток времени. Реализации устройств ДОЛЖНЫ отображать всплывающие уведомления от
приложения конечным пользователям в наглядной форме.
4. Совместимость эталонного программного обеспечения
Разработчики устройств ДОЛЖНЫ проверять совместимость реализации, используя следующие файлы с открытым исходным кодом:
Приложения:
• Калькулятор (включен в SDK)
• Лунный посадочный модуль (включен в SDK)
• ApiDemos (включен в SDK).
• Приложения «Приложения для Android» [ Ресурсы, 19]
Каждое вышеуказанное приложение ДОЛЖНО запускаться и корректно вести себя в реализации, чтобы реализация была

считается совместимым.
5. Совместимость пакетов приложений
Реализации устройств ДОЛЖНЫ устанавливать и запускать файлы Android «.apk», созданные инструментом «aapt».
включен в официальный Android SDK [ Ресурсы , 20].
Реализации устройств НЕ ДОЛЖНЫ расширять байт-код .apk, Android Manifest или Dalvik.
форматы таким образом, чтобы эти файлы не могли корректно устанавливаться и работать на других
совместимые устройства. Разработчикам устройств СЛЕДУЕТ использовать эталонную реализацию Dalvik,
и система управления пакетами эталонной реализации.
6. Мультимедийная совместимость
Совместимое устройство Android должно поддерживать следующие мультимедийные кодеки. Все эти кодеки
Предоставлено в качестве программных реализаций в предпочтительной реализации Android от Android Open
Источник проекта [ ресурсы , 4].
Обратите внимание, что ни Google, ни открытый альянс телефона не делают никаких представлений, что они
Кодеки не обременены сторонними патентами. Те, кто намеревается использовать этот исходный код в оборудовании или
Программные продукты рекомендуются, что реализации этого кода, в том числе в программном обеспечении с открытым исходным кодом или
Общее программное обеспечение может потребовать лицензий на патенты от соответствующих патентных держателей.
Аудио
Имя

Подробности декодера энкодера
Файлы поддерживаются
Моно/стерео контент в любом
3GPP (.3gp) и
Комбинация стандартных ставок битов
MPEG-4 (.mp4, .m4a)
AAC LC/LTP
Икс
до 160 кбит / с и файлов скорости отбора проб. Нет поддержки RAW
от 8 до 48 кГц
AAC (.AAC)
Моно/стерео контент в любом
3GPP (.3gp) и
HE-AACV1
Комбинация стандартных ставок битов
MPEG-4 (.mp4, .m4a)
Икс
(AAC+)
до 96 кбит / с и файлов скорости отбора проб. Нет поддержки RAW
от 8 до 48 кГц
AAC (.AAC)
Моно/стерео контент в любом
HE-AACV2
3GPP (.3gp) и
Комбинация стандартных ставок битов
(повышенная
MPEG-4 (.mp4, .m4a)
Икс
до 96 кбит / с и скорости отбора проб
AAC+)
файлы. Нет поддержки RAW
от 8 до 48 кГц
AAC (.AAC)
AMR-NB
От 4,75 до 12,2 кбит / с @
Файлы 3GPP (.3gp)
Икс
Икс
8 кГц
AMR-WB
9 ставок от 6,60 кбит/с до 23,85
-3gpp (.3gp) файлы
Икс
KBIT/S SAMPLED при 16 кГц
МП3
Mono/Stereo 8-320 кбит/с.
Икс
(CBR) или переменная сочетая скорость (VBR)
Тип 0 и 1 (.mid, .xmf,
MIDI Тип 0 и 1. DLS версия 1
МИДИ
Икс
.mxmf). Также rtttl/rtx
и 2. XMF и мобильный XMF.
(.rtttl, .rtx), Ota (.ota),

Поддержка форматов рингтона
и Имелоди (.imy)
Rtttl/rtx, ota и imelody
Огг Ворбис
.ogg
Икс
8- и 16-битный линейный PCM (оценивает повышение
ПКМ
Икс
ВОЛНА
ограничить оборудование)
Изображение
Файлы
Имя
Подробности декодера энкодера
Поддерживается
JPEG
Икс
Икс
база+прогрессивный
гифка
Икс
PNG
Икс
Икс
BMP
Икс
видео
Файлы
Имя
Подробности декодера энкодера
Поддерживается
3gpp (.3gp)
H.263
Икс
Икс
файлы
3gpp (.3gp)
H.264
Икс
и MPEG-4
(.mp4) файлы
MPEG4
Икс
Файл 3GPP (.3gp)
СП
7. Совместимость инструмента разработчика
Реализации устройств должны поддерживать инструменты разработчика Android, представленные в Android SDK.
В частности, устройства, совместимые с Android, должны быть совместимы с:
Android Debug Bridge или ADB [Resources , 21]
Реализации устройства должны поддерживать все функции ADB, как задокументировано в Android
СДК. Демон ADB на стороне устройства должен быть неактивным по умолчанию, но должен быть пользователь-
Доступный механизм для включения моста отладки Android.
Dalvik Debug Monitor Service или DDMS [Ресурсы , 22]
Реализации устройств должны поддерживать все функции DDMS, как задокументировано в Android SDK.
Поскольку DDMS использует ADB, поддержка DDMS должна быть неактивной по умолчанию, но должна поддерживаться
Всякий раз, когда пользователь активировал мост отладки Android, как указано выше.

Обезьяна [Ресурсы, 23]
Реализации устройства должны включать в себя структуру обезьяны и сделать его доступным для
Приложения для использования.
8. Совместимость оборудования
Android предназначен для поддержки реализаторов устройств, создающих инновационные форм -факторы и конфигурации.
В то же время разработчики Android ожидают определенного оборудования, датчиков и API во всех Android
устройство. В этом разделе перечислены аппаратные функции, которые должны поддерживать все совместимые устройства Android 1.6. В
Android 1.6, требуется большинство аппаратных функций (такие как Wi -Fi, Compass и акселерометр).
Если устройство включает в себя конкретный аппаратный компонент, который имеет соответствующий API для сторонних.
Разработчики, реализация устройства должна реализовать этот API, как определено в Android SDK
документация.
8.1. Отображать
Android 1.6 включает средства, которые выполняют определенные автоматические операции масштабирования и преобразования в соответствии с
Некоторые обстоятельства, чтобы гарантировать, что сторонние приложения разумно хорошо работают на оборудовании
Конфигурации, для которых они не обязательно были явно спроектированы [ресурсы, 24] . Устройства должны
Правильно реализовать это поведение, как подробно описано в этом разделе.
8.1.1. Стандартные конфигурации дисплея
В этой таблице перечислены стандартные конфигурации экрана, которые считаются совместимыми с Android:
Диагональ
Размер экрана
Плотность экрана
Тип экрана
Ширина (пиксели)
Высота (пиксели)
Длина диапазона
Группа
Группа
(дюймы)
QVGA
240
320
2.6 - 3.0
Маленький
Низкий
WQVGA
240
400
3.2 - 3.5
Нормальный
Низкий
FWQVGA
240
432
3.5 - 3.8
Нормальный
Низкий
HVGA
320
480
3.0 - 3.5
Нормальный
Середина
WVGA
480
800
3.3 - 4.0
Нормальный
Высокий
FWVGA
480
854
3.5 - 4,0
Нормальный
Высокий
WVGA
480
800
4.8 - 5,5
Большой
Середина
FWVGA
480
854
5.0 - 5.8
Большой
Середина
Реализации устройств, соответствующие одной из стандартных конфигураций, приведенных выше, должны быть настроены
Чтобы сообщить указанный размер экрана в приложениях через Android.content.res.configuration [ Ресурсы,
25] класс.
У некоторых пакетов .APK есть манифесты, которые не идентифицируют их как поддержку определенного диапазона плотности.
При запуске таких приложений применяются следующие ограничения:

• Реализации устройств должны интерпретировать любые ресурсы, которые присутствуют как дефолт
«Среда» (известная как «MDPI» в документации SDK.)
• При работе на «низкой» экране плотности реализации устройств должны уменьшить среду/
Активы MDPI в размере 0,75.
• При работе на экране «высокой» плотности реализации устройств должны увеличить среду/
Активы MDPI в размере 1,5.
• Реализации устройства не должны масштабироваться в диапазоне плотности и должны масштабироваться
активы именно эти факторы между диапазонами плотности.
8.1.2. Нестандартные конфигурации дисплея
Отображать конфигурации, которые не соответствуют одной из стандартных конфигураций, перечисленных в разделе 8.2.1.
Дополнительное рассмотрение и работа, чтобы быть совместимыми. Реализаторы устройства должны связаться с Android
Команда совместимости, как предусмотрено в разделе 12 для получения классификаций для ведра размера экрана, плотности,
и коэффициент масштабирования. При предоставлении этой информации реализации устройств должны их реализовать
как указано.
Обратите внимание, что некоторые конфигурации отображают (например, очень большие или очень маленькие экраны и некоторые соотношения сторон)
принципиально несовместимы с Android 1.6; Поэтому реализаторам устройства рекомендуется
Свяжитесь с командой совместимости Android как можно раньше в процессе разработки.
8.1.3. Показать метрики
Реализации устройства должны сообщать о правильных значениях для всех показателей отображения, определенных в
Android.util.DisplayMetrics [Resources , 26].
8.2. Клавиатура
Реализации устройства:
• Должен включить поддержку структуры управления вводами (что позволяет третьим сторонам
Разработчики для создания двигателей управления входами - т.е. мягкая клавиатура), как подробно описано на
Developer.android.com
• Должен предоставить хотя бы одну реализацию мягкой клавиатуры (независимо от того, жестко ли
Клавиатура присутствует)
• Может включать дополнительные реализации мягкой клавиатуры
• Может включать аппаратную клавиатуру
• Не должен включать аппаратную клавиатуру, которая не соответствует одному из указанных форматов
В Android.content.res.configuration [ Resources, 25] (то есть QWERTY или 12-ключ)
8.3. Не касательная навигация
Реализации устройства:
• Может опустить варианты навигации без приеме (то есть может опустить трекбол, 5-направленный направленный накладчик, или
колесо)
• Должен сообщить через Android.content.res.configuration [Resources , 25] Правильное значение для
аппаратное обеспечение устройства

8.4. Ориентация экрана
Совместимые устройства должны поддерживать динамическую ориентацию путем применения для портрета или ландшафта
ориентация экрана. То есть устройство должно уважать запрос приложения на определенный экран
ориентация. Реализации устройств могут выбрать либо портретную, либо ландшафтную ориентацию в качестве по умолчанию.
Устройства должны сообщать о правильном значении текущей ориентации устройства, когда их запрашивают через
android.content.res.configuration.orientation, android.view.display.getorientation () или другие API.
8.5. Ввод сенсорного экрана
Реализации устройства:
• Должен иметь сенсорный экран
• Может иметь либо конмарный, либо резистивный сенсорный экран
• Должен сообщить о значении Android.content.res.configuration [ Resources, 25] отражение
соответствует типу конкретного сенсорного экрана на устройстве
8.6. USB
Реализации устройства:
• Должен реализовать USB-клиент, подключаемый к USB-хосту со стандартным портом USB-A
• Должен реализовать мост отладки Android через USB (как описано в разделе 7)
• Должен реализовать клиент USB Mass Storage для съемного/медиа -хранилища, присутствующего в
устройство
• следует использовать форм -фактор Micro USB на стороне устройства
• следует реализовать поддержку спецификации массового хранения USB (так что любой из них съемный
или фиксированное хранилище на устройстве можно получить с хост -ПК)
• Может включать нестандартный порт на стороне устройства, но если это так
Подключение пользовательской рутинной порты к стандартному порту USB-A
8.7. Навигационные ключи
Функции дома, меню и спины необходимы для парадигмы навигации Android. Устройство
Реализации должны всегда предоставлять эти функции пользователю, независимо от приложения
состояние. Эти функции должны быть реализованы через выделенные кнопки. Они могут быть реализованы
Использование программного обеспечения, жестов, сенсорной панели и т. Д., Но если это так
Вмешается в доступную область отображения приложений.
Реализаторы устройства также должны предоставить выделенный ключ поиска. Реализаторы устройства также могут
Предоставьте клавиши отправки и окончания телефонных звонков.
8.8. Wi-Fi
Реализации устройства должны поддерживать 802.11b и 802.11g и могут поддерживать 802.11a.

8.9. Камера
Реализации устройства должны включать камеру. Включенная камера:
• Должен иметь разрешение не менее 2 мегапикселей
• Должен иметь либо аппаратный автоматический фокусировку, либо программную автофокус, реализованную в камере
драйвер (прозрачный для прикладного программного обеспечения)
• Может иметь аппаратное обеспечение с фиксированным фокусом или EDOF (расширенная глубина поля)
• Может включать вспышку. Если камера включает в себя вспышку, флэш -лампа не должна быть освещена, пока
Android.hardware.camera.previewcallback экземпляр был зарегистрирован на предварительном просмотре камеры
поверхность.
Реализации устройств должны реализовать следующее поведение для API, связанных с камерой,
[Ресурсы, 27] :
1. Если приложение никогда не называлось Android.hardware.camera.parameters.setPreviewFormat (int),
Затем устройство должно использовать android.hardware.pixelformat.ycbcr_420_SP для предварительного просмотра данных
предоставлено для обратных вызовов приложений.
2. Если приложение регистрирует Android.hardware.camera.previewcallback экземпляр и
Системные вызовы onpreviewFrame (), когда формат предварительного просмотра ycbcr_420_sp,
Данные в байте [], передаваемые в OnPreviewFrame (), должны быть дополнительно находиться в формате кодирования NV21.
(Это формат, используемый изначально в семействе оборудования 7K.) То есть NV21 должен быть по умолчанию.
8.9.1. Неавтофокусные камеры
Если у устройства не хватает камеры автофокусировки, реализатор устройства должен соответствовать дополнительным требованиям в
эта секция. Реализации устройства должны реализовать полный API камеры, включенный в Android 1.6
Документация SDK некоторым разумным способом, независимо от фактических возможностей аппаратного камеры.
Для Android 1.6, если камере не хватает автоматического фокуса, реализация устройства должна придерживаться следующего:
1. Система должна включать свойство системы только для чтения под названием «ro.workaround.noautofocus»
со значением «1». Это значение предназначено для использования приложениями, такими как рынок Android, для
выборочно идентифицировать возможности устройства и будет заменен в будущей версии Android с помощью
Надежный API.
2. Если приложение вызывает Android.hardware.camera.autofocus (), система должна вызвать
метод обратного вызова onautofocus () на любых зарегистрированных
Android.hardware.camera.autofocuscallback экземпляры, хотя на самом деле нет фокусировки
случилось. Это значит избегать наличия существующих приложений, навсегда ожидая автофокуса
обратный вызов, который никогда не придет.
3. Призыв к методу AutoFocuscallback.onutofocus () должен быть вызван драйвером или
Framework в новом событии в основном фреймворке. То есть camera.autofocus ()
Не должен напрямую вызовать AutoFocuscallback.onutofocus (), поскольку это нарушает Android
Модель фреймворчатого потока и сломает приложения.
8.10. Акселерометр
Реализации устройства должны включать 3-осевой акселерометр и должны иметь возможность совершать события в AT
минимум 50 Гц. Система координат, используемая акселерометром, должна соответствовать датчику Android
Система координат, как подробно описано в API API Android [Resources , 28].

8.11. Компас
Реализации устройства должны включать 3-осевой компасы и должны быть в состоянии осуществлять события, по крайней мере, в соответствии с
10 Гц. Система координат, используемая компасом, должна соответствовать координате датчика Android
Система, как определено в API API Android [Ресурсы , 28].
8.12. GPS
Реализации устройства должны включать GPS и должны включать некоторую форму «вспомогательных GPS»
Техника, чтобы минимизировать время блокировки GPS.
8.13. Телефония
Реализации устройства:
• Должен включать телефона GSM или CDMA
• Должен реализовать соответствующие API, как подробно описано в документации Android SDK в
Developer.android.com
Обратите внимание, что это требование подразумевает, что устройства, не являющиеся телефонами, не совместимы с Android 1.6; Андроид
1.6 Устройства должны включать аппаратное обеспечение телефона. Пожалуйста, смотрите Приложение C для получения информации о нефтомном
устройства.
8.14. Регуляры громкости
Андоид-совместимые устройства должны включать механизм, позволяющий пользователю увеличивать и уменьшить
Аудио -объем. Реализации устройства должны всегда предоставлять эти функции пользователю всегда,
независимо от состояния применения. Эти функции могут быть реализованы с использованием физических аппаратных клавиш,
Программное обеспечение, жесты, сенсорная панель и т. Д., Но они всегда должны быть доступны и не скрывать или мешать
С доступной областью отображения приложения (см. Дисплей выше).
Когда эти кнопки используются, соответствующие события ключей должны быть сгенерированы и отправлены в
нанесение на переднее плавание. Если событие не перехвачено и затонуло приложением, то устройство
Реализация должна обрабатывать событие как управление объемом системы.
9. Совместимость производительности
Одной из целей программы совместимости Android является обеспечение постоянного опыта применения для
потребители. Совместимые реализации должны гарантировать не только то, что приложения просто правильно работают
Устройство, но они делают это с разумной производительностью и общим хорошим пользователем.
Реализации устройства должны соответствовать ключевым показателям производительности Android 1.6, совместимого с устройством,
как в таблице ниже:
Метрика
Порог производительности
Комментарии

Это проверяется CTS.
Следующие приложения
Время запуска измеряется как общее время до
должен запустить в рамках
Заполнить загрузку деятельности по умолчанию для
Приложение
указанное время.
приложение, включая время, необходимое для начала
Время запуска
Браузер: менее 1300 мс
Linux процесс, загрузите пакет Android в
MMS/SMS: менее 700 мс
Dalvik VM, и позвоните Oncreate.
Тревога: менее 650 мс
Несколько приложений будут
Это проверяется CTS.
запущен. Перезагрузить
Одновременное первое приложение должно
Приложения
Полный, принимая меньше, чем
Оригинальное время запуска.
10. Совместимость модели безопасности
Реализации устройств должны реализовать модель безопасности в соответствии с безопасностью платформы Android
модель, как определено в справочном документе по безопасности и разрешениям в API [ресурсы, 29] в
Документация разработчика Android. Реализации устройств должны поддерживать установку самоподнебленных
Заявки, не требующие каких -либо дополнительных разрешений/сертификатов от любых третьих сторон/органов власти.
В частности, совместимые устройства должны поддерживать следующие механизмы безопасности:
10.1. Разрешения
Реализации устройства должны поддерживать модель разрешений на Android, как определено в Android
Документация разработчика [ ресурсы , 9]. В частности, реализации должны обеспечить каждое разрешение
определяется, как описано в документации SDK; Никакие разрешения не могут быть пропущены, изменены или игнорированы.
Реализации могут добавить дополнительные разрешения, при условии, что новые строки идентификатора разрешения не находятся в
Android.* пространство имен.
10.2. Изоляция пользователя и процесса
Реализации устройства должны поддерживать модель песочницы Android приложения, в которой каждое приложение
работает как уникальный UID в стиле UNIX и в отдельном процессе.
Реализации устройства должны поддерживать запуск нескольких приложений, как и тот же идентификатор пользователя Linux, предоставленные
что приложения правильно подписаны и построены, как определено в безопасности и разрешениях
Ссылка [ Ресурсы , 29].

10.3. Разрешения файловой системы
Реализации устройства должны поддерживать модель разрешений на доступ к файлу файла Android, как определено в как
Определено в справочнике безопасности и разрешений [ресурсы , 29].
11. Набор тестов на совместимость
Реализации устройства должны пройти тестовый набор для совместимости Android (CTS) [ Resources, 3] Доступны
В рамках проекта Android с открытым исходным кодом, используя окончательное программное обеспечение для доставки на устройстве. Кроме того,
Реализаторы устройства должны использовать эталонную реализацию в дереве с открытым исходным кодом Android как
как можно больше и должно обеспечить совместимость в случаях двусмысленности в CTS и для любых
Повторные частями справочного исходного кода.
CTS предназначен для запуска на реальном устройстве. Как и любое программное обеспечение, CTS сама может содержать ошибки.
CTS будет версировать независимо от этого определения совместимости и многочисленных пересмотров
CTS может быть выпущена для Android 1.6. Тем не менее, такие выбросы будут исправлять только поведенческие ошибки в CTS
тесты и не будут навязывать какие -либо новые тесты, поведение или API для данного выпуска платформы.
12. Свяжитесь с нами
Вы можете связаться с командой совместимости Android по адресу compatibility@android.com для разъяснений, связанных с
Это определение совместимости и для предоставления отзывов об этом определении.

Приложение A: Требуемые приложения намерения
Примечание. Этот список является предварительным и будет обновлен в будущем.
Действия применения
Схемы типов мимо
(никто)
текст/равнина

http
текст/html
Браузер
Android.intent.action.view
https
Приложение/XHTML+XML
приложение/
vnd.wap.xhtml+xml

(никто)
Android.intent.Action.Web_Search
http
(никто)
https
Android.Media.Action.Image_Capture
android.media.action.still_image_camera

Камера
android.media.action.video_camera
Android.Media.Action.Video_Capture

vnd.android.cursor.dir/
Android.intent.action.view
изображение
Android.intent.action.get_content
vnd.android.cursor.dir/
Android.intent.action.pick
видео
Android.intent.action.attach_data
изображение/*
видео/*

Android.intent.action.view
rtsp
видео/mp4
Видео/3GP

Android.intent.action.view
http
Видео/3GPP
Видео/3GPP2

Android.intent.action.dial
Телефон /
Android.intent.action.view
тел.
Контакты
Android.intent.action.call
Android.intent.action.dial
vnd.android.cursor.dir/
Android.intent.action.view
человек

vnd.android.cursor.dir/
человек
vnd.android.cursor.dir/

Android.intent.action.pick
телефон
vnd.android.cursor.dir/
почтовый адрес

vnd.android.cursor.item/
человек
vnd.android.cursor.item/

Android.intent.action.get_content
телефон
vnd.android.cursor.item/
почтовый адрес

текст/равнина
Электронная почта
Android.intent.action.send
изображение/*
видео/*

Android.intent.action.view
почта
Android.intent.action.sendto
SMS
Android.intent.action.view
Smsto
SMS / MMS Android.intent.action.sendto
ммс
ммсто

аудио/*
Приложение/OGG

Музыка
Android.intent.action.view
файл
Приложение/X-OGG
Приложение/iTunes

аудио/mp3
Audio/X-MP3

Android.intent.action.view
http
аудио/mpeg
аудио/MP4
Audio/Mp4a-latm

vnd.android.cursor.dir/
Artistalbum
vnd.android.cursor.dir/
альбом
vnd.android.cursor.dir/

Android.intent.action.pick
сейчас играет
vnd.android.cursor.dir/
отслеживать
nd.android.cursor.dir/
список воспроизведения
vnd.android.cursor.dir/
видео

СМИ/*
аудио/*

Android.intent.action.get_content
Приложение/OGG
Приложение/X-OGG
видео/*


содержание
Упаковка
Android.intent.action.view
файл
Установщик
упаковка
файл
Android.intent.action.package_install
http
https

Android.intent.Action.all_Apps
Android.Settings.Settings
Android.Settings.wireless_settings
Android.Settings.airplane_mode_settings
Android.settings.wifi_settings
Android.settings.apn_settings
Android.settings.bluetooth_settings
Android.Settings.Date_Settings
Android.Settings.Locale_Settings

Настройки
Android.Settings.Input_method_Settings
com.android.settings.sound_settings
com.android.settings.display_settings
Android.Settings.security_Setting
Android.settings.location_source_settings
Android.Settings.Internal_Storage_Settings
Android.settings.memory_card_settings
Android.intent.action.set_wallpaper

Поиск
Android.intent.action.search
запрос
Android.intent.action.search_long_press
Голос
Android.intent.action.voice_command
Управление контактами
Намерение действия
Описание
Запускает занятие, которое позволяет пользователю выбирать
Attach_image
Контакт, чтобы прикрепить изображение к.
Использовал
Eustra_create_description
с show_or_create_contact to
Укажите точное описание, чтобы быть


показано при подаче пользователя о
Создание нового контакта.

Использовал
с show_or_create_contact
to
Extra_force_create
заставлять создавать новый контакт, если нет
Соответствующий контакт найден.

Это намерение, которое уволен, когда
Search_suggestion_clicked
Поиск предложение нажимается.
Это намерение, которое уволен, когда
Search_suggestion_create_contact_clicked Поиск предложение для создания
Контакт нажимается на.
Это намерение, которое уволен, когда
Search_suggestion_dial_number_clicked
Предложение поиска для набора номера
нажимается на.

Принимает в качестве входного URI с помощью Mailto:
Show_or_create_contact
или тел: схема.

Приложение B: Требуемые вещательные намерения Примечание: этот список является предварительным, и будет
Обновлено в будущем.

Намерение действия
Описание
Вещательное действие: это транслируется один раз, после
Action_boot_completed
Система завершила загрузку.
Вещательное действие: это транслируется один раз, когда
Action_call_button
звонок получен.
Действие вещания: «Кнопка камеры» была
Action_camera_button
нажал.
Вещательное действие: текущий
Action_configuration_changed
Конфигурация устройства (ориентация, локаль и т. Д.)
измененный.
Action_date_changed
Действие вещания: дата изменилась.
Действие вещания: указывает на низкое состояние памяти
Action_device_storage_low
на устройстве
Действие вещания: указывает на низкое состояние памяти
Action_device_storage_ok
на устройстве больше нет
Действие вещания: подключенная гарнитура или
Action_headset_plug
отключен.
Действие вещания: метод ввода был
Action_input_method_changed
измененный.
Действие трансляции: внешний носитель был удален
Action_media_bad_removal
Из слота SD -карты, но Mount Point не была
унедованный.
Действие вещания: «Кнопка медиа» была
Action_media_button
нажал.
Действие трансляции: присутствует внешние носители, и
проверить диск по пути к точке горы для
Action_media_checking
Проверка носителя содержится в
Intent.mdata Field.
Действие трансляции: пользователь выразил желание
Action_media_ej
Удалить внешнюю носитель для хранения.
Действие трансляции: присутствует внешние носители и
Action_media_mountted
установлен в точке горы.
Вещательное действие: присутствует внешние носители, но это
Использование несовместимых FS (или пустого) пути
Action_media_nofs
точка крепления для тщательного носителя
Содержится в поле намерения.mdata.
Действие вещания: внешние носители были
Action_media_removed
удаленный.
Действие трансляции: сканер СМИ закончил
Action_media_scanner_finished
Сканирование каталога.
Действие трансляции: запросить СМИ сканер на
Action_media_scanner_scan_file
Сканируйте файл и добавьте его в базу данных медиа.

Вещательное действие: Сканер СМИ начал
Action_media_scanner_started
Сканирование каталога.
Действие трансляции: внешний носитель размонтируется
Action_media_shared
Потому что он делится через USB -хранилище.
Вещательное действие: присутствует внешние носители, но
Action_media_unmountable
не может быть установлен.
Действие вещания: внешний носитель присутствует, но
Action_media_unmountted
не монтируется в его точке горы.
Действие трансляции: исходящий звонок собирается быть
Action_new_outgoster_call
размещенный
Действие вещания: новый пакет приложений имеет
Action_package_added
был установлен на устройстве.
Действие вещания: существующий пакет приложений
Action_package_changed
был изменен (например, компонент был
включено или отключено.
Действие трансляции: пользователь очистил данные
пакет. Это должно быть предшествует
action_package_restarted, после чего
Action_package_data_cleared
Все его постоянные данные стираются, и это
трансляция отправлена. Обратите внимание, что очищенный пакет
не получает эту трансляцию. Данные содержит
Название пакета.
Действие вещания: существующий пакет приложений
был удален с устройства. Данные
Action_package_removed
содержит имя пакета. Пакет
Это установлено, не получает этого намерения.
Действие вещания: новая версия приложения
Action_package_repled
упаковка была установлена, заменив существующий
версия, которая была ранее установлена.
Действие вещания: пользователь перезапустил
Пакет, и все его процессы были убиты.
Все состояние выполнения, связанное с ним (процессы,
Action_package_restarted
Аварийные сигналы, уведомления и т. Д.) Должны быть удалены. Примечание
что перезапущенный пакет не получает этого
транслировать. Данные содержит имя
упаковка.
Действие вещания: некоторые поставщики контента имеют
части их пространства имен, где они публикуют новые
Action_provider_changed
события или элементы, которыми может быть пользователь, особенно
увлекающийся.
Action_screen_off
Действие вещания: отправлено после выключения экрана.
Action_screen_on
Действие вещания: отправлено после включения экрана.
Действие трансляции: идентификатор пользователя был удален
Action_uid_removed
из системы.
Действие вещания: устройство ввело USB
Action_ums_connected
Режим массового хранения.

Действие трансляции: устройство вышла из USB
Action_ums_disconnected
Режим массового хранения.
Действие вещания: отправлено, когда пользователь присутствует
Action_user_present
После того, как устройство просыпается (например, когда Keyguard
ушел).
Действие вещания: текущие обои системы
Action_wallpaper_changed
изменился.
Action_time_changed
Действие вещания: время было установлено.
Action_time_tick
Действие вещания: текущее время изменилось.
Action_timezone_changed
Действие вещания: временный пояс изменился.
Действие трансляции: состояние зарядки или взимание
Action_battery_changed
Уровень аккумулятора изменился.
Действие вещания: указывает на низкое состояние батареи
Action_battery_low
на устройстве. Эта трансляция соответствует
Системный диалог "Low Battery Warning".
Действие вещания: указывает, что аккумулятор теперь в порядке
После того, как он был низким. Это будет отправлено
Action_battery_okay
После action_battery_low однажды батарея
вернулся в точное состояние.
Сеть государство
Намерение действия
Описание
Действие вещания намерения указывает на то, что
Network_state_changed_action
Состояние подключения Wi-Fi изменилось.
Действие вещания намерения указывает на то, что
Rssi_changed_action
RSSI (сила сигнала) изменилась.
Действие вещания намерения указывает на то, что
Supplicant_state_changed_Action
Связь с проклятием была
установлен или потерян.
Действие вещания намерения указывает на то, что Wi-Fi
Wifi_state_changed_action
был включен, отключен, включил,
отключение или неизвестное.
Идентификаторы сети настроенных сетей
Network_ids_changed_action
мог бы измениться.
Действие вещания намерения указывает на то, что
Action_background_data_setting_changed настройка для использования фоновых данных имеет
Изменены значения.
Вещание намерение указывает на изменение в
Подключение_акция
Сетевое подключение произошло.
Действие вещания: пользователь переключил
Action_airplane_mode_changed
Телефон в режим самолета или вне самолета.


Приложение C: Будущие соображения Это приложение разъясняет определенные части этого Android
1.6 Определение совместимости, а в некоторых случаях обсуждается ожидаемые или запланированные изменения, предназначенные для
Будущая версия платформы Android. Это приложение предназначено только для целей информационных и планирования, и
не является частью определения совместимости для Android 1.6.
1. Неотелефоновые устройства
Android 1.6 предназначен исключительно для телефонов; Функциональность телефона не является необязательной. Будущие версии
ожидается, что платформа Android сделает телефонию необязательной (и, таким образом, разрешает не телефон Android
устройства), но только телефоны совместимы с Android 1.6.
2. Совместимость Bluetooth
Выпуск Android 1.6 Android не поддерживает API Bluetooth, поэтому с точки зрения совместимости
Bluetooth не налагает никаких соображений для этой версии платформы. Однако будущая версия
Android представит API Bluetooth. В этот момент поддержка Bluetooth станет обязательной для
совместимость.
Следовательно, мы настоятельно рекомендуем, чтобы устройства Android 1.6 включали Bluetooth, чтобы они были
Совместим с будущими версиями Android, которые требуют Bluetooth.
3. Требуемые аппаратные компоненты
Все аппаратные компоненты в разделе 8 (включая Wi -Fi, магнитометр/компас, акселерометр и т. Д.)
требуется и не может быть опущено. Ожидается, что будущие версии Android сделают (но не все)
Эти компоненты необязательно, в тандеме с соответствующими инструментами для сторонних разработчиков для обработки этих
изменения.
4. Примеры приложений
Документ определения совместимости для будущей версии Android будет включать более обширный и
репрезентативный список приложений, чем перечисленные в разделе 4 выше. Для Android 1.6,
Приложения, перечисленные в разделе 4, должны быть проверены.
5. Строительными экранами
Будущие версии определения совместимости могут или не могут позволить устройствам опускать сенсорные экраны.
Однако в настоящее время большая часть реализации Android Framework предполагает существование
сенсорный экран; Отказ от сенсорного экрана существенно нарушит все текущие сторонние приложения Android,
Таким образом, в Android 1.6 для совместимости требуется сенсорный экран.

6. Производительность
Будущие версии CTS также будут измерять использование процессора и производительность следующих
компоненты реализации:
• 2D Графика
• 3D графика
• Проигрывание видео
• Аудио воспроизведение
• Воспроизведение Bluetooth A2DP

Структура документа