Android 1.6 Uyumluluk Tanımlaması

Android Uyumluluk Tanımı: Android 1.6
Android 1.6 r2
Google Inc.
compatibility@android.com

İçindekiler
1. Giriş ................................................................................................................... 4
2. Kaynaklar ...................................................................................................................... 4
3. Yazılım ......................................................................................................................... 5
3.1. Yönetilen API Uyumluluğu ................................................................................... 5
3.2. Yumuşak API Uyumluluğu ............................................................................................ 6
3.2.1. İzinler...................................................................................................... 6
3.2.2. Derleme Parametreleri ............................................................................................. 6
3.2.3. Intent Uyumluluğu................................................................................................ 8
3.2.3.1. Temel Uygulama Amaçlamaları ........................................................................... 8
3.2.3.2. Amaç Geçersiz Kılmaları ......................................................................................... 8
3.2.3.3. Intent Ad Alanları.................................................................................... 8
3.2.3.4. Yayınlama Niyetleri ...................................................................................... 9
3.3. Yerel API Uyumluluğu ........................................................................................ 9
3.4. Web API Uyumluluğu ................................................................................................ 9
3.5. API Davranış Uyumluluğu.................................................................................. 10
3.6. API ad alanları................................................................................................... 10
3.7. Sanal makine uyumluluğu ............................................................................. 11
3.8. Kullanıcı Arayüzü Uyumluluğu ................................................................................ 11

3.8.1. Widget'lar ........................................................................................................... 11
3.8.2. Bildirimler ................................................................................................... 12
3.8.3. Arama ............................................................................................................. 12
3.8.4. Durum mesajları.............................................................................................................. 12

4. Referans Yazılım Uyumluluğu ............................................................................. 12
5. Uygulama Paketleme Uyumluluğu ........................................................................ 13
6. Multimedya Uyumluluğu............................................................................................ 13
7. Geliştirici Aracı Uyumluluğu..................................................................................... 14
8. Donanım Uyumluluğu .............................................................................................. 15
8.1. Ekran ................................................................................................................... 15
8.1.1. Standart Görüntülü Reklam Yapılandırmaları ................................................................. 15
8.1.2. Standart Olmayan Görüntü Yapılandırmaları ................................................................ 16
8.1.3. Görüntülü Reklam Ağı Metrikleri.................................................................................. 16

8.2. Klavye ............................................................................................................... 16
8.3. Dokunmatik olmayan gezinme .......................................................................................... 16
8.4. Ekran Yönlendirmesi................................................................................................ 17
8.5. Dokunmatik ekran girişi................................................................................................ 17
8.6. USB ........................................................................................................................ 17
8.7. Gezinme tuşları .................................................................................................... 17
8.8. Kablosuz ağ ........................................................................................................................ 17
8.9. Kamera .................................................................................................................. 18
8.9.1. Otomatik odaklama özelliği olmayan kameralar ............................................................................... 18
8.10. İvme ölçer..................................................................................................... 18
8.11. Compass ............................................................................................................. 19
8.12. GPS ...................................................................................................................... 19
8.13. Telefon............................................................................................................ 19
8.14. Ses kontrolleri.................................................................................................. 19

9. Performans Uyumluluğu......................................................................................... 19
10. Güvenlik Modeli Uyumluluğu ................................................................................... 20
10.1. İzinler ........................................................................................................ 20
10.2. Kullanıcı ve İşlem İzolasyonu ............................................................................... 20
10.3. Dosya sistemi izinleri..................................................................................... 21
11. Compatibility Test Suite ........................................................................................... 21

12. Bize Ulaşın ................................................................................................................. 21
Ek A: Gerekli Uygulama Intent'leri ................................................................... 22
Ek B: Gerekli Yayın Intent'leri ....................................................................... 0
Ek C: Gelecekte Dikkate Alınacak Konular................................................................................ 0

1. Telefon Olmayan Cihazlar ........................................................................................... 30
2. Bluetooth Uyumluluğu ................................................................................................ 30
3. Gerekli Donanım Bileşenleri................................................................................ 30
4. Örnek Uygulamalar ............................................................................................... 30
5. Dokunmatik Ekranlar ......................................................................................................... 30
6. Performans............................................................................................................. 31

1. Giriş
Bu belgede, mobil telefonların Android 1.6 ile uyumlu olması için karşılanması gereken şartlar belirtilmektedir.
Bu tanım, Android Uyumluluk Programı'nı
[Kaynaklar, 1]. bildiğinizi varsayar.
"Must", "must not", "required", "shall", "shall not", "should", "should not", "recommended",
"may" ve "optional" ifadelerinin kullanımı RFC2119'da [Kaynaklar, 2] tanımlanan IETF standardına göredir.
Bu dokümanda "cihaz uygulayıcısı" veya "uygulayıcı", Android 1.6 çalıştıran bir donanım/yazılım çözümü geliştiren bir kişi veya kuruluştur.
"Cihaz uygulaması" veya "uygulama", bu şekilde geliştirilen
donanım/yazılım çözümüdür.
Android 1.6 ile uyumlu olarak kabul edilmek için cihaz uygulamalarında:
1. Referans yoluyla dahil edilen tüm dokümanlar dahil olmak üzere bu Uyumluluk Tanımı'nda sunulan koşulları karşılamalıdır.

2. Android Açık Kaynak Projesi [Kaynaklar, 3] kapsamında bulunan Android Uyumluluk Testi Paketi'ni (CTS) GEÇMELİDİR.
 CTS, bu
dokümanda belirtilen bileşenlerin çoğunu ancak tamamını test eder.
Bu tanım veya CTS'de açıklık, belirsizlik veya eksiklik varsa mevcut uygulamalarla uyumluluğu sağlamak cihaz uygulayıcının sorumluluğundadır.
Bu nedenle, Android Açık Kaynak Projesi [Kaynaklar, 4] hem Android'in referans hem de tercih edilen  uygulamasıdır.
Cihaz
uygulayıcılarının, uygulamalarını Android Açık Kaynak Projesi'nden edinilebilen "yüksek akış" kaynak koduna
dayandırmaları önemle tavsiye edilir. Bazı bileşenler teorik olarak alternatif uygulamalarla değiştirilebilir olsa da CTS testlerini geçmek önemli ölçüde daha zor olacağından bu uygulamadan kesinlikle kaçınılmalıdır.

Uyumluluk Testi Paketi dahil olmak üzere standart Android uygulamasıyla
tam davranışsal uyumluluk sağlamak uygulayıcının sorumluluğundadır.
2. Kaynaklar
Bu Uyumluluk Tanımı, buradan edinilebilecek çeşitli kaynaklara referans verir.
1. Android Uyumluluk Programı'na Genel Bakış: https://sites.google.com/a/android.com/compatibility/
how-it-works
2. IETF RFC2119 Şart Seviyeleri: http://www.ietf.org/rfc/rfc2119.txt
3. Uyumluluk Testi Paketi: http://sites.google.com/a/android.com/compatibility/compatibility-test-
suite--cts
4. Android Açık Kaynak Projesi: http://source.android.com/
5. API tanımları ve dokümanları: http://developer.android.com/reference/packages.html
6. İçerik Sağlayıcılar: http://code.google.com/android/reference/android/provider/package-
summary.html
7. Kullanılabilir Kaynaklar: http://code.google.com/android/reference/available-resources.html
8. Android Manifest dosyaları: http://code.google.com/android/devel/bblocks-manifest.html
9. Android izinleri referansı: http://developer.android.com/reference/android/
Manifest.permission.html
10. Derleme Sabitleri: http://developer.android.com/reference/android/os/Build.html
11. WebView: http://developer.android.com/reference/android/webkit/WebView.html
12. Gears Tarayıcı Uzantılar: http://code.google.com/apis/gears/

13. Dalvik sanal makinesi spesifikasyonu, kaynak kod
checkout'unun dalvik/docs dizininde bulunur; http://android.git.kernel.org/?p=platform/
dalvik.git;a=tree;f=docs;h=3e2ddbcaf7f370246246f9f03620a7caccbfcb12;hb=HEAD

14 adresinden de edinilebilir. Uygulama widget'ları: http://developer.android.com/guide/practices/ui_guidelines/widget_design.html
15. Bildirimler: http://developer.android.com/guide/topics/ui/notifiers/notifications.html
16. Durum çubuğu simgesi stil kılavuzu: http://developer.android.com/guide/practices/ui_guideline
/icon_design.html#statusbarstructure
17. Arama Yöneticisi: http://developer.android.com/reference/android/app/SearchManager.html
18. Toast: http://developer.android.com/reference/android/widget/Toast.html
19. Apps For Android: http://code.google.com/p/apps-for-android
20. Android apk dosyası açıklaması: http://developer.android.com/guide/topics/fundamentals.html
21. Android Debug Bridge (adb): http://code.google.com/android/reference/adb.html
22. Dalvik Debug Monitor Service (ddms): http://code.google.com/android/reference/ddms.html
23. Monkey: http://developer.android.com/guide/developing/tools/monkey.html
24. Ekran Bağımsızlığı Dokümanları:
25. Yapılandırma Sabitleri: http://developer.android.com/reference/android/content/res/
Configuration.html
26. Görüntü Metrikleri: http://developer.android.com/reference/android/util/DisplayMetrics.html
27. Kamera: http://developer.android.com/reference/android/hardware/Camera.html
28. Sensör koordinat alanı: http://developer.android.com/reference/android/hardware/
SensorEvent.html
29. Android Güvenlik ve İzinler referansı: http://developer.android.com/guide/topics/security/
security.html
Bu kaynakların çoğu doğrudan veya dolaylı olarak Android 1.6 SDK'sından türetilmiştir ve işlevsel olarak bu SDK'nın dokümanlarında yer alan bilgilerle aynıdır.
Bu
Uyumluluk Tanımı'nın SDK dokümanlarıyla çeliştiği durumlarda SDK dokümanları
yetkili kabul edilir. Yukarıda yer alan referanslarda sağlanan tüm teknik ayrıntılar, dahil edilmeleri
nedeniyle bu Uyumluluk Tanımı'nın bir parçası olarak kabul edilir.
3. Yazılım
Android platformu hem yönetilen ("sabit") API'ler hem de Intent sistemi, yerel kod API'leri ve web uygulaması API'leri gibi "yumuşak" API'lerden
oluşur. Bu bölümde, uyumluluğun ayrılmaz parçası olan zorunlu ve isteğe bağlı API'lerin yanı sıra diğer bazı ilgili teknik ve kullanıcı arayüzü davranışları ayrıntılı olarak açıklanmaktadır.

Cihaz uygulamaları bu bölümdeki tüm şartlara UYMALIDIR.
3.1. Yönetilen API Uyumluluğu
Yönetilen (Dalvik tabanlı) yürütme ortamı, Android uygulamaları için birincil araçtır.
Android uygulama programlama arayüzü (API), yönetilen sanal makine ortamında çalışan
uygulamalara sunulan Android platform arayüzleri grubudur. Cihaz uygulamalarında, Android 1.6 SDK'sı tarafından kullanıma sunulan tüm belgelenmiş API'lerin (ör. aşağıdakiler) tüm belgelenmiş davranışları da dahil olmak üzere eksiksiz bir uygulama sağlanmalıdır:
1.

 Temel Android Java dili API'leri [Kaynaklar, 5].
2. İçerik Sağlayıcılar [Resources, 6].
3. Kaynaklar [Resources, 7].
4. AndroidManifest.xml özellikleri ve öğeleri [Kaynaklar, 8].

Cihaz uygulamalarında, bu Uyumluluk Tanımı'nda özellikle izin verildiği durumlar hariç olmak üzere yönetilen API'ler atlanmamalı, API arayüzleri veya imzaları değiştirilmemeli, belgelenen davranıştan sapılmamalı veya hiçbir işlem içermemelidir.


3.2. Yumuşak API Uyumluluğu
Android, 3.1 Bölümü'ndeki yönetilen API'lere ek olarak, uygulama derleme zamanında uygulanamayan Android uygulamalarının Intent'leri, izinleri ve benzer yönleri gibi öğeler şeklinde yalnızca çalışma zamanında önemli bir "yumuşak"
API de içerir.
Bu bölümde, Android 1.6 ile uyumluluk için gereken "yumuşak" API'ler ve sistem davranışları ayrıntılı olarak açıklanmıştır.
 Cihaz uygulamaları bu bölümde sunulan tüm
koşulları karşılamalıdır.
3.2.1. İzinler
Cihaz uygulayıcıları, izin referans sayfasında [Kaynaklar, 9] belirtildiği gibi tüm izin sabitlerini desteklemeli ve zorunlu kılmalıdır.
10. Bölümde, Android güvenlik modeliyle ilgili ek koşulların listelendiğini unutmayın.

3.2.2. Derleme Parametreleri
Android API'leri, android.os.Build sınıfında [Resources, 10] mevcut cihazı tanımlamayı amaçlayan bir dizi sabit değer içerir.
Cihaz
uygulamalarında tutarlı ve anlamlı değerler sağlamak için aşağıdaki tabloda, bu değerlerin biçimleriyle ilgili ek kısıtlamalar yer almaktadır. Cihaz
uygulamalarının bu kısıtlamalara uyması GEREKİR.
Parametre
Açıklama
Şu anda çalışan Android sisteminin, kullanıcıların okuyabileceği
android.os.Build.VERSION.RELEASE
biçimindeki sürümü. Android 1.6 için bu alanda
"1.6"
dize değeri OLMALIDIR.
Şu anda çalışan Android sisteminin sürümü. Üçüncü taraf uygulama kodunun erişebileceği
android.os.Build.VERSION.SDK
biçimindedir. Android 1.6 için bu alanın
tam sayı değeri 4 OLMALIDIR.
Cihaz uygulayıcısı tarafından seçilen ve o anda çalışan Android sisteminin belirli bir derlemesini belirten, kullanıcı tarafından okunabilir biçimde bir değerdir.
Bu değer, son kullanıcılara gönderilen farklı derlemeler için yeniden KULLANILMAMALIDIR.
android.os.Build.VERSION.INCREMENTAL
Bu alanın tipik bir kullanımı, derlemeyi oluşturmak için hangi derleme numarasının veya kaynak denetimi değişiklik tanımlayıcısının kullanıldığını belirtmektir.
Bu alanın biçimiyle ilgili herhangi bir şart yoktur. Bununla birlikte, alanın boş veya boş dize ("") OLMAMASI GEREKİR.
Cihaz uygulayıcısı tarafından seçilen ve cihaz tarafından kullanılan belirli dahili donanımı, kullanıcı tarafından okunabilir biçimde tanımlayan bir değer.


Bu alanın olası bir kullanımı, cihazı besleyen kartın belirli bir revizyonunu belirtmektir.


Bu alanın belirli biçimiyle ilgili herhangi bir şart yoktur.
Bununla birlikte,alanın boş veya boş dize ("") OLMAMASI GEREKİR.
Cihazın üreticisinin adını (şirket, kuruluş, şahıs vb.) belirten, cihaz uygulayıcısı tarafından seçilen bir değerdir.
android.os.Build.BRAND
Bu değer, kullanıcı tarafından okunabilir bir biçimde olmalıdır.
Bu alanın olası bir kullanımı, cihazı satan OEM

ve/veya operatörü belirtmektir. Bu alanın özel biçimiyle ilgili herhangi bir şart yoktur. Bununla birlikte, alanın boş veya null değer olmama
koşulu vardır ("").
Cihazın gövdesinin belirli yapılandırmasını veya revizyonunu (bazen "endüstriyel
android.os.Build.DEVICE
tasarım" olarak adlandırılır) tanımlayan, cihaz uygulayıcısı tarafından seçilen bir değer.

Bu alanın biçimi
için herhangi bir koşul yoktur. Yalnızca boş veya boş dize ("") OLMAMALIDIR.
Bu derlemeyi benzersiz şekilde tanımlayan bir dize. Makul ölçüde okunaklı olmalıdır.
Şu şablonu İZLEMESİ GEREKİR:
$(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)
Örneğin: acme/mydevicel/generic/generic:Donut/ERC77/
3359:userdebug/test-keys
Parmak izi boşluk İÇERMEMELİDİR. Yukarıdaki
şablona dahil edilen diğer alanlarda boşluk varsa bunlar, parmak izinde ASCII
alt çizgi ("_") karakteriyle DEĞİŞTİRİLMELİDİR.
Derlemenin derlendiği ana makineyi benzersiz şekilde tanımlayan, kullanıcı tarafından okunabilen bir dize
android.os.Build.HOST
. Bu alanın belirli bir biçimi için herhangi bir şart yoktur. Bununla birlikte, alanın boş veya boş dize ("") OLMAMASI GEREKİR.
Cihaz uygulayıcısı tarafından belirli bir sürümü belirtmek için seçilen, insan tarafından okunabilir biçimdeki bir tanımlayıcıdır.

Bu alan,
android.os.Build.VERSION.INCREMENTAL
ile aynı olabilir ancak son kullanıcılar için bir miktar anlamlı olması amaçlanan bir
android.os.Build.ID
değeri OLMALIDIR. Bu alanın biçimiyle ilgili herhangi bir şart yoktur. Bununla birlikte, alanın boş veya boş dize ("") OLMAMASI GEREKİR.
Cihaz uygulayıcısı tarafından seçilen ve son kullanıcının bildiği cihaz adını içeren bir değerdir.


Bu, cihazın pazarlandığı ve son kullanıcılara satıldığı ad
android.os.Build.MODEL
ile aynı OLMALIDIR. Bu alanın belirli biçimiyle ilgili herhangi bir şart yoktur. Bununla birlikte, alanın boş veya boş dize ("") OLMAMASI GEREKİR.
Cihazın geliştirme adını veya kod adını içeren, cihaz uygulayıcısı tarafından seçilen bir değer.


Kullanıcıların okuyabileceği bir biçimde olmalıdır ancak
android.os.Build.PRODUCT
son kullanıcıların görüntülemesi için tasarlanmayabilir. Bu alanın biçimiyle ilgili herhangi bir şart yoktur. Bununla birlikte, alanın boş veya boş dize ("") OLMAMASI gerekir.
Cihaz uygulayıcısı tarafından seçilen ve derlemeyi daha da ayırt eden, virgülle ayrılmış bir etiket listesi.


Örneğin, "unsigned,debug". Bu alan
android.os.Build.TAGS
boş veya boş dize ("") OLMAMALIDIR ancak tek bir etiket (ör.
"release") kullanılabilir.
android.os.Build.TIME
Derlemenin gerçekleştiği zaman damgasını temsil eden bir değerdir.
Derlemenin çalışma zamanı yapılandırmasını belirten, cihaz uygulayıcısı tarafından seçilen bir değer
. Bu alanda, üç tipik Android çalışma zamanı yapılandırmasına karşılık gelen
android.os.Build.TYPE
bir değer bulunmalıdır: "user",
"userdebug" veya "eng".
android.os.Build.USER
derlemesini oluşturan kullanıcının (veya otomatik kullanıcının) adı veya kullanıcı kimliği.
Bu alanın biçimiyle ilgili herhangi bir koşul yoktur.
Bununla birlikte,alanın boş veya boş dize ("") OLMAMASI GEREKİR.

3.2.3. Intent Uyumluluğu
Android, uygulamalar arasında gevşek bağlı entegrasyon elde etmek için Intent'leri kullanır. Bu bölümde,
cihaz uygulamalarının uyması GEREKEN intent kalıplarıyla ilgili şartlar açıklanmaktadır.
"Değerlendirilir" ifadesi, cihaz uygulayıcının eşleşen bir Intent filtresi belirten ve her bir belirtilen Intent kalıbına bağlanıp doğru davranışı uygulayan bir Android Etkinliği, Hizmeti veya başka bir
bileşen sağlaması GEREKTİĞİ anlamına gelir.

3.2.3.1. Temel Uygulama Intent'leri
Android yayın öncesi projesi, telefon çevirici, takvim,
kişi defteri, müzik çalar gibi çeşitli temel uygulamaları tanımlar. Cihaz uygulayıcıları bu uygulamaları
alternatif sürümlerle değiştirebilir.
Bununla birlikte, bu tür alternatif sürümler, yayın öncesi proje tarafından sağlanan aynı Intent kalıplarını UYGUNLAMALIDIR.
(Örneğin, bir cihazda alternatif bir müzik çalar varsa bu cihaz, şarkı seçmek için üçüncü taraf uygulamaları tarafından gönderilen Intent kalıbını
yine de dikkate almalıdır.) Cihaz uygulamaları,
Ek A'da listelenen tüm Intent kalıplarını desteklemelidir.
3.2.3.2. Intent geçersiz kılma
Android genişletilebilir bir platform olduğundan, cihaz uygulayıcıları
Ek A'da açıklanan her Intent kalıbının üçüncü taraf uygulamaları tarafından geçersiz kılınmasına izin VERMELİDİR. Yukarı yönlü Android açık kaynak projesi
buna varsayılan olarak izin verir; cihaz uygulayıcıları, sistem uygulamalarının bu Intent kalıplarını kullanmasına özel ayrıcalıklar eklememeli veya üçüncü taraf uygulamalarının bu kalıplara bağlanmasını ve kontrolünü üstlenmesini engellememelidir.

Bu yasak özellikle, kullanıcının aynı Intent kalıbını kullanan birden fazla uygulama arasından seçim yapmasına olanak tanıyan "Seçici" kullanıcı arayüzünün devre dışı bırakılmasını içerir.

3.2.3.3. Intent Alan Adları
Cihaz uygulayıcıları, android.* alan adında bir ACTION, CATEGORY veya başka bir anahtar dizesi kullanarak yeni Intent veya Yayın Intent kalıplarını uygulayan herhangi bir Android bileşeni İÇERMEMELİDİR.
Cihaz uygulayıcıları, başka bir kuruluşa ait bir paket alanında bir ACTION, CATEGORY veya başka bir anahtar dizesi kullanarak yeni Intent veya Yayın Intent kalıplarını uygulayan herhangi bir Android bileşeni İÇERMEMELİDİR.


Cihaz uygulayıcıları, A veya B eklerinde listelenen Intent
kalıplarından hiçbirini değiştirmemeli veya genişletmemelidir.
Bu yasak, Bölüm 3.6'da Java dil sınıfları için belirtilene benzer.

3.2.3.4. Intent yayınlama
Üçüncü taraf uygulamaları, donanım veya yazılım ortamındaki değişiklikler hakkında bilgilendirilmek için belirli Intent'leri yayınlamak üzere platformdan yararlanır.
Android uyumlu cihazlar, uygun sistem etkinliklerine yanıt olarak herkese açık yayın
Intent'lerini yayınlamalıdır. Gerekli Yayın Intent'lerinin listesi
Ek B'de verilmiştir. Bununla birlikte, SDK'nın ek yayın intent'leri tanımlayabileceğini ve bu intent'lerin de dikkate alınması gerektiğini unutmayın.

3.3. Yerel API Uyumluluğu
Dalvik'te çalışan yönetilen kod, uygulama .apk dosyasında uygun cihaz donanım mimarisi için derlenmiş bir ELF
.so dosyası olarak sağlanan yerel kodu çağırabilir. Cihaz uygulamalarında, yönetilen ortamda çalışan kodun standart Java
yerel arayüzü (JNI) semantiklerini kullanarak yerel kodu çağırması için
destek bulunmalıdır. Yerel kodda aşağıdaki API'ler kullanılabilir olmalıdır:
• libc (C kitaplığı)
• libm (matematik kitaplığı)
• JNI arayüzü
• libz (Zlib sıkıştırma)
• liblog (Android günlük kaydı)
• C++ için minimum destek
• OpenGL ES 1.1
Bu kitaplıklar, Android Open Source projesi tarafından Bionic'te sağlanan sürümlerle kaynak uyumlu (ör. başlık uyumlu) ve ikili uyumlu (belirli bir işlemci mimarisi için) olmalıdır.

Bionic uygulamaları, GNU C kitaplığı gibi diğer uygulamalarla tam olarak uyumlu olmadığından
cihaz uygulayıcıları Android uygulamasını KULLANMALIDIR. Cihaz uygulayıcıları bu kitaplıkların
farklı bir uygulamasını kullanıyorsa başlık ve ikili uyumluluğu sağlamalıdır.
Yerel kod uyumluluğu zordur. Bu nedenle, cihaz uygulayıcılarının, uyumluluğu sağlamak için yukarıda listelenen kitaplıkların yayın öncesi uygulamalarını kullanmalarının
ÇOK önemle tavsiye edildiğini
tekrarlamak isteriz.
3.4. Web API Uyumluluğu
Birçok geliştirici ve uygulama, kullanıcı arayüzleri için android.webkit.WebView sınıfının [Kaynaklar,
11] davranışını kullandığından WebView uygulaması, Android
uygulamaları arasında uyumlu olmalıdır. Android Open Source uygulaması, WebView'i uygulamak için WebKit oluşturma motoru sürümünü kullanır.

Bir web tarayıcısı için kapsamlı bir test paketi geliştirmek mümkün olmadığından cihaz uygulayıcıları
, WebView uygulamasında WebKit'in belirli bir yayın derlemesini KULLANMAK ZORUNDADIR. Daha açık belirtmek gerekirse:
• WebView, Android 1.6 için yayındaki Android Açık Kaynak ağacındaki 528.5 ve sonraki WebKit derlemesini KULLANMAK ZORUNDADIR.
Bu derleme, Web Görünümü için belirli işlev ve güvenlik düzeltmeleri içerir.
• WebView tarafından bildirilen kullanıcı aracısı dizesi şu biçimde OLMALIDIR:
Mozilla/5.0 (Linux; U; Android 1.6; <language>-<country>; <device
name>; Build/<build ID>) AppleWebKit/528.5+ (KHTML, like Gecko)
Version/3.1.2 Mobile Safari/525.20.1

◦ "<device name>" dizesi, android.os.Build.MODEL

◦ "<build ID>" dizesi, android.os.Build.ID

◦ "<language>" ve "<country>" dizeleri, ülke kodu ve dil için

◦ "<language>" ve "<country>" dizeleri, ülke kodu ve dil için

◦ "<language>" ve "<country>" dizeleri, ülke kodu ve dil için

◦ "<language>" ve "<country>" dizeleri, ülke kodu ve dil için

◦ "<language>" ve "<country>" dizeleri, ülke kodu ve dil için

◦ "<language>" ve "<country>" dizeleri, ülke kodu ve dil için

◦ "<language>" ve "<country>" dizeleri, ülke kodu ve dil için

◦ "<language>" ve "<country>" dizeleri, ülke kodu ve dil için

◦ "<language>" ve "<country>" dizeleri, ülke kodu ve dil için

◦ "<language>" ve "<country>" dizeleri, ülke kodu ve dil için

◦ "<language>" ve "<country>" dizeleri, ülke kodu ve dil için

◦ "<language>" ve "<country>" dizeleri, ülke kodu ve dil için

◦ "<language>" ve "<country>" dizeleri, ülke kodu ve dil için

◦ "<language>" ve "<country>" dizeleri, ülke kodu ve dil için

◦ "<language>" ve "<country>" dizeleri, ülke kodu ve dil için

◦ "<language>" ve "<country>" dizeleri, ülke kodu ve dil için

◦ "<language>" ve "<
Uygulamalar, bağımsız tarayıcı uygulamasında özel bir kullanıcı aracısı dizesi gönderEBİLİR. Dahası, bağımsız tarayıcı alternatif bir tarayıcı teknolojisine (ör. Firefox, Opera vb.) dayalı OLABİLİR.

 Bununla birlikte, alternatif bir Tarayıcı uygulaması gönderilse bile üçüncü taraf uygulamalarına sağlanan WebView bileşeni
yukarıda belirtildiği gibi WebKit'e dayalı OLMALIDIR.
Bağımsız Tarayıcı uygulaması, Gears [Kaynaklar, 12] desteği İÇERMELİDİR ve HTML5'in bir kısmını veya tamamını destekleyebilir.

3.5. API Davranış Uyumluluğu
API türlerinin her birinin (yönetilen, yumuşak, yerel ve web) davranışları, Android Open Source Project'te bulunan Android'in tercih edilen uygulamasıyla tutarlı olmalıdır.

Uyumluluğun bazı belirli alanları şunlardır:
• Cihazlar, standart bir Intent'in davranışını veya anlamını DEĞİŞTİRMEmelidir
• Cihazlar, belirli bir sistem bileşeni türünün (ör. Hizmet, Etkinlik, İçerik Sağlayıcı vb.) yaşam döngüsünü veya yaşam döngüsü anlamını DEĞİŞTİRMEmelidir

• Cihazlar belirli bir iznin anlamını DEĞİŞTİREMEZ
Yukarıdaki liste kapsamlı değildir ve davranışsal uyumluluğu sağlamak
cihaz uygulayıcılarının sorumluluğundadır. Bu nedenle, cihaz uygulayıcıları, sistemin önemli bölümlerini yeniden uygulamak yerine
Android Açık Kaynak Projesi üzerinden mümkün olduğunda kaynak kodunu kullanmalıdır.
Uyumluluk Test Paketi (CTS), platformun önemli bölümlerini davranışsal uyumluluk açısından test eder
, ancak platformun tamamını test etmez. Android
Açık Kaynak Projesi ile davranışsal uyumluluğu sağlamak uygulayıcının sorumluluğundadır.
3.6. API ad alanları
Android, Java programlama dilinde tanımlanan paket ve sınıf ad alanı sözleşmelerini izler.
Cihaz uygulayıcıları, üçüncü taraf uygulamalarla uyumluluğu sağlamak için aşağıdaki paket ad alanlarında YAPTIRMAYACAK:
• java.*
• javax.*
• sun.*
• android.*
• com.android.*

Yasaklanmış değişiklikler şunlardır:
• Cihaz uygulamaları, herhangi bir yöntem veya sınıf imzasını değiştirerek ya da sınıfları veya sınıf alanlarını kaldırarak Android platformundaki herkese açık API'leri DEĞİŞTİRMEmelidir.


• Cihaz uygulayıcıları, API'lerin temel uygulamasını DEĞİŞTİREBİLİR ancak bu tür değişiklikler, herkese açık olarak sunulan API'lerin belirtilen davranışını ve Java dili imzasını ETKİLEMEmelidir.


• Cihaz uygulayıcıları, yukarıdaki API'lere herkese açık öğeler (ör. sınıflar veya arayüzler ya da mevcut sınıflara veya arayüzlere ait alanlar veya yöntemler) EKLEMEMELİDİR.

"Herkese açık olarak sunulan öğe", yayın öncesi Android kaynak kodunda "@hide" işaretçisiyle süslenmemiş tüm yapılardır.
 Diğer bir deyişle, cihaz uygulayıcıları yeni API'ler göstermemeli veya
yukarıda belirtilen ad alanlarında mevcut API'leri değiştirmemelidir. Cihaz uygulayıcıları yalnızca dahili
değişiklikler yapabilir ancak bu değişikliklerin reklamı yapılmamalı veya geliştiricilere başka bir şekilde gösterilmemelidir.
Cihaz uygulayıcıları özel API'ler EKLEYEBİLİYOR ancak bu tür API'ler başka bir kuruluşa ait veya başka bir kuruluşa atıfta bulunan bir ad alanında OLMAYACAK.
Örneğin, cihaz uygulayıcıları
com.google.* veya benzer bir ad alanına API ekleMEmelidir; bunu yalnızca Google yapabilir. Benzer şekilde, Google da
diğer şirketlerin ad alanlarına API ekleMEmelidir.
Bir cihaz uygulayıcısı yukarıdaki paket ad alanlarının birini iyileştirmeyi önerirse (ör. mevcut bir API'ye yararlı yeni bir işlev ekleyerek veya yeni bir API ekleyerek) uygulayıcının
source.android.com adresini ziyaret etmesi ve bu sitedeki bilgilere göre değişiklik ve kod katkıda bulunma sürecine başlaması GEREKİR.


Yukarıdaki kısıtlamaların, Java programlama dilinde API'leri adlandırmayla ilgili standart kurallara karşılık geldiğini unutmayın. Bu bölüm, bu kuralları pekiştirmeyi ve bu uyumluluk tanımına dahil ederek bağlayıcı hale getirmeyi amaçlamaktadır.


3.7. Sanal Makine Uyumluluğu
Uyumlu bir Android cihaz, Dalvik Yürütülebilir (DEX) bayt kodu spesifikasyonunun tamamını ve
Dalvik Sanal Makinesi anlamlarını desteklemelidir [Kaynaklar, 13].
3.8. Kullanıcı Arayüzü Uyumluluğu
Android platformu, geliştiricilerin sistem kullanıcı arayüzüne bağlanmasına olanak tanıyan bazı geliştirici API'leri içerir.
Cihaz uygulamalarında, aşağıda açıklandığı gibi bu standart kullanıcı arayüzü API'leri, geliştirdikleri özel kullanıcı arayüzlerine DAHİL EDİLMELİDİR.

3.8.1. Widget'lar
Android, uygulamaların son kullanıcıya
"AppWidget" göstermesine olanak tanıyan bir bileşen türünü ve ilgili API'yi ve yaşam döngüsünü tanımlar [Kaynaklar, 14]Android Açık Kaynak referans sürümü, kullanıcının ana ekrana
Uygulama Widget'ları eklemesine, görüntülemesine ve kaldırmasına olanak tanıyan kullanıcı arayüzü öğeleri içeren bir
Başlatıcı uygulaması içerir.
Cihaz uygulayıcıları, referans başlatıcının (ör. ana ekran) yerine alternatif bir başlatıcı kullanabilir.
Alternatif başlatıcılar, uygulama widget'ları için yerleşik destek içermeli ve uygulama widget'larını doğrudan başlatıcıdan eklemek, görüntülemek ve kaldırmak için kullanıcı arayüzü öğeleri sunmalıdır.
 Alternatif başlatıcılar bu kullanıcı arayüzü öğelerini İSTİYORSA
atlayabilir; ancak atlanırsa cihaz uygulayıcısı, kullanıcıların uygulama widget'ları eklemesine, görüntülemesine ve kaldırmasına olanak tanıyan, başlatıcıdan erişilebilen ayrı bir uygulama sağlamalıdır.



3.8.2. Bildirimler
Android, geliştiricilerin kullanıcıları önemli olaylar hakkında bilgilendirmesine olanak tanıyan API'ler içerir [Kaynaklar, 15]. Cihaz
uygulayıcıları, tanımlanan her bildirim sınıfı için destek SAĞLAMALIDIR. Özellikle: sesler,
titreşim, ışık ve durum çubuğu.
Ayrıca, uygulama doğru şekilde oluşturulmalı ve
API'lerde [Kaynaklar, 7] veya Durum çubuğu simgesi stil kılavuzunda [Kaynaklar, 16] sağlanan tüm kaynaklar (simgeler, ses dosyaları vb.) kullanılmalıdır. Cihaz
uygulayıcıları, bildirimler için referans Android Açık Kaynak uygulamasından farklı bir kullanıcı deneyimi SUNABİLİR; ancak bu tür alternatif bildirim sistemleri, yukarıda belirtildiği gibi mevcut bildirim kaynaklarını DESTEKLEMELİDİR.


3.8.3. Arama
Android, geliştiricilerin aramayı uygulamalarına dahil etmelerine ve uygulamalarının verilerini küresel sistem aramasında göstermelerine olanak tanıyan API'ler [Kaynaklar, 17] içerir.
Genel olarak bu işlev
, kullanıcıların sorgu girmelerine olanak tanıyan, kullanıcılar yazarken öneriler
gösteren ve sonuçları gösteren tek bir sistem genelinde kullanıcı arayüzünden oluşur. Android API'leri, geliştiricilerin kendi uygulamalarında arama sağlamak için bu arayüzü yeniden kullanmasına ve ortak küresel arama kullanıcı arayüzüne sonuç sağlamasına olanak tanır.


Cihaz uygulamalarında, kullanıcı girişine yanıt olarak gerçek zamanlı öneriler sunabilen
tek bir, paylaşılan, sistem genelinde arama kullanıcı arayüzü YER ALMASI GEREKİR. Cihaz uygulamalarında, geliştiricilerin kendi uygulamalarında arama sağlamak için bu kullanıcı arayüzünü yeniden kullanmalarına olanak tanıyan API'ler UYGULANMALIDIR.

Cihaz uygulamalarında, üçüncü taraf uygulamalarının küresel arama modunda çalıştırıldığında arama kutusuna öneri eklemesine izin veren API'ler UYGULANMALIDIR
. Bu işlevi kullanan
üçüncü taraf uygulaması yüklü değilse varsayılan davranış, web arama motoru sonuçlarını ve
önerileri göstermek olmalıdır.
Cihaz uygulamalarında alternatif arama kullanıcı arayüzleri bulunabilir ancak
API dokümanlarında belirtilen davranışla birlikte, arama çerçevesini çağırmak için herhangi bir uygulamada dilediğiniz zaman kullanılabilecek
sabit veya yumuşak bir özel arama düğmesi bulunmalıdır.
3.8.4. Bildirimler
Uygulamalar, son kullanıcıya kısa süre sonra kaybolan kısa, modal olmayan dize göstermek için "Toast" API'yi ([Kaynaklar,  18] bölümünde tanımlanmıştır) kullanabilir.
 Cihaz uygulamalarında,
uygulamalardan son kullanıcılara gönderilen Toast'lar yüksek görünür bir şekilde gösterilmelidir.
4. Referans Yazılım Uyumluluğu
Cihaz uygulayıcıları, aşağıdaki açık kaynak uygulamaları kullanarak uygulama uyumluluğunu test ETMELIDİR:
• Hesap Makinesi (SDK'ya dahildir)
• Ay Yörüngesinde İniş (SDK'ya dahildir)
• ApiDemos (SDK'ya dahildir)
• "Android için Uygulamalar" uygulamaları [Kaynaklar, 19]
Uygulamanın uyumlu kabul edilmesi için yukarıdaki her uygulamanın uygulamada başlatılması ve doğru şekilde çalışması ETMELIDİR.



5. Uygulama Paketleme Uyumluluğu
Cihaz uygulamalarında, resmi Android SDK'sına
dahil olan "aapt" aracı tarafından oluşturulan Android ".apk" dosyalarını yükleyip çalıştırmanız GEREKİR [Kaynaklar, 20].
Cihaz uygulamaları, .apk, Android Manifest veya Dalvik bayt kodu
biçimlerini, bu dosyaların diğer uyumlu cihazlarda doğru şekilde yüklenmesini ve çalışmasını engelleyecek şekilde UZATMAMALIDIR.
Cihaz uygulayıcıları,Dalvik'in referans yayın öncesi uygulamasını
ve referans uygulamanın paket yönetimi sistemini KULLANMALIDIR.
6. Multimedya Uyumluluğu
Uyumlu bir Android cihaz, aşağıdaki multimedya codec'lerini desteklemelidir. Bu codec'lerin tümü, Android Açık Kaynak Projesi'ndeki tercih edilen Android uygulamasında yazılım uygulamaları olarak sağlanır [Kaynaklar, 4].


Google veya Open Handset Alliance'ın bu codec'lerin üçüncü taraf patentleriyle ilgili herhangi bir beyanda bulunmadığını lütfen unutmayın.
 Bu kaynak kodunu donanım veya
yazılım ürünlerinde kullanmak isteyenlerin, açık kaynak yazılım veya
shareware dahil olmak üzere bu kodun uygulamalarının ilgili patent sahiplerinden patent lisansları almasını gerektirebileceğini göz önünde bulundurması önerilir.
Ses
Adı

Kodlayıcı/Çözücü Ayrıntıları
Desteklenen Dosyalar
Herhangi bir
3GPP (.3gp) ve
standart bit hızlarının bir kombinasyonu
MPEG-4 (.mp4, .m4a)
AAC LC/LTP
X
160 kbps'ye kadar ve örnekleme hızları dosyaları.
8 ila 48 kHz
AAC (.aac)
Ham dosyalarda Mono/Stereo içerik
3GPP (.3gp) ve
HE-AACv1
standart bit hızlarının bir kombinasyonu
MPEG-4 (.mp4, .m4a)
X
(AAC+)
96 kbps'ye kadar ve örnekleme hızları dosyaları desteklenmez. HE-AACv2
3GPP (.3gp) ve
standart bit hızlarının bir kombinasyonu
(geliştirilmiş
MPEG-4 (.mp4, .m4a)
X
96 Kb/sn'ye kadar ve örnekleme hızları
AAC+)
dosyalarında
8 ila 48 kHz
arasında ham AAC (.aac)
Mono/Stereo içerikler desteklenmez.
Ham
8 ila 48 kHz
AAC (.aac)
AMR-NB
4,75 ila 12,2 Kb/sn örnekleme
3GPP (.3gp) dosyaları
X
X
8 kHz
AMR-WB
6,60 Kb/sn ila 23,85 Kb/sn arasında 9 hız
-3GPP (.3gp) dosyaları
X
Kb/sn örnekleme 16 kHz
MP3
Mono/Stereo 8-320 Kb/sn sabit MP3 (.mp3) dosyaları
X
(CBR) veya değişken bit hızı (VBR)
0 ve 1 türü (.mid, .xmf,
MIDI 0 ve 1 türü. DLS Sürüm 1
MIDI
X
.mxmf). Ayrıca RTTTL/RTX
ve 2. XMF ve Mobil XMF.
(.rtttl, .rtx), OTA (.ota),

Arama zil sesi biçimleri ve iMelody (.imy)
için destek
RTTTL/RTX, OTA ve iMelody
Ogg Vorbis
.ogg
X
8 ve 16 bit doğrusal PCM (hızlar
PCM
X
WAVE
donanım sınırına kadar)
Resim
Dosyalar
Ad
Kodlayıcı Çözücü Ayrıntıları
Desteklenen
JPEG
X
X
base+progressive
GIF
X
PNG
X
X
BMP
X
Video
Dosyalar
Ad
Kodlayıcı Çözücü Ayrıntıları
Desteklenen
3GPP (.3gp)
H.263
X
X
dosyaları
3GPP (.3gp)
H.264
X
ve MPEG-4
(.mp4) dosyaları
MPEG4
X
3GPP (.3gp) dosyası
SP
7. Geliştirici Aracı Uyumluluğu
Cihaz uygulamaları, Android SDK'sında sağlanan Android Geliştirici Araçları'nı DESTEKLEMELİDİR.
Özellikle, Android uyumlu cihazlar aşağıdakilerle UYUMLU OLMALIDIR:
• Android Hata Ayıklama Köprüsü veya adb [Kaynaklar, 21]
Cihaz uygulamaları, Android SDK'sında belirtildiği üzere tüm adb işlevlerini DESTEKLEMELİDİR.
 Cihaz tarafındaki adb daemon'ı varsayılan olarak etkin OLMAMALIDIR ancak Android Hata Ayıklama Köprüsü'nü açmak için kullanıcı tarafından erişilebilen bir mekanizma OLMALİDİR.

• Dalvik Debug Monitor Service veya ddms [Resources, 22]
Cihaz uygulamalarında, Android SDK'sında belirtildiği gibi tüm ddms özellikleri desteklenmelidir.
ddms, adb kullandığından ddms desteği varsayılan olarak devre dışı OLMALIDIR ancak kullanıcı yukarıda belirtildiği gibi Android Debug Bridge'i etkinleştirdiğinde desteklenmelidir.


• Monkey [Kaynaklar, 23]
Cihaz uygulamalarında Monkey çerçevesi ZORUNLUDIR ve uygulamaların kullanabileceği şekilde sunulmalıdır.

8. Donanım Uyumluluğu
Android, yenilikçi form faktörleri ve yapılandırmalar oluşturan cihaz uygulayıcılarını desteklemek için tasarlanmıştır.
Aynı zamanda Android geliştiricileri, tüm Android cihazlarda belirli donanım, sensör ve API'lerin kullanılmasını bekler.
Bu bölümde, tüm Android 1.6 uyumlu cihazların desteklemesi gereken donanım özellikleri listelenmektedir. 
Android 1.6'da donanım özelliklerinin çoğu (ör. kablosuz ağ, pusula ve ivmeölçer) gereklidir.
Bir cihazda, üçüncü taraf geliştiriciler için ilgili bir API'ye sahip belirli bir donanım bileşeni varsa cihaz uygulaması bu API'yi Android SDK dokümanlarında tanımlandığı şekilde UYGULAMALIDIR.


8.1. Görüntüleme
Android 1.6, üçüncü taraf uygulamalarının mutlaka açıkça tasarlanmadığı donanım yapılandırmalarında makul bir şekilde iyi çalışmasını sağlamak için bazı durumlarda belirli otomatik ölçeklendirme ve dönüştürme işlemlerini gerçekleştiren olanaklar içerir [Resources, 24].

 Cihazlar, bu bölümde ayrıntılı olarak açıklandığı gibi
bu davranışları doğru şekilde uygulamalıdır.
8.1.1. Standart Ekran Yapılandırmaları
Yukarıdaki standart yapılandırmalardan birine karşılık gelen cihaz uygulamaları, belirtilen ekran boyutunu android.content.res.Configuration [Kaynaklar,
25] sınıfı aracılığıyla uygulamalara bildirecek şekilde yapılandırılmalıdır
.



























































Bazı .apk paketlerinde, belirli bir yoğunluk aralığını desteklediği tanımlanmayan manifestler bulunur.
Bu tür uygulamalar çalıştırıldığında aşağıdaki kısıtlamalar geçerli olur:

• Cihaz uygulamalarında, mevcut tüm kaynaklar varsayılan olarak
"orta" (SDK dokümanlarında "mdpi" olarak bilinir) olarak yorumlanmalıdır.
• "Düşük" yoğunluktaki bir ekranda çalışırken cihaz uygulamalarında orta/
mdpi öğeleri 0, 75 oranında küçültülmelidir.
• "Yüksek" yoğunluktaki bir ekranda çalışırken cihaz uygulamalarında orta/
mdpi öğeleri 1, 5 kat büyütülmelidir.
• Cihaz uygulamaları, öğeleri bir yoğunluk aralığında ölçeklendirmemeli ve öğeleri yoğunluk aralıkları arasındaki bu faktörlere göre tam olarak ölçeklendirmelidir.

8.1.2. Standart Olmayan Görüntülü Reklam Yapılandırmaları
8.2.1 numaralı bölümde listelenen standart yapılandırmalardan biriyle eşleşmeyen görüntülü reklam yapılandırmaları,
uyumlu olmaları için ek dikkat ve çalışma gerektirir. Cihaz uygulayıcıları, ekran boyutu grubu,yoğunluk ve ölçeklendirme faktörü sınıflandırmalarını almak için Bölüm 12'de belirtildiği şekilde Android
Uyumluluk Ekibi ile iletişime GEÇMELİDİR.
Bu bilgiler sağlandığında cihaz uygulamaları bunları
belirtildiği şekilde uygulamalıdır.
Bazı ekran yapılandırmalarının (ör. çok büyük veya çok küçük ekranlar ve bazı en boy oranları)
Android 1.6 ile temel olarak uyumlu olmadığını unutmayın. Bu nedenle, cihaz uygulayıcılarının
geliştirme sürecinde mümkün olduğunca erken bir zamanda Android Uyumluluk Ekibi ile iletişime geçmeleri önerilir.
8.1.3. Görüntüleme Metrikleri
Cihaz uygulamalarında,
android.util.DisplayMetrics [Resources, 26] sınıfında tanımlanan tüm görüntüleme metrikleri için doğru değerler raporlanmalıdır.
8.2. Klavye
Cihaz uygulamaları:
• developer.android. com'da açıklandığı gibi Giriş Yönetimi Çerçevesi (üçüncü taraf geliştiricilerin Giriş Yönetimi Motorları (ör.sanal klavye) oluşturmasına olanak tanır) desteği DAHİL EDİLMELİDİR
• En az bir sanal klavye uygulaması DAHİL EDİLMELİDİR (sabit klavye olup olmadığına bakılmaksızın)
• Ek sanal klavye uygulamaları DAHİL EDİLEBİLİR
• Donanım klavyesi DAHİL EDİLEBİLİR
• android.content.res.Configuration [Kaynaklar, 25] bölümünde belirtilen biçimlerden biriyle eşleşmeyen donanım klavyesi DAHİL EDİLMEMELİDİR (ör.QWERTY veya 12 tuşlu)
8.3.



Dokunmatik Olmayan Gezinme

Cihaz uygulamaları:
• Dokunmatik olmayan gezinme seçeneklerini atlayabilir (ör. dokunmatik top, 5 yönlü yön çubuğu veya
tekerlek)
• Cihazın donanımı için doğru değeri android.content.res.Configuration [Resources, 25] aracılığıyla bildirmelidir

8.4.
Ekran Yönlendirmesi

Uyumlu cihazlar, uygulamaların dikey veya yatay ekran yönüne göre dinamik yönlendirmeyi desteklemelidir
. Yani cihaz, uygulamanın belirli bir ekran
yönlendirmesi
isteğini dikkate almalıdır. Cihaz uygulamaları varsayılan olarak dikey veya yatay yönü seçebilir.
Cihazlar,
android.content.res.Configuration.orientation, android.view.Display.getOrientation() veya diğer API'ler aracılığıyla sorgulandığında cihazın mevcut yönelimi için doğru değeri bildirmelidir.
8.5. Dokunmatik ekran girişi
Cihaz uygulamaları:
• Dokunmatik ekrana sahip OLMALIDIR
• Kapasitif veya dirençli dokunmatik ekrana sahip OLABİLİR
• Cihazdaki belirli dokunmatik ekranın türünü yansıtan android.content.res.Configuration [Kaynaklar, 25]  değerini bildirmelidir
8.6.
USB

Cihaz uygulamaları:
• Standart USB-A bağlantı noktası olan bir USB ana makinesine bağlanabilen bir USB istemcisi UYGULANMALIDIR
• USB üzerinden Android Hata Ayıklama Köprüsü UYGULANMALIDIR (Bölüm 7'de açıklandığı gibi)
• Cihazdaki çıkarılabilir/medya depolama alanı için bir USB toplu depolama istemcisi UYGULANMALIDIR
• Cihaz tarafında mikro USB form faktörü KULLANILABİLİR
• USB Toplu Depolama özelliği için destek UYGULANMALIDIR (böylece cihazdaki çıkarılabilir
veya sabit depolama alanına ana makine PC'den erişilebilir)
• Cihaz tarafında standart olmayan bir bağlantı noktası DAHİL EDİLEBİLİR ancak bu durumda özel pin çıkışını standart USB-A bağlantı noktasına bağlayabilen bir kabloyla birlikte gönderilmelidir
8.7.

Gezinme tuşları

Ana Sayfa, Menü ve Geri işlevleri Android gezinme paradigması için gereklidir. Cihaz
uygulamaları, uygulama
durumundan bağımsız olarak bu işlevleri kullanıcıya her zaman sunmalıdır. Bu işlevler özel düğmeler aracılığıyla UYGULANMALIDIR. Bu düğmeler
yazılım, hareketler, dokunmatik panel vb. kullanılarak uygulanabilir ancak bu durumda her zaman erişilebilir olmalı ve mevcut uygulama görüntüleme alanını
gizlememeli veya engellememelidir.
Cihaz uygulayıcıları ayrıca özel bir arama anahtarı DA sağlamalıdır. Cihaz uygulayıcıları,
telefon aramaları için gönderme ve sonlandırma anahtarları da sağlayabilir.
8.8. Kablosuz
Cihaz uygulamaları 802.11b ve 802.11g'yi destekleMELİ, 802.11a'yı destekleYEBİLİR.

8.9. Kamera
Cihaz uygulamalarında bir kamera BULUNMASI GEREKİR. Dahil edilen kamera:
• En az 2 megapiksel çözünürlüğe SAHİP OLMALIDIR
• Kamera sürücüsünde (uygulama yazılımına şeffaf) donanım otomatik odaklama veya yazılım otomatik odaklama UYGULANMIŞ OLMALIDIR
• Sabit odaklı veya EDOF (geniş alan derinliği) donanıma SAHİP OLABİLİR
• Flaşlı OLABİLİR.
Kamerada flaş varsa bir kamera önizleme yüzeyine android.hardware.Camera.PreviewCallback örneği kaydedilmişken flaş ışığı YANMAMALIDIR.


Cihaz uygulamalarında, kamerayla ilgili API'ler için aşağıdaki davranışlar UYGULANMALIDIR
[Kaynaklar, 27]:
1. Bir uygulama hiç android.hardware.Camera.Parameters.setPreviewFormat(int) çağrısında bulunmadıysa
cihaz, uygulama geri çağırmalarına sağlanan önizleme verileri için
android.hardware.PixelFormat.YCbCr_420_SP'yi KULLANMAK ZORUNDADIR.
2. Bir uygulama android.hardware.Camera.PreviewCallback örneği kaydederse ve önizleme biçimi YCbCr_420_SP olduğunda sistem onPreviewFrame() yöntemini çağırırsa onPreviewFrame() yöntemine iletilen byte[] içindeki veriler NV21 kodlama biçiminde olmalıdır.
(Bu, 7k donanım ailesi tarafından doğal olarak kullanılan biçimdir.)

 Yani, varsayılan olarak NV21 kullanılmalıdır.
8.9.1. Otomatik Odak Olmayan Kameralar
Bir cihazda otomatik odaklama kamerası yoksa cihaz uygulayıcısı bu bölümdeki ek koşulları
karşılamalıdır. Cihaz uygulamalarında, gerçek kamera donanımının özelliklerinden bağımsız olarak Android 1.6
SDK dokümanlarında yer alan Camera API'nin tamamı makul bir şekilde uygulanmalıdır.
Android 1.6 için kamerada otomatik odaklama yoksa cihaz uygulaması aşağıdakilere UYGUN OLMALIDIR:
1. Sistem, "1" değerine sahip "ro.workaround.noautofocus" adlı bir salt okunur sistem özelliği İÇERMELİDİR.
 Bu değerin, Android Market gibi uygulamalar tarafından
cihaz özelliklerini seçerek tanımlamak için kullanılması amaçlanmıştır ve Android'in gelecekteki bir sürümünde
sağlam bir API ile değiştirilecektir.
2. Bir uygulama android.hardware.Camera.autoFocus() işlevini çağırırsa sistem, aslında odaklanma olmasa bile kayıtlı tüm android.hardware.Camera.AutoFocusCallback örneklerinde onAutoFocus() geri çağırma yöntemini ÇAĞIRMAK ZORUNDADIR.


Bu, hiçbir zaman gelmeyecek bir otomatik odaklama
geri çağırma işlevi için sonsuza kadar bekleyerek mevcut uygulamaların bozulmasını önlemek içindir.
3. AutoFocusCallback.onAutoFocus() yönteminin çağrısı, ana çerçeve Looper mesaj dizisindeki yeni bir etkinlikte sürücü veya çerçeve tarafından TETİKLENMELİDİR.
Yani Camera.autoFocus(), Android
framework mesaj dizisi modelini ihlal ettiği ve uygulamaları bozduğu için
doğrudan AutoFocusCallback.onAutoFocus() işlevini ÇAĞIRMAMALISDIR.
8.10. İvmeölçer
Cihaz uygulamalarında 3 eksenli bir ivmeölçer bulunmalıdır ve etkinlikler en az 50 Hz hızında gönderilebilmelidir. İvmeölçer tarafından kullanılan koordinat sistemi, Android API'de[Resources, 28] ayrıntılı olarak açıklandığı gibi Android sensör koordinat sistemine uygun olmalıdır.



8.11. Pusula
Cihaz uygulamalarında 3 eksenli bir pusula bulunmalıdır ve etkinlikler en az 10 Hz'de yayınlanabilmelidir. Pusula tarafından kullanılan koordinat sistemi, Android API'de tanımlanan Android sensör koordinat
sistemine uygun olmalıdır [Kaynaklar, 28].

8.12. GPS
Cihaz uygulamalarında GPS ZORUNLUDIR ve GPS kilitlenme süresini en aza indirmek için bir tür "desteklenen GPS"
tekniği DAHİL OLMALIDIR.
8.13. Telefon
Cihaz uygulamaları:
• GSM veya CDMA telefon özelliği DAHİL OLMALIDIR
• developer.android.com adresindeki Android SDK dokümanlarında ayrıntılı olarak açıklandığı şekilde uygun API'leri DAHİL OLMALIDIR
Bu şartın, telefon olmayan cihazların Android 1.6 ile uyumlu olmadığını ima ettiğini unutmayın; Android
1.6 cihazlar telefon donanımı DAHİL OLMALIDIR.
Telefon dışındaki cihazlar hakkında bilgi için lütfen
Ek C'ye bakın.
8.14. Ses kontrolleri
Android uyumlu cihazlarda, kullanıcının ses hacmini artırıp azaltmasına olanak tanıyan bir mekanizma bulunmalıdır.
 Cihaz uygulamalarında,bu işlevler
uygulama durumundan bağımsız olarak
kullanıcıya her zaman sunulmalıdır. Bu işlevler fiziksel donanım anahtarları,
yazılım, hareketler, dokunmatik panel vb. kullanılarak uygulanabilir ancak her zaman erişilebilir olmalıdır ve mevcut uygulama görüntüleme alanını gizlememeli veya engellememelidir (yukarıdaki Ekran bölümüne bakın).

Bu düğmeler kullanıldığında, ilgili önemli etkinlikler OLUŞTURULMALI ve
ön plan uygulamasına gönderilmelidir. Etkinlik uygulama tarafından yakalanıp atlanmazsa cihaz
uygulaması etkinliği sistem ses seviyesi kontrolü olarak İŞLEME ALMAK ZORUNDADIR.
9. Performans Uyumluluğu
Android Uyumluluk Programı'nın hedeflerinden biri, tüketiciler için tutarlı bir uygulama deneyimi sağlamaktır.
Uyumlu uygulamalar, yalnızca cihazda doğru şekilde çalıştırılmakla kalmamalı, aynı zamanda makul bir performans ve genel olarak iyi bir kullanıcı deneyimi sunmalıdır.

Cihaz uygulamaları, aşağıdaki tabloda gösterildiği gibi Android 1.6 uyumlu bir cihazın temel performans metriklerini karşılamalıdır:
Metrik
Performans Eşiği
Açıklama

Bu, CTS tarafından test edilir.

Aşağıdaki uygulamalar
Başlatma süresi,
belirtilen süre içinde
uygulamanın
başlatılması için gereken toplam süre olarak ölçülür.
Başlatma Süresi
Tarayıcı: 1.300 ms'den az
Linux işlemini başlatmak, Android paketini Dalvik
MMS/SMS: 700 ms'den az
VM'ye yüklemek ve onCreate'i çağırmak için geçen süre dahil olmak üzere
uygulamanın varsayılan etkinliğini yüklemeyi tamamlamak için gereken toplam süredir.

AlarmClock: 650 ms'den az
Birden fazla uygulama başlatılır.
Bu test CTS tarafından yapılır.
Uygulamayı yeniden başlattığınızda
Simultane ilk uygulama
Uygulamalar
orijinal başlatma süresinden daha kısa bir sürede
tamamlanır.
10. Güvenlik Modeli Uyumluluğu
Cihaz uygulamalarında, Android geliştirici dokümanlarında yer alan API'lerdeki Güvenlik ve İzinler referans dokümanında [Kaynaklar, 29] 
tanımlandığı üzere Android platform güvenlik modeliyle tutarlı bir güvenlik modeli uygulanmalıdır.
Cihaz uygulamaları, üçüncü taraflardan/yetkililerden ek izinler/sertifikalar gerektirmeden kendi kendine imzalanmış
uygulamaların yüklenmesini desteklemelidir.
Uyumlu cihazlar özellikle aşağıdaki güvenlik mekanizmalarını DESTEKLEMELİDİR:
10.1. İzinler
Cihaz uygulamalarında, Android geliştirici dokümanlarında [Kaynaklar, 9] tanımlandığı şekilde Android izin modelini desteklenmelidir.
Daha açık belirtmek gerekirse, uygulamalar
SDK dokümanlarında açıklandığı şekilde tanımlanan her izni zorunlu kılmalıdır; hiçbir izin atlanmamalı, değiştirilmemeli veya yok sayılmamalıdır.
Yeni izin kimliği dizelerinin
android.* ad alanında olmaması koşuluyla, uygulamalar ek izinler EKLEYEBİLİR.
10.2. Kullanıcı ve İşlem İzolasyonu
Cihaz uygulamalarında, her uygulamanın benzersiz bir Unix tarzı UID olarak ve ayrı bir işlemde çalıştığı Android uygulama korumalı alanı modeli desteklenmelidir.

Cihaz uygulamalarında, Güvenlik ve İzinler referansında [Kaynaklar, 29] tanımlandığı üzere uygulamaların düzgün bir şekilde imzalanmış ve oluşturulmuş olması koşuluyla, aynı Linux kullanıcı kimliğiyle birden fazla uygulamanın çalıştırılması desteklenmelidir.



10.3. Dosya Sistemi İzinleri
Cihaz uygulamalarında, Güvenlik ve İzinler referansında [Resources, 29] tanımlandığı şekilde Android dosya erişim izinleri modeli desteklenmelidir.

11. Uyumluluk Test Paketi
Cihaz uygulamalarının, cihazdaki nihai gönderim yazılımını kullanarak Android Açık Kaynak Projesi'nden edinilebilen Android Uyumluluk Test Paketi'nden (CTS) [Kaynaklar, 3] 
geçmesi GEREKİR. Ayrıca,
cihaz uygulayıcıları, Android Açık Kaynak ağacındaki referans uygulamayı mümkün olduğunca KULLANIMALIDIR ve CTS'de belirsizlik olması durumunda ve referans kaynak kodunun bazı bölümlerinin yeniden uygulanması için UYUMLULUK SĞLAMALIDIR.


CTS, gerçek bir cihazda çalışacak şekilde tasarlanmıştır. Her yazılım gibi CTS de hata içerebilir.
CTS, bu Uyumluluk Tanımı'ndan bağımsız olarak sürümlendirilir ve Android 1.6 için CTS'nin birden fazla düzeltmesi yayınlanabilir.
Ancak bu tür sürümler yalnızca CTS
testlerindeki davranışsal hataları düzeltir ve belirli bir platform sürümü için yeni testler, davranışlar veya API'ler uygulamaz.
12. Bizimle İletişime Geçin
Bu Uyumluluk Tanımı ile ilgili açıklama almak ve bu tanım hakkında geri bildirimde bulunmak için compatibility@android.com  adresinden Android Uyumluluk Ekibi ile iletişime geçebilirsiniz.


Ek A: Gerekli Uygulama Amaçlamaları
NOT: Bu liste geçicidir ve gelecekte güncellenecektir.
Uygulama Eylemleri
Şemalar MIME Türleri
(hiçbiri)
metin/düz

http
metin/html
Tarayıcı
android.intent.action.GÖRÜNTÜLE
https
uygulama/xhtml+xml
başvuru/
vnd.wap.xhtml+xml

(hiçbiri)
android.intent.action.WEB_ARAMA
http
(hiçbiri)
https
android.media.action.IMAGE_CAPTURE
android.media.action.DURAĞAN_GÖRÜNTÜ_KAMERASI

Kamera
android.media.action.VIDEO_KAMERA
android.media.action.VIDEO_YAKALAMA

vnd.android.imleç.dizini/
android.intent.action.GÖRÜNTÜLE
görüntü
android.intent.action.GET_CONTENT
vnd.android.imleç.dizini/
android.intent.eylem.SEÇ
video
android.intent.action.ATTACH_DATA
resim/*
video/*

android.intent.action.GÖRÜNTÜLE
rtsp
video/mp4
video/3gp

android.intent.action.GÖRÜNTÜLE
http
video/3gpp
video/3gpp2

android.intent.eylem.DIAL
Telefon /
android.intent.action.GÖRÜNTÜLE
telefon
İletişim
android.intent.eylem.ÇAĞRI
android.intent.eylem.DIAL
vnd.android.imleç.dizini/
android.intent.action.GÖRÜNTÜLE
kişi

vnd.android.imleç.dizini/
kişi
vnd.android.imleç.dizini/

android.intent.eylem.SEÇ
telefon
vnd.android.imleç.dizini/
posta adresi

vnd.android.imleç.öğe/
kişi
vnd.android.imleç.öğe/

android.intent.action.GET_CONTENT
telefon
vnd.android.imleç.öğe/
posta adresi

metin/düz
E-posta
android.intent.action.GÖNDER
resim/*
video/*

android.intent.action.GÖRÜNTÜLE
e-posta
android.intent.action.GÖNDER
SMS
android.intent.action.GÖRÜNTÜLE
smsto
SMS / MMS android.intent.action.SENDTO
mms
mmsto

ses/*
uygulama/ogg

Müzik
android.intent.action.GÖRÜNTÜLE
dosya
uygulama/x-ogg
uygulama/itunes

ses/mp3
ses/x-mp3

android.intent.action.GÖRÜNTÜLE
http
ses/mpeg
ses/mp4
ses/mp4a-latm

vnd.android.imleç.dizini/
sanatçıalbümü
vnd.android.imleç.dizini/
albüm
vnd.android.imleç.dizini/

android.intent.eylem.SEÇ
şimdi oynuyor
vnd.android.imleç.dizini/
izlemek
nd.android.imleç.dizini/
çalma listesi
vnd.android.imleç.dizini/
video

medya/*
ses/*

android.intent.action.GET_CONTENT
uygulama/ogg
uygulama/x-ogg
video/*


içerik
Paket
android.intent.action.GÖRÜNTÜLE
dosya
Kurulumcu
paket
dosya
android.intent.action.PAKET_KURULUMU
http
https

android.intent.action.TÜM_UYGULAMALAR
android.ayarlar.AYARLAR
android.ayarlar.KABLOSUZ_AYARLAR
android.settings.UÇAK_MODU_AYARLARI
android.ayarlar.WIFI_AYARLARI
android.ayarlar.APN_AYARLARI
android.ayarlar.BLUETOOTH_AYARLARI
android.ayarlar.TARİH_AYARLARI
android.ayarlar.YEREL_AYARLAR

Ayarlar
android.ayarlar.GİRİŞ_YÖNTEM_AYARLARI
com.android.settings.SES_AYARLARI
com.android.settings.EKRAN_AYARLARI
android.ayarlar.GÜVENLİK_AYARI
android.settings.LOCATION_SOURCE_AYARLARI
android.settings.DAHİLİ_DEPOLAMA_AYARLARI
android.ayarlar.BELLEK_KARTI_AYARLARI
android.intent.action.SET_WALLPAPER

Aramak
android.intent.action.ARAMA
sorgu
android.intent.action.ARAMA_UZUN_BASMA
Ses
android.intent.action.SES_KOMUTU
İletişim Yönetimi
Niyet Eylem
Tanım
Kullanıcının seçim yapmasına izin veren bir Etkinlik başlatır
RESİM_EKLE
resim eklenecek bir kişi.
Kullanıcıya
yeni bir kişi oluşturma

isteğinde bulunulduğunda gösterilecek tam açıklamayı belirtmek için
EXTRA_CREATE_DESCRIPTION
SHOW_OR_CREATE_CONTACT  ile birlikte
kullanılır.

SHOW_OR_CREATE_CONTACT 
ile birlikte
kullanılır.

EXTRA_FORCE_CREATE
eşleşen bir kişi bulunmazsa
yeni bir kişinin oluşturulmasını zorunlu kılar.

Bu intent,
SEARCH_SUGGESTION_CLICKED
bir arama önerisi tıklandığında tetiklenir.
Kişi oluşturmayla ilgili bir
SEARCH_SUGGESTION_CREATE_CONTACT_CLICKED arama önerisi
tıklandığında tetiklenen intent budur.
Bu intent,
SEARCH_SUGGESTION_DIAL_NUMBER_CLICKED
numara çevirmeyle ilgili bir arama önerisi
tıklandığında tetiklenir.

Giriş olarak mailto:
SHOW_OR_CREATE_CONTACT
veya tel: şemasını içeren bir veri URI'si alır.

Ek B: Zorunlu Yayın NiyetleriNOT: Bu liste geçicidir ve
gelecekte güncellenecektir.

Intent İşlemi
Açıklama
Yayın İşlemi: Bu işlem,
ACTION_BOOT_COMPLETED
sistemin önyüklemesi tamamlandıktan sonra bir kez yayınlanır.
Yayınlama İşlemi: Bu, bir
ACTION_CALL_BUTTON
çağrısı alındığında bir kez yayınlanır.
Yayın İşlemi: "Kamera düğmesi"
ACTION_CAMERA_BUTTON
basıldı.
Yayınlama İşlemi: Mevcut
ACTION_CONFIGURATION_CHANGED
cihaz Yapılandırması (yön, yerel ayar vb.)
değişti.
ACTION_DATE_CHANGED
Yayınlama İşlemi: Tarih değişti.
Yayın İşlemi: Cihazda düşük bellek durumunu
ACTION_DEVICE_STORAGE_LOW
gösterir
Yayın İşlemi: Cihazda artık düşük bellek durumu
ACTION_DEVICE_STORAGE_OK
yoktur
Yayın İşlemi: Kablolu Kulaklık takılı veya
ACTION_HEADSET_PLUG
çıkarılmıştı.
Yayınlama İşlemi: Bir giriş yöntemi
ACTION_INPUT_METHOD_CHANGED
değiştirildi.
Yayın İşlemi: Harici medya, SD kart yuvasından
ACTION_MEDIA_BAD_REMOVAL
çıkarıldı ancak montaj noktası kaldırılmadı.

Yayınlama İşlemi: "Medya düğmesi"
ACTION_MEDIA_BUTTON
basıldı.
Yayınlama İşlemi: Harici medya mevcut ve diskte kontrol ediliyor
ACTION_MEDIA_CHECKING

meydana gelen kontrol işleminin bağlama noktasının yolu Intent.mData alanında yer alır.

Yayın İşlemi: Kullanıcı, harici depolama medyasını
ACTION_MEDIA_EJECT
çıkartmak istediğini belirtti.
Yayınlama İşlemi: Harici medya mevcuttur ve
ACTION_MEDIA_MOUNTED
bağlantı noktasına bağlanmıştır.
Yayınlama İşlemi: Harici medya mevcut ancak uyumlu olmayan bir dosya sistemi
kullanılıyor (veya boş)
ACTION_MEDIA_NOFS

Kontrol edilen medyanın bağlama noktasının yolu Intent.mData alanında yer alıyor.
Yayın İşlemi: Harici medya
ACTION_MEDIA_REMOVED
kaldırıldı.
Yayın İşlemi: Medya tarayıcı, bir dizini
ACTION_MEDIA_SCANNER_FINISHED
tarama işlemini tamamladı.
Yayınlama İşlemi: Medya tarayıcısının
ACTION_MEDIA_SCANNER_SCAN_FILE
bir dosyayı taramasını ve medya veritabanına eklemesini isteyin.

Yayın İşlemi: Medya tarayıcı
ACTION_MEDIA_SCANNER_STARTED
bir dizini taramaya başladı.
Yayın İşlemi: Harici medya, USB toplu depolama birimi üzerinden paylaşıldığı için
ACTION_MEDIA_SHARED
bağlantısı kesildi.
Yayınlama İşlemi: Harici medya mevcut ancak
ACTION_MEDIA_UNMOUNTABLE
monte edilemiyor.
Yayınlama İşlemi: Harici medya mevcuttur ancak
ACTION_MEDIA_UNMOUNTED
bağlantı noktasına bağlanmamıştır.
Yayınlama İşlemi: Giden bir arama
ACTION_NEW_OUTGOING_CALL
yapılmak üzere.
Yayınlama İşlemi: Cihaz
ACTION_PACKAGE_ADDED
üzerine yeni bir uygulama paketi yüklendi.
Yayınlama İşlemi: Mevcut bir uygulama paketi
ACTION_PACKAGE_CHANGED
değiştirildi (ör. bir bileşen etkinleştirildi veya devre dışı bırakıldı.

Yayınlama İşlemi: Kullanıcı, bir
paketin verilerini temizledi. Bu işlemden önce ACTION_PACKAGE_RESTARTED

ACTION_PACKAGE_DATA_CLEARED
gönderilir. Bu işlemden sonra kalıcı verilerinin tümü silinir ve bu
yayın gönderilir. Temizlenmiş paketin
bu yayını  almadığını unutmayın. Veriler
paketin adını içerir.
Yayınlama İşlemi: Mevcut bir uygulama paketi
cihazdan kaldırıldı.
ACTION_PACKAGE_REMOVED
verileri, paketin adını içerir. Yüklenen
paketi bu Intent'i almaz .
Yayınlama İşlemi: Bir uygulamanın yeni sürümü
ACTION_PACKAGE_REPLACED
paketi, daha önce yüklü olan mevcut
sürümün yerine yüklendi.
Yayınlama İşlemi: Kullanıcı bir paketi yeniden başlattı ve
paketin tüm işlemleri sonlandırıldı.
Bu paketle ilişkili tüm çalışma zamanı durumu (işlemler,
ACTION_PACKAGE_RESTARTED
alarmlar, bildirimler vb.) kaldırılmalıdır. Yeniden başlatılan paketin bu yayını  almadığını unutmayın.

Veriler,
paketin adını içerir.
Yayınlama İşlemi: Bazı içerik sağlayıcıların, ad alanlarında yeni
ACTION_PROVIDER_CHANGED
etkinlikleri veya kullanıcının özellikle ilgilenebileceği öğeleri yayınladıkları
bölgeleri vardır.

ACTION_SCREEN_OFF
Yayınlama İşlemi: Ekran kapandıktan sonra gönderilir.
ACTION_SCREEN_ON
Yayınlama İşlemi: Ekran açıldıktan sonra gönderilir.
Yayın İşlemi: Sistemden bir kullanıcı kimliği
ACTION_UID_REMOVED
kaldırıldı.
Yayınlama İşlemi: Cihaz USB
ACTION_UMS_CONNECTED
Toplu Depolama moduna girdi.

Yayınlama İşlemi: Cihaz, USB
ACTION_UMS_DISCONNECTED
Toplu Depolama modundan çıktı.
Yayınlama İşlemi: Cihaz açıldığında (ör.kilit ekranı
kaybolduğunda) kullanıcı mevcutken
ACTION_USER_PRESENT
gönderilir.
Yayınlama İşlemi: Mevcut sistem duvar kağıdı
ACTION_WALLPAPER_CHANGED
değişti.
ACTION_TIME_CHANGED
Yayınlama İşlemi: Zaman ayarlandı.
ACTION_TIME_TICK
Yayın İşlemi: Mevcut saat değişti.
ACTION_TIMEZONE_CHANGED
Yayın İşlemi: Saat dilimi değişti.
Yayınlama İşlemi: Pilin şarj durumu veya şarj
ACTION_BATTERY_CHANGED
düzeyi değişti.
Yayın İşlemi: Cihazdaki
ACTION_BATTERY_LOW
pil durumunun düşük olduğunu gösterir. Bu yayın,
"Düşük pil uyarısı" sistem iletişim kutusuna karşılık gelir.
Yayınlama İşlemi: Pilin düşük seviyeden
normal seviyeye geldiğini gösterir. Bu etkinlik, pil
iyi bir duruma geri döndüğünde
ACTION_BATTERY_LOW 
sırasında ACTION_BATTERY_OKAY
gönderilir.
Ağ Durumu
Intent İşlemi
Açıklama
Kablosuz bağlantının durumunun değiştiğini belirten
NETWORK_STATE_CHANGED_ACTION
intent işlemini yayınlar.

RSSI_CHANGED_ACTION
RSSI'nin (sinyal gücü) değiştiğini belirten yayın intent işlemi.

SUPPLICANT_STATE_CHANGED_ACTION
istemci ile bağlantının kurulduğunu veya kaybedildiğini belirten
yayın intent işlemi.

WIFI_STATE_CHANGED_ACTION

WiFi'nin etkinleştirildiğini, devre dışı bırakıldığını, etkinleştirilmekte olduğunu,
devre dışı bırakılmakta olduğunu veya bilinmediğini belirten yayın intent işlemi.
Yapılandırılan ağların ağ kimlikleri
NETWORK_IDS_CHANGED_ACTION
değişmiş olabilir.
Arka plan veri kullanımıyla ilgili ACTION_BACKGROUND_DATA_SETTING_CHANGED  ayarının değerlerinin değiştiğini belirten
yayın intent işlemi.


CONNECTIVITY_ACTION
ağ bağlantısında bir değişiklik olduğunu belirten yayın intent'i.
Yayın İşlemi: Kullanıcı telefonu
ACTION_AIRPLANE_MODE_CHANGED
Uçak Modu'na veya Uçak Modu'ndan çıkardı.


Ek C: Gelecekteki Değişiklikler Bu ek, Android 1.6 Uyumluluk Tanımı'nın belirli bölümlerini açıklığa kavuşturmakta ve bazı durumlarda Android platformunun gelecekteki bir sürümü için planlanan veya beklenen değişiklikleri ele almaktadır.

Bu ek yalnızca bilgilendirme ve planlama amacıyla hazırlanmıştır ve
Android 1.6 için Uyumluluk Tanımı'nın bir parçası değildir.
1. Telefon Olmayan Cihazlar
Android 1.6 yalnızca telefonlar için tasarlanmıştır; telefon işlevi isteğe bağlı değildir. Android platformunun gelecekteki sürümlerinde telefon işlevinin isteğe bağlı hale gelmesi (ve böylece telefon olmayan Android cihazlara izin verilmesi) beklenmektedir ancak Android 1.6 yalnızca telefonlarla uyumludur.


2. Bluetooth Uyumluluğu
Android 1.6 sürümü Bluetooth API'lerini desteklemediğinden, uyumluluk açısından
Bluetooth, platformun bu sürümü için herhangi bir şart getirmez. Ancak Android'in gelecekteki bir sürümünde
Bluetooth API'leri kullanıma sunulacaktır. Bu noktada, Bluetooth desteği
uyumluluk için zorunlu hale gelecektir.
Bu nedenle, Android 1.6 cihazların Bluetooth içermesini önemle tavsiye ederiz. Böylece,
Bluetooth gerektiren gelecekteki Android sürümleriyle uyumlu olurlar.
3. Gerekli Donanım Bileşenleri
8. Bölümdeki tüm donanım bileşenleri (ör. kablosuz bağlantı, manyetometre/pusula, ivmeölçer)
gereklidir ve çıkarılamaz. Android'in gelecekteki sürümlerinde bu bileşenlerin bazılarının (tümü olmasa da) isteğe bağlı hale getirilmesi ve üçüncü taraf geliştiricilerin bu değişiklikleri yönetmesi için ilgili araçların sağlanması bekleniyor.


4. Örnek Uygulamalar
Android'in gelecekteki bir sürümü için hazırlanan Uyumluluk Tanımlama Belgesi, yukarıdaki Bölüm 4'te listelenenlerden daha kapsamlı ve temsili bir uygulama listesi içerecektir.
Android 1.6 için Bölüm 4'te listelenen
uygulamalar test edilmelidir.
5. Dokunmatik Ekranlar
Uyumluluk Tanımı'nın gelecekteki sürümleri, cihazların dokunmatik ekranları atlamasına izin verebilir veya vermeyebilir.
Ancak şu anda Android çerçeve uygulamasının büyük bir kısmı dokunmatik ekranın varlığını varsaymaktadır;
dokunmatik ekran atlamak,mevcut tüm üçüncü taraf Android uygulamalarının büyük bir kısmını bozacağından
Android 1.6'da uyumluluk için dokunmatik ekran gereklidir.

6. Performans
CTS'nin gelecekteki sürümleri, uygulamanın aşağıdaki bileşenlerinin CPU kullanımını ve performansını da ölçecek:
• 2D grafikler
• 3D grafikler
• Video oynatma
• Ses oynatma
• Bluetooth A2DP oynatma


Dokümanın Ana Hatları