Android 1.6 互換性の定義

Android 互換性定義: Android 1.6
アンドロイド1.6r2
グーグル株式会社
互換性@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
ソース プロジェクト [ 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-
概要.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#statusbarstructor
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 デバッグ ブリッジ (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/
センサーイベント.html
29. Android のセキュリティと権限のリファレンス: http://developer.android.com/guide/topics/security/
セキュリティ.html
これらのリソースの多くは Android 1.6 SDK から直接的または間接的に派生しており、今後
その SDK ドキュメントの情報と機能的には同じです。これがどのような場合でも、
互換性定義が SDK ドキュメントと一致しない場合、SDK ドキュメントが考慮されます
権威ある。上記の参考文献に記載されている技術的な詳細はすべて含めるものと見なされます。
この互換性定義の一部となる必要があります。
3. ソフトウェア
Android プラットフォームには、マネージド (「ハード」) API のセットと、いわゆる「ソフト」 API の本体の両方が含まれています
インテント システム、ネイティブ コード API、Web アプリケーション API など。このセクションでは、ハードウェアと
互換性に不可欠なソフト API、およびその他の関連する技術インターフェイスおよびユーザー インターフェイス
行動。デバイス実装は、このセクションのすべての要件に準拠しなければなりません。
3.1.マネージド API の互換性
マネージド (Dalvik ベース) 実行環境は、Android アプリケーションの主要な手段です。の
Android アプリケーション プログラミング インターフェイス (API) は、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 にはランタイム専用の重要な「ソフト」も含まれています。
API (インテント、権限、Android アプリケーションの同様の側面などの形式)
これはアプリケーションのコンパイル時に強制することはできません。このセクションでは、「ソフト」API とシステムについて詳しく説明します。
Android 1.6 との互換性のために必要な動作。デバイス実装はすべての条件を満たさなければなりません。
このセクションで説明する要件。
3.2.1.権限
デバイス実装者は、次の文書に記載されているすべての許可定数をサポートし、強制しなければなりません (MUST)。
権限のリファレンス ページ [リソース、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.ブランド
デバイスを製造した会社、組織、個人など。
人間が読める形式。このフィールドは、OEM を示すために使用できる可能性があります。

および/またはデバイスを販売した通信事業者。に関する要件はありません。
このフィールドの特定の形式。ただし、null または空にすることはできません。
弦 ("")。
特定のデバイスを識別するためにデバイス実装者によって選択された値。
本体の構成またはリビジョン (「産業用」と呼ばれることもあります)
android.os.Build.DEVICE
デバイスのデザイン」)。特定のフォーマットに関する要件はありません。
ただし、null または空の文字列 ("") であってはなりません。
このビルドを一意に識別する文字列。それは合理的であるべきです
人間が判読できる。このテンプレートに従う必要があります。
$(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:ユーザーデバッグ/テストキー
フィンガープリントにはスペースを含めてはなりません。他のフィールドが
上記のテンプレートにはスペースが含まれているため、ASCII に置き換える必要があります。
フィンガープリント内のアンダースコア (「_」) 文字。
人間の表現で、ビルドが構築されたホストを一意に識別する文字列
android.os.Build.HOST
読みやすい形式。この特定の形式に関する要件はありません
ただし、null または空の文字列 ("") であってはなりません。
特定のデバイスを参照するためにデバイス実装者によって選択された識別子
人間が読める形式でリリースします。このフィールドは次と同じことができます
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
ビルドが行われたときのタイムスタンプを表す値。
ランタイムを指定するデバイス実装者によって選択された値
ビルドの構成。このフィールドには、次のいずれかの値が含まれている必要があります。
android.os.Build.TYPE
3 つの典型的な Android ランタイム構成に対応します:「ユーザー」、
「userdebug」または「eng」。
を生成したユーザー (または自動ユーザー) の名前またはユーザー ID
android.os.Build.USER
建てる。このフィールドの特定の形式に関する要件はありません。
ただし、null または空の文字列 ("") であってはなりません。

3.2.3.インテントの互換性
Android はインテントを使用して、アプリケーション間の疎結合な統合を実現します。このセクションでは、
デバイス実装が遵守しなければならないインテント パターンに関連する要件。による
「名誉」とは、デバイス実装者が Android アクティビティ、サービス、またはその他を提供しなければならないことを意味します。
一致するインテント フィルターを指定し、それぞれにバインドして正しい動作を実装するコンポーネント
指定されたインテント パターン。
3.2.3.1.コアアプリケーションの意図
Android アップストリーム プロジェクトでは、電話ダイヤラー、カレンダー、
連絡先帳、音楽プレーヤーなど。デバイス実装者は、これらのアプリケーションを次のものに置き換えることができます。
代替バージョン。
ただし、そのような代替バージョンは、アップストリームによって提供されたのと同じインテント パターンを尊重しなければなりません。
プロジェクト。 (たとえば、デバイスに代替音楽プレーヤーが含まれている場合でも、インテント パターンを尊重する必要があります。
曲を選択するためにサードパーティのアプリケーションによって発行されます。)デバイス実装はすべてのインテント パターンをサポートしなければなりません(MUST)
付録 A に記載されています。
3.2.3.2.インテントのオーバーライド
Android は拡張可能なプラットフォームであるため、デバイス実装者は、次で説明されている各インテント パターンを許可しなければなりません。
付録 A は、サードパーティのアプリケーションによって上書きされます。上流の Android オープンソース プロジェクト
これはデフォルトで許可されています。デバイス実装者は、システム アプリケーションに特別な権限を付与してはなりません。
これらのインテント パターンの使用、またはサードパーティ アプリケーションがバインドしてその制御を引き受けることを防止します。
これらのパターン。この禁止事項には、具体的には、「Chooser」ユーザー インターフェイスを無効にすることが含まれます。
ユーザーは、すべて同じインテント パターンを処理する複数のアプリケーションから選択します。
3.2.3.3.インテントの名前空間
デバイス実装者は、新しいインテントを尊重する Android コンポーネントを含めてはなりません。
ACTION、CATEGORY、または android.* 名前空間のその他のキー文字列を使用して、インテント パターンをブロードキャストします。
デバイス実装者は、新しいインテントを尊重する 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 実装を使用する必要があります (SHOULD)。デバイス実装者が
これらのライブラリの実装が異なる場合は、ヘッダーとバイナリの互換性を確保する必要があります。
ネイティブ コードの互換性は困難です。このため、デバイス実装者は
上記のライブラリのアップストリーム実装を使用することを強くお勧めします。
互換性を確保します。
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 モバイルSafari/525.20.1

◦ 「<デバイス名>」文字列は、
android.os.Build.MODEL
◦ 「<build ID>」文字列は、android.os.Build.ID の値と同じでなければなりません。
◦ 「<言語>」と「<国>」の文字列は、通常の規則に従う必要があります (SHOULD)。
国コードと言語、そしてデバイスの現在のロケールを参照すべきです(SHOULD)。
リクエストの時間。
実装では、スタンドアロンのブラウザ アプリケーションにカスタム ユーザー エージェント文字列を含めることができます (MAY)。なに?
さらに、スタンドアロン ブラウザは、代替ブラウザ テクノロジ (Firefox、
Opera など) ただし、代替ブラウザ アプリケーションが出荷されている場合でも、WebView コンポーネントは
サードパーティ アプリケーションに提供されるアプリケーションは、上記のように WebKit に基づいていなければなりません。
スタンドアロンのブラウザ アプリケーションには、Gears のサポートが含まれるべきです [参考文献、 12]。
HTML5 の一部またはすべてのサポートが含まれます。
3.5. API の動作の互換性
各 API タイプ (マネージド、ソフト、ネイティブ、Web) の動作は、
Android オープンソース プロジェクトから入手できる Android の推奨実装。
互換性のある具体的な領域は次のとおりです。
• デバイスは標準インテントの動作や意味を変更してはなりません
• デバイスは、特定の種類のシステムのライフサイクルまたはライフサイクル セマンティクスを変更してはなりません
コンポーネント (Service、Activity、ContentProvider など)
• デバイスは特定の権限のセマンティクスを変更してはなりません
上記のリストは包括的なものではなく、動作を保証する責任はデバイス実装者にあります。
互換性。このため、デバイス実装者は、
可能な場合は、システムの重要な部分を再実装するのではなく、Android オープンソース プロジェクトを使用します。
互換性テスト スイート (CTS) は、プラットフォームの重要な部分の動作互換性をテストします。
すべてではありません。 Android との動作互換性を確保するのは実装者の責任です。
オープンソースプロジェクト。
3.6. API 名前空間
Android は、Java プログラミングで定義されたパッケージおよびクラスの名前空間規則に従います。
言語。サードパーティアプリケーションとの互換性を確保するために、デバイス実装者は次のことを行ってはなりません。
これらのパッケージ名前空間に対する禁止されている変更 (以下を参照):
• java.*
• javax.*
• 太陽。*
• アンドロイド。*
• com.android.*
禁止されている変更には次のようなものがあります。
• デバイス実装は、Android プラットフォーム上で公開されている API を変更してはなりません
メソッドまたはクラスのシグネチャを変更するか、クラスまたはクラス フィールドを削除します。

• デバイス実装者は、API の基礎となる実装を変更することができますが、
変更は、規定された動作や Java 言語の署名に影響を与えてはなりません。
公開されている API。
• デバイス実装者は、公開されている要素 (クラスや
インターフェイス、または既存のクラスまたはインターフェイスへのフィールドまたはメソッド)を上記の API に追加します。
「公開要素」とは、
アップストリームの Android ソース コード。言い換えれば、デバイス実装者は新しい API を公開してはなりません。
上記の名前空間内の既存の API を変更します。デバイス実装者は内部専用を作成してもよい(MAY)
ただし、それらの変更を宣伝したり、開発者に公開したりしてはなりません。
デバイス実装者はカスタム API を追加してもよいですが、そのような API を所有する名前空間に含めてはなりません (MUST NOT)
別の組織によって、または別の組織を参照して。たとえば、デバイス実装者は API を
com.google.* または同様の名前空間。 Google だけがそうすることができます。同様に、Google は API を追加してはなりません
他の会社の名前空間。
デバイス実装者が上記のパッケージ名前空間の 1 つを改善することを提案した場合 (追加するなど)
既存の API に便利な新機能を追加する場合、または新しい API を追加する場合)、実装者は次のサイトにアクセスする必要があります(SHOULD)。
に従って、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 オープンソース リファレンス リリースには、
ユーザーが追加、表示、削除できるユーザー インターフェイス要素を含むランチャー アプリケーション
ホーム画面から AppWidget を選択します。
デバイス実装者は、参照ランチャー (つまり、ホーム画面) の代替を置き換えることができます。
代替ランチャーには、AppWidget のサポートが組み込まれており、ユーザー インターフェイスを公開する必要があります (SHOULD)
要素を使用して、Launcher 内で AppWidget を直接追加、表示、削除できます。代替ランチャーが提供される可能性があります
これらのユーザー インターフェイス要素を省略します。ただし、それらが省略された場合、デバイス実装者は、
ユーザーが追加、表示、削除できるようにランチャーからアクセスできる別のアプリケーション
アプリウィジェット。

3.8.2.通知
Android には、開発者が注目すべきイベントをユーザーに通知できる API が含まれています [参考文献、15]。デバイス
実装者は、そのように定義された通知の各クラスのサポートを提供しなければなりません。具体的には:音、
振動、ライト、ステータスバー。
さらに、実装ではすべてのリソース (アイコン、サウンド ファイルなど) を正しくレンダリングする必要があります。
API [参考文献、 7]、またはステータス バー アイコンのスタイル ガイド [参考文献、16] で規定されています。デバイス
実装者は、通知に対して、
Android オープンソース実装を参照。ただし、そのような代替通知システムは、次のようにしなければなりません。
上記のように、既存の通知リソースをサポートします。
3.8.3.検索
Android には、開発者がアプリケーションに検索を組み込むことを可能にするAPI [参考資料、 17] が含まれています。
そしてアプリケーションのデータをグローバル システム検索に公開します。一般的に言えば、この機能は
ユーザーがクエリを入力し、提案を表示できる単一のシステム全体のユーザー インターフェイスで構成されます。
ユーザーが入力すると、結果が表示されます。 Android API を使用すると、開発者はこのインターフェイスを再利用して、
独自のアプリ内で検索し、開発者が共通のグローバル検索ユーザーに結果を提供できるようにします。
インターフェース。
デバイス実装には、以下の機能を備えた、システム全体にわたる単一の共有検索ユーザー インターフェイスが含まれなければなりません (MUST)。
ユーザー入力に応じたリアルタイムの提案。デバイス実装は、次の API を実装する必要があります。
開発者がこのユーザー インターフェイスを再利用して、独自のアプリケーション内で検索を提供できるようにします。
デバイス実装は、サードパーティ アプリケーションが提案を追加できるようにする API を実装しなければなりません (MUST)
グローバル検索モードで実行すると、検索ボックスに表示されます。サードパーティのアプリケーションがインストールされていない場合は、
この機能を利用する場合、デフォルトの動作では、Web 検索エンジンの結果を表示し、
提案。
デバイス実装は代替検索ユーザー インターフェースを同梱してもよいが、ハードまたはソフトを含めるべきである (SHOULD)
専用の検索ボタン。アプリ内でいつでも使用して検索フレームワークを呼び出すことができます。
API ドキュメントで規定されている動作を使用します。
3.8.4.乾杯
アプリケーションは、「トースト」API ([参考文献、 18] で定義) を使用して、短い非モーダル文字列を
エンドユーザーは短期間で消えます。デバイス実装は、次のトーストを表示しなければなりません。
可視性の高い方法でアプリケーションをエンド ユーザーに提供します。
4. 参照ソフトウェアの互換性
デバイス実装者は、次のオープンソースを使用して実装の互換性をテストする必要があります。
アプリケーション:
• 電卓 (SDK に含まれています)
• Lunar Lander (SDK に含まれています)
• ApiDemos (SDK に含まれています)
• 「Apps for Android」アプリケーション [参考資料、 19]
実装するには、上記の各アプリが起動し、実装上で正しく動作する必要があります。

互換性があると考えられます。
5. アプリケーションパッケージの互換性
デバイス実装は、「aapt」ツールによって生成された Android 「.apk」ファイルをインストールして実行する必要があります。
公式の Android SDK に含まれています [参考資料、20]。
デバイス実装は、.apk、Android マニフェスト、または Dalvik バイトコードのいずれかを拡張してはなりません
これらのファイルが他の環境に正しくインストールされ、実行されなくなるような形式で保存されている場合
互換性のあるデバイス。デバイス実装者は、Dalvik のリファレンス上流実装を使用する必要があります (SHOULD)。
およびリファレンス実装のパッケージ管理システム。
6. マルチメディア互換性
互換性のある Android デバイスは、次のマルチメディア コーデックをサポートする必要があります。これらのコーデックはすべて、
Androidオープンからの優先Android実装のソフトウェア実装として提供されます
ソースプロジェクト[リソース、4]。
GoogleもOpen Handset Allianceも、これらを表明していないことに注意してください
コーデックは、サードパーティの特許によって妨げられていません。このソースコードをハードウェアで使用する意図している人または
ソフトウェア製品は、オープンソースソフトウェアを含むこのコードの実装や
シェアウェアでは、関連する特許所有者からの特許免許証が必要になる場合があります。
オーディオ
名前

エンコーダデコーダーの詳細
サポートされているファイル
任意のモノ/ステレオコンテンツ
3GPP(.3GP)および
標準ビットレートの組み合わせ
mpeg-4(.mp4、.m4a)
AAC LC/LTP
バツ
最大160 kbpsおよびサンプリングレートファイル。 RAWのサポートはありません
8〜48kHz
aac(.aac)
任意のモノ/ステレオコンテンツ
3GPP(.3GP)および
he-aacv1
標準ビットレートの組み合わせ
mpeg-4(.mp4、.m4a)
バツ
(AAC+)
最大96 kbpsおよびサンプリングレートファイル。 RAWのサポートはありません
8〜48kHz
aac(.aac)
任意のモノ/ステレオコンテンツ
HE-AACV2
3GPP(.3GP)および
標準ビットレートの組み合わせ
(強化
mpeg-4(.mp4、.m4a)
バツ
最大96 kbpsおよびサンプリングレート
AAC+)
ファイル。 RAWのサポートはありません
8〜48kHz
aac(.aac)
amr-nb
4.75〜12.2 kbpsサンプリング @
3GPP(.3GP)ファイル
バツ
バツ
8kHz
AMR-WB
6.60 kbit/sから23.85の9レート
-3GPP(.3GP)ファイル
バツ
kbit/sサンプリング @ 16khz
MP3
モノ/ステレオ8-320kbps定数mp3(.mp3)ファイル
バツ
(CBR)または可変ビットレート(VBR)
タイプ0および1(.mid、.xmf、
MIDIタイプ0および1。DLSバージョン1
ミディ
バツ
.mxmf)。また、rtttl/rtx
および2. XMFおよびモバイルXMF。
(.rtttl、.rtx)、ota(.ota)、

着信音形式のサポート
とimelody(.imy)
rtttl/rtx、ota、およびimelody
Ogg Vorbis
.ogg
バツ
8および16ビットの線形PCM(レートアップ
PCM
バツ

ハードウェアの制限に)
画像
ファイル
名前
エンコーダデコーダーの詳細
サポートされています
JPEG
バツ
バツ
ベース+プログレッシブ
GIF
バツ
PNG
バツ
バツ
BMP
バツ
ビデオ
ファイル
名前
エンコーダデコーダーの詳細
サポートされています
3GPP(.3GP)
H.263
バツ
バツ
ファイル
3GPP(.3GP)
H.264
バツ
およびMPEG-4
(.mp4)ファイル
MPEG4
バツ
3GPP(.3GP)ファイル
SP
7.開発者ツールの互換性
デバイスの実装は、Android SDKで提供されるAndroid開発者ツールをサポートする必要があります。
具体的には、Android互換性のあるデバイスは、次のことと互換性がなければなりません。
AndroidデバッグブリッジまたはADB [リソース、21]
デバイスの実装は、Androidに文書化されているすべてのADB機能をサポートする必要があります
SDK。デバイス側のADBデーモンはデフォルトでは非アクティブでなければなりませんが、ユーザーがいる必要があります -
Androidデバッグブリッジをオンにするためのアクセス可能なメカニズム。
DalvikデバッグモニターサービスまたはDDMS [リソース、22]
デバイスの実装は、Android SDKで文書化されているすべてのDDMS機能をサポートする必要があります。
DDMSはADBを使用しているため、DDMSのサポートはデフォルトでは非アクティブである必要がありますが、サポートする必要があります
上記のように、ユーザーがAndroidデバッグブリッジをアクティブにしたときはいつでも。

モンキー[リソース、23]
デバイスの実装には、モンキーフレームワークを含め、利用できるようにする必要があります
使用するアプリケーション。
8.ハードウェア互換性
Androidは、革新的なフォームファクターと構成を作成するデバイスの実装者をサポートすることを目的としています。
同時に、Android開発者は、すべてのAndroidにある特定のハードウェア、センサー、APIを期待しています
デバイス。このセクションには、すべてのAndroid 1.6互換性のあるデバイスがサポートする必要があるハードウェア機能をリストします。で
Android 1.6、ハードウェア機能の大部分(wifi、コンパス、アクセルメーターなど)が必要です。
デバイスに、サードパーティに対応するAPIを持つ特定のハードウェアコンポーネントが含まれている場合
開発者、デバイスの実装は、Android SDKで定義されているAPIを実装する必要があります
ドキュメンテーション。
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
大きい
中くらい
上記の標準構成の1つに対応するデバイスの実装は、構成する必要があります
Android.content.res.configuration [リソース]を介して、示された画面サイズをアプリケーションに報告するには、
25]クラス。
一部の.APKパッケージには、特定の密度範囲をサポートするものとしてそれらを識別しないマニフェストがあります。
そのようなアプリケーションを実行するとき、次の制約が適用されます。

•デバイスの実装は、デフォルトとして存在するリソースを解釈する必要があります
「Medium」(SDKドキュメントで「MDPI」と呼ばれます。)
•「低い」密度画面で操作する場合、デバイスの実装は中程度を縮小する必要があります/
MDPI資産は0.75倍です。
•「高」密度画面で操作する場合、デバイスの実装は中程度を拡大する必要があります/
1.5倍のMDPI資産。
•デバイスの実装は、密度範囲内で資産をスケーリングしてはならず、スケーリングする必要があります
密度範囲間のこれらの要因による正確な資産。
8.1.2。非標準の表示構成
セクション8.2.1にリストされている標準構成のいずれかと一致しない構成を表示する
互換性があるための追加の考慮と作業。デバイスの実装者は、Androidに連絡する必要があります
セクション12で規定されている互換性チームが、スクリーンサイズのバケツ、密度の分類を取得するための互換性チーム
およびスケーリング係数。この情報が提供された場合、デバイスの実装はそれらを実装する必要があります
指定どおり。
一部の表示構成(非常に大きな画面や非常に小さな画面やいくつかのアスペクト比など)に注意してください
Android 1.6と基本的に互換性がありません。したがって、デバイスの実装者が推奨されます
開発プロセスでは、できるだけ早くAndroid互換性チームに連絡してください。
8.1.3。メトリックを表示します
デバイスの実装は、で定義されているすべてのディスプレイメトリックの正しい値を報告する必要があります
Android.util.displaymetrics [リソース、26]。
8.2.キーボード
デバイスの実装:
•入力管理フレームワークのサポートを含める必要があります(サードパーティを許可します
入力管理エンジンを作成する開発者 - すなわちソフトキーボード)
開発者.android.com
•少なくとも1つのソフトキーボードの実装を提供する必要があります(ハードかどうかに関係なく
キーボードが存在します)
•追加のソフトキーボードの実装を含めることができます
•ハードウェアキーボードを含めることができます
•指定された形式の1つと一致しないハードウェアキーボードを含めてはなりません
in android.content.res.configuration [ resources、25] (つまり、qwerty、または12キー)
8.3.タッチナビゲーション
デバイスの実装:
•タッチ以外のナビゲーションオプションを省略する場合があります(つまり、トラックボール、5方向の方向パッド、または
車輪)
•android.content.res.configuration [リソース、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-Aポートを持つUSBホストに接続可能なUSBクライアントを実装する必要があります
•USB上のAndroidデバッグブリッジを実装する必要があります(セクション7で説明しているように)
•取り外し可能な/メディアストレージのためにUSB Mass Storageクライアントを実装する必要があります。
デバイス
•デバイス側のマイクロUSBフォームファクターを使用する必要があります
•USB大容量貯蔵仕様のサポートを実装する必要があります(どちらかが取り外し可能です
または、デバイス上の固定ストレージにホストPCからアクセスできます)
•デバイス側には標準以外のポートを含めることができますが、そうであれば、できるケーブルを使用する必要があります
カスタムピンアウトを標準の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インスタンスを登録する場合、
プレビュー形式がycbcr_420_spの場合、システムはonpreviewframe()メソッドを呼び出します。
onpreviewframe()に渡されたバイト内のデータは、さらにNV21エンコード形式である必要があります。
(これは、7Kハードウェアファミリがネイティブに使用する形式です。)つまり、NV21がデフォルトでなければなりません。
8.9.1。非自動焦点カメラ
デバイスにオートフォーカスカメラがない場合、デバイスの実装者は追加の要件を満たす必要があります
このセクション。デバイスの実装は、Android 1.6に含まれる完全なカメラAPIを実装する必要があります
実際のカメラハードウェアの機能に関係なく、何らかの合理的な方法でSDKドキュメント。
Android 1.6の場合、カメラにオートフォーカスがない場合、デバイスの実装は次のものに付着する必要があります。
1.システムには、「ro.workaround.noautofocus」という名前の読み取り専用システムプロパティを含める必要があります
「1」の値で。この値は、Android Marketなどのアプリケーションで使用することを目的としています。
デバイス機能を選択的に識別すると、将来のバージョンのAndroidでの交換が
堅牢なAPI。
2.アプリケーションがandroid.hardware.camera.autofocus()を呼び出す場合、システムは
登録された任意のonautofocus()コールバックメソッド
android.hardware.camera.autofofocuscallbackインスタンスは、実際には焦点を合わせていません
起こりました。これは、オートフォーカスを永遠に待つことによって既存のアプリケーションが壊れないようにするためです
決して来ないコールバック。
3. autofocuscallback.onautofocus()メソッドへの呼び出しは、ドライバーによってトリガーされる必要があります。
メインフレームワークルーパースレッドの新しいイベントのフレームワーク。つまり、camera.autofocus()
Autofocuscallback.onautofocus()に直接電話してはいけません。これはAndroidに違反しているため
フレームワークスレッディングモデルとアプリを壊します。
8.10。加速度計
デバイスの実装には、3軸の加速度計を含める必要があり、でイベントを配信できる必要があります
少なくとも50 Hz。加速度計で使用される座標系は、Androidセンサーに準拠する必要があります
Android API [リソース、28]で詳述されている座標系。

8.11。方位磁針
デバイスの実装には、3軸コンパスを含める必要があり、少なくともイベントを提供できる必要があります
10 Hz。コンパスが使用する座標系は、Androidセンサー座標に準拠する必要があります
Android API [リソース、28]で定義されているシステム
8.12。 GPS
デバイスの実装にはGPSを含める必要があり、何らかの形の「Assisted GPS」を含める必要があります
GPSロックオンタイムを最小限に抑える手法。
8.13。電話
デバイスの実装:
•GSMまたはCDMAテレフォニーのいずれかを含める必要があります
•Android SDKドキュメントで詳述されているように、適切なAPIを実装する必要があります
開発者.android.com
この要件は、非電話デバイスがAndroid 1.6と互換性がないことを意味することに注意してください。アンドロイド
1.6デバイスには、テレフォニーハードウェアを含める必要があります。非電話の詳細については、付録Cを参照してください
デバイス。
8.14。ボリュームコントロール
Android互換のデバイスには、ユーザーが増加して減らすことができるメカニズムを含める必要があります
オーディオボリューム。デバイスの実装は、これらの機能を常にユーザーが利用できるようにする必要があります。
アプリケーションの状態に関係なく。これらの機能は、物理ハードウェアキーを使用して実装できます。
ソフトウェア、ジェスチャー、タッチパネルなど。ただし、常にアクセスしやすく、あいまいにしたり干渉したりしない必要があります
使用可能なアプリケーションディスプレイ領域を使用します(上の表示を参照)。
これらのボタンを使用する場合、対応するキーイベントを生成し、に送信する必要があります。
フォアグラウンドアプリケーション。イベントがアプリケーションによって傍受されて沈んでいない場合は、デバイス
実装は、システムのボリューム制御としてイベントを処理する必要があります。
9.パフォーマンスの互換性
Android互換性プログラムの目標の1つは、
消費者。互換性のある実装は、アプリケーションが単純に正しく実行されることを保証する必要があります
デバイスですが、合理的なパフォーマンスと全体的な優れたユーザーエクスペリエンスでそうしています。
デバイスの実装は、Android 1.6互換性のあるデバイスの主要なパフォーマンスメトリックを満たす必要があります。
以下の表のように:
メトリック
パフォーマンスのしきい値
コメント

これはCTSによってテストされます。
次のアプリケーション
起動時間は、合計時間として測定されます
内で起動する必要があります
デフォルトのアクティビティを完全に読み込みます
応用
指定された時間。
開始するのにかかる時間を含むアプリケーション
起動時間
ブラウザ:1300ms未満
Linuxプロセス、Androidパッケージをにロードします
MMS/SMS:700ms未満
Dalvik VM、およびOnCreateに電話してください。
アラームクロック:650ミリ秒未満
複数のアプリケーションになります
これはCTSによってテストされます。
が発売されました。再起動します
同時最初のアプリケーションが必要です
アプリケーション
完全な摂取を完了します
オリジナルの起動時間。
10.セキュリティモデルの互換性
デバイスの実装は、Androidプラットフォームセキュリティと一致するセキュリティモデルを実装する必要があります
セキュリティおよびアクセス許可で定義されているモデル[リソース]の[リソース]のリファレンスドキュメント[29]
Android開発者のドキュメント。デバイスの実装は、自己署名のインストールをサポートする必要があります
第三者/当局からの追加の権限/証明書を必要とせずに申請。
具体的には、互換性のあるデバイスは、次のセキュリティメカニズムをサポートする必要があります。
10.1.権限
デバイスの実装は、Androidで定義されているAndroid Permissionsモデルをサポートする必要があります
開発者ドキュメント[リソース、9]。具体的には、実装は各許可を強制する必要があります
SDKドキュメントで説明されていると定義されています。許可は省略、変更、または無視することはできません。
実装は、新しい許可ID文字列が載っていない場合、追加のアクセス許可を追加する場合があります。
Android。*名前空間。
10.2.ユーザーとプロセスの分離
デバイスの実装は、各アプリケーションであるAndroidアプリケーションサンドボックスモデルをサポートする必要があります
ユニークなUNIXスタイルのUIDとして、別のプロセスとして実行されます。
デバイスの実装は、同じLinuxユーザーIDとして複数のアプリケーションの実行をサポートする必要があります。
セキュリティと許可で定義されているように、アプリケーションが適切に署名および構築されていること
参照[リソース、29]。

10.3.ファイルシステムの権限
デバイスの実装は、asで定義されているAndroidファイルアクセス許可モデルをサポートする必要があります
セキュリティおよび許可リファレンス[リソース、29]で定義されています。
11.互換性テストスイート
デバイスの実装は、Android互換性テストスイート(CTS)[リソース、 3]に合格する必要があります
Androidオープンソースプロジェクトから、デバイス上の最終配送ソフトウェアを使用しています。さらに、
デバイスの実装者は、Androidオープンソースツリーの参照実装を次のように使用する必要があります
可能な限り、CTSのあいまいさの場合や
参照ソースコードの一部の再実装。
CTSは、実際のデバイスで実行されるように設計されています。他のソフトウェアと同様に、CTS自体にバグが含まれている場合があります。
CTSは、この互換性の定義とは独立してバージョンになり、
CTSはAndroid 1.6用にリリースされる場合があります。ただし、そのようなリリースはCTSの行動バグのみを修正します
特定のプラットフォームリリースに対して、テストと新しいテスト、動作、またはAPIは課されません。
12.お問い合わせください
に関連する明確化については、Android Compatibilityチームのcompatibility@android.comに連絡できます。
この互換性の定義と、この定義に関するフィードバックを提供します。

付録A:必要なアプリケーションの意図
注:このリストは暫定的であり、将来更新されます。
アプリケーションアクション
スキームMIMEタイプ
(なし)
テキスト/プレーン

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/
郵便アドレス

テキスト/プレーン
Eメール
android.intent.action.send
画像/*
ビデオ/*

android.intent.action.view
mailto
Android.intent.action.sendto
SMS
android.intent.action.view
smsto
SMS / MMS android.intent.action.sendto
mms
mmsto

オーディオ/*
アプリケーション/OGG

音楽
android.intent.action.view
ファイル
アプリケーション/x-ogg
アプリケーション/iTunes

オーディオ/mp3
Audio/X-MP3

android.intent.action.view
http
オーディオ/MPEG
オーディオ/MP4
オーディオ/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
画像を添付するための連絡先。
使用済み
Extra_create_description
show_or_create_contact to
正確な説明を指定します


ユーザーにプロンプ​​トが表示されるときに表示されます
新しい連絡先を作成します。

使用済み
show_or_create_contact
to
Extra_force_create
NOの場合、新しい連絡先を作成します
一致する連絡先が見つかりました。

これは、a
search_suggestion_clicked
検索提案がクリックされます。
これは、a
search_suggestion_create_contact_clicked aを作成するための検索提案
連絡先がクリックされます。
これは、a
search_suggestion_dial_number_clicked
番号をダイヤルするための提案を検索します
クリックしています。

Mailtoを使用してデータを入力するように取得します。
show_or_create_contact
または電話:スキーム。

付録B:必要なブロードキャスト意図注:このリストは暫定的であり、
将来更新されました。

意図アクション
説明
ブロードキャストアクション:これは1回放送されます。
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カードスロットからですが、マウントポイントはそうではありませんでした
マウントされていない。
ブロードキャストアクション:「メディアボタン」はそうでした
Action_media_button
押されました。
ブロードキャストアクション:外部メディアが存在します
ディスクチェックでマウントポイントへのパスをチェックしました
action_media_checking
チェックメディアはに含まれています
Intent.mdataフィールド。
ブロードキャストアクション:ユーザーは欲求を表明しました
action_media_eject
外部ストレージメディアを削除します。
ブロードキャストアクション:外部メディアが存在します
action_media_mounted
マウントポイントに取り付けられています。
ブロードキャストアクション:外部メディアは存在しますが、
互換性のないfs(または空白)を使用するパス
Action_media_nofs
チェックメディアのマウントポイントはです
intent.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_unmounted
マウントポイントにマウントされていません。
ブロードキャストアクション:発信コールは
Action_new_outovering_call
置いた。
ブロードキャストアクション:新しいアプリケーションパッケージにあります
action_package_added
デバイスにインストールされています。
ブロードキャストアクション:既存のアプリケーションパッケージ
action_package_changed
変更されました(たとえば、コンポーネントがあります
有効または無効になっています。
ブロードキャストアクション:ユーザーはのデータをクリアしました
パッケージ。これに先行する必要があります
Action_package_restartedによって、その後
action_package_data_cleared
その永続的なデータはすべて消去され、これが消去されます
送信された放送。クリアされたパッケージに注意してください
この放送は受け取りません。データには含まれています
パッケージの名前。
ブロードキャストアクション:既存のアプリケーションパッケージ
デバイスから削除されました。データ
action_package_removed
パッケージの名前が含まれています。その包み
インストールされていることはこの意図を受け取りません
ブロードキャストアクション:アプリケーションの新しいバージョン
action_package_replaced
既存のものを交換して、パッケージがインストールされています
以前にインストールされていたバージョン。
ブロードキャストアクション:ユーザーが再起動しました
パッケージ、およびそのすべてのプロセスが殺されました。
それに関連するすべてのランタイム状態(プロセス、
action_package_restarted
アラーム、通知など)を削除する必要があります。注記
再起動されたパッケージがこれを受け取らないこと
放送。データにはの名前が含まれています
パッケージ。
ブロードキャストアクション:一部のコンテンツプロバイダーにはあります
彼らが新品を公開する彼らの名前空間の一部
action_provider_changed
ユーザーが特にそうかもしれないイベントまたはアイテム
に興味がある。
action_screen_off
ブロードキャストアクション:画面がオフになった後に送信されます。
action_screen_on
ブロードキャストアクション:画面がオンになった後に送信されます。
ブロードキャストアクション:ユーザーIDが削除されました
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
デバイス上。このブロードキャストはに対応しています
「低いバッテリー警告」システムダイアログ。
ブロードキャストアクション:バッテリーが大丈夫であることを示します
低くなった後。これは送信されます
action_battery_okay
Action_battery_lowの後、バッテリーの後
大丈夫な状態に戻ってきました。
ネットワーク状態
意図アクション
説明
それを示すブロードキャスト意図アクション
network_state_changed_action
Wi-Fi接続の状態が変更されました。
それを示すブロードキャスト意図アクション
rssi_changed_action
RSSI(信号強度)が変更されました。
a
supplicant_state_changed_action
サプリカントへの接続があります
確立または紛失。
Wi-Fiを示すブロードキャスト意図アクション
wifi_state_changed_action
有効化、無効、有効化、
無効化、または不明。
構成されたネットワークのネットワークID
network_ids_changed_action
変わったかもしれません。
それを示すブロードキャスト意図アクション
action_background_data_setting_changed背景データの使用の設定にはあります
値を変更しました。
の変化を示すブロードキャストの意図
Connectivity_action
ネットワーク接続が発生しました。
ブロードキャストアクション:ユーザーが切り替えました
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のリリースはBluetooth APIをサポートしていないため、互換性の観点から
Bluetoothは、このバージョンのプラットフォームに考慮事項を課しません。ただし、将来のバージョン
AndroidはBluetooth APIを導入します。その時点で、Bluetoothをサポートすることは必須になります
互換性。
その結果、Android 1.6デバイスにはBluetoothを含めることを強くお勧めします。
Bluetoothを必要とするAndroidの将来のバージョンと互換性があります。
3.必要なハードウェアコンポーネント
セクション8のすべてのハードウェアコンポーネント(wifi、磁力計/コンパス、加速度計などを含む)
必須であり、省略されていない場合があります。 Androidの将来のバージョンは、
これらのコンポーネントはオプションで、サードパーティの開発者がこれらを処理するための対応するツールとタンデム
変化します。
4.サンプルアプリケーション
Androidの将来のバージョンの互換性定義文書には、より広範囲になり、
上記のセクション4にリストされているものよりも、アプリケーションの代表リスト。 Android 1.6の場合、
セクション4にリストされているアプリケーションをテストする必要があります。
5.画面をタッチします
互換性の定義の将来のバージョンは、デバイスがタッチスクリーンを省略することを許可する場合と許可されない場合があります。
ただし、現在、Androidフレームワークの実装の多くは、
タッチスクリーン;タッチスクリーンを省略すると、現在のすべてのサードパーティのAndroidアプリケーションが壊れます。
したがって、Android 1.6では、互換性にタッチスクリーンが必要です。

6.パフォーマンス
CTSの将来のバージョンは、次のCPUの使用率とパフォーマンスも測定します
実装のコンポーネント:
•2Dグラフィックス
•3Dグラフィックス
• プレイバック
•オーディオ再生
•Bluetooth A2DP再生

文書の概要