Definisi Kompatibilitas Android 1.6

Definisi Kompatibilitas Android: Android 1.6
Android 1.6r2
Google Inc.
kompatibilitas@android.com

Daftar isi
1. Perkenalan ............................................... ................................................. .................. 4
2. Sumber Daya ............................................... ................................................. ............... 4
3. Perangkat Lunak ............................................ ................................................. ........................ 5
3.1. Kompatibilitas API Terkelola ................................................... ................................... 5
3.2. Kompatibilitas API Lunak ................................................... ............................................ 6
3.2.1. Izin................................................. ................................................. ... 6
3.2.2. Parameter Bangun ................................................. ............................................ 6
3.2.3. Kompatibilitas Maksud................................................ ........................................ 8
3.2.3.1. Maksud Aplikasi Inti ................................................... ................................ 8
3.2.3.2. Penggantian Niat ................................................. ................................. 8
3.2.3.3. Ruang Nama Maksud................................................ ................................... 8
3.2.3.4. Maksud Siaran ................................................. ........................................ 9
3.3. Kompatibilitas API Asli ............................................... ................................. 9
3.4. Kompatibilitas API Web ................................................. ................................................ 9
3.5. Kompatibilitas Perilaku API............................................ ................................ 10
3.6. Ruang Nama API................................................ ................................................. .10
3.7. Kompatibilitas Mesin Virtual ............................................ ................................ 11
3.8. Kompatibilitas Antarmuka Pengguna ................................................... ................................ 11

3.8.1. Widget ................................................. ................................................. ........ 11
3.8.2. Pemberitahuan ................................................. ................................................. 12
3.8.3. Mencari ................................................. ................................................. ......... 12
3.8.4. Bersulang................................................. ................................................. ............ 12

4. Referensi Kompatibilitas Perangkat Lunak ........................................ ................................ 12
5. Kompatibilitas Kemasan Aplikasi ............................................ ........................... 13
6. Kompatibilitas Multimedia................................................ ............................................ 13
7. Kompatibilitas Alat Pengembang................................................ ........................................ 14
8. Kompatibilitas Perangkat Keras ............................................ ................................................ 15
8.1. Menampilkan ................................................. ................................................. ................ 15
8.1.1. Konfigurasi Tampilan Standar ................................................... .................. 15
8.1.2. Konfigurasi Tampilan Non-Standar ........................................ ............ 16
8.1.3. Metrik Tampilan................................................. ................................................... 16

8.2. Papan ketik ................................................. ................................................. ............ 16
8.3. Navigasi non-sentuh ................................................ ................................................ 16
8.4. Orientasi layar................................................ ................................................ 17
8.5. Masukan layar sentuh................................................ ................................................ 17
8.6. USB................................................. ................................................. ............... 17
8.7. Tombol navigasi ................................................. ................................................. ..17
8.8. Wifi ................................................. ................................................. ............... 17
8.9. Kamera ................................................. ................................................. ............... 18
8.9.1. Kamera Non-Fokus Otomatis ................................. ................................ 18
8.10. Akselerometer................................................. ................................................. ..18
8.11. Kompas ................................................. ................................................. ......... 19
8.12. GPSnya.................................................. ................................................. ................... 19
8.13. Telepon.................................................. ................................................. ......... 19
8.14. Kontrol volume................................................ ................................................. 19

9. Kompatibilitas Kinerja................................................ ................................................... 19
10. Kompatibilitas Model Keamanan ............................................ ........................................ 20
10.1. Izin ................................................. ................................................. ..... 20
10.2. Isolasi Pengguna dan Proses ........................................ ................................ 20
10.3. Izin Sistem File................................................ ................................... 21
11. Rangkaian Uji Kompatibilitas ........................................ ............................................ 21

12. Hubungi Kami ........................................ ................................................. ................. 21
Lampiran A: Maksud Aplikasi yang Diperlukan ............................................ ........................ 22
Lampiran B: Maksud Siaran yang Diperlukan ............................................ ........................... 0
Lampiran C: Pertimbangan Masa Depan................................................. ................................... 0

1. Perangkat Non-telepon ............................................ ................................................... 30
2. Kompatibilitas Bluetooth................................................ ............................................ 30
3. Komponen Perangkat Keras yang Diperlukan................................................ ................................ 30
4. Contoh Aplikasi ................................................ ................................................. 30
5. Layar Sentuh ................................................ ................................................. ......... 30
6. Kinerja................................................. ................................................. ............ 31

1. Perkenalan
Dokumen ini menyebutkan persyaratan yang harus dipenuhi agar ponsel dapat berfungsi
kompatibel dengan Android 1.6. Definisi ini mengasumsikan pemahaman terhadap Program Kompatibilitas Android
[Sumber Daya, 1].
Penggunaan kata “harus”, “tidak boleh”, “wajib”, “harus”, “tidak boleh”, “seharusnya”, “tidak boleh”, “disarankan”,
"boleh" dan "opsional" sesuai dengan standar IETF yang ditentukan dalam RFC2119 [ Sumber Daya , 2].
Sebagaimana digunakan dalam dokumen ini, "pelaksana perangkat" atau "implementer" adalah orang atau organisasi yang berkembang
solusi perangkat keras/perangkat lunak yang menjalankan Android 1.6. Sebuah "implementasi perangkat" atau "implementasi" adalah
solusi perangkat keras/perangkat lunak yang dikembangkan.
Agar dianggap kompatibel dengan Android 1.6, implementasi perangkat:
1. HARUS memenuhi persyaratan yang tercantum dalam Definisi Kompatibilitas ini, termasuk dokumen apa pun
dimasukkan melalui referensi.
2. HARUS lulus Android Compatibility Test Suite (CTS) yang tersedia sebagai bagian dari Android Open
Proyek Sumber [ Sumber Daya , 3]. CTS menguji sebagian besar, namun tidak semua , komponen yang dijelaskan di sini
dokumen.
Jika definisi atau CTS ini tidak jelas, ambigu, atau tidak lengkap, hal tersebut merupakan tanggung jawab perangkat tersebut
pelaksana untuk memastikan kompatibilitas dengan implementasi yang ada. Untuk alasan ini, Android Open
Proyek Sumber [ Sumber Daya , 4] merupakan referensi dan implementasi pilihan Android. Perangkat
pelaksana sangat dianjurkan untuk mendasarkan implementasinya pada kode sumber "hulu".
tersedia dari Proyek Sumber Terbuka Android. Sementara beberapa komponen secara hipotetis bisa diganti
dengan penerapan alternatif, praktik ini sangat tidak disarankan, karena akan berakibat lulus tes CTS
jauh lebih sulit. Merupakan tanggung jawab pelaksana untuk memastikan kesesuaian perilaku secara penuh
implementasi Android standar, termasuk dan di luar Compatibility Test Suite.
2. Sumber Daya
Definisi Kompatibilitas ini mengacu pada sejumlah sumber daya yang dapat diperoleh di sini.
1. Ikhtisar Program Kompatibilitas Android: https://sites.google.com/a/android.com/compatibility/
bagaimana itu bekerja
2. Tingkat Persyaratan IETF RFC2119: http://www.ietf.org/rfc/rfc2119.txt
3. Rangkaian Uji Kompatibilitas: http://sites.google.com/a/android.com/compatibility/compatibility-test-
suite--cts
4. Proyek Sumber Terbuka Android: http://source.android.com/
5. Definisi dan dokumentasi API: http://developer.android.com/reference/packages.html
6. Penyedia Konten: http://code.google.com/android/reference/android/provider/package-
ringkasan.html
7. Sumber Daya yang Tersedia: http://code.google.com/android/reference/available-resources.html
8. File Manifes Android: http://code.google.com/android/devel/bblocks-manifest.html
9. Referensi Izin Android: http://developer.android.com/reference/android/
Manifes.izin.html
10. Bangun Konstanta: http://developer.android.com/reference/android/os/Build.html
11. Tampilan Web: http://developer.android.com/reference/android/webkit/WebView.html
12. Ekstensi Peramban Gears: http://code.google.com/apis/gears/

13. Spesifikasi Mesin Virtual Dalvik, terdapat di direktori dalvik/docs dari kode sumber
Periksa; juga tersedia di http://android.git.kernel.org/?p=platform/
dalvik.git;a=tree;f=docs;h=3e2ddbcaf7f370246246f9f03620a7caccbfcb12;hb=HEAD

14. Widget Aplikasi: http://developer.android.com/guide/practices/ui_guidelines/widget_design.html
15. Pemberitahuan: http://developer.android.com/guide/topics/ui/notifiers/notifications.html
16. Panduan gaya ikon Status Bar: http://developer.android.com/guide/practices/ui_guideline
/icon_design.html#statusbarstruktur
17. Manajer Pencarian: http://developer.android.com/reference/android/app/SearchManager.html
18. Roti panggang: http://developer.android.com/reference/android/widget/Toast.html
19. Aplikasi Untuk Android: http://code.google.com/p/apps-for-android
20. Deskripsi file apk Android: http://developer.android.com/guide/topics/fundamentals.html
21. Jembatan Debug Android (adb): http://code.google.com/android/reference/adb.html
22. Layanan Monitor Debug Dalvik (ddms): http://code.google.com/android/reference/ddms.html
23. Monyet: http://developer.android.com/guide/developing/tools/monkey.html
24. Dokumentasi Kemerdekaan Tampilan:
25. Konstanta Konfigurasi: http://developer.android.com/reference/android/content/res/
Konfigurasi.html
26. Metrik Tampilan: http://developer.android.com/reference/android/util/DisplayMetrics.html
27. Kamera: http://developer.android.com/reference/android/hardware/Camera.html
28. Ruang koordinat sensor: http://developer.android.com/reference/android/hardware/
SensorEvent.html
29. Referensi Keamanan dan Izin Android: http://developer.android.com/guide/topics/security/
keamanan.html
Banyak dari sumber daya ini diturunkan secara langsung atau tidak langsung dari Android 1.6 SDK, dan akan terus berlanjut
secara fungsional identik dengan informasi dalam dokumentasi SDK tersebut. Dalam kasus apapun dimana hal ini terjadi
Definisi Kompatibilitas tidak sesuai dengan dokumentasi SDK, dokumentasi SDK dianggap
berwibawa. Detail teknis apa pun yang diberikan dalam referensi yang disertakan di atas dianggap sebagai penyertaan
untuk menjadi bagian dari Definisi Kompatibilitas ini.
3. Perangkat Lunak
Platform Android mencakup sekumpulan API terkelola ("keras") dan sekumpulan API yang disebut "lunak".
seperti sistem Intent, API kode asli, dan API aplikasi web. Bagian ini merinci yang sulit dan
API lunak yang merupakan bagian integral dari kompatibilitas, serta antarmuka teknis dan pengguna tertentu yang relevan
perilaku. Implementasi perangkat HARUS mematuhi semua persyaratan di bagian ini.
3.1. Kompatibilitas API Terkelola
Lingkungan eksekusi terkelola (berbasis Dalvik) adalah sarana utama untuk aplikasi Android. Itu
Antarmuka pemrograman aplikasi Android (API) adalah kumpulan antarmuka platform Android yang diekspos
aplikasi yang berjalan di lingkungan VM terkelola. Implementasi perangkat HARUS menyediakan yang lengkap
implementasi, termasuk semua perilaku yang terdokumentasi, dari setiap API terdokumentasi yang diekspos oleh Android
1.6 SDK, seperti:
1. API inti Android Java [Sumber Daya, 5].
2. Penyedia Konten [Sumber Daya , 6].
3. Sumber Daya [Sumber Daya, 7].
4. Atribut dan elemen AndroidManifest.xml [Resources, 8].

Implementasi perangkat TIDAK BOLEH menghilangkan API yang dikelola, mengubah antarmuka atau tanda tangan API, atau menyimpang
dari perilaku yang terdokumentasi, atau menyertakan larangan pengoperasian, kecuali jika diizinkan secara khusus oleh Kompatibilitas ini
Definisi.
3.2. Kompatibilitas API Lunak
Selain API terkelola dari Bagian 3.1, Android juga menyertakan API "lunak" khusus runtime yang signifikan
API, berupa hal-hal seperti Intent, izin, dan aspek serupa dari aplikasi Android
yang tidak dapat diterapkan pada waktu kompilasi aplikasi. Bagian ini merinci API dan sistem "lunak".
perilaku yang diperlukan untuk kompatibilitas dengan Android 1.6. Implementasi perangkat HARUS memenuhi semua
persyaratan yang disajikan pada bagian ini.
3.2.1. Izin
Pelaksana perangkat HARUS mendukung dan menegakkan semua konstanta izin seperti yang didokumentasikan oleh
Halaman referensi izin [ Sumber Daya , 9]. Perhatikan bahwa Bagian 10 mencantumkan persyaratan tambahan terkait dengan
model keamanan Android.
3.2.2. Parameter Bangun
Android API menyertakan sejumlah konstanta pada kelas android.os.Build [Resources, 10] yang
dimaksudkan untuk menggambarkan perangkat saat ini. Untuk memberikan nilai yang konsisten dan bermakna di seluruh perangkat
implementasinya, tabel di bawah ini mencakup batasan tambahan pada format nilai-nilai tersebut
implementasi perangkat HARUS sesuai.
Parameter
Komentar
Versi sistem Android yang sedang dijalankan, dalam versi manusia
android.os.Build.VERSION.RELEASE
format yang dapat dibaca. Untuk Android 1.6, kolom ini HARUS memiliki nilai string
"1.6".
Versi sistem Android yang sedang dijalankan, dalam format
android.os.Build.VERSION.SDK
dapat diakses oleh kode aplikasi pihak ketiga. Untuk Android 1.6, bidang ini
HARUS memiliki nilai integer 4.
Nilai yang dipilih oleh pelaksana perangkat yang menunjuk build tertentu
dari sistem Android yang sedang dijalankan, dalam format yang dapat dibaca manusia.
Nilai ini TIDAK BOLEH digunakan kembali untuk build berbeda yang dikirimkan hingga akhir
pengguna android.os.Build.VERSION.INCREMENTAL. Penggunaan umum bidang ini adalah untuk menunjukkan nomor build atau
pengidentifikasi perubahan kontrol sumber digunakan untuk menghasilkan build. Di sana
tidak ada persyaratan pada format khusus bidang ini, kecuali itu
TIDAK HARUS null atau string kosong ("").
Nilai yang dipilih oleh pelaksana perangkat yang mengidentifikasi internal tertentu
perangkat keras yang digunakan oleh perangkat, dalam format yang dapat dibaca manusia. Kemungkinan penggunaan
android.os.Build.BOARD
bidang ini adalah untuk menunjukkan revisi spesifik dari dewan yang memberdayakan
perangkat. Tidak ada persyaratan mengenai format spesifik bidang ini,
kecuali TIDAK HARUS null atau string kosong ("").
Nilai yang dipilih oleh pelaksana perangkat yang mengidentifikasi nama
android.os.Build.MEREK
perusahaan, organisasi, individu, dll. yang memproduksi perangkat tersebut, di
format yang dapat dibaca manusia. Kemungkinan penggunaan bidang ini adalah untuk menunjukkan OEM

dan/atau operator yang menjual perangkat tersebut. Tidak ada persyaratan pada
format spesifik bidang ini, kecuali bidang ini TIDAK HARUS nol atau kosong
rangkaian ("").
Nilai yang dipilih oleh pelaksana perangkat yang mengidentifikasi spesifiknya
konfigurasi atau revisi bodi (kadang disebut "industri
android.os.Build.DEVICE
desain") perangkat. Tidak ada persyaratan mengenai format spesifik
bidang ini, kecuali TIDAK HARUS berupa null atau string kosong ("").
Sebuah string yang secara unik mengidentifikasi bangunan ini. Itu HARUS masuk akal
dapat dibaca manusia. Itu HARUS mengikuti templat ini:
$(PRODUK_BRAND)/$(PRODUK_NAME)/$(PRODUK_DEVICE)/
$(TARGET_BOOTLOADER_BOARD_NAME):$(PLATFORM_VERSION)/
$(BUILD_ID)/$(BUILD_NUMBER):$(TARGET_BUILD_VARIANT)/
android.os.Build.FINGERPRINT
$(BUILD_VERSION_TAGS)
Misalnya: acme/mydevicel/generic/generic:Donut/ERC77/
3359:userdebug/kunci uji
Sidik jari TIDAK HARUS menyertakan spasi. Jika bidang lain termasuk dalam
template di atas ada spasi, HARUS diganti dengan ASCII
karakter garis bawah (“_”) pada sidik jari.
Sebuah string yang secara unik mengidentifikasi host tempat build dibangun, secara manusia
android.os.Build.HOST
format yang dapat dibaca. Tidak ada persyaratan mengenai format khusus untuk ini
bidang, kecuali TIDAK HARUS nol atau string kosong ("").
Pengidentifikasi yang dipilih oleh pelaksana perangkat untuk merujuk pada perangkat tertentu
rilis, dalam format yang dapat dibaca manusia. Bidang ini bisa sama dengan
android.os.Build.VERSION.INCREMENTAL, tetapi HARUS berupa nilai
android.os.Build.ID
dimaksudkan untuk menjadi sesuatu yang bermakna bagi pengguna akhir. Tidak ada
persyaratan pada format spesifik bidang ini, kecuali TIDAK HARUS
menjadi null atau string kosong ("").
Nilai yang dipilih oleh pelaksana perangkat yang berisi nama
perangkat seperti yang diketahui pengguna akhir. Ini HARUS nama yang sama
android.os.Build.MODEL
di mana perangkat tersebut dipasarkan dan dijual kepada pengguna akhir. Tidak ada
persyaratan pada format spesifik bidang ini, kecuali TIDAK HARUS
menjadi null atau string kosong ("").
Nilai yang dipilih oleh pelaksana perangkat yang berisi pengembangan
nama atau kode nama perangkat. HARUS dapat dibaca manusia, tetapi tidak
android.os.Build.PRODUK
tentu dimaksudkan untuk dilihat oleh pengguna akhir. Tidak ada persyaratan
pada format spesifik bidang ini, kecuali TIDAK HARUS nol atau
string kosong ("").
Daftar tag yang dipisahkan koma yang dipilih oleh pelaksana perangkat itu
lebih membedakan buildnya. Misalnya, "tidak ditandatangani,debug". Lapangan ini
android.os.Build.TAGS
TIDAK HARUS berupa null atau string kosong (""), tetapi tag tunggal (seperti
"lepaskan") baik-baik saja.
android.os.Build.TIME
Nilai yang mewakili stempel waktu saat pembangunan terjadi.
Nilai yang dipilih oleh pelaksana perangkat yang menentukan waktu proses
konfigurasi build. Bidang ini HARUS memiliki salah satu nilai
android.os.Build.TYPE
sesuai dengan tiga konfigurasi runtime Android pada umumnya: "pengguna",
"userdebug", atau "eng".
Nama atau ID pengguna dari pengguna (atau pengguna otomatis) yang menghasilkan
android.os.Build.USER
membangun. Tidak ada persyaratan mengenai format spesifik bidang ini,
kecuali TIDAK HARUS null atau string kosong ("").

3.2.3. Kompatibilitas Maksud
Android menggunakan Intent untuk mencapai integrasi yang longgar antar aplikasi. Bagian ini menjelaskan
persyaratan terkait pola Intent yang HARUS dipenuhi oleh implementasi perangkat. Oleh
"terhormat", artinya pelaksana perangkat HARUS menyediakan Aktivitas Android, Layanan, atau lainnya
komponen yang menentukan filter Intent yang cocok dan mengikat serta mengimplementasikan perilaku yang benar untuk masing-masing filter
pola Intent yang ditentukan.
3.2.3.1. Maksud Aplikasi Inti
Proyek upstream Android mendefinisikan sejumlah aplikasi inti, seperti dialer telepon, kalender,
buku kontak, pemutar musik, dan sebagainya. Pelaksana perangkat DAPAT mengganti aplikasi ini dengan
versi alternatif.
Namun, versi alternatif tersebut HARUS mengikuti pola Intent yang sama yang disediakan oleh upstream
proyek. (Misalnya, jika perangkat berisi pemutar musik alternatif, perangkat tersebut harus tetap mengikuti pola Intent
dikeluarkan oleh aplikasi pihak ketiga untuk memilih lagu.) Implementasi perangkat HARUS mendukung semua pola Intent
tercantum dalam Lampiran A.
3.2.3.2. Penggantian Niat
Karena Android adalah platform yang dapat diperluas, pelaksana perangkat HARUS mengizinkan setiap pola Intent yang dijelaskan dalam
Lampiran A akan diganti oleh aplikasi pihak ketiga. Proyek sumber terbuka Android hulu
mengizinkan ini secara default; pelaksana perangkat TIDAK HARUS melampirkan hak istimewa ke aplikasi sistem'
penggunaan pola Intent ini, atau mencegah aplikasi pihak ketiga mengikat dan mengambil kendali
pola-pola ini. Larangan ini secara khusus mencakup penonaktifan antarmuka pengguna "Pemilih" yang memungkinkan
pengguna untuk memilih di antara beberapa aplikasi yang semuanya menangani pola Intent yang sama.
3.2.3.3. Ruang Nama Maksud
Implementer perangkat TIDAK BOLEH menyertakan komponen Android apa pun yang mengikuti Intent baru atau
Menyiarkan pola Intent menggunakan ACTION, CATEGORY, atau string kunci lainnya di namespace android.*.
Implementer perangkat TIDAK BOLEH menyertakan komponen Android apa pun yang mengikuti Intent baru atau
Menyiarkan pola Intent menggunakan ACTION, CATEGORY, atau string kunci lainnya dalam ruang paket
milik organisasi lain. Pelaksana perangkat TIDAK BOLEH mengubah atau memperluas Maksud apa pun
pola yang tercantum dalam Lampiran A atau B.
Larangan ini serupa dengan yang ditentukan untuk kelas bahasa Java di Bagian 3.6.

3.2.3.4. Maksud Siaran
Aplikasi pihak ketiga mengandalkan platform untuk menyiarkan Intent tertentu untuk memberi tahu mereka tentang perubahan dalam
lingkungan perangkat keras atau perangkat lunak. Perangkat yang kompatibel dengan Android HARUS menyiarkan siaran publik
Maksud sebagai respons terhadap peristiwa sistem yang sesuai. Daftar Intent Siaran yang diperlukan tersedia di
Lampiran B; namun, perhatikan bahwa SDK dapat menentukan maksud siaran tambahan, yang juga HARUS demikian
terhormat.
3.3. Kompatibilitas API Asli
Kode terkelola yang berjalan di Dalvik dapat memanggil kode asli yang disediakan dalam file .apk aplikasi sebagai ELF
File .so dikompilasi untuk arsitektur perangkat keras perangkat yang sesuai. Implementasi perangkat HARUS menyertakan
dukungan untuk kode yang berjalan di lingkungan terkelola untuk memanggil kode asli, menggunakan Java standar
Semantik Antarmuka Asli (JNI). API berikut harus tersedia untuk kode asli:
libc (perpustakaan C)
libm (perpustakaan matematika)
Antarmuka JNI
libz (kompresi Zlib)
liblog (pencatatan Android)
Dukungan minimal untuk C++
OpenGL ES 1.1
Pustaka ini HARUS kompatibel dengan sumber (yaitu kompatibel dengan header) dan kompatibel dengan biner (untuk kondisi tertentu
arsitektur prosesor) dengan versi yang disediakan di Bionic oleh proyek Sumber Terbuka Android. Sejak
implementasi Bionic tidak sepenuhnya kompatibel dengan implementasi lain seperti GNU C
perpustakaan, pelaksana perangkat HARUS menggunakan implementasi Android. Jika pelaksana perangkat menggunakan a
implementasi yang berbeda dari perpustakaan ini, mereka harus memastikan kompatibilitas header dan biner.
Kompatibilitas kode asli merupakan suatu tantangan. Untuk alasan ini, kami ingin mengulangi bahwa pelaksana perangkat adalah
SANGAT sangat dianjurkan untuk menggunakan implementasi hulu dari perpustakaan yang tercantum di atas, untuk membantu
memastikan kompatibilitas.
3.4. Kompatibilitas API Web
Banyak pengembang dan aplikasi mengandalkan perilaku kelas android.webkit.WebView [ Sumber Daya ,
11] untuk antarmuka penggunanya, sehingga implementasi WebView harus kompatibel di seluruh Android
implementasi. Implementasi Android Open Source menggunakan versi mesin rendering WebKit untuk
mengimplementasikan WebView.
Karena tidak layak untuk mengembangkan rangkaian pengujian komprehensif untuk browser web, pelaksana perangkat
HARUS menggunakan versi upstream spesifik WebKit dalam implementasi WebView. Secara khusus:
• WebView HARUS menggunakan versi WebKit 528.5+ dari pohon Open Source Android upstream
Android 1.6. Versi ini mencakup serangkaian fungsionalitas dan perbaikan keamanan khusus untuk WebView.
• String agen pengguna yang dilaporkan oleh WebView HARUS dalam format ini:
Mozilla/5.0 (Linux; U; Android 1.6; <bahasa>-<negara>; <perangkat
nama>; Build/<build ID>) AppleWebKit/528.5+ (KHTML, seperti Gecko)
Versi/3.1.2 Safari Seluler/525.20.1

◦ String "<nama perangkat>" HARUS sama dengan nilainya
android.os.Build.MODEL
◦ String "<build ID>" HARUS sama dengan nilai untuk android.os.Build.ID.
◦ String "<bahasa>" dan "<negara>" HARUS mengikuti konvensi yang biasa
kode negara dan bahasa, dan HARUS mengacu pada lokal perangkat saat ini di
waktu permintaan.
Implementasi MUNGKIN mengirimkan string agen pengguna khusus dalam aplikasi Browser mandiri. Apa
lebih lanjut, Browser mandiri MUNGKIN didasarkan pada teknologi browser alternatif (seperti Firefox,
Opera, dll.) Namun, meskipun aplikasi Browser alternatif dikirimkan, komponen WebView
disediakan untuk aplikasi pihak ketiga HARUS berbasis WebKit, seperti di atas.
Aplikasi Browser mandiri HARUS menyertakan dukungan untuk Gears [ Sumber Daya, 12] dan MUNGKIN
menyertakan dukungan untuk beberapa atau seluruh HTML5.
3.5. Kompatibilitas Perilaku API
Perilaku masing-masing jenis API (terkelola, lunak, asli, dan web) harus konsisten dengan
implementasi Android pilihan yang tersedia dari Proyek Sumber Terbuka Android.
Beberapa area kompatibilitas tertentu adalah:
• Perangkat TIDAK BOLEH mengubah perilaku atau makna Intent standar
• Perangkat TIDAK BOLEH mengubah siklus hidup atau semantik siklus hidup jenis sistem tertentu
komponen (seperti Layanan, Aktivitas, ContentProvider, dll.)
• Perangkat TIDAK BOLEH mengubah semantik izin tertentu
Daftar di atas tidak lengkap, dan tanggung jawab ada pada pelaksana perangkat untuk memastikan perilaku
kesesuaian. Untuk alasan ini, pelaksana perangkat HARUS menggunakan kode sumber yang tersedia melalui
Proyek Sumber Terbuka Android jika memungkinkan, daripada mengimplementasikan kembali bagian-bagian penting dari sistem.
Compatibility Test Suite (CTS) menguji sebagian besar platform untuk kompatibilitas perilaku,
tapi tidak semua. Merupakan tanggung jawab pelaksana untuk memastikan kompatibilitas perilaku dengan Android
Proyek Sumber Terbuka.
3.6. Ruang Nama API
Android mengikuti konvensi namespace paket dan kelas yang ditentukan oleh pemrograman Java
bahasa. Untuk memastikan kompatibilitas dengan aplikasi pihak ketiga, pelaksana perangkat TIDAK BOLEH membuatnya
modifikasi apa pun yang dilarang (lihat di bawah) pada namespace paket ini:
• jawa.*
• javax.*
• matahari.*
• android.*
• com.android.*
Modifikasi yang dilarang antara lain:
• Implementasi perangkat TIDAK BOLEH mengubah API yang diekspos secara publik pada platform Android
dengan mengubah metode atau tanda tangan kelas apa pun, atau dengan menghapus kelas atau bidang kelas.

• Implementer perangkat MUNGKIN mengubah implementasi dasar API, namun demikian
modifikasi TIDAK BOLEH memengaruhi perilaku yang dinyatakan dan tanda tangan bahasa Java apa pun
API yang diekspos secara publik.
• Pelaksana perangkat TIDAK BOLEH menambahkan elemen apa pun yang diekspos secara publik (seperti kelas atau
antarmuka, atau bidang atau metode ke kelas atau antarmuka yang ada) ke API di atas.
"Elemen yang diekspos secara publik" adalah konstruksi apa pun yang tidak dihiasi dengan penanda "@hide" di dalamnya
kode sumber Android hulu. Dengan kata lain, pelaksana perangkat TIDAK BOLEH mengekspos API baru atau
mengubah API yang ada di namespace yang disebutkan di atas. Pelaksana perangkat MUNGKIN membuat hanya internal
modifikasi, namun modifikasi tersebut TIDAK BOLEH diiklankan atau diungkapkan kepada pengembang.
Pelaksana perangkat MUNGKIN menambahkan API khusus, namun API tersebut TIDAK HARUS berada dalam namespace yang dimiliki
oleh atau merujuk pada organisasi lain. Misalnya, pelaksana perangkat TIDAK HARUS menambahkan API ke
com.google.* atau namespace serupa; hanya Google yang dapat melakukannya. Demikian pula, Google TIDAK BOLEH menambahkan API ke dalamnya
namespace perusahaan lain.
Jika pelaksana perangkat mengusulkan untuk meningkatkan salah satu namespace paket di atas (misalnya dengan menambahkan
fungsionalitas baru yang berguna ke API yang sudah ada, atau menambahkan API baru), pelaksana HARUS mengunjunginya
source.android.com dan mulai proses kontribusi perubahan dan kode, menurut
informasi di situs itu.
Perhatikan bahwa pembatasan di atas sesuai dengan konvensi standar untuk penamaan API di Java
bahasa pemrograman; bagian ini hanya bertujuan untuk memperkuat konvensi-konvensi tersebut dan menjadikannya mengikat
melalui penyertaan dalam definisi kompatibilitas ini.
3.7. Kompatibilitas Mesin Virtual
Perangkat Android yang kompatibel harus mendukung spesifikasi bytecode Dalvik Executable (DEX) penuh dan
Semantik Mesin Virtual Dalvik [Sumber Daya, 13].
3.8. Kompatibilitas Antarmuka Pengguna
Platform Android menyertakan beberapa API pengembang yang memungkinkan pengembang terhubung ke pengguna sistem
antarmuka. Implementasi perangkat HARUS menggabungkan API UI standar ini ke dalam antarmuka pengguna khusus
mereka berkembang, seperti dijelaskan di bawah.
3.8.1. Widget
Android mendefinisikan jenis komponen serta API dan siklus hidup terkait yang memungkinkan aplikasi diekspos
sebuah "AppWidget" kepada pengguna akhir [Resources , 14] . Rilis referensi Sumber Terbuka Android mencakup a
Aplikasi peluncur yang menyertakan elemen antarmuka pengguna yang memungkinkan pengguna untuk menambah, melihat, dan menghapus
AppWidgets dari layar beranda.
Pelaksana perangkat MUNGKIN mengganti alternatif dengan Peluncur referensi (yaitu layar beranda).
Peluncur Alternatif HARUS menyertakan dukungan bawaan untuk AppWidgets, dan menampilkan antarmuka pengguna
elemen untuk menambah, melihat, dan menghapus AppWidgets langsung di dalam Peluncur. Peluncur Alternatif MUNGKIN
hilangkan elemen antarmuka pengguna ini; namun apabila dihilangkan maka pelaksana perangkat WAJIB menyediakan a
aplikasi terpisah yang dapat diakses dari Peluncur yang memungkinkan pengguna untuk menambah, melihat, dan menghapus
Widget Aplikasi.

3.8.2. Pemberitahuan
Android menyertakan API yang memungkinkan pengembang memberi tahu pengguna tentang peristiwa penting [Resources, 15]. Perangkat
pelaksana HARUS memberikan dukungan untuk setiap kelas pemberitahuan yang ditentukan; khususnya: suara,
getaran, cahaya, dan bilah status.
Selain itu, implementasinya HARUS merender dengan benar dan semua sumber daya (ikon, file suara, dll.) harus dirender dengan benar.
disediakan di API [Resources, 7], atau di panduan gaya ikon Status Bar [Resources , 16]. Perangkat
pelaksana MUNGKIN memberikan pengalaman pengguna alternatif untuk pemberitahuan selain yang disediakan oleh
referensi implementasi Android Open Source; namun, sistem notifikasi alternatif seperti itu HARUS
mendukung sumber notifikasi yang ada, seperti di atas.
3.8.3. Mencari
Android menyertakan API [Resources, 17] yang memungkinkan pengembang memasukkan pencarian ke dalam aplikasi mereka,
dan mengekspos data aplikasi mereka ke dalam pencarian sistem global. Secara umum, fungsi ini
terdiri dari satu antarmuka pengguna seluruh sistem yang memungkinkan pengguna memasukkan pertanyaan, menampilkan saran
saat pengguna mengetik, dan menampilkan hasilnya. API Android memungkinkan pengembang menggunakan kembali antarmuka ini untuk menyediakan
menelusuri dalam aplikasi mereka sendiri, dan memungkinkan pengembang memberikan hasil kepada pengguna penelusuran global umum
antarmuka.
Implementasi perangkat HARUS mencakup antarmuka pengguna penelusuran tunggal, bersama, di seluruh sistem yang mampu melakukan hal tersebut
saran real-time sebagai respons terhadap masukan pengguna. Implementasi perangkat HARUS mengimplementasikan API itu
memungkinkan pengembang untuk menggunakan kembali antarmuka pengguna ini untuk menyediakan pencarian dalam aplikasi mereka sendiri.
Implementasi perangkat HARUS mengimplementasikan API yang memungkinkan aplikasi pihak ketiga menambahkan saran
ke kotak pencarian ketika dijalankan dalam mode pencarian global. Jika tidak ada aplikasi pihak ketiga yang diinstal itu
memanfaatkan fungsi ini, perilaku default HARUS menampilkan hasil mesin pencari web dan
saran.
Implementasi perangkat MUNGKIN mengirimkan antarmuka pengguna pencarian alternatif, tetapi HARUS menyertakan antarmuka keras atau lunak
tombol pencarian khusus, yang dapat digunakan kapan saja dalam aplikasi apa pun untuk menjalankan kerangka pencarian,
dengan perilaku yang disediakan dalam dokumentasi API.
3.8.4. Bersulang
Aplikasi dapat menggunakan API "Toast" (didefinisikan di [ Sumber Daya, 18]) untuk menampilkan string non-modal pendek ke
pengguna akhir, yang hilang setelah beberapa saat. Implementasi perangkat HARUS menampilkan Toasts dari
aplikasi kepada pengguna akhir dengan cara visibilitas tinggi.
4. Referensi Kompatibilitas Perangkat Lunak
Pelaksana perangkat HARUS menguji kompatibilitas implementasi menggunakan sumber terbuka berikut
aplikasi:
• Kalkulator (termasuk dalam SDK)
• Lunar Lander (termasuk dalam SDK)
• ApiDemos (termasuk dalam SDK)
• Aplikasi "Aplikasi untuk Android" [ Sumberdaya, 19]
Setiap aplikasi di atas HARUS diluncurkan dan berperilaku benar pada implementasinya, agar implementasinya berjalan lancar

dianggap kompatibel.
5. Kompatibilitas Kemasan Aplikasi
Implementasi perangkat HARUS menginstal dan menjalankan file Android ".apk" seperti yang dihasilkan oleh alat "aapt".
termasuk dalam SDK Android resmi [ Sumber Daya , 20].
Implementasi perangkat TIDAK BOLEH memperluas bytecode .apk, Android Manifest, atau Dalvik
memformat sedemikian rupa sehingga mencegah file-file tersebut diinstal dan dijalankan dengan benar di file lain
perangkat yang kompatibel. Pelaksana perangkat HARUS menggunakan referensi implementasi hulu Dalvik,
dan sistem manajemen paket implementasi referensi.
6. Kompatibilitas Multimedia
Perangkat Android yang kompatibel harus mendukung codec multimedia berikut. Semua codec ini adalah
disediakan sebagai implementasi perangkat lunak dalam implementasi Android pilihan dari Android Open
Proyek Sumber [ Sumber Daya , 4].
Harap dicatat bahwa baik Google maupun Open Handset Alliance tidak membuat pernyataan apa pun mengenai hal ini
codec tidak terbebani oleh paten pihak ketiga. Mereka yang bermaksud menggunakan kode sumber ini di perangkat keras atau
produk perangkat lunak disarankan untuk menerapkan kode ini, termasuk dalam perangkat lunak sumber terbuka atau
shareware, mungkin memerlukan lisensi paten dari pemegang paten terkait.
Audio
Nama

Detail Dekoder Enkoder
File yang Didukung
Konten Mono/Stereo di mana saja
3GPP (.3gp) dan
kombinasi kecepatan bit standar
MPEG-4 (.mp4, .m4a)
AAC LC/LTP
X
hingga 160 kbps dan file kecepatan pengambilan sampel. Tidak ada dukungan untuk mentah
antara 8 hingga 48kHz
AAC (.aac)
Konten Mono/Stereo di mana saja
3GPP (.3gp) dan
DIA-AACv1
kombinasi kecepatan bit standar
MPEG-4 (.mp4, .m4a)
X
(AAC+)
hingga 96 kbps dan file kecepatan pengambilan sampel. Tidak ada dukungan untuk mentah
antara 8 hingga 48kHz
AAC (.aac)
Konten Mono/Stereo di mana saja
HE-AACv2
3GPP (.3gp) dan
kombinasi kecepatan bit standar
(ditingkatkan
MPEG-4 (.mp4, .m4a)
X
hingga 96 kbps dan kecepatan pengambilan sampel
AAC+)
file. Tidak ada dukungan untuk mentah
antara 8 hingga 48kHz
AAC (.aac)
AMR-NB
4,75 hingga 12,2 kbps sampel @
File 3GPP (.3gp).
X
X
8kHz
AMR-WB
9 kecepatan dari 6,60 kbit/s hingga 23,85
-3GPP (.3gp) file
X
kbit/s sampel @ 16kHz
MP3
File MP3 (.mp3) konstan Mono/Stereo 8-320Kbps
X
(CBR) atau kecepatan bit variabel (VBR)
Ketik 0 dan 1 (.mid, .xmf,
MIDI Tipe 0 dan 1. DLS Versi 1
MIDI
X
.mxmf). Juga RTTTL/RTX
dan 2. XMF dan XMF Seluler.
(.rtttl, .rtx), OTA (.ota),

Dukungan untuk format nada dering
dan iMelody (.imy)
RTTTL/RTX, OTA, dan iMelody
Ogg Vorbis
.ogg
X
PCM linier 8- dan 16-bit (naik kecepatannya
PCM
X
MELAMBAI
untuk membatasi perangkat keras)
Gambar
File
Nama
Detail Dekoder Enkoder
Didukung
jpeg
X
X
dasar+progresif
GIF
X
PNG
X
X
BMP
X
Video
File
Nama
Detail Dekoder Enkoder
Didukung
3GPP (.3gp)
H.263
X
X
file
3GPP (.3gp)
H.264
X
dan MPEG-4
(.mp4) file
MPEG4
X
Berkas 3GPP (.3gp).
SP
7. Kompatibilitas Alat Pengembang
Implementasi perangkat HARUS mendukung Alat Pengembang Android yang disediakan di Android SDK.
Secara khusus, perangkat yang kompatibel dengan Android HARUS kompatibel dengan:
Android Debug Bridge atau adb [Sumber Daya , 21]
Implementasi perangkat harus mendukung semua fungsi ADB seperti yang didokumentasikan di Android
SDK. Daemon ADB sisi perangkat harus tidak aktif secara default, tetapi harus ada pengguna-
Mekanisme yang dapat diakses untuk menghidupkan jembatan Debug Android.
Dalvik Debug Monitor Service atau DDMS [Sumber Daya , 22]
Implementasi perangkat harus mendukung semua fitur DDMS seperti yang didokumentasikan dalam Android SDK.
Karena DDMS menggunakan ADB, dukungan untuk DDMS harus tidak aktif secara default, tetapi harus didukung
Setiap kali pengguna mengaktifkan jembatan Android Debug, seperti di atas.

Monyet [Sumber Daya, 23]
Implementasi perangkat harus mencakup kerangka kerja monyet, dan membuatnya tersedia untuk
aplikasi untuk digunakan.
8. Kompatibilitas perangkat keras
Android dimaksudkan untuk mendukung pelaksana perangkat yang menciptakan faktor dan konfigurasi bentuk inovatif.
Pada saat yang sama pengembang Android mengharapkan perangkat keras, sensor, dan API tertentu di seluruh Android
perangkat. Bagian ini mencantumkan fitur perangkat keras yang harus didukung oleh semua perangkat yang kompatibel dengan Android 1.6. Di dalam
Android 1.6, sebagian besar fitur perangkat keras (seperti wifi, kompas, dan accelerometer) diperlukan.
Jika perangkat menyertakan komponen perangkat keras tertentu yang memiliki API yang sesuai untuk pihak ketiga
Pengembang, implementasi perangkat harus mengimplementasikan API tersebut sebagaimana didefinisikan dalam Android SDK
dokumentasi.
8.1. Menampilkan
Android 1.6 termasuk fasilitas yang melakukan penskalaan otomatis dan operasi transformasi di bawah
Beberapa keadaan, untuk memastikan bahwa aplikasi pihak ketiga berjalan cukup baik pada perangkat keras
Konfigurasi yang tidak harus dirancang secara eksplisit [Sumber Daya, 24] . Perangkat harus
Terapkan dengan benar perilaku ini, sebagaimana dirinci dalam bagian ini.
8.1.1. Konfigurasi tampilan standar
Tabel ini mencantumkan konfigurasi layar standar yang dianggap kompatibel dengan Android:
Diagonal
Ukuran layar
Kepadatan Layar
Tipe Layar
Lebar (piksel)
Tinggi (piksel)
Rentang Panjang
Kelompok
Kelompok
(inci)
QVGA
240
320
2.6 - 3.0
Kecil
Rendah
WQVGA
240
400
3.2 - 3.5
Normal
Rendah
FWQVGA
240
432
3.5 - 3.8
Normal
Rendah
HVGA
320
480
3.0 - 3.5
Normal
Sedang
WVGA
480
800
3.3 - 4.0
Normal
Tinggi
FWVGA
480
854
3.5 - 4.0
Normal
Tinggi
WVGA
480
800
4.8 - 5.5
Besar
Sedang
FWVGA
480
854
5.0 - 5.8
Besar
Sedang
Implementasi perangkat yang sesuai dengan salah satu konfigurasi standar di atas harus dikonfigurasi
Untuk melaporkan ukuran layar yang ditunjukkan ke aplikasi melalui android.content.res.configuration [ sumber daya,
25] Kelas.
Beberapa paket .apk telah memanifestasikan yang tidak mengidentifikasi mereka sebagai mendukung rentang kepadatan tertentu.
Saat menjalankan aplikasi tersebut, kendala berikut berlaku:

• Implementasi perangkat harus menafsirkan sumber daya apa pun yang hadir sebagai default
"Medium" (dikenal sebagai "MDPI" dalam dokumentasi SDK.)
• Saat beroperasi pada layar kerapatan "rendah", implementasi perangkat harus mengurangi medium/
Aset MDPI dengan faktor 0,75.
• Saat beroperasi pada layar kerapatan "tinggi", implementasi perangkat harus meningkatkan medium/
Aset MDPI dengan faktor 1,5.
• Implementasi perangkat tidak boleh skala aset dalam kisaran kepadatan, dan harus skala
aset oleh faktor -faktor ini antara rentang kepadatan ini.
8.1.2. Konfigurasi tampilan non-standar
Tampilkan konfigurasi yang tidak cocok dengan salah satu konfigurasi standar yang tercantum dalam Bagian 8.2.1
Pertimbangan tambahan dan pekerjaan menjadi kompatibel. Pelaksana perangkat harus menghubungi Android
Tim kompatibilitas sebagaimana diatur dalam Bagian 12 untuk mendapatkan klasifikasi untuk ember ukuran layar, kepadatan,
dan faktor penskalaan. Ketika diberikan informasi ini, implementasi perangkat harus mengimplementasikannya
seperti yang ditentukan.
Perhatikan bahwa beberapa konfigurasi tampilan (seperti layar yang sangat besar atau sangat kecil, dan beberapa rasio aspek)
pada dasarnya tidak kompatibel dengan Android 1.6; Oleh karena itu pelaksana perangkat didorong untuk
Hubungi Tim Kompatibilitas Android sedini mungkin dalam proses pengembangan.
8.1.3. Metrik tampilan
Implementasi perangkat harus melaporkan nilai yang benar untuk semua metrik tampilan yang ditentukan dalam
android.util.displaymetrics [sumber daya , 26].
8.2. Papan ketik
Implementasi Perangkat:
• Harus mencakup dukungan untuk kerangka kerja manajemen input (yang memungkinkan pihak ketiga
pengembang untuk membuat mesin manajemen input - yaitu keyboard lunak) sebagaimana detailnya
pengembang.android.com
• Harus memberikan setidaknya satu implementasi keyboard lunak (terlepas dari apakah sulit
keyboard hadir)
• Dapat menyertakan implementasi keyboard lunak tambahan
• Mungkin termasuk keyboard perangkat keras
• Tidak boleh menyertakan keyboard perangkat keras yang tidak cocok dengan salah satu format yang ditentukan
di android.content.res.configuration [ Sumber Daya, 25] (yaitu, Qwerty, atau 12-key)
8.3. Navigasi non-sentuh
Implementasi Perangkat:
• Dapat menghilangkan opsi navigasi non-sentuh (yaitu, dapat menghilangkan trackball, bantalan directional 5 arah, atau
roda)
• Harus melaporkan melalui android.content.res.configuration [sumber daya , 25] Nilai yang benar untuk
perangkat keras perangkat

8.4. Orientasi layar
Perangkat yang kompatibel harus mendukung orientasi dinamis berdasarkan aplikasi baik untuk potret atau lanskap
orientasi layar. Artinya, perangkat harus menghormati permintaan aplikasi untuk layar tertentu
orientasi. Implementasi perangkat dapat memilih orientasi potret atau lanskap sebagai default.
Perangkat harus melaporkan nilai yang benar untuk orientasi perangkat saat ini, setiap kali ditanyai melalui
android.content.res.configuration.orientation, android.view.display.getorientation (), atau API lainnya.
8.5. Input layar sentuh
Implementasi Perangkat:
• Harus memiliki layar sentuh
• Mungkin memiliki layar sentuh kapasatif atau resistif
• Harus melaporkan nilai android.content.res.configuration [ sumber daya, 25]
sesuai dengan jenis layar sentuh spesifik pada perangkat
8.6. USB
Implementasi Perangkat:
• Harus mengimplementasikan klien USB, dapat dihubungkan ke host USB dengan port USB-A standar
• Harus mengimplementasikan jembatan Android Debug melalui USB (seperti yang dijelaskan dalam Bagian 7)
• Harus mengimplementasikan klien penyimpanan massal USB untuk penyimpanan yang dapat dilepas/media ada di
perangkat
• Harus menggunakan faktor bentuk mikro USB di sisi perangkat
• Harus menerapkan dukungan untuk spesifikasi penyimpanan massal USB (sehingga dapat dilepas
atau penyimpanan tetap pada perangkat dapat diakses dari PC host)
• Dapat menyertakan port non-standar di sisi perangkat, tetapi jika demikian harus dikirimkan dengan kabel yang mampu
Menghubungkan pinout khusus ke port USB-A standar
8.7. Tombol navigasi
Fungsi rumah, menu, dan punggung sangat penting untuk paradigma navigasi Android. Perangkat
Implementasi harus membuat fungsi -fungsi ini tersedia untuk pengguna setiap saat, terlepas dari aplikasi
negara. Fungsi -fungsi ini harus diimplementasikan melalui tombol khusus. Mereka mungkin diimplementasikan
menggunakan perangkat lunak, gerakan, panel sentuh, dll., Tetapi jika demikian, mereka harus selalu dapat diakses dan tidak tidak jelas atau
mengganggu area tampilan aplikasi yang tersedia.
Implement perangkat juga harus menyediakan kunci pencarian khusus. Pelaksana perangkat juga mungkin
Berikan kunci Kirim dan Akhiri untuk Panggilan Telepon.
8.8. Wifi
Implementasi perangkat harus mendukung 802.11b dan 802.11g, dan dapat mendukung 802.11a.

8.9. Kamera
Implementasi perangkat harus menyertakan kamera. Kamera yang disertakan:
• Harus memiliki resolusi minimal 2 megapiksel
• Harus memiliki fokus otomatis perangkat keras, atau fokus otomatis perangkat lunak yang diimplementasikan di kamera
driver (transparan ke perangkat lunak aplikasi)
• Mungkin memiliki perangkat keras fokus atau EDOF (kedalaman kedalaman yang diperluas)
• Mungkin termasuk flash. Jika kamera menyertakan flash, lampu flash tidak boleh menyala saat
instance android.hardware.camera.previewcallback telah terdaftar pada pratinjau kamera
permukaan.
Implementasi perangkat harus mengimplementasikan perilaku berikut untuk API terkait kamera
[Sumber Daya, 27] :
1. Jika suatu aplikasi tidak pernah disebut android.hardware.camera.parameters.setPreviewFormat (int),
maka perangkat harus menggunakan android.hardware.pixelformat.ycbcr_420_sp untuk data pratinjau
disediakan untuk panggilan balik aplikasi.
2. Jika sebuah aplikasi mendaftarkan instance Android.hardware.camera.previewCallback dan
Sistem memanggil metode OnPreviewFrame () saat format pratinjau adalah ycbcr_420_sp,
Data dalam byte [] diteruskan ke OnPreviewFrame () harus lebih lanjut dalam format pengkodean NV21.
(Ini adalah format yang digunakan secara asli oleh keluarga perangkat keras 7K.) Yaitu, NV21 harus default.
8.9.1. Kamera non-autofokus
Jika perangkat tidak memiliki kamera fokus otomatis, pelaksana perangkat harus memenuhi persyaratan tambahan
bagian ini. Implementasi perangkat harus mengimplementasikan API kamera lengkap yang termasuk dalam Android 1.6
Dokumentasi SDK dengan cara yang masuk akal, terlepas dari kemampuan perangkat keras kamera yang sebenarnya.
Untuk Android 1.6, jika kamera tidak memiliki fokus otomatis, implementasi perangkat harus mematuhi yang berikut:
1. Sistem harus menyertakan properti sistem read-only bernama "ro.workaround.noautofocus"
dengan nilai "1". Nilai ini dimaksudkan untuk digunakan oleh aplikasi seperti Android Market
secara selektif mengidentifikasi kemampuan perangkat, dan akan diganti dalam versi Android di masa mendatang dengan a
API yang kuat.
2. Jika aplikasi memanggil android.hardware.camera.autofocus (), sistem harus memanggil
Metode panggilan balik onautofocus () pada setiap terdaftar
Android.hardware.camera.autofocuscallback instances, meskipun sebenarnya tidak fokus
telah terjadi. Ini untuk menghindari istirahat aplikasi yang ada dengan menunggu selamanya untuk fokus otomatis
panggilan balik yang tidak akan pernah datang.
3. Panggilan ke metode autofocuscallback.onautofocus () harus dipicu oleh pengemudi atau
kerangka kerja dalam acara baru di utas looper kerangka kerja utama. Yaitu, kamera.autofocus ()
Tidak boleh secara langsung menghubungi autofocuscallback.onautofocus () karena ini melanggar Android
Model Threading Kerangka dan akan merusak aplikasi.
8.10. Akselerometer
Implementasi perangkat harus mencakup accelerometer 3-sumbu dan harus dapat memberikan acara di AT
setidaknya 50 Hz. Sistem koordinat yang digunakan oleh accelerometer harus mematuhi sensor android
Koordinat sistem sebagaimana dirinci dalam Android API [Sumber Daya , 28].

8.11. Kompas
Implementasi perangkat harus mencakup kompas 3-sumbu dan harus dapat memberikan acara setidaknya setidaknya
10Hz. Sistem koordinat yang digunakan oleh kompas harus mematuhi koordinat sensor android
Sistem sebagaimana didefinisikan dalam API Android [Sumber Daya , 28].
8.12. GPS
Implementasi perangkat harus menyertakan GPS, dan harus mencakup beberapa bentuk "GPS yang dibantu"
Teknik untuk meminimalkan waktu penguncian GPS.
8.13. Telepon
Implementasi Perangkat:
• Harus menyertakan telepon GSM atau CDMA
• Harus mengimplementasikan API yang sesuai sebagaimana dirinci dalam dokumentasi Android SDK di
pengembang.android.com
Perhatikan bahwa persyaratan ini menyiratkan bahwa perangkat non-telepon tidak kompatibel dengan Android 1.6; Android
1.6 Perangkat harus menyertakan perangkat keras telepon. Silakan lihat Lampiran C untuk informasi tentang non-telepon
perangkat.
8.14. Kontrol volume
Perangkat yang kompatibel Android harus mencakup mekanisme untuk memungkinkan pengguna meningkatkan dan mengurangi
volume audio. Implementasi perangkat harus membuat fungsi -fungsi ini tersedia untuk pengguna setiap saat,
Terlepas dari keadaan aplikasi. Fungsi -fungsi ini dapat diimplementasikan menggunakan tombol perangkat keras fisik,
perangkat lunak, gerakan, panel sentuh, dll., Tetapi mereka harus selalu dapat diakses dan tidak tidak jelas atau mengganggu
dengan area tampilan aplikasi yang tersedia (lihat tampilan di atas).
Ketika tombol -tombol ini digunakan, peristiwa kunci yang sesuai harus dihasilkan dan dikirim ke
Aplikasi latar depan. Jika acara tidak dicegat dan tenggelam oleh aplikasi maka perangkat
Implementasi harus menangani acara sebagai kontrol volume sistem.
9. Kompatibilitas Kinerja
Salah satu tujuan dari program kompatibilitas Android adalah untuk memastikan pengalaman aplikasi yang konsisten untuk
konsumen. Implementasi yang kompatibel harus memastikan tidak hanya aplikasi yang berjalan dengan benar
Perangkat, tetapi mereka melakukannya dengan kinerja yang wajar dan pengalaman pengguna yang baik secara keseluruhan.
Implementasi Perangkat harus memenuhi metrik kinerja utama perangkat Android 1.6 yang kompatibel,
Seperti pada tabel di bawah ini:
Metrik
Ambang kinerja
Komentar

Ini diuji oleh CTS.
Aplikasi berikut
Waktu peluncuran diukur sebagai total waktu
harus diluncurkan di dalam
Lengkapi Memuat Aktivitas Default untuk
Aplikasi
waktu yang ditentukan.
aplikasi, termasuk waktu yang diperlukan untuk memulai
Waktu peluncuran
Browser: kurang dari 1300ms
Proses linux, memuat paket android ke
MMS/SMS: Kurang dari 700ms
Dalvik VM, dan hubungi OnCreate.
Alarmclock: kurang dari 650ms
Beberapa aplikasi akan
Ini diuji oleh CTS.
diluncurkan. Meluncurkan kembali
Aplikasi pertama secara simultan harus
Aplikasi
lengkap mengambil kurang dari
Waktu peluncuran asli.
10. Kompatibilitas Model Keamanan
Implementasi perangkat harus mengimplementasikan model keamanan yang konsisten dengan keamanan platform Android
model sebagaimana didefinisikan dalam dokumen referensi keamanan dan izin di API [Sumber Daya, 29] di
Dokumentasi Pengembang Android. Implementasi perangkat harus mendukung pemasangan diri yang ditandatangani sendiri
Aplikasi tanpa memerlukan izin/sertifikat tambahan dari pihak ketiga/otoritas mana pun.
Secara khusus, perangkat yang kompatibel harus mendukung mekanisme keamanan berikut:
10.1. Izin
Implementasi perangkat harus mendukung model izin Android sebagaimana didefinisikan dalam Android
Dokumentasi Pengembang [ Sumber Daya , 9]. Secara khusus, implementasi harus menegakkan setiap izin
didefinisikan seperti yang dijelaskan dalam dokumentasi SDK; Tidak ada izin yang dapat dihilangkan, diubah, atau diabaikan.
Implementasi dapat menambahkan izin tambahan, asalkan string ID izin baru tidak ada di
Android.* Namespace.
10.2. Isolasi pengguna dan proses
Implementasi Perangkat harus mendukung model Sandbox Aplikasi Android, di mana setiap aplikasi
Berjalan sebagai UID gaya Unix yang unik dan dalam proses yang terpisah.
Implementasi perangkat harus mendukung menjalankan beberapa aplikasi dengan ID pengguna Linux yang sama, yang disediakan
bahwa aplikasi ditandatangani dan dibangun dengan benar, sebagaimana didefinisikan dalam keamanan dan izin
Referensi [ Sumber Daya , 29].

10.3. Izin Sistem File
Implementasi perangkat harus mendukung model izin akses file Android sebagaimana didefinisikan dalam AS
didefinisikan dalam referensi keamanan dan izin [sumber daya , 29].
11. Suite Uji Kompatibilitas
Implementasi perangkat harus lulus test suite android compatibility suite (CTS) [ Sumber Daya, 3] Tersedia
Dari proyek Open Source Android, menggunakan perangkat lunak pengiriman akhir pada perangkat. Selain itu,
pelaksana perangkat harus menggunakan implementasi referensi di pohon open source android sebagai
sebanyak mungkin, dan harus memastikan kompatibilitas dalam kasus ambiguitas dalam CT dan untuk apapun
Implementasi Bagian Kode Sumber Referensi.
CTS dirancang untuk dijalankan pada perangkat yang sebenarnya. Seperti halnya perangkat lunak apa pun, CTS itu sendiri mungkin mengandung bug.
CTS akan diversi secara independen dari definisi kompatibilitas ini, dan beberapa revisi dari
CTS dapat dirilis untuk Android 1.6. Namun, rilis seperti itu hanya akan memperbaiki bug perilaku di CTS
Tes dan tidak akan memaksakan tes, perilaku, atau API baru untuk rilis platform yang diberikan.
12. Hubungi Kami
Anda dapat menghubungi tim kompatibilitas Android di kompatibilitas@android.com untuk klarifikasi yang terkait dengan
Definisi kompatibilti ini dan untuk memberikan umpan balik tentang definisi ini.

Lampiran A: Maksud Aplikasi yang Diperlukan
Catatan: Daftar ini bersifat sementara, dan akan diperbarui di masa depan.
Tindakan Aplikasi
Jenis skema mime
(tidak ada)
teks/polos

http
teks/html
Peramban
android.intent.action.VIEW
https
aplikasi/xhtml+xml
aplikasi/
vnd.wap.xhtml+xml

(tidak ada)
android.intent.action.web_search
http
(tidak ada)
https
android.media.action.image_capture
android.media.action.still_image_camera

Kamera
android.media.action.video_camera
android.media.action.video_capture

vnd.android.cursor.dir/
android.intent.action.VIEW
gambar
android.intent.action.get_content
vnd.android.cursor.dir/
android.intent.action.pick
video
android.intent.action.attach_data
gambar/*
video/*

android.intent.action.VIEW
rtsp
video/mp4
video/3gp

android.intent.action.VIEW
http
Video/3GPP
video/3gpp2

android.intent.action.dial
Telepon /
android.intent.action.VIEW
telp
Kontak
android.intent.action.call
android.intent.action.dial
vnd.android.cursor.dir/
android.intent.action.VIEW
orang

vnd.android.cursor.dir/
orang
vnd.android.cursor.dir/

android.intent.action.pick
telepon
vnd.android.cursor.dir/
TEPATKAN POSTAL

vnd.android.cursor.item/
orang
vnd.android.cursor.item/

android.intent.action.get_content
telepon
vnd.android.cursor.item/
TEPATKAN POSTAL

teks/polos
Surel
android.intent.action.send
gambar/*
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/*
Aplikasi/ogg

Musik
android.intent.action.VIEW
mengajukan
Aplikasi/X-OGG
Aplikasi/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
sedang dimainkan
vnd.android.cursor.dir/
melacak
nd.android.cursor.dir/
daftar putar
vnd.android.cursor.dir/
video

media/*
audio/*

android.intent.action.get_content
Aplikasi/ogg
Aplikasi/X-OGG
video/*


isi
Kemasan
android.intent.action.VIEW
mengajukan
Pemasang
kemasan
mengajukan
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

Pengaturan
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

Mencari
android.intent.action.search
pertanyaan
android.intent.action.search_long_press
Suara
android.intent.action.voice_command
Manajemen Kontak
Tindakan Inten
Keterangan
Memulai aktivitas yang memungkinkan pengguna memilih
Lampiran_image
kontak untuk melampirkan gambar ke.
Digunakan
Extra_create_description
dengan show_or_create_contact ke
Tentukan deskripsi yang tepat untuk menjadi


ditampilkan saat meminta pengguna tentang
membuat kontak baru.

Digunakan
dengan show_or_create_contact
ke
Extra_force_create
memaksa membuat kontak baru jika tidak
Kontak yang cocok ditemukan.

Ini adalah maksud yang ditembakkan saat a
Search_sugestion_clicked
Saran pencarian diklik.
Ini adalah maksud yang ditembakkan saat a
Search_suggestion_create_contact_klick Saran pencarian untuk membuat a
Kontak diklik.
Ini adalah maksud yang ditembakkan saat a
Search_sugestion_dial_number_clicked
Saran pencarian untuk memutar nomor
diklik.

Mengambil sebagai input data URI dengan mailto:
Show_or_create_contact
atau Tel: Skema.

Lampiran B: Niat siaran yang diperlukan Catatan: Daftar ini sementara, dan akan
Diperbarui di masa depan.

Tindakan Inten
Keterangan
Tindakan siaran: Ini disiarkan sekali, setelah
Action_boot_completed
Sistem telah selesai boot.
Tindakan siaran: Ini disiarkan sekali, saat a
Action_call_button
panggilan diterima.
Tindakan siaran: "tombol kamera" adalah
Action_camera_button
ditekan.
Tindakan siaran: arus
Action_configuration_changed
Konfigurasi perangkat (orientasi, lokal, dll) memiliki
berubah.
Action_date_changed
Tindakan siaran: Tanggal telah berubah.
Tindakan siaran: menunjukkan kondisi memori rendah
Action_device_storage_low
pada perangkat
Tindakan siaran: menunjukkan kondisi memori rendah
Action_device_storage_ok
di perangkat tidak ada lagi
Tindakan siaran: headset kabel dicolokkan atau
Action_headset_plug
dicabut.
Tindakan siaran: metode input telah
Action_input_method_changed
berubah.
Tindakan siaran: media eksternal telah dihapus
Action_media_bad_removal
dari slot kartu SD, tetapi titik gunung tidak
lepas.
Tindakan siaran: "tombol media" adalah
Action_media_button
ditekan.
Tindakan siaran: media eksternal hadir, dan
menjadi disk-checked jalan menuju titik gunung untuk
Action_media_checking
media giro terkandung di
Intent.mdata bidang.
Tindakan siaran: Pengguna telah menyatakan keinginannya
Action_media_eject
Hapus media penyimpanan eksternal.
Tindakan siaran: media eksternal hadir dan
Action_media_mounted
dipasang di titik gunungnya.
Tindakan siaran: media eksternal ada, tetapi ada
menggunakan FS yang tidak kompatibel (atau kosong) jalur untuk
Action_media_nofs
Titik mount untuk media giro adalah
terkandung dalam bidang intent.mdata.
Tindakan siaran: media eksternal telah
Action_media_removed
DIHAPUS.
Tindakan siaran: Pemindai media telah selesai
Action_media_scanner_finished
memindai direktori.
Tindakan siaran: Meminta pemindai media untuk
Action_media_scanner_scan_file
Pindai file dan tambahkan ke database media.

Tindakan siaran: Pemindai media telah dimulai
Action_media_scanner_started
memindai direktori.
Tindakan siaran: Media eksternal tidak terpasang
Action_media_shared
karena sedang dibagikan melalui USB Mass Storage.
Tindakan siaran: media eksternal hadir tetapi
Action_media_unmountable
tidak bisa dipasang.
Tindakan siaran: media eksternal ada, tetapi
Action_media_unmounted
tidak dipasang di titik gunungnya.
Tindakan siaran: panggilan keluar akan segera terjadi
Action_new_outgoing_call
ditempatkan.
Tindakan siaran: Paket aplikasi baru memiliki
Action_package_added
telah diinstal pada perangkat.
Tindakan siaran: paket aplikasi yang ada
Action_package_changed
telah diubah (misalnya komponen telah
diaktifkan atau dinonaktifkan.
Tindakan siaran: Pengguna telah menghapus data
sebuah paket. Ini harus didahului
oleh action_package_restarted, setelah itu
Action_package_data_cleared
Semua data persistennya dihapus dan ini
siaran dikirim. Perhatikan bahwa paket yang dibersihkan
tidak menerima siaran ini. Data berisi
nama paket.
Tindakan siaran: paket aplikasi yang ada
telah dihapus dari perangkat. Data
Action_package_removed
berisi nama paket. Paket
yang sedang diinstal tidak menerima niat ini.
Tindakan siaran: versi baru dari suatu aplikasi
Action_package_replaced
Paket telah diinstal, mengganti yang ada
Versi yang sebelumnya diinstal.
Tindakan siaran: Pengguna telah memulai kembali a
paket, dan semua prosesnya telah terbunuh.
Semua keadaan runtime yang terkait dengannya (proses,
Action_package_restarted
alarm, pemberitahuan, dll) harus dihapus. Catatan
Bahwa paket restart tidak menerima ini
siaran. Data berisi nama
kemasan.
Tindakan siaran: beberapa penyedia konten memiliki
bagian dari namespace mereka di mana mereka menerbitkan baru
Action_provider_changed
acara atau item yang mungkin digunakan pengguna
berminat.
Action_screen_off
Tindakan siaran: Dikirim setelah layar mati.
Action_screen_on
Tindakan siaran: Dikirim setelah layar menyala.
Tindakan siaran: ID pengguna telah dihapus
Action_uid_removed
dari sistem.
Tindakan siaran: Perangkat telah memasuki USB
Action_ums_connected
Mode penyimpanan massal.

Tindakan siaran: Perangkat telah keluar dari USB
Action_ums_disconnected
Mode penyimpanan massal.
Tindakan siaran: Dikirim saat pengguna hadir
Action_user_present
setelah perangkat bangun (misalnya saat keyguard
hilang).
Tindakan siaran: wallpaper sistem saat ini
Action_wallpaper_changed
telah berubah.
Action_time_changed
Tindakan siaran: waktunya ditetapkan.
Action_time_tick
Tindakan siaran: Waktu saat ini telah berubah.
Action_timezone_changed
Tindakan siaran: zona waktu telah berubah.
Tindakan siaran: keadaan pengisian daya, atau biaya
Action_battery_changed
Tingkat baterai telah berubah.
Tindakan siaran: menunjukkan kondisi baterai yang rendah
Action_battery_low
pada perangkat. Siaran ini sesuai dengan
Dialog sistem "peringatan baterai rendah".
Tindakan siaran: menunjukkan baterai sekarang baik -baik saja
setelah rendah. Ini akan dikirim
Action_battery_okay
setelah action_battery_low setelah baterai
telah kembali ke keadaan yang baik.
Keadaan jaringan
Tindakan Inten
Keterangan
Tindakan niat siaran yang menunjukkan bahwa
Network_state_changed_action
Konektivitas Wi-Fi telah berubah.
Tindakan niat siaran yang menunjukkan bahwa
Rssi_changed_action
RSSI (kekuatan sinyal) telah berubah.
Tindakan niat siaran yang menunjukkan bahwa a
Supplicant_state_changed_action
Koneksi ke pemohon telah
mapan atau hilang.
Tindakan niat siaran yang menunjukkan bahwa Wi-Fi
Wifi_state_changed_action
telah diaktifkan, dinonaktifkan, mengaktifkan,
melumpuhkan, atau tidak diketahui.
ID jaringan dari jaringan yang dikonfigurasi
Network_ids_changed_action
bisa berubah.
Tindakan niat siaran yang menunjukkan bahwa
Action_background_data_setting_changed pengaturan untuk penggunaan data latar belakang
nilai yang diubah.
Niat siaran yang menunjukkan bahwa perubahan
Konektivitas_action
Konektivitas jaringan telah terjadi.
Tindakan siaran: Pengguna telah beralih
Action_airplane_mode_changed
Telepon ke atau keluar dari mode pesawat.


Lampiran C: Pertimbangan Masa Depan Lampiran ini mengklarifikasi bagian -bagian tertentu dari Android ini
1.6 Definisi Kompatibilitas, dan dalam beberapa kasus membahas perubahan yang diantisipasi atau direncanakan dimaksudkan untuk a
Versi platform Android di masa depan. Lampiran ini hanya untuk tujuan informasi dan perencanaan, dan
bukan bagian dari definisi kompatibilitas untuk Android 1.6.
1. Perangkat non-telephone
Android 1.6 dimaksudkan secara eksklusif untuk telepon; Fungsionalitas telepon tidak opsional. Versi masa depan
platform Android diharapkan membuat telepon opsional (dan dengan demikian memungkinkan android non-telepon
perangkat), tetapi hanya ponsel yang kompatibel dengan Android 1.6.
2. Kompatibilitas Bluetooth
Rilis Android 1.6 dari Android tidak mendukung Bluetooth API, jadi dari perspektif kompatibilitas
Bluetooth tidak memaksakan pertimbangan apa pun untuk versi platform ini. Namun, versi masa depan
Android akan memperkenalkan API Bluetooth. Pada saat itu, mendukung Bluetooth akan menjadi wajib untuk
kesesuaian.
Akibatnya, kami sangat menyarankan agar perangkat Android 1.6 termasuk Bluetooth, sehingga mereka akan
Kompatibel dengan versi Android di masa depan yang membutuhkan Bluetooth.
3. Komponen perangkat keras yang diperlukan
Semua komponen perangkat keras di bagian 8 (termasuk wifi, magnetometer/kompas, accelerometer, dll.)
diperlukan dan tidak boleh dihilangkan. Versi Android di masa depan diharapkan membuat beberapa (tetapi tidak semua) dari
Komponen-komponen ini opsional, sejalan dengan alat yang sesuai untuk pengembang pihak ketiga untuk menangani ini
perubahan.
4. Contoh aplikasi
Dokumen Definisi Kompatibilitas untuk versi Android di masa depan akan mencakup yang lebih luas dan
Daftar aplikasi yang representatif dari yang tercantum dalam Bagian 4, di atas. Untuk Android 1.6,
Aplikasi yang tercantum dalam Bagian 4 harus diuji.
5. Layar Sentuh
Versi masa depan dari definisi kompatibilitas mungkin atau mungkin tidak memungkinkan perangkat untuk menghilangkan layar sentuh.
Namun, saat ini sebagian besar implementasi kerangka Android mengasumsikan keberadaan a
layar sentuh; Menghilangkan layar sentuh akan memecahkan secara substansial semua aplikasi Android pihak ketiga saat ini
Jadi di Android 1.6 layar sentuh diperlukan untuk kompatibilitas.

6. Kinerja
Versi CTS di masa depan juga akan mengukur pemanfaatan CPU dan kinerja berikut
Komponen Implementasi:
• Grafik 2D
• Grafik 3D
• Pemutaran video
• Pemutaran audio
• Pemutaran Bluetooth A2DP

Garis Besar Dokumen