アンドロイド 1.6 r2
グーグル株式会社
互換性@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。 Web 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.はじめに
この文書は、携帯電話が
Android1.6に対応。この定義は、Android 互換性プログラムに精通していることを前提としています
[リソース、1]。
「しなければならない」、「してはならない」、「必要な」、「しなければならない」、「してはならない」、「すべきである」、「してはならない」、「推奨される」、
"may" および "optional" は、RFC2119 [参考文献、2] で定義されている IETF 標準に従っています。
このドキュメントで使用されている「デバイスの実装者」または「実装者」は、開発を行っている人または組織です。
Android 1.6 を実行するハードウェア/ソフトウェア ソリューション。 「デバイス実装」または「実装」は、
そのように開発されたハードウェア/ソフトウェアソリューション。
Android 1.6 と互換性があると見なされるには、デバイス実装:
1. ドキュメントを含め、この互換性定義に示されている要件を満たさなければなりません。
参照により組み込まれています。
2. Android Open の一部として利用可能な Android Compatibility Test Suite (CTS) に合格する必要があります。
ソース プロジェクト [リソース、3]。 CTS は、このドキュメントで概説されているほとんどのコンポーネントをテストしますが、すべてではありません。
資料。
この定義または CTS が沈黙、あいまい、または不完全である場合、それはデバイスの責任です
既存の実装との互換性を確保するための実装者。このため、Android Open
ソース プロジェクト [参考文献、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-
suite--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/
Manifest.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/docs ディレクトリにある Dalvik 仮想マシンの仕様
チェックアウト; http://android.git.kernel.org/?p=platform/でも入手可能
dalvik.git;a=ツリー;f=ドキュメント;h=3e2ddbcaf7f370246246f9f03620a7caccbfcb12;hb=HEAD
14. AppWidgets: 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#statusbar構造
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. Android apk ファイルの説明: http://developer.android.com/guide/topics/fundamentals.html
21. Android Debug Bridge (adb): http://code.google.com/android/reference/adb.html
22. Dalvik Debug Monitor Service (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/
Configuration.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/
security.html
これらのリソースの多くは、Android 1.6 SDK から直接的または間接的に派生したものであり、
その SDK のドキュメントの情報と機能的に同一です。これがどのような場合でも
互換性定義は SDK ドキュメントと一致しません。SDK ドキュメントは考慮されます。
権威ある。上記の参考文献に記載されている技術的な詳細は、含めることによって考慮されます
この互換性定義の一部であること。
3. ソフトウェア
Android プラットフォームには、マネージド (「ハード」) API のセットと、いわゆる「ソフト」API の本体の両方が含まれています。
Intent システム、ネイティブ コード API、Web アプリケーション API など。このセクションでは、ハードおよび
互換性に不可欠なソフト API、およびその他の関連する技術的およびユーザー インターフェイス
行動。デバイス実装は、このセクションのすべての要件に準拠する必要があります。
3.1.マネージド API の互換性
管理された (Dalvik ベースの) 実行環境は、Android アプリケーションの主要な手段です。の
Android アプリケーション プログラミング インターフェイス (API) は、Android プラットフォームに公開されている一連の Android プラットフォーム インターフェイスです。
マネージド VM 環境で実行されているアプリケーション。デバイスの実装は、完全なものを提供する必要があります
文書化されたすべての動作を含む、Android によって公開された文書化された API の実装
1.6 SDK など:
1. コア Android Java 言語 API [リソース、5]。
2. コンテンツ プロバイダー[リソース、6]。
3. リソース[リソース、7]。
4. AndroidManifest.xml の属性と要素 [リソース、8]。
デバイスの実装は、マネージ API を省略したり、API インターフェイスまたは署名を変更したり、逸脱したりしてはなりません。
この互換性で特に許可されている場合を除き、文書化された動作から、または no-ops を含める
意味。
3.2.ソフト API の互換性
セクション 3.1 のマネージ API に加えて、Android には重要なランタイム専用の「ソフト」も含まれています。
インテント、パーミッション、および Android アプリケーションの同様の側面などの形式の API
アプリケーションのコンパイル時に強制することはできません。このセクションでは、「ソフト」API とシステムについて詳しく説明します
Android 1.6 との互換性に必要な動作。デバイスの実装は、すべてを満たす必要があります
このセクションで提示される要件。
3.2.1.権限
デバイスの実装者は、
アクセス許可の参照ページ [参考文献、9]。セクション 10 に、以下に関連する追加要件がリストされていることに注意してください
Android セキュリティ モデル。
3.2.2.ビルド パラメータ
Android API には、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 ユーザー。このフィールドの一般的な用途は、ビルド番号またはビルド番号を示すことです。
ビルドの生成にソース管理変更識別子が使用されました。そこには
このフィールドの特定の形式に関する要件はありません。
null または空の文字列 ("") であってはなりません。
特定の内部を識別するデバイス実装者によって選択された値
人間が読める形式で、デバイスによって使用されるハードウェア。可能な用途
android.os.Build.BOARD
このフィールドの値は、ボードに電力を供給しているボードの特定のリビジョンを示します。
端末。このフィールドの特定の形式に関する要件はありません。
ただし、null または空の文字列 ("") であってはなりません。
の名前を識別するデバイス実装者によって選択された値
android.os.Build.BRAND
デバイスを製造した会社、組織、個人など
人間が読める形式。このフィールドの可能な用途は、OEM を示すことです。
および/またはデバイスを販売した通信事業者。要件はありません。
null または空であってはならないことを除いて、このフィールドの特定の形式
ストリング ("")。
特定のデバイスを識別するデバイス実装者によって選択された値
本体の構成または改訂(「産業用」と呼ばれることもあります)
android.os.Build.DEVICE
特定のフォーマットに関する要件はありません。
ただし、null または空の文字列 ("") であってはなりません (MUST NOT)。
このビルドを一意に識別する文字列。合理的でなければならない
人間が読める。このテンプレートに従わなければなりません:
$(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
読み取り可能な形式。この特定の形式に関する要件はありません。
ただし、null または空の文字列 ("") であってはなりません (MUST NOT)。
特定のデバイスを参照するためにデバイス実装者によって選択された識別子
人間が読める形式でリリースします。このフィールドは、
android.os.Build.VERSION.INCREMENTAL ですが、値であるべきです
android.os.Build.ID
エンドユーザーにとってある程度意味のあるものにすることを目的としています。ここにはない
このフィールドの特定の形式に関する要件。
null または空の文字列 ("")。
の名前を含むデバイス実装者によって選択された値
エンドユーザーに知られているデバイス。これは同じ名前であるべきです
android.os.Build.MODEL
デバイスがマーケティングされ、エンドユーザーに販売されます。ここにはない
このフィールドの特定の形式に関する要件。
null または空の文字列 ("")。
開発を含むデバイス実装者によって選択された値
デバイスの名前またはコード名。人間が読める必要がありますが、そうではありません
android.os.Build.PRODUCT
エンドユーザーによる閲覧を意図したものです。要件はありません
ただし、null または
空の文字列 ("")。
デバイス実装者によって選択されたタグのコンマ区切りリスト。
ビルドをさらに区別します。たとえば、「署名なし、デバッグ」などです。このフィールド
android.os.Build.TAGS
null または空の文字列 ("") であってはなりませんが、単一のタグ (
「リリース」) で結構です。
android.os.Build.TIME
ビルドが発生したときのタイムスタンプを表す値。
ランタイムを指定するデバイス実装者によって選択された値
ビルドの構成。このフィールドは、値の 1 つを持つ必要があります。
android.os.Build.TYPE
3 つの典型的な Android ランタイム構成に対応します: 「ユーザー」、
「userdebug」または「eng」。
を生成したユーザー (または自動化されたユーザー) の名前またはユーザー ID
android.os.Build.USER
建てる。このフィールドの特定の形式に関する要件はありません。
ただし、null または空の文字列 ("") であってはなりません。
3.2.3.インテントの互換性
Android はインテントを使用して、アプリケーション間の疎結合統合を実現します。このセクションでは、
デバイス実装によって尊重されなければならない意図パターンに関連する要件。に
「光栄」とは、デバイス実装者が Android アクティビティ、サービス、またはその他を提供しなければならないことを意味します。
一致するインテント フィルタを指定し、それぞれにバインドして正しい動作を実装するコンポーネント
指定されたインテント パターン。
3.2.3.1.コア アプリケーションの意図
Android アップストリーム プロジェクトでは、電話ダイヤラー、カレンダー、
連絡帳、音楽プレーヤーなど。デバイスの実装者は、これらのアプリケーションを
代替バージョン。
ただし、そのような代替バージョンは、アップストリームによって提供される同じインテント パターンを尊重する必要があります。
事業。 (たとえば、デバイスに代替音楽プレーヤーが含まれている場合でも、インテント パターンを尊重する必要があります。
曲を選択するためにサードパーティ アプリケーションによって発行されます。) デバイス実装は、すべてのインテント パターンをサポートする必要があります。
付録 A に記載されています。
3.2.3.2.インテントオーバーライド
Android は拡張可能なプラットフォームであるため、デバイスの実装者は、
付録 A は、サードパーティのアプリケーションによって上書きされます。アップストリームの Android オープンソース プロジェクト
デフォルトでこれを許可します。デバイスの実装者は、システム アプリケーションに特別な権限を付与してはなりません。
これらのインテント パターンを使用するか、サードパーティ アプリケーションがバインドして制御を引き継ぐのを防ぎます。
これらのパターン。この禁止事項には、「Chooser」ユーザー インターフェイスを無効にすることも含まれます。
ユーザーは、すべて同じインテント パターンを処理する複数のアプリケーションから選択できます。
3.2.3.3.インテント名前空間
デバイスの実装者は、新しいインテントを尊重する Android コンポーネントを含めてはなりません。
android.* 名前空間で ACTION、CATEGORY、またはその他のキー文字列を使用してインテント パターンをブロードキャストします。
デバイスの実装者は、新しいインテントを尊重する Android コンポーネントを含めてはなりません。
パッケージ スペース内の ACTION、CATEGORY、またはその他のキー文字列を使用してブロードキャスト インテント パターン
別の組織に所属しています。デバイスの実装者は、インテントを変更または拡張してはなりません
付録 A または B にリストされているパターン。
この禁止事項は、セクション 3.6 で Java 言語クラスに指定されているものと類似しています。
3.2.3.4.ブロードキャスト インテント
サードパーティ アプリケーションは、プラットフォームに依存して特定のインテントをブロードキャストし、
ハードウェアまたはソフトウェア環境。 Android 互換デバイスは、パブリック ブロードキャストをブロードキャストする必要があります
適切なシステム イベントに応答するインテント。必要なブロードキャスト インテントのリストは、
付録 B;ただし、SDK は追加のブロードキャスト インテントを定義する場合があることに注意してください。
光栄です。
3.3.ネイティブ API の互換性
Dalvik で実行されるマネージ コードは、アプリケーションの .apk ファイルで ELF として提供されるネイティブ コードを呼び出すことができます。
適切なデバイス ハードウェア アーキテクチャ用にコンパイルされた .so ファイル。デバイスの実装には、含める必要があります
標準の Java を使用して、マネージド環境で実行されるコードをネイティブ コードに呼び出すためのサポート
ネイティブ インターフェイス (JNI) セマンティクス。次の API をネイティブ コードで使用できる必要があります。
• libc (C ライブラリ)
• libm (数学ライブラリ)
• JNI インターフェース
• libz (Zlib 圧縮)
• liblog (Android ロギング)
• C++ の最小限のサポート
• OpenGL ES 1.1
これらのライブラリは、ソース互換性 (つまり、ヘッダー互換性) およびバイナリ互換性 (特定の
プロセッサ アーキテクチャ) と、Android オープン ソース プロジェクトによって Bionic で提供されるバージョンを使用します。以来
Bionic の実装は、GNU C などの他の実装と完全には互換性がありません。
ライブラリ、デバイス実装者は Android 実装を使用する必要があります。デバイスの実装者が
これらのライブラリの実装が異なるため、ヘッダーとバイナリの互換性を確保する必要があります。
ネイティブ コードの互換性は困難です。このため、繰り返しますが、デバイスの実装者は
上記のライブラリのアップストリーム実装を使用することを強くお勧めします。
互換性を確保します。
3.4。 Web API の互換性
多くの開発者とアプリケーションは、android.webkit.WebView クラスの動作に依存しています [ 参考文献,
11] をユーザー インターフェイスに使用するため、WebView の実装は Android 全体で互換性がある必要があります。
実装。 Android オープン ソースの実装では、WebKit レンダリング エンジン バージョンを使用して、
WebView を実装します。
Web ブラウザー用の包括的なテスト スイートを開発することは現実的ではないため、デバイスの実装者は、
WebView 実装で WebKit の特定のアップストリーム ビルドを使用する必要があります。具体的には:
• WebView は、アップストリームの Android オープン ソース ツリーから 528.5+ WebKit ビルドを使用する必要があります。
アンドロイド 1.6。このビルドには、WebView の特定の機能セットとセキュリティ修正が含まれています。
• WebView によって報告されるユーザー エージェント文字列は、次の形式でなければなりません。
Mozilla/5.0 (Linux; U; Android 1.6; <言語>-<国>; <デバイス
名前>; Build/<ビルド ID>) AppleWebKit/528.5+ (KHTML、Gecko など)
バージョン/3.1.2 モバイルサファリ/525.20.1
◦ 「<デバイス名>」文字列は、
android.os.Build.MODEL
◦ 「<build ID>」文字列は、android.os.Build.ID の値と同じでなければなりません。
◦ 「<language>」および「<country>」文字列は、通常の規則に従う必要があります。
国コードと言語、およびデバイスの現在のロケールを参照する必要があります
リクエストの時間。
実装は、スタンドアロンのブラウザ アプリケーションでカスタム ユーザー エージェント文字列を出荷する場合があります。なに
さらに、スタンドアロンのブラウザは、別のブラウザ技術 (Firefox、
Opera など) ただし、代替のブラウザ アプリケーションが出荷された場合でも、WebView コンポーネントは
上記のように、サードパーティ アプリケーションに提供される WebKit に基づいている必要があります。
スタンドアロンのブラウザ アプリケーションには、Gears [参考文献、 12] および MAY のサポートが含まれている必要があります (SHOULD)。
HTML5 の一部またはすべてのサポートを含めます。
3.5。 API 動作の互換性
各 API タイプ (マネージド、ソフト、ネイティブ、および Web) の動作は、
Android オープン ソース プロジェクトから入手できる Android の優先実装。
互換性の特定の領域は次のとおりです。
• デバイスは、標準のインテントの動作または意味を変更してはなりません (MUST NOT)。
• デバイスは、特定のタイプのシステムのライフサイクルまたはライフサイクル セマンティクスを変更してはなりません。
コンポーネント (Service、Activity、ContentProvider など)
• デバイスは、特定のパーミッションのセマンティクスを変更してはなりません (MUST NOT)。
上記のリストは包括的ではなく、動作を保証する責任はデバイスの実装者にあります。
互換性。このため、デバイスの実装者は、
システムの重要な部分を再実装するのではなく、可能な場合は Android オープンソース プロジェクト。
互換性テスト スイート (CTS) は、動作上の互換性についてプラットフォームの重要な部分をテストします。
すべてではありません。 Android との動作の互換性を確保するのは、実装者の責任です。
オープン ソース プロジェクト。
3.6. API 名前空間
Android は、Java プログラミングによって定義されたパッケージとクラスの名前空間の規則に従います。
言語。サードパーティ アプリケーションとの互換性を確保するために、デバイスの実装者は作成してはなりません (MUST NOT)。
これらのパッケージ名前空間に対する禁止された変更 (以下を参照):
• java.*
• javax.*
• 太陽。*
• アンドロイド。*
• com.android.*
禁止されている変更には以下が含まれます。
• デバイス実装は、Android プラットフォームで公開されている API を変更してはなりません。
メソッドまたはクラス シグネチャを変更するか、クラスまたはクラス フィールドを削除します。
• デバイスの実装者は、API の基本的な実装を変更することができますが、そのようなものはありません。
変更は、記述された動作および Java 言語の署名に影響を与えてはなりません。
公開された API。
• デバイスの実装者は、公に公開されている要素 (クラスや
インターフェース、または既存のクラスまたはインターフェースへのフィールドまたはメソッド) を上記の API に変換します。
「公開された要素」は、「@hide」マーカーで装飾されていない任意の構成要素
上流の Android ソース コード。言い換えれば、デバイスの実装者は、新しい API または
上記の名前空間の既存の API を変更します。デバイスの実装者は内部専用にすることができます
ただし、これらの変更を宣伝したり、開発者に公開したりしてはなりません。
デバイスの実装者はカスタム API を追加することができますが、そのような API を所有する名前空間に含めてはなりません。
別の組織による、または別の組織への言及。たとえば、デバイスの実装者は API を
com.google.* または同様の名前空間。 Google のみがこれを行うことができます。同様に、Google は API を追加してはなりません
他社の名前空間。
デバイスの実装者が上記のパッケージ名前空間の 1 つを改善することを提案した場合 (追加するなどして)
有用な新機能を既存の API に追加する、または新しい API を追加する)、実装者は訪問する必要があります。
source.android.com にアクセスし、変更とコードを提供するプロセスを開始します。
そのサイトの情報。
上記の制限は、Java で API を命名するための標準的な規則に対応していることに注意してください。
プログラミング言語;このセクションは単にそれらの規則を強化し、それらを拘束力のあるものにすることを目的としています
この互換性定義に含めることにより。
3.7.仮想マシンの互換性
互換性のある Android デバイスは、完全な Dalvik Executable (DEX) バイトコード仕様をサポートしている必要があります。
Dalvik 仮想マシンのセマンティクス [リソース、13]。
3.8。ユーザー インターフェイスの互換性
Android プラットフォームには、開発者がシステム ユーザーにフックできるようにするいくつかの開発者 API が含まれています。
インターフェース。デバイス実装は、これらの標準 UI API をカスタム ユーザー インターフェイスに組み込む必要があります。
以下で説明するように、それらは発達します。
3.8.1.ウィジェット
Android は、アプリケーションが公開できるようにするコンポーネント タイプと対応する API およびライフサイクルを定義します。
エンドユーザーへの「AppWidget」 [リソース、14] 。 Android オープン ソース リファレンス リリースには、
ユーザーが追加、表示、および削除できるユーザー インターフェイス要素を含むランチャー アプリケーション
ホーム画面からの AppWidgets。
デバイスの実装者は、リファレンス ランチャー (ホーム画面など) の代わりに使用することができます。
代替ランチャーには、AppWidgets のサポートが組み込まれている必要があり、ユーザー インターフェイスを公開する必要があります
Launcher 内で直接 AppWidgets を追加、表示、および削除するための要素。代替ランチャー MAY
これらのユーザー インターフェイス要素を省略します。ただし、それらが省略されている場合、デバイス実装者は
ユーザーが追加、表示、および削除できるランチャーからアクセスできる別のアプリケーション
AppWidgets。
3.8.2.通知
Android には、開発者が重要なイベントをユーザーに通知できるようにする API が含まれています [参考文献、15]。端末
実装者は、そのように定義された通知の各クラスのサポートを提供する必要があります。具体的には:音、
バイブレーション、ライト、ステータスバー。
さらに、実装はすべてのリソース (アイコン、サウンド ファイルなど) を正しくレンダリングする必要があります。
API [リソース、 7]、またはステータス バー アイコン スタイル ガイド [リソース、16] で提供されます。端末
実装者は、通知に対して、
Android オープン ソースの実装を参照します。ただし、そのような代替通知システムは、MUST
上記のように、既存の通知リソースをサポートします。
3.8.3.探す
Android には、開発者がアプリケーションに検索を組み込むことを可能にするAPI [リソース、 17] が含まれています。
アプリケーションのデータをグローバル システム検索に公開します。一般的に言えば、この機能は
ユーザーがクエリを入力し、提案を表示できる単一のシステム全体のユーザーインターフェイスで構成されています
as users type, and displays results. The Android APIs allow developers to reuse this interface to provide
search within their own apps, and allow developers to supply results to the common global search user
interface.
Device implementations MUST include a single, shared, system-wide search user interface capable of
real-time suggestions in response to user input. Device implementations MUST implement the APIs that
allow developers to reuse this user interface to provide search within their own applications.
Device implementations MUST implement the APIs that allow third-party applications to add suggestions
to the search box when it is run in global search mode. If no third-party applications are installed that
make use of this functionality, the default behavior SHOULD be to display web search engine results and
suggestions.
Device implementations MAY ship alternate search user interfaces, but SHOULD include a hard or soft
dedicated search button, that can be used at any time within any app to invoke the search framework,
with the behavior provided for in the API documentation.
3.8.4. Toasts
Applications can use the "Toast" API (defined in [ Resources, 18]) to display short non-modal strings to the
end user, that disappear after a brief period of time. Device implementations MUST display Toasts from
applications to end users in some high-visibility manner.
4. Reference Software Compatibility
Device implementers MUST test implementation compatibility using the following open-source
applications:
• Calculator (included in SDK)
• Lunar Lander (included in SDK)
• ApiDemos (included in SDK)
• The "Apps for Android" applications [ Resources, 19]
Each app above MUST launch and behave correctly on the implementation, for the implementation to be
considered compatible.
5. Application Packaging Compatibility
Device implementations MUST install and run Android ".apk" files as generated by the "aapt" tool
included in the official Android SDK [ Resources , 20].
Devices implementations MUST NOT extend either the .apk, Android Manifest, or Dalvik bytecode
formats in such a way that would prevent those files from installing and running correctly on other
compatible devices. Device implementers SHOULD use the reference upstream implementation of Dalvik,
and the reference implementation's package management system.
6. Multimedia Compatibility
A compatible Android device must support the following multimedia codecs. All of these codecs are
provided as software implementations in the preferred Android implementation from the Android Open
Source Project [ Resources , 4].
Please note that neither Google nor the Open Handset Alliance make any representation that these
codecs are unencumbered by third-party patents. Those intending to use this source code in hardware or
software products are advised that implementations of this code, including in open source software or
shareware, may require patent licenses from the relevant patent holders.
Audio
Name
Encoder Decoder Details
Files Supported
Mono/Stereo content in any
3GPP (.3gp) and
combination of standard bit rates
MPEG-4 (.mp4, .m4a)
AAC LC/LTP
X
up to 160 kbps and sampling rates files. No support for raw
between 8 to 48kHz
AAC (.aac)
Mono/Stereo content in any
3GPP (.3gp) and
HE-AACv1
combination of standard bit rates
MPEG-4 (.mp4, .m4a)
X
(AAC+)
up to 96 kbps and sampling rates files. No support for raw
between 8 to 48kHz
AAC (.aac)
Mono/Stereo content in any
HE-AACv2
3GPP (.3gp) and
combination of standard bit rates
(enhanced
MPEG-4 (.mp4, .m4a)
X
up to 96 kbps and sampling rates
AAC+)
files. No support for raw
between 8 to 48kHz
AAC (.aac)
AMR-NB
4.75 to 12.2 kbps sampled @
3GPP (.3gp) files
X
X
8kHz
AMR-WB
9 rates from 6.60 kbit/s to 23.85
-3GPP (.3gp) files
X
kbit/s sampled @ 16kHz
MP3
Mono/Stereo 8-320Kbps constant MP3 (.mp3) files
X
(CBR) or variable bit-rate (VBR)
Type 0 and 1 (.mid, .xmf,
MIDI Type 0 and 1. DLS Version 1
MIDI
X
.mxmf). Also RTTTL/RTX
and 2. XMF and Mobile XMF.
(.rtttl, .rtx), OTA (.ota),
Support for ringtone formats
and iMelody (.imy)
RTTTL/RTX, OTA, and iMelody
Ogg Vorbis
.ogg
X
8- and 16-bit linear PCM (rates up
PCM
X
WAVE
to limit of hardware)
Image
Files
Name
Encoder Decoder Details
Supported
JPEG
X
X
base+progressive
GIF
X
PNG
X
X
BMP
X
Video
Files
Name
Encoder Decoder Details
Supported
3GPP (.3gp)
H.263
X
X
files
3GPP (.3gp)
H.264
X
and MPEG-4
(.mp4) files
MPEG4
X
3GPP (.3gp) file
SP
7. Developer Tool Compatibility
Device implementations MUST support the Android Developer Tools provided in the Android SDK.
Specifically, Android-compatible devices MUST be compatible with:
• Android Debug Bridge or adb [Resources , 21]
Device implementations MUST support all adb functions as documented in the Android
SDK. The device-side adb daemon SHOULD be inactive by default, but there MUST be a user-
accessible mechanism to turn on the Android Debug Bridge.
• Dalvik Debug Monitor Service or ddms [Resources , 22]
Device implementations MUST support all ddms features as documented in the Android SDK.
As ddms uses adb, support for ddms SHOULD be inactive by default, but MUST be supported
whenever the user has activated the Android Debug Bridge, as above.
• Monkey [Resources, 23]
Device implementations MUST include the Monkey framework, and make it available for
applications to use.
8. Hardware Compatibility
Android is intended to support device implementers creating innovative form factors and configurations.
At the same time Android developers expect certain hardware, sensors and APIs across all Android
device. This section lists the hardware features that all Android 1.6 compatible devices must support. In
Android 1.6, the majority of hardware features (such as WiFi, compass, and accelerometer) are required.
If a device includes a particular hardware component that has a corresponding API for third-party
developers, the device implementation MUST implement that API as defined in the Android SDK
documentation.
8.1. Display
Android 1.6 includes facilities that perform certain automatic scaling and transformation operations under
some circumstances, to ensure that third-party applications run reasonably well on hardware
configurations for which they were not necessarily explicitly designed [Resources, 24] . Devices MUST
properly implement these behaviors, as detailed in this section.
8.1.1. Standard Display Configurations
This table lists the standard screen configurations considered compatible with Android:
Diagonal
Screen Size
Screen Density
Screen Type
Width (Pixels)
Height (Pixels)
Length Range
Group
Group
(inches)
QVGA
240
320
2.6 - 3.0
Small
Low
WQVGA
240
400
3.2 - 3.5
Normal
Low
FWQVGA
240
432
3.5 - 3.8
Normal
Low
HVGA
320
480
3.0 - 3.5
Normal
Medium
WVGA
480
800
3.3 - 4.0
Normal
High
FWVGA
480
854
3.5 - 4.0
Normal
High
WVGA
480
800
4.8 - 5.5
Large
Medium
FWVGA
480
854
5.0 - 5.8
Large
Medium
Device implementations corresponding to one of the standard configurations above MUST be configured
to report the indicated screen size to applications via the android.content.res.Configuration [ Resources,
25] class.
Some .apk packages have manifests that do not identify them as supporting a specific density range.
When running such applications, the following constraints apply:
• Device implementations MUST interpret any resources that are present as defaulting to
"medium" (known as "mdpi" in the SDK documentation.)
• When operating on a "low" density screen, device implementations MUST scale down medium/
mdpi assets by a factor of 0.75.
• When operating on a "high" density screen, device implementations MUST scale up medium/
mdpi assets by a factor of 1.5.
• Device implementations MUST NOT scale assets within a density range, and MUST scale
assets by exactly these factors between density ranges.
8.1.2. Non-Standard Display Configurations
Display configurations that do not match one of the standard configurations listed in Section 8.2.1 require
additional consideration and work to be compatible. Device implementers MUST contact Android
Compatibility Team as provided for in Section 12 to obtain classifications for screen-size bucket, density,
and scaling factor. When provided with this information, device implementations MUST implement them
as specified.
Note that some display configurations (such as very large or very small screens, and some aspect ratios)
are fundamentally incompatible with Android 1.6; therefore device implementers are encouraged to
contact Android Compatibility Team as early as possible in the development process.
8.1.3. Display Metrics
Device implementations MUST report correct values for all display metrics defined in
android.util.DisplayMetrics [Resources , 26].
8.2. Keyboard
Device implementations:
• MUST include support for the Input Management Framework (which allows third party
developers to create Input Management Engines -- ie soft keyboard) as detailed at
developer.android.com
• MUST provide at least one soft keyboard implementation (regardless of whether a hard
keyboard is present)
• MAY include additional soft keyboard implementations
• MAY include a hardware keyboard
• MUST NOT include a hardware keyboard that does not match one of the formats specified
in android.content.res.Configuration [ Resources, 25] (that is, QWERTY, or 12-key)
8.3. Non-touch Navigation
Device implementations:
• MAY omit non-touch navigation options (that is, may omit a trackball, 5-way directional pad, or
wheel)
• MUST report via android.content.res.Configuration [Resources , 25] the correct value for the
device's hardware
8.4. Screen Orientation
Compatible devices MUST support dynamic orientation by applications to either portrait or landscape
screen orientation. That is, the device must respect the application's request for a specific screen
orientation. Device implementations MAY select either portrait or landscape orientation as the default.
Devices MUST report the correct value for the device's current orientation, whenever queried via the
android.content.res.Configuration.orientation, android.view.Display.getOrientation(), or other APIs.
8.5. Touchscreen input
Device implementations:
• MUST have a touchscreen
• MAY have either capacative or resistive touchscreen
• MUST report the value of android.content.res.Configuration [ Resources, 25] reflecting
corresponding to the type of the specific touchscreen on the device
8.6. USB
Device implementations:
• MUST implement a USB client, connectable to a USB host with a standard USB-A port
• MUST implement the Android Debug Bridge over USB (as described in Section 7)
• MUST implement a USB mass storage client for the removable/media storage is present in the
device
• SHOULD use the micro USB form factor on the device side
• SHOULD implement support for the USB Mass Storage specification (so that either removable
or fixed storage on the device can be accessed from a host PC)
• MAY include a non-standard port on the device side, but if so MUST ship with a cable capable of
connecting the custom pinout to standard USB-A port
8.7. Navigation keys
The Home, Menu and Back functions are essential to the Android navigation paradigm. Device
implementations MUST make these functions available to the user at all times, regardless of application
state. These functions SHOULD be implemented via dedicated buttons. They MAY be implemented
using software, gestures, touch panel, etc., but if so they MUST be always accessible and not obscure or
interfere with the available application display area.
Device implementers SHOULD also provide a dedicated search key. Device implementers MAY also
provide send and end keys for phone calls.
8.8. WiFi
Device implementations MUST support 802.11b and 802.11g, and MAY support 802.11a.
8.9. Camera
Device implementations MUST include a camera. The included camera:
• MUST have a resolution of at least 2 megapixels
• SHOULD have either hardware auto-focus, or software auto-focus implemented in the camera
driver (transparent to application software)
• MAY have fixed-focus or EDOF (extended depth of field) hardware
• MAY include a flash. If the Camera includes a flash, the flash lamp MUST NOT be lit while an
android.hardware.Camera.PreviewCallback instance has been registered on a Camera preview
surface.
Device implementations MUST implement the following behaviors for the camera-related APIs
[Resources, 27] :
1. If an application has never called android.hardware.Camera.Parameters.setPreviewFormat(int),
then the device MUST use android.hardware.PixelFormat.YCbCr_420_SP for preview data
provided to application callbacks.
2. If an application registers an android.hardware.Camera.PreviewCallback instance and the
system calls the onPreviewFrame() method when the preview format is YCbCr_420_SP, the
data in the byte[] passed into onPreviewFrame() must further be in the NV21 encoding format.
(This is the format used natively by the 7k hardware family.) That is, NV21 MUST be the default.
8.9.1. Non-Autofocus Cameras
If a device lacks an autofocus camera, the device implementer MUST meet the additional requirements in
this section. Device implementations MUST implement the full Camera API included in the Android 1.6
SDK documentation in some reasonable way, regardless of actual camera hardware's capabilities.
For Android 1.6, if the camera lacks auto-focus, the device implementation MUST adhere to the following:
1. The system MUST include a read-only system property named "ro.workaround.noautofocus"
with the value of "1". This value is intended to be used by applications such as Android Market to
selectively identify device capabilities, and will be replaced in a future version of Android with a
robust API.
2. If an application calls android.hardware.Camera.autoFocus(), the system MUST call the
onAutoFocus() callback method on any registered
android.hardware.Camera.AutoFocusCallback instances, even though no focusing actually
happened. This is to avoid having existing applications break by waiting forever for an autofocus
callback that will never come.
3. The call to the AutoFocusCallback.onAutoFocus() method MUST be triggered by the driver or
framework in a new event on the main framework Looper thread. That is, Camera.autoFocus()
MUST NOT directly call AutoFocusCallback.onAutoFocus() since this violates the Android
framework threading model and will break apps.
8.10. Accelerometer
Device implementations MUST include a 3-axis accelerometer and MUST be able to deliver events at at
least 50 Hz. The coordinate system used by the accelerometer MUST comply with the Android sensor
coordinate system as detailed in the Android API s [Resources , 28].
8.11. Compass
Device implementations MUST include a 3-axis compass and MUST be able to deliver events at at least
10 Hz. The coordinate system used by the compass MUST comply with the Android sensor coordinate
system as defined in the Android API [Resources , 28].
8.12. GPS
Device implementations MUST include a GPS, and SHOULD include some form of "assisted GPS"
technique to minimize GPS lock-on time.
8.13. Telephony
Device implementations:
• MUST include either GSM or CDMA telephony
• MUST implement the appropriate APIs as detailed in the Android SDK documentation at
developer.android.com
Note that this requirement implies that non-phone devices are not compatible with Android 1.6; Android
1.6 devices MUST include telephony hardware. Please see Appendix C for information on non-phone
devices.
8.14. Volume controls
Android-compatible devices MUST include a mechanism to allow the user to increase and decrease the
audio volume. Device implementations MUST make these functions available to the user at all times,
regardless of application state. These functions MAY be implemented using physical hardware keys,
software, gestures, touch panel, etc., but they MUST be always accessible and not obscure or interfere
with the available application display area (see Display above).
When these buttons are used, the corresponding key events MUST be generated and sent to the
foreground application. If the event is not intercepted and sunk by the application then device
implementation MUST handle the event as a system volume control.
9. Performance Compatibility
One of the goals of the Android Compatibility Program is to ensure a consistent application experience for
consumers. Compatible implementations must ensure not only that applications simply run correctly on
the device, but that they do so with reasonable performance and overall good user experience.
Device implementations MUST meet the key performance metrics of an Android 1.6 compatible device,
as in the table below:
Metric
Performance Threshold
Comments
This is tested by CTS.
The following applications
The launch time is measured as the total time to
should launch within the
complete loading the default activity for the
Application
specified time.
application, including the time it takes to start the
Launch Time
Browser: less than 1300ms
Linux process, load the Android package into the
MMS/SMS: less than 700ms
Dalvik VM, and call onCreate.
AlarmClock: less than 650ms
Multiple applications will be
This is tested by CTS.
launched. Re-launching the
Simultaneous first application should
Applications
complete taking less than the
original launch time.
10. Security Model Compatibility
Device implementations MUST implement a security model consistent with the Android platform security
model as defined in Security and Permissions reference document in the APIs [Resources, 29] in the
Android developer documentation. Device implementations MUST support installation of self-signed
applications without requiring any additional permissions/certificates from any third parties/authorities.
Specifically, compatible devices MUST support the following security mechanisms:
10.1. Permissions
Device implementations MUST support the Android permissions model as defined in the Android
developer documentation [ Resources , 9]. Specifically, implementations MUST enforce each permission
defined as described in the SDK documentation; no permissions may be omitted, altered, or ignored.
Implementations MAY add additional permissions, provided the new permission ID strings are not in the
android.* namespace.
10.2. User and Process Isolation
Device implementations MUST support the Android application sandbox model, in which each application
runs as a unique Unix-style UID and in a separate process.
Device implementations MUST support running multiple applications as the same Linux user ID, provided
that the applications are properly signed and constructed, as defined in the Security and Permissions
reference [ Resources , 29].
10.3. Filesystem Permissions
Device implementations MUST support the Android file access permissions model as defined in as
defined in the Security and Permissions reference [Resources , 29].
11. Compatibility Test Suite
Device implementations MUST pass the Android Compatibility Test Suite (CTS) [ Resources, 3] available
from the Android Open Source Project, using the final shipping software on the device. Additionally,
device implementers SHOULD use the reference implementation in the Android Open Source tree as
much as possible, and MUST ensure compatibility in cases of ambiguity in CTS and for any
reimplementations of parts of the reference source code.
The CTS is designed to be run on an actual device. Like any software, the CTS may itself contain bugs.
The CTS will be versioned independently of this Compatibility Definition, and multiple revisions of the
CTS may be released for Android 1.6. However, such releases will only fix behavioral bugs in the CTS
tests and will not impose any new tests, behaviors or APIs for a given platform release.
12. Contact Us
You can contact the Android Compatibility Team at compatibility@android.com for clarifications related to
this Compatibiltiy Definition and to provide feedback on this Definition.
Appendix A: Required Application Intents
NOTE: this list is provisional, and will be updated in the future.
Application Actions
Schemes MIME Types
(none)
text/plain
http
text/html
Browser
android.intent.action.VIEW
https
application/xhtml+xml
application/
vnd.wap.xhtml+xml
(none)
android.intent.action.WEB_SEARCH
http
(none)
https
android.media.action.IMAGE_CAPTURE
android.media.action.STILL_IMAGE_CAMERA
Camera
android.media.action.VIDEO_CAMERA
android.media.action.VIDEO_CAPTURE
vnd.android.cursor.dir/
android.intent.action.VIEW
image
android.intent.action.GET_CONTENT
vnd.android.cursor.dir/
android.intent.action.PICK
video
android.intent.action.ATTACH_DATA
image/*
video/*
android.intent.action.VIEW
rtsp
video/mp4
video/3gp
android.intent.action.VIEW
http
video/3gpp
video/3gpp2
android.intent.action.DIAL
Phone /
android.intent.action.VIEW
tel
Contacts
android.intent.action.CALL
android.intent.action.DIAL
vnd.android.cursor.dir/
android.intent.action.VIEW
person
vnd.android.cursor.dir/
person
vnd.android.cursor.dir/
android.intent.action.PICK
phone
vnd.android.cursor.dir/
postal-address
vnd.android.cursor.item/
person
vnd.android.cursor.item/
android.intent.action.GET_CONTENT
phone
vnd.android.cursor.item/
postal-address
text/plain
android.intent.action.SEND
image/*
video/*
android.intent.action.VIEW
mailto
android.intent.action.SENDTO
sms
android.intent.action.VIEW
smsto
SMS / MMS android.intent.action.SENDTO
mms
mmsto
audio/*
application/ogg
Music
android.intent.action.VIEW
file
application/x-ogg
application/itunes
audio/mp3
audio/x-mp3
android.intent.action.VIEW
http
audio/mpeg
audio/mp4
audio/mp4a-latm
vnd.android.cursor.dir/
artistalbum
vnd.android.cursor.dir/
album
vnd.android.cursor.dir/
android.intent.action.PICK
nowplaying
vnd.android.cursor.dir/
track
nd.android.cursor.dir/
playlist
vnd.android.cursor.dir/
video
media/*
audio/*
android.intent.action.GET_CONTENT
application/ogg
application/x-ogg
video/*
content
Package
android.intent.action.VIEW
file
Installer
package
file
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
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
Search
android.intent.action.SEARCH
query
android.intent.action.SEARCH_LONG_PRESS
Voice
android.intent.action.VOICE_COMMAND
Contacts Management
Intent Action
Description
Starts an Activity that lets the user pick
ATTACH_IMAGE
a contact to attach an image to.
Used
EXTRA_CREATE_DESCRIPTION
with SHOW_OR_CREATE_CONTACT to
specify an exact description to be
shown when prompting user about
creating a new contact.
Used
with SHOW_OR_CREATE_CONTACT to
EXTRA_FORCE_CREATE
force creating a new contact if no
matching contact found.
This is the intent that is fired when a
SEARCH_SUGGESTION_CLICKED
search suggestion is clicked on.
This is the intent that is fired when a
SEARCH_SUGGESTION_CREATE_CONTACT_CLICKED search suggestion for creating a
contact is clicked on.
This is the intent that is fired when a
SEARCH_SUGGESTION_DIAL_NUMBER_CLICKED
search suggestion for dialing a number
is clicked on.
Takes as input a data URI with a mailto:
SHOW_OR_CREATE_CONTACT
or tel: scheme.
Appendix B: Required Broadcast Intents NOTE: this list is provisional, and will be
updated in the future.
Intent Action
Description
Broadcast Action: This is broadcast once, after the
ACTION_BOOT_COMPLETED
system has finished booting.
Broadcast Action: This is broadcast once, when a
ACTION_CALL_BUTTON
call is received.
Broadcast Action: The "Camera Button" was
ACTION_CAMERA_BUTTON
pressed.
Broadcast Action: The current
ACTION_CONFIGURATION_CHANGED
device Configuration (orientation, locale, etc) has
changed.
ACTION_DATE_CHANGED
Broadcast Action: The date has changed.
Broadcast Action: Indicates low memory condition
ACTION_DEVICE_STORAGE_LOW
on the device
Broadcast Action: Indicates low memory condition
ACTION_DEVICE_STORAGE_OK
on the device no longer exists
Broadcast Action: Wired Headset plugged in or
ACTION_HEADSET_PLUG
unplugged.
Broadcast Action: An input method has been
ACTION_INPUT_METHOD_CHANGED
changed.
Broadcast Action: External media was removed
ACTION_MEDIA_BAD_REMOVAL
from SD card slot, but mount point was not
unmounted.
Broadcast Action: The "Media Button" was
ACTION_MEDIA_BUTTON
pressed.
Broadcast Action: External media is present, and
being disk-checked The path to the mount point for
ACTION_MEDIA_CHECKING
the checking media is contained in the
Intent.mData field.
Broadcast Action: User has expressed the desire to
ACTION_MEDIA_EJECT
remove the external storage media.
Broadcast Action: External media is present and
ACTION_MEDIA_MOUNTED
mounted at its mount point.
Broadcast Action: External media is present, but is
using an incompatible fs (or is blank) The path to
ACTION_MEDIA_NOFS
the mount point for the checking media is
contained in the Intent.mData field.
Broadcast Action: External media has been
ACTION_MEDIA_REMOVED
removed.
Broadcast Action: The media scanner has finished
ACTION_MEDIA_SCANNER_FINISHED
scanning a directory.
Broadcast Action: Request the media scanner to
ACTION_MEDIA_SCANNER_SCAN_FILE
scan a file and add it to the media database.
Broadcast Action: The media scanner has started
ACTION_MEDIA_SCANNER_STARTED
scanning a directory.
Broadcast Action: External media is unmounted
ACTION_MEDIA_SHARED
because it is being shared via USB mass storage.
Broadcast Action: External media is present but
ACTION_MEDIA_UNMOUNTABLE
cannot be mounted.
Broadcast Action: External media is present, but
ACTION_MEDIA_UNMOUNTED
not mounted at its mount point.
Broadcast Action: An outgoing call is about to be
ACTION_NEW_OUTGOING_CALL
placed.
Broadcast Action: A new application package has
ACTION_PACKAGE_ADDED
been installed on the device.
Broadcast Action: An existing application package
ACTION_PACKAGE_CHANGED
has been changed (eg a component has been
enabled or disabled.
Broadcast Action: The user has cleared the data of
a package. This should be preceded
by ACTION_PACKAGE_RESTARTED, after which
ACTION_PACKAGE_DATA_CLEARED
all of its persistent data is erased and this
broadcast sent. Note that the cleared package
does not receive this broadcast. The data contains
the name of the package.
Broadcast Action: An existing application package
has been removed from the device. The data
ACTION_PACKAGE_REMOVED
contains the name of the package. The package
that is being installed does not receive this Intent.
Broadcast Action: A new version of an application
ACTION_PACKAGE_REPLACED
package has been installed, replacing an existing
version that was previously installed.
Broadcast Action: The user has restarted a
package, and all of its processes have been killed.
All runtime state associated with it (processes,
ACTION_PACKAGE_RESTARTED
alarms, notifications, etc) should be removed. Note
that the restarted package does not receive this
broadcast. The data contains the name of the
package.
Broadcast Action: Some content providers have
parts of their namespace where they publish new
ACTION_PROVIDER_CHANGED
events or items that the user may be especially
interested in.
ACTION_SCREEN_OFF
Broadcast Action: Sent after the screen turns off.
ACTION_SCREEN_ON
Broadcast Action: Sent after the screen turns on.
Broadcast Action: A user ID has been removed
ACTION_UID_REMOVED
from the system.
Broadcast Action: The device has entered USB
ACTION_UMS_CONNECTED
Mass Storage mode.
Broadcast Action: The device has exited USB
ACTION_UMS_DISCONNECTED
Mass Storage mode.
Broadcast Action: Sent when the user is present
ACTION_USER_PRESENT
after device wakes up (eg when the keyguard is
gone).
Broadcast Action: The current system wallpaper
ACTION_WALLPAPER_CHANGED
has changed.
ACTION_TIME_CHANGED
Broadcast Action: The time was set.
ACTION_TIME_TICK
Broadcast Action: The current time has changed.
ACTION_TIMEZONE_CHANGED
Broadcast Action: The timezone has changed.
Broadcast Action: The charging state, or charge
ACTION_BATTERY_CHANGED
level of the battery has changed.
Broadcast Action: Indicates low battery condition
ACTION_BATTERY_LOW
on the device. This broadcast corresponds to the
"Low battery warning" system dialog.
Broadcast Action: Indicates the battery is now okay
after being low. This will be sent
ACTION_BATTERY_OKAY
after ACTION_BATTERY_LOW once the battery
has gone back up to an okay state.
Network State
Intent Action
Description
Broadcast intent action indicating that the
NETWORK_STATE_CHANGED_ACTION
state of Wi-Fi connectivity has changed.
Broadcast intent action indicating that the
RSSI_CHANGED_ACTION
RSSI (signal strength) has changed.
Broadcast intent action indicating that a
SUPPLICANT_STATE_CHANGED_ACTION
connection to the supplicant has been
established or lost.
Broadcast intent action indicating that Wi-Fi
WIFI_STATE_CHANGED_ACTION
has been enabled, disabled, enabling,
disabling, or unknown.
The network IDs of the configured networks
NETWORK_IDS_CHANGED_ACTION
could have changed.
Broadcast intent action indicating that the
ACTION_BACKGROUND_DATA_SETTING_CHANGED setting for background data usage has
changed values.
Broadcast intent indicating that a change in
CONNECTIVITY_ACTION
network connectivity has occurred.
Broadcast Action: The user has switched the
ACTION_AIRPLANE_MODE_CHANGED
phone into or out of Airplane Mode.
Appendix C: Future Considerations This appendix clarifies certain portions of this Android
1.6 Compatibility Definition, and in some cases discusses anticipated or planned changes intended for a
future version of the Android platform. This appendix is for informational and planning purposes only, and
is not part of the Compatibility Definition for Android 1.6.
1. Non-telephone Devices
Android 1.6 is intended exclusively for telephones; telephony functionality is not optional. Future versions
of the Android platform are expected to make telephony optional (and thus allow for non-phone Android
devices), but only phones are compatible with Android 1.6.
2. Bluetooth Compatibility
The Android 1.6 release of Android does not support Bluetooth APIs, so from a compatibility perspective
Bluetooth does not impose any considerations for this version of the platform. However, a future version
of Android will introduce Bluetooth APIs. At that point, supporting Bluetooth will become mandatory for
compatibility.
Consequently, we strongly recommend that Android 1.6 devices include Bluetooth, so that they will be
compatible with future versions of Android that require Bluetooth.
3. Required Hardware Components
All hardware components in Section 8 (including WiFi, magnetometer/compass, accelerometer, etc.) are
required and may not be omitted. Future versions of Android are expected to make some (but not all) of
these components optional, in tandem with corresponding tools for third-party developers to handle these
changes.
4. Sample Applications
The Compatibility Definition Document for a future version of Android will include a more extensive and
representative list of applications than the ones listed in Section 4, above. For Android 1.6, the
applications listed in Section 4 must be tested.
5. Touch Screens
Future versions of the Compatibility Definition may or may not allow for devices to omit touchscreens.
However, currently much of the Android framework implementation assumes the existence of a
touchscreen; omitting a touchscreen would break substantially all current third-party Android applications,
so in Android 1.6 a touchscreen is required for compatibility.
6. Performance
Future versions of CTS will also measure the CPU utilization and performance of the following
components of an implementation:
• 2D graphics
• 3D graphics
• Video playback
• Audio playback
• Bluetooth A2DP playback
Document Outline
- 1. Introduction
- 2. Resources
- 3. Software
- 4. Reference Software Compatibility
- 5. Application Packaging Compatibility
- 6. Multimedia Compatibility
- 7. Developer Tool Compatibility
- 8. Hardware Compatibility
- 9. Performance Compatibility
- 10. Security Model Compatibility
- 11. Compatibility Test Suite
- 12. Contact Us
- Appendix A: Required Application Intents