Android 1.6 r2
Google Inc.
compatibility@android.com
สารบัญ
1. บทนำ ................................................................................................................... 4
2. แหล่งข้อมูล ...................................................................................................................... 4
3. ซอฟต์แวร์ ......................................................................................................................... 5
3.1. ความเข้ากันได้ของ Managed API ................................................................................... 5
3.2. ความเข้ากันได้ของ API แบบ Soft ............................................................................................ 6
3.2.1. สิทธิ์...................................................................................................... 6
3.2.2. พารามิเตอร์การสร้าง ............................................................................................. 6
3.2.3. ความเข้ากันได้ของ Intent 8
3.2.3.1. Intent ของแอปพลิเคชันหลัก ........................................................................... 8
3.2.3.2. การลบล้าง Intent ......................................................................................... 8
3.2.3.3. เนมสเปซของ Intent................................................................................... 8
3.2.3.4. Intent ของประกาศ ...................................................................................... 9
3.3. ความเข้ากันได้ของ Native API ........................................................................................ 9
3.4. ความเข้ากันได้ของ Web API ................................................................................................ 9
3.5. ความเข้ากันได้ของลักษณะการทํางานของ API 10
3.6. เนมสเปซของ API................................................................................................... 10
3.7. ความเข้ากันได้ของเครื่องเสมือน ............................................................................. 11
3.8. ความเข้ากันได้ของอินเทอร์เฟซผู้ใช้ ................................................................................ 11
3.8.1. วิดเจ็ต ........................................................................................................... 11
3.8.2 การแจ้งเตือน ................................................................................................... 12
3.8.3. ค้นหา ............................................................................................................. 12
3.8.4. ข้อความแจ้ง.............................................................................................................. 12
4. ความเข้ากันได้ของซอฟต์แวร์อ้างอิง ............................................................................. 12
5. ความเข้ากันได้ของแพ็กเกจแอปพลิเคชัน ........................................................................ 13
6. ความเข้ากันได้ของมัลติมีเดีย............................................................................................ 13
7. ความเข้ากันได้ของเครื่องมือสําหรับนักพัฒนาซอฟต์แวร์ 14
8. ความเข้ากันได้ของฮาร์ดแวร์ .............................................................................................. 15
8.1. จอแสดงผล ................................................................................................................... 15
8.1.1. การกําหนดค่าการแสดงผลมาตรฐาน ................................................................. 15
8.1.2. การกําหนดค่าการแสดงผลที่ไม่ใช่มาตรฐาน ................................................................ 16
8.1.3. เมตริก Display 16
8.2. แป้นพิมพ์ ............................................................................................................... 16
8.3. การนำทางแบบไม่สัมผัส .......................................................................................... 16
8.4. การวางแนวหน้าจอ................................................................................................ 17
8.5. การป้อนข้อมูลด้วยหน้าจอสัมผัส................................................................................................ 17
8.6. USB ........................................................................................................................ 17
8.7. ปุ่มนำทาง ................................................................................................... 17
8.8. Wi-Fi ........................................................................................................................ 17
8.9. กล้อง .................................................................................................................. 18
8.9.1. กล้องที่ไม่ใช้โฟกัสอัตโนมัติ ................................................................................ 18
8.10. ตัวตรวจวัดความเร่ง................................................................................................ 18
8.11. Compass ............................................................................................................. 19
8.12. GPS ...................................................................................................................... 19
8.13. โทรศัพท์............................................................................................................ 19
8.14. การควบคุมระดับเสียง.................................................................................................. 19
9. ความเข้ากันได้ด้านประสิทธิภาพ......................................................................................... 19
10. ความเข้ากันได้ของโมเดลการรักษาความปลอดภัย ................................................................................... 20
10.1. สิทธิ์ ................................................................................................................ 20
10.2 การแยกผู้ใช้และกระบวนการ ............................................................................... 20
10.3. สิทธิ์ในระบบไฟล์................................................................................................ 21
11. ชุดเครื่องมือทดสอบความเข้ากันได้ ........................................................................................... 21
12. ติดต่อเรา ................................................................................................................. 21
ภาคผนวก ก: Intent ของแอปพลิเคชันที่จำเป็น ................................................................... 22
ภาคผนวก ข: Intent ของประกาศที่จำเป็น ....................................................................... 0
ภาคผนวก ค: สิ่งที่ควรพิจารณาในอนาคต................................................................................ 0
1. อุปกรณ์ที่ไม่ใช่โทรศัพท์ ........................................................................................... 30
2. ความเข้ากันได้กับบลูทูธ ................................................................................................ 30
3. คอมโพเนนต์ฮาร์ดแวร์ที่จำเป็น................................................................................ 30
4. ตัวอย่างแอปพลิเคชัน ............................................................................................... 30
5. หน้าจอสัมผัส ................................................................................................................ 30
6. ประสิทธิภาพ............................................................................................................. 31
1. ข้อมูลเบื้องต้น
เอกสารนี้จะระบุข้อกำหนดที่โทรศัพท์มือถือต้องมีคุณสมบัติตรงตามเพื่อให้
เข้ากันได้กับ Android 1.6 คําจํากัดความนี้ถือว่าคุ้นเคยกับโปรแกรมความเข้ากันได้กับอุปกรณ์ Android
[แหล่งข้อมูล, 1]
การใช้คำว่า "ต้อง" "ต้องไม่" "ต้อง" "ควร" "ไม่ควร" "แนะนำ"
"อาจ" และ "ไม่บังคับ" เป็นไปตามมาตรฐาน IETF ที่ระบุไว้ใน RFC2119 [แหล่งข้อมูล, 2]
"ผู้ติดตั้งใช้งานอุปกรณ์" หรือ "ผู้ติดตั้งใช้งาน" ตามที่ใช้ในเอกสารนี้หมายถึงบุคคลหรือองค์กรที่พัฒนา
โซลูชันฮาร์ดแวร์/ซอฟต์แวร์ที่ใช้ Android 1.6 "การติดตั้งใช้งานอุปกรณ์" หรือ "การติดตั้งใช้งาน" คือ
โซลูชันฮาร์ดแวร์/ซอฟต์แวร์ที่พัฒนาขึ้น
การติดตั้งใช้งานอุปกรณ์ต้องมีลักษณะดังนี้จึงจะถือว่าเข้ากันได้กับ Android 1.6
1. ต้องเป็นไปตามข้อกำหนดที่ระบุไว้ในนิยามความเข้ากันได้นี้ รวมถึงเอกสารใดๆ
ที่รวมไว้ผ่านการอ้างอิง
2. ต้องผ่านชุดเครื่องมือทดสอบความเข้ากันได้ของ Android (CTS) ซึ่งมีอยู่ในโครงการโอเพนซอร์ส Android
[แหล่งข้อมูล, 3] CTS จะทดสอบคอมโพเนนต์ส่วนใหญ่แต่ไม่ใช่ทั้งหมดที่ระบุไว้ใน
เอกสารนี้
ในกรณีที่คำจำกัดความนี้หรือ CTS ไม่ระบุ ไม่ชัดเจน หรือไม่สมบูรณ์ ผู้ติดตั้งใช้งานอุปกรณ์
มีหน้าที่รับผิดชอบในการตรวจสอบความเข้ากันได้กับการใช้งานที่มีอยู่ ด้วยเหตุนี้
โครงการโอเพนซอร์ส Android [แหล่งข้อมูล, 4] จึงถือเป็นทั้งการใช้งาน Android ที่แนะนำ และอ้างอิง เราขอแนะนําอย่างยิ่งให้
ผู้ติดตั้งใช้งานอุปกรณ์อิงตามการใช้งานซอร์สโค้ด "ต้นทาง"
ซึ่งมีอยู่ในโปรเจ็กต์โอเพนซอร์ส Android แม้ว่าในทางทฤษฎีแล้ว คุณจะแทนที่คอมโพเนนต์บางรายการ
ด้วยการติดตั้งใช้งานทางเลือกได้ แต่เราไม่แนะนําอย่างยิ่งให้ทําเช่นนั้น เนื่องจากจะทำให้การผ่านการทดสอบ CTS
ยากขึ้นอย่างมาก ผู้ติดตั้งใช้งานมีหน้าที่รับผิดชอบในการตรวจสอบความเข้ากันได้ของลักษณะการทำงานอย่างเต็มรูปแบบกับ
การติดตั้งใช้งาน Android มาตรฐาน รวมถึงนอกเหนือจากชุดเครื่องมือทดสอบความเข้ากันได้
2. แหล่งข้อมูล
คำจำกัดความความเข้ากันได้นี้อ้างอิงถึงแหล่งข้อมูลจำนวนหนึ่งที่ดูได้ที่นี่
1. ภาพรวมโปรแกรมความเข้ากันได้กับอุปกรณ์ Android: https://sites.google.com/a/android.com/compatibility/
how-it-works
2. ระดับข้อกำหนด IETF RFC2119: http://www.ietf.org/rfc/rfc2119.txt
3. ชุดทดสอบความเข้ากันได้: http://sites.google.com/a/android.com/compatibility/compatibility-test-
suite--cts
4. โครงการโอเพนซอร์ส Android: http://source.android.com/
5. คำจำกัดความและเอกสารประกอบของ API: http://developer.android.com/reference/packages.html
6. ผู้ให้บริการเนื้อหา: http://code.google.com/android/reference/android/provider/package-
summary.html
7. แหล่งข้อมูลที่มี: http://code.google.com/android/reference/available-resources.html
8. ไฟล์ Android Manifest: http://code.google.com/android/devel/bblocks-manifest.html
9. ข้อมูลอ้างอิงเกี่ยวกับสิทธิ์ของ Android: http://developer.android.com/reference/android/
Manifest.permission.html
10. ค่าคงที่ของบิลด์: http://developer.android.com/reference/android/os/Build.html
11. WebView: http://developer.android.com/reference/android/webkit/WebView.html
12. ส่วนขยายเบราว์เซอร์ Gears: http://code.google.com/apis/gears/
13. ข้อกำหนดของ Dalvik Virtual Machine ซึ่งอยู่ในไดเรกทอรี dalvik/docs ของ
การดึงข้อมูลซอร์สโค้ด หรือดูได้ที่ http://android.git.kernel.org/?p=platform/
dalvik.git;a=tree;f=docs;h=3e2ddbcaf7f370246246f9f03620a7caccbfcb12;hb=HEAD
14 AppWidget: http://developer.android.com/guide/practices/ui_guidelines/widget_design.html
15. การแจ้งเตือน: http://developer.android.com/guide/topics/ui/notifiers/notifications.html
16. คู่มือสไตล์ไอคอนแถบสถานะ: http://developer.android.com/guide/practices/ui_guideline
/icon_design.html#statusbarstructure
17. Search Manager: http://developer.android.com/reference/android/app/SearchManager.html
18. Toast: http://developer.android.com/reference/android/widget/Toast.html
19. แอปสําหรับ Android: http://code.google.com/p/apps-for-android
20. คำอธิบายไฟล์ APK ของ Android: http://developer.android.com/guide/topics/fundamentals.html
21. Android Debug Bridge (adb): http://code.google.com/android/reference/adb.html
22. บริการตรวจสอบข้อบกพร่อง Dalvik (ddms): http://code.google.com/android/reference/ddms.html
23. Monkey: http://developer.android.com/guide/developing/tools/monkey.html
24. เอกสารประกอบเกี่ยวกับการแสดงผลอิสระ:
25. ค่าคงที่การกําหนดค่า: http://developer.android.com/reference/android/content/res/
Configuration.html
26. เมตริกการแสดงผล: http://developer.android.com/reference/android/util/DisplayMetrics.html
27. กล้อง: http://developer.android.com/reference/android/hardware/Camera.html
28. พื้นที่พิกัดของเซ็นเซอร์: http://developer.android.com/reference/android/hardware/
SensorEvent.html
29. ข้อมูลอ้างอิงเกี่ยวกับความปลอดภัยและสิทธิ์ของ Android: http://developer.android.com/guide/topics/security/
security.html
แหล่งข้อมูลเหล่านี้จำนวนมากมาจาก SDK ของ Android 1.6 โดยทางตรงหรือทางอ้อม และ
จะทำงานเหมือนกับข้อมูลในเอกสารประกอบของ SDK นั้น ในกรณีที่
คำจำกัดความความเข้ากันได้นี้ขัดแย้งกับเอกสารประกอบ SDK ระบบจะถือว่าเอกสารประกอบ SDK นั้น
น่าเชื่อถือ รายละเอียดทางเทคนิคที่ระบุไว้ในข้อมูลอ้างอิงซึ่งรวมอยู่ด้านบนจะถือว่า
เป็นส่วนหนึ่งของคำจำกัดความความเข้ากันได้นี้
3. ซอฟต์แวร์
แพลตฟอร์ม Android มีทั้งชุด API ที่มีการจัดการ ("แบบฮาร์ด") และชุด API ที่เรียกว่า "แบบซอฟต์"
เช่น ระบบ Intent, API โค้ดเนทีฟ และ API ของเว็บแอปพลิเคชัน ส่วนนี้จะอธิบายรายละเอียดเกี่ยวกับ API แบบฮาร์ดและ
แบบซอฟต์ที่เป็นส่วนสำคัญของความเข้ากันได้ รวมถึงลักษณะการทำงานทางเทคนิคและอินเทอร์เฟซผู้ใช้
อื่นๆ ที่เกี่ยวข้อง การติดตั้งใช้งานอุปกรณ์ต้องเป็นไปตามข้อกำหนดทั้งหมดในส่วนนี้
3.1. ความเข้ากันได้ของ Managed API
สภาพแวดล้อมการเรียกใช้ที่มีการจัดการ (Dalvik) เป็นแพลตฟอร์มหลักสําหรับแอปพลิเคชัน Android
Application Programming Interface (API) ของ Android คือชุดอินเทอร์เฟซแพลตฟอร์ม Android ที่แสดงต่อ
แอปพลิเคชันที่ทำงานในสภาพแวดล้อม VM ที่มีการจัดการ การใช้งานอุปกรณ์ต้องระบุ
การใช้งานที่สมบูรณ์ รวมถึงลักษณะการทำงานที่ระบุไว้ในเอกสารทั้งหมดของ API ที่ระบุไว้ในเอกสารซึ่ง Android
1.6 SDK แสดง เช่น
1. API หลักของ Android ที่เป็นภาษา Java [Resources, 5].
2. ผู้ให้บริการเนื้อหา [แหล่งข้อมูล, 6]
3. แหล่งข้อมูล [Resources, 7].
4. แอตทริบิวต์และองค์ประกอบ AndroidManifest.xml [แหล่งข้อมูล, 8]
การติดตั้งใช้งานอุปกรณ์ต้องไม่ละเว้น API ที่มีการจัดการ เปลี่ยนแปลงอินเทอร์เฟซหรือลายเซ็น API เบี่ยงเบน
จากลักษณะการทำงานที่ระบุไว้ หรือรวมการดำเนินการที่ไม่มีผล เว้นแต่จะได้รับอนุญาตโดยเจาะจงจากคำจำกัดความความเข้ากันได้
นี้
3.2. ความเข้ากันได้แบบ "ซอฟต์" ของ API
นอกเหนือจาก API ที่มีการจัดการจากส่วนที่ 3.1 แล้ว Android ยังมี API "ซอฟต์"
ที่สำคัญซึ่งทำงานเฉพาะรันไทม์ในรูปแบบของ Intent, สิทธิ์ และลักษณะอื่นๆ ที่คล้ายกันของแอปพลิเคชัน Android
ซึ่งไม่สามารถบังคับใช้ขณะคอมไพล์แอปพลิเคชันได้ ส่วนนี้แสดงรายละเอียด API "แบบซอฟต์" และลักษณะการทํางานของระบบ
ที่จําเป็นสําหรับความเข้ากันได้กับ Android 1.6 การติดตั้งใช้งานอุปกรณ์ต้องเป็นไปตาม
ข้อกำหนดทั้งหมดที่แสดงในส่วนนี้
3.2.1. สิทธิ์
ผู้ติดตั้งใช้งานอุปกรณ์ต้องรองรับและบังคับใช้ค่าคงที่ของสิทธิ์ทั้งหมดตามที่ระบุไว้ใน
หน้าอ้างอิงสิทธิ์ [แหล่งข้อมูล, 9] โปรดทราบว่าส่วนที่ 10 แสดงข้อกำหนดเพิ่มเติมที่เกี่ยวข้องกับ
โมเดลความปลอดภัยของ Android
3.2.2. พารามิเตอร์การสร้าง
API ของ Android มีค่าคงที่หลายรายการในคลาส android.os.Build [Resources, 10] ที่มี
ไว้เพื่ออธิบายอุปกรณ์ปัจจุบัน ตารางด้านล่างมีข้อจำกัดเพิ่มเติมเกี่ยวกับรูปแบบของค่าเหล่านี้ที่
การติดตั้งใช้งานอุปกรณ์ต้องเป็นไปตามข้อกำหนด เพื่อให้ค่าต่างๆ ที่สอดคล้องกันและสื่อความหมายใน
การติดตั้งใช้งานอุปกรณ์
พารามิเตอร์
ความคิดเห็น
เวอร์ชันของระบบ Android ที่ใช้งานอยู่ในปัจจุบันในรูปแบบที่มนุษย์อ่านได้
android.os.Build.VERSION.RELEASE
สำหรับ Android 1.6 ช่องนี้ต้องมีค่าสตริง
"1.6"
เวอร์ชันของระบบ Android ที่ทำงานอยู่ในปัจจุบันในรูปแบบ
android.os.Build.VERSION.SDK
ที่โค้ดแอปพลิเคชันของบุคคลที่สามเข้าถึงได้ สำหรับ Android 1.6 ช่องนี้
ต้องมีค่าจำนวนเต็มเป็น 4
ค่าที่นักติดตั้งใช้งานอุปกรณ์เลือกเพื่อระบุบิลด์ที่เฉพาะเจาะจง
ของระบบ Android ที่ใช้งานอยู่ในปัจจุบันในรูปแบบที่มนุษย์อ่านได้
ค่านี้ต้องไม่นําไปใช้ซ้ำกับบิลด์อื่นที่ส่งไปยังผู้ใช้ปลายทาง
android.os.Build.VERSION.INCREMENTAL การใช้งานทั่วไปของช่องนี้คือเพื่อระบุหมายเลขบิลด์หรือ
ตัวระบุการเปลี่ยนแปลงในระบบควบคุมแหล่งที่มาที่ใช้สร้างบิลด์
ไม่มีข้อกำหนดเกี่ยวกับรูปแบบที่เจาะจงของฟิลด์นี้ ยกเว้นว่า
ต้องไม่มีค่าเป็น Null หรือสตริงว่าง ("")
ค่าที่นักติดตั้งใช้งานอุปกรณ์เลือกเพื่อระบุฮาร์ดแวร์ภายในที่เจาะจง
ซึ่งอุปกรณ์ใช้ในรูปแบบที่มนุษย์อ่านได้ การใช้
android.os.Build.BOARD
ที่เป็นไปได้ของช่องนี้คือเพื่อระบุการแก้ไขที่เฉพาะเจาะจงของบอร์ดที่ขับเคลื่อน
อุปกรณ์ ฟิลด์นี้ไม่มีข้อกำหนดเฉพาะเกี่ยวกับรูปแบบ
ยกเว้นว่าต้องไม่มีค่าเป็น Null หรือสตริงว่าง ("")
ค่าที่ผู้ติดตั้งใช้งานอุปกรณ์เลือกเพื่อระบุชื่อ
android.os.Build.BRAND
บริษัท องค์กร บุคคลธรรมดา ฯลฯ ที่ผลิตอุปกรณ์
ในรูปแบบที่มนุษย์อ่านได้ การใช้ช่องนี้ที่เป็นไปได้คือเพื่อระบุ OEM
และ/หรือผู้ให้บริการที่ขายอุปกรณ์ ไม่มีข้อกำหนดเกี่ยวกับ
รูปแบบที่เจาะจงของฟิลด์นี้ ยกเว้นว่าต้องไม่มีค่าเป็น Null หรือเป็น
สตริงว่าง ("")
ค่าที่ผู้ติดตั้งใช้งานอุปกรณ์เลือกเพื่อระบุ
การกำหนดค่าหรือการแก้ไขที่เฉพาะเจาะจงของเนื้อหา (บางครั้งเรียกว่า "การออกแบบ
android.os.Build.DEVICE
อุตสาหกรรม") ของอุปกรณ์ ไม่มีการกําหนดรูปแบบที่เฉพาะเจาะจง
ของช่องนี้ ยกเว้นว่าต้องไม่มีค่าเป็น Null หรือสตริงว่าง ("")
สตริงที่ระบุบิลด์นี้โดยไม่ซ้ำกัน ควร
อ่านออกได้ โดยต้องเป็นไปตามเทมเพลตนี้
$(PRODUCT_BRAND)/$(PRODUCT_NAME)/$(PRODUCT_DEVICE)/
$(TARGET_BOOTLOADER_BOARD_NAME):$(PLATFORM_VERSION)/
$(BUILD_ID)/$(BUILD_NUMBER):$(TARGET_BUILD_VARIANT)/
android.os.Build.FINGERPRINT
$(BUILD_VERSION_TAGS)
ตัวอย่างเช่น acme/mydevicel/generic/generic:Donut/ERC77/
3359:userdebug/test-keys
ลายนิ้วมือต้องไม่มีเว้นวรรค หากฟิลด์อื่นๆ ที่รวมอยู่ใน
เทมเพลตด้านบนมีการเว้นวรรค คุณควรแทนที่ฟิลด์เหล่านั้นด้วยอักขระขีดล่าง
("_") ของ ASCII ในลายนิ้วมือ
สตริงที่ระบุโฮสต์ที่ใช้สร้างบิลด์ในลักษณะที่มนุษย์อ่านได้
android.os.Build.HOST
รูปแบบที่เจาะจงของ
ช่องนี้ไม่มีข้อกำหนด ยกเว้นว่าต้องไม่มีค่าเป็น Null หรือสตริงว่าง ("")
ตัวระบุที่ผู้ติดตั้งใช้งานอุปกรณ์เลือกเพื่ออ้างอิง
รุ่นที่เฉพาะเจาะจงในรูปแบบที่มนุษย์อ่านได้ ช่องนี้อาจเป็นค่าเดียวกับ
android.os.Build.VERSION.INCREMENTAL แต่ควรเป็นค่า
android.os.Build.ID
ที่มีไว้เพื่อให้ผู้ใช้ปลายทางทราบข้อมูลบางอย่าง ไม่มี
ข้อกำหนดเกี่ยวกับรูปแบบที่เฉพาะเจาะจงของช่องนี้ ยกเว้นว่าต้องไม่
เป็นค่า Null หรือสตริงว่าง ("")
ค่าที่นักติดตั้งใช้งานอุปกรณ์เลือกซึ่งมีชื่อของ
อุปกรณ์ตามที่ผู้ใช้ปลายทางทราบ ซึ่งควรเป็นชื่อเดียวกันกับ
android.os.Build.MODEL
ที่ใช้ในการทําการตลาดและขายอุปกรณ์แก่ผู้ใช้ปลายทาง ช่องนี้ไม่มี
ข้อกำหนดเกี่ยวกับรูปแบบที่เจาะจง ยกเว้นว่าต้องไม่
เป็นค่า Null หรือสตริงว่าง ("")
ค่าที่ผู้ติดตั้งใช้งานอุปกรณ์เลือกซึ่งมี
ชื่อหรือชื่อรหัสการพัฒนาของอุปกรณ์ ต้องอ่านออกได้ แต่ไม่จำเป็นต้อง
android.os.Build.PRODUCT
มีไว้ให้ผู้ใช้ปลายทางดู ไม่มีข้อกำหนด
เกี่ยวกับรูปแบบที่เจาะจงของช่องนี้ ยกเว้นว่าต้องไม่มีค่าเป็น Null หรือ
สตริงว่าง ("")
รายการแท็กที่คั่นด้วยคอมมาซึ่งผู้ติดตั้งใช้งานอุปกรณ์เลือกไว้เพื่อ
แยกความแตกต่างของบิลด์เพิ่มเติม เช่น "unsigned,debug" ฟิลด์นี้
android.os.Build.TAGS
ต้องไม่มีค่า Null หรือสตริงว่าง ("") แต่ใช้แท็กเดียว (เช่น
"release") ได้
android.os.Build.TIME
ค่าที่แสดงการประทับเวลาของเวลาที่บิลด์เกิดขึ้น
ค่าที่ผู้ติดตั้งใช้งานอุปกรณ์เลือกซึ่งระบุการกำหนดค่ารันไทม์
ของบิลด์ ช่องนี้ควรมีค่า
android.os.Build.TYPE
ซึ่งสอดคล้องกับการกำหนดค่ารันไทม์ Android ทั่วไป 3 รายการ ได้แก่ "user",
"userdebug" หรือ "eng"
ชื่อหรือรหัสผู้ใช้ของผู้ใช้ (หรือผู้ใช้อัตโนมัติ) ที่สร้าง
android.os.Build.USER
บิลด์ ไม่มีข้อกำหนดเกี่ยวกับรูปแบบที่เฉพาะเจาะจงของช่องนี้
ยกเว้นว่าต้องไม่มีค่า Null หรือสตริงว่าง ("")
3.2.3. ความเข้ากันได้ของ Intent
Android ใช้ Intent เพื่อผสานรวมแอปพลิเคชันอย่างหลวมๆ ส่วนนี้จะอธิบาย
ข้อกําหนดที่เกี่ยวข้องกับรูปแบบ Intent ที่การติดตั้งใช้งานอุปกรณ์ต้องปฏิบัติตาม คำว่า
"มีผล" หมายความว่าผู้ติดตั้งใช้งานอุปกรณ์ต้องระบุกิจกรรม บริการ หรือ
คอมโพเนนต์อื่นๆ ของ Android ที่ระบุตัวกรอง Intent ที่ตรงกันและเชื่อมโยงกับและใช้ลักษณะการทำงานที่ถูกต้องสำหรับ
รูปแบบ Intent ที่ระบุแต่ละรายการ
3.2.3.1. Intent ของแอปพลิเคชันหลัก
โปรเจ็กต์ Upstream ของ Android จะกำหนดแอปพลิเคชันหลักจำนวนหนึ่ง เช่น ตัวต่อสายโทรศัพท์ ปฏิทิน
สมุดรายชื่อติดต่อ เครื่องเล่นเพลง และอื่นๆ ผู้ติดตั้งใช้งานอุปกรณ์อาจแทนที่แอปพลิเคชันเหล่านี้ด้วย
เวอร์ชันอื่น
อย่างไรก็ตาม เวอร์ชันทางเลือกดังกล่าวต้องเป็นไปตามรูปแบบ Intent เดียวกันกับที่โปรเจ็กต์ต้นทาง
ระบุ (เช่น หากอุปกรณ์มีโปรแกรมเล่นเพลงอื่น อุปกรณ์ดังกล่าวยังคงต้องปฏิบัติตามรูปแบบ Intent
ที่แอปพลิเคชันของบุคคลที่สามออกให้เพื่อเลือกเพลง) การติดตั้งใช้งานอุปกรณ์ต้องรองรับรูปแบบ Intent ทั้งหมด
ที่ระบุไว้ในภาคผนวก ก
3.2.3.2. การลบล้าง Intent
เนื่องจาก Android เป็นแพลตฟอร์มที่ขยายได้ ผู้ติดตั้งใช้งานอุปกรณ์ต้องอนุญาตให้แอปพลิเคชันของบุคคลที่สามลบล้างรูปแบบ Intent แต่ละรูปแบบที่อธิบายไว้ใน
ภาคผนวก ก โปรเจ็กต์โอเพนซอร์สต้นทางของ Android
อนุญาตการดำเนินการนี้โดยค่าเริ่มต้น ผู้ติดตั้งใช้งานอุปกรณ์ต้องไม่แนบสิทธิ์พิเศษไว้กับ
การใช้รูปแบบ Intent เหล่านี้ของแอปพลิเคชันระบบ หรือป้องกันไม่ให้แอปพลิเคชันของบุคคลที่สามเชื่อมโยงและควบคุม
รูปแบบเหล่านี้ การห้ามนี้รวมถึงการปิดใช้อินเทอร์เฟซผู้ใช้ "เครื่องมือเลือก" โดยเฉพาะ ซึ่งช่วยให้
ผู้ใช้เลือกระหว่างแอปพลิเคชันหลายรายการที่จัดการรูปแบบ Intent เดียวกันได้
3.2.3.3. เนมสเปซ Intent
ผู้ติดตั้งใช้งานอุปกรณ์ต้องไม่รวมคอมโพเนนต์ Android ที่รองรับ Intent ใหม่หรือ
รูปแบบ Intent แบบออกอากาศโดยใช้สตริงคีย์ ACTION, CATEGORY หรืออื่นๆ ในเนมสเปซ android.*
ผู้ติดตั้งใช้งานอุปกรณ์ต้องไม่รวมคอมโพเนนต์ Android ที่รองรับ Intent ใหม่หรือ
รูปแบบ Intent แบบออกอากาศโดยใช้สตริงคีย์ ACTION, CATEGORY หรืออื่นๆ ในสเปซแพ็กเกจ
ขององค์กรอื่น ผู้ติดตั้งใช้งานอุปกรณ์ต้องไม่เปลี่ยนแปลงหรือขยาย
รูปแบบ Intent ที่ระบุไว้ในภาคผนวก ก หรือ ข
การห้ามนี้คล้ายกับการห้ามที่ระบุไว้สำหรับชั้นเรียนภาษา Java ในส่วน 3.6
3.2.3.4. ออกอากาศ Intent
แอปพลิเคชันของบุคคลที่สามอาศัยแพลตฟอร์มนี้เพื่อออกอากาศ Intent บางรายการเพื่อแจ้งให้ทราบถึงการเปลี่ยนแปลงใน
สภาพแวดล้อมฮาร์ดแวร์หรือซอฟต์แวร์ อุปกรณ์ที่ใช้ร่วมกับ Android ได้ต้องออกอากาศ
Intent แบบสาธารณะเพื่อตอบสนองต่อเหตุการณ์ของระบบที่เหมาะสม รายการ Intent การออกอากาศที่จําเป็นมีอยู่ใน
ภาคผนวก ข อย่างไรก็ตาม โปรดทราบว่า SDK อาจกําหนด Intent การออกอากาศเพิ่มเติม ซึ่งต้อง
ปฏิบัติตามด้วย
3.3. ความเข้ากันได้ของ API เดิม
โค้ดที่มีการจัดการซึ่งทำงานใน Dalvik สามารถเรียกใช้โค้ดแบบเนทีฟที่ระบุไว้ในไฟล์ .apk ของแอปพลิเคชันเป็นไฟล์ ELF
.so ที่คอมไพล์มาสำหรับสถาปัตยกรรมฮาร์ดแวร์ของอุปกรณ์ที่เหมาะสม การติดตั้งใช้งานอุปกรณ์ต้อง
รองรับโค้ดที่ทำงานในสภาพแวดล้อมที่มีการจัดการเพื่อเรียกใช้โค้ดเนทีฟ โดยใช้นิพจน์ของ
อินเทอร์เฟซเนทีฟ (JNI) มาตรฐานของ Java API ต่อไปนี้ต้องพร้อมใช้งานสำหรับโค้ดเนทีฟ
• libc (ไลบรารี C)
• libm (ไลบรารีคณิตศาสตร์)
• อินเทอร์เฟซ JNI
• libz (การบีบอัด Zlib)
• liblog (การบันทึกของ Android)
• การรองรับ C++ ขั้นต่ำ
• OpenGL ES 1.1
ไลบรารีเหล่านี้ต้องเข้ากันได้กับซอร์สโค้ด (กล่าวคือ เข้ากันได้กับส่วนหัว) และเข้ากันได้กับไบนารี (สำหรับ
สถาปัตยกรรมโปรเซสเซอร์หนึ่งๆ) กับเวอร์ชันที่โปรเจ็กต์โอเพนซอร์ส Android มีให้ใน Bionic เนื่องจาก
การติดตั้งใช้งาน Bionic ใช้งานร่วมกับการติดตั้งใช้งานอื่นๆ ไม่ได้อย่างเต็มรูปแบบ เช่น ไลบรารี GNU C
ผู้ติดตั้งใช้งานอุปกรณ์จึงควรใช้การติดตั้งใช้งาน Android หากผู้ติดตั้งใช้งานอุปกรณ์ใช้
การติดตั้งใช้งานไลบรารีเหล่านี้แบบอื่น ผู้ติดตั้งใช้งานต้องตรวจสอบความเข้ากันได้ของส่วนหัวและไบนารี
ความเข้ากันได้ของโค้ดเนทีฟเป็นเรื่องยาก ด้วยเหตุนี้ เราจึงขอย้ำว่าผู้ติดตั้งใช้งานอุปกรณ์
ควรใช้การติดตั้งใช้งานจากต้นทางของไลบรารีที่ระบุไว้ข้างต้นอย่างยิ่งเพื่อช่วย
รับประกันความเข้ากันได้
3.4. ความเข้ากันได้ของ Web API
นักพัฒนาแอปพลิเคชันและแอปพลิเคชันจำนวนมากใช้ลักษณะการทํางานของคลาส android.webkit.WebView [แหล่งข้อมูล,
11] สําหรับอินเทอร์เฟซผู้ใช้ ดังนั้นการติดตั้งใช้งาน WebView จึงต้องเข้ากันได้กับการใช้งาน Android
การใช้งาน Android Open Source ใช้เวอร์ชันเครื่องมือแสดงผล WebKit เพื่อ
ใช้งาน WebView
เนื่องจากการพัฒนาชุดทดสอบที่ครอบคลุมสำหรับเว็บเบราว์เซอร์นั้นไม่สามารถทำได้ ผู้ติดตั้งใช้งานอุปกรณ์
จึงต้องใช้บิลด์ WebKit เวอร์ชันอัปสตรีมเฉพาะในการใช้งาน WebView กล่าวโดยละเอียดคือ
• WebView ต้องใช้ WebKit เวอร์ชัน 528.5 ขึ้นไปจากต้นไม้ซอร์สโค้ดแบบเปิดของ Android สำหรับ
Android 1.6 บิลด์นี้มีชุดฟังก์ชันการทำงานและการแก้ไขด้านความปลอดภัยที่เฉพาะเจาะจงสำหรับ WebView
• สตริง User Agent ที่ WebView รายงานต้องอยู่ในรูปแบบนี้
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>" ต้องเหมือนกับค่าสำหรับ
android.os.Build.MODEL
◦ สตริง "<build ID>" ต้องเหมือนกับค่าสำหรับ android.os.Build.ID
◦ สตริง "<language>" และ "<country>" ควรเป็นไปตามรูปแบบทั่วไปสำหรับ
รหัสประเทศและภาษา และควรอ้างอิงถึงภาษาท้องถิ่นปัจจุบันของอุปกรณ์ ณ
เวลาที่ส่งคำขอ
การติดตั้งใช้งานอาจส่งสตริง User Agent ที่กําหนดเองในแอปพลิเคชันเบราว์เซอร์แบบสแตนด์อโลน นอกจากนี้
เบราว์เซอร์แบบสแตนด์อโลนอาจใช้เทคโนโลยีเบราว์เซอร์อื่น (เช่น Firefox,
Opera ฯลฯ) อย่างไรก็ตาม แม้ว่าจะมีการจัดส่งแอปพลิเคชันเบราว์เซอร์อื่น แต่คอมโพเนนต์ WebView
ที่ให้กับแอปพลิเคชันของบุคคลที่สามต้องอิงตาม WebKit ดังที่กล่าวไว้ข้างต้น
แอปพลิเคชันเบราว์เซอร์แบบสแตนด์อโลนควรรองรับ Gears [แหล่งข้อมูล, 12] และอาจ
รองรับ HTML5 บางส่วนหรือทั้งหมด
3.5. ความเข้ากันได้ของลักษณะการทํางานของ API
ลักษณะการทํางานของ API แต่ละประเภท (แบบจัดการ แบบซอฟต์ แบบเนทีฟ และแบบเว็บ) ต้องสอดคล้องกับ
การใช้งาน Android ที่แนะนำซึ่งพร้อมใช้งานจากโปรเจ็กต์โอเพนซอร์ส Android
ขอบเขตการทำงานร่วมกันที่เฉพาะเจาะจงบางอย่าง ได้แก่
• อุปกรณ์ต้องไม่เปลี่ยนแปลงลักษณะการทำงานหรือความหมายของ Intent มาตรฐาน
• อุปกรณ์ต้องไม่เปลี่ยนแปลงวงจรหรือความหมายของวงจรของคอมโพเนนต์ระบบบางประเภท
(เช่น Service, Activity, ContentProvider ฯลฯ)
• อุปกรณ์ต้องไม่เปลี่ยนความหมายของสิทธิ์หนึ่งๆ
รายการข้างต้นไม่ได้ครอบคลุมทั้งหมด และผู้ติดตั้งใช้งานอุปกรณ์มีหน้าที่ตรวจสอบความเข้ากันได้ของลักษณะการทำงาน
ด้วยเหตุนี้ ผู้ติดตั้งใช้งานอุปกรณ์จึงควรใช้ซอร์สโค้ดที่มีให้ผ่าน
โปรเจ็กต์โอเพนซอร์ส Android หากเป็นไปได้ แทนที่จะติดตั้งใช้งานส่วนสำคัญของระบบอีกครั้ง
ชุดเครื่องมือทดสอบความเข้ากันได้ (CTS) จะทดสอบแพลตฟอร์มส่วนใหญ่เพื่อหาความเข้ากันได้ของลักษณะการทำงาน
แต่ไม่ใช่ทั้งหมด ผู้ติดตั้งใช้งานมีหน้าที่รับผิดชอบในการตรวจสอบความเข้ากันได้ของลักษณะการทำงานกับ
โปรเจ็กต์โอเพนซอร์สของ Android
3.6. เนมสเปซของ API
Android เป็นไปตามรูปแบบเนมสเปซของแพ็กเกจและคลาสที่ภาษาโปรแกรม Java กำหนด
ผู้ติดตั้งใช้งานอุปกรณ์ต้องไม่ทำ
การแก้ไขที่ไม่ได้รับอนุญาต (ดูด้านล่าง) กับเนมสเปซของแพ็กเกจเหล่านี้
เพื่อรับประกันความเข้ากันได้กับแอปพลิเคชันของบุคคลที่สาม
• java.*
• javax.*
• sun.*
• android.*
• com.android.*
การแก้ไขที่ไม่ได้รับอนุญาต ได้แก่
• การติดตั้งใช้งานอุปกรณ์ต้องไม่แก้ไข API ที่เผยแพร่แบบสาธารณะบนแพลตฟอร์ม Android
โดยการเปลี่ยนลายเซ็นเมธอดหรือคลาส หรือการนำคลาสหรือช่องคลาสออก
• ผู้ติดตั้งใช้งานอุปกรณ์อาจแก้ไขการใช้งาน API พื้นฐานได้ แต่
การแก้ไขดังกล่าวต้องไม่ส่งผลต่อลักษณะการทำงานที่ระบุและลายเซ็นภาษา Java ของ API ที่เปิดเผยต่อสาธารณะ
• ผู้ติดตั้งใช้งานอุปกรณ์ต้องไม่เพิ่มองค์ประกอบที่เปิดเผยต่อสาธารณะ (เช่น คลาสหรืออินเทอร์เฟซ หรือฟิลด์หรือเมธอดในคลาสหรืออินเทอร์เฟซที่มีอยู่) ลงใน API ข้างต้น
"องค์ประกอบที่เปิดเผยต่อสาธารณะ" คือองค์ประกอบใดก็ตามที่ไม่ได้ตกแต่งด้วยเครื่องหมาย "@hide" ใน
ซอร์สโค้ด Android ต้นทาง กล่าวคือ ผู้ติดตั้งใช้งานอุปกรณ์ต้องไม่เปิดเผย API ใหม่หรือ
แก้ไข API ที่มีอยู่ในพื้นที่ชื่อที่ระบุไว้ข้างต้น ผู้ติดตั้งใช้งานอุปกรณ์อาจทำการแก้ไข
ภายในเท่านั้น แต่ต้องไม่โฆษณาหรือเปิดเผยการแก้ไขเหล่านั้นต่อนักพัฒนาแอป
ผู้ติดตั้งใช้งานอุปกรณ์อาจเพิ่ม API ที่กําหนดเองได้ แต่ API ดังกล่าวต้องไม่อยู่ในเนมสเปซที่องค์กรอื่นเป็นเจ้าของ
หรืออ้างอิงถึง ตัวอย่างเช่น ผู้ติดตั้งใช้งานอุปกรณ์ต้องไม่เพิ่ม API ลงในเนมสเปซ
com.google.* หรือเนมสเปซที่คล้ายกัน มีเพียง Google เท่านั้นที่เพิ่ม API ได้ ในทำนองเดียวกัน Google ต้องไม่เพิ่ม API ลงในเนมสเปซของ
บริษัทอื่นๆ
หากผู้ติดตั้งใช้งานอุปกรณ์เสนอที่จะปรับปรุงเนมสเปซแพ็กเกจใดแพ็กเกจหนึ่งข้างต้น (เช่น การเพิ่ม
ฟังก์ชันการทำงานใหม่ที่มีประโยชน์ลงใน API ที่มีอยู่ หรือเพิ่ม API ใหม่) ผู้ติดตั้งใช้งานควรไปที่
source.android.com และเริ่มกระบวนการมีส่วนร่วมในการเปลี่ยนแปลงและโค้ดตาม
ข้อมูลในเว็บไซต์ดังกล่าว
โปรดทราบว่าข้อจำกัดข้างต้นสอดคล้องกับแบบแผนมาตรฐานในการตั้งชื่อ API ในภาษาโปรแกรม Java
ส่วนนี้มีจุดประสงค์เพียงเพื่อเสริมแบบแผนเหล่านั้นและทำให้แบบแผนเหล่านั้นมีผลผูกพัน
ผ่านการรวมไว้ในคำจำกัดความความเข้ากันได้นี้
3.7. ความเข้ากันได้กับเครื่องเสมือน
อุปกรณ์ Android ที่เข้ากันได้ต้องรองรับข้อกำหนดไบต์โค้ด Dalvik Executable (DEX) แบบเต็มและ
ความหมายของเครื่องเสมือน Dalvik [แหล่งข้อมูล, 13]
3.8. ความเข้ากันได้ของอินเทอร์เฟซผู้ใช้
แพลตฟอร์ม Android มี API สําหรับนักพัฒนาแอปบางรายการที่ช่วยให้นักพัฒนาแอปสามารถเชื่อมต่อกับอินเทอร์เฟซผู้ใช้
ของระบบได้ การติดตั้งใช้งานอุปกรณ์ต้องรวม API มาตรฐานของ UI เหล่านี้ไว้ในอินเทอร์เฟซผู้ใช้ที่กําหนดเอง
ที่พัฒนาขึ้น ตามที่อธิบายไว้ด้านล่าง
3.8.1. วิดเจ็ต
Android กําหนดประเภทคอมโพเนนต์และ API ที่เกี่ยวข้อง รวมถึงวงจรชีวิตของคอมโพเนนต์ ซึ่งช่วยให้แอปพลิเคชันแสดง
"AppWidget" ต่อผู้ใช้ปลายทางได้ [แหล่งข้อมูล, 14] รุ่นอ้างอิงแบบโอเพนซอร์สของ Android มีแอปพลิเคชัน
Launcher ที่มีองค์ประกอบอินเทอร์เฟซผู้ใช้ซึ่งช่วยให้ผู้ใช้เพิ่ม ดู และนำ
วิดเจ็ตแอปออกจากหน้าจอหลักได้
ผู้ติดตั้งใช้งานอุปกรณ์อาจใช้ Launcher อื่นแทน Launcher อ้างอิง (เช่น หน้าจอหลัก)
Launcher อื่นควรรองรับ App Widgets ในตัว และแสดงองค์ประกอบอินเทอร์เฟซผู้ใช้
เพื่อเพิ่ม ดู และนำ App Widgets ออกภายใน Launcher โดยตรง โปรแกรมเปิดใช้งานทางเลือกอาจ
ละเว้นองค์ประกอบอินเทอร์เฟซผู้ใช้เหล่านี้ได้ อย่างไรก็ตาม หากละเว้น ผู้ติดตั้งใช้งานอุปกรณ์ต้องจัดหา
แอปพลิเคชันแยกต่างหากที่เข้าถึงได้จากโปรแกรมเปิดใช้งาน ซึ่งช่วยให้ผู้ใช้เพิ่ม ดู และนำ
App Widgets ออกได้
3.8.2 การแจ้งเตือน
Android มี API ที่ช่วยนักพัฒนาแอปแจ้งผู้ใช้เกี่ยวกับเหตุการณ์สำคัญ [แหล่งข้อมูล, 15] ผู้ติดตั้ง
อุปกรณ์ต้องรองรับการแจ้งเตือนแต่ละคลาสตามที่ระบุไว้ โดยเฉพาะเสียง
การสั่น ไฟ และแถบสถานะ
นอกจากนี้ การใช้งานต้องแสดงผลอย่างถูกต้องและแหล่งข้อมูลทั้งหมด (ไอคอน ไฟล์เสียง ฯลฯ)
ต้องเป็นไปตามที่ระบุไว้ใน API [แหล่งข้อมูล 7] หรือในคู่มือสไตล์ไอคอนแถบสถานะ [แหล่งข้อมูล 16]
ผู้ติดตั้งใช้งานอุปกรณ์อาจมอบประสบการณ์การใช้งานการแจ้งเตือนทางเลือกแก่ผู้ใช้นอกเหนือจากที่ได้จาก
การใช้งาน Android Open Source อ้างอิง แต่ระบบการแจ้งเตือนระบบอื่นดังกล่าวต้อง
รองรับแหล่งข้อมูลการแจ้งเตือนที่มีอยู่ดังที่ระบุไว้ข้างต้น
3.8.3. Search
Android มี API [แหล่งข้อมูล, 17] ที่ช่วยนักพัฒนาแอปผสานรวมการค้นหาเข้ากับแอปพลิเคชัน
และแสดงข้อมูลแอปพลิเคชันในการค้นหาระบบทั่วโลก โดยทั่วไปแล้ว ฟังก์ชันการทำงานนี้
ประกอบด้วยอินเทอร์เฟซผู้ใช้แบบรวมทั่วทั้งระบบที่ช่วยให้ผู้ใช้ป้อนข้อความค้นหา แสดงคำแนะนำ
ขณะที่ผู้ใช้พิมพ์ และแสดงผลลัพธ์ Android API ช่วยให้นักพัฒนาแอปนําอินเทอร์เฟซนี้ไปใช้ซ้ำเพื่อให้บริการ
การค้นหาภายในแอปของตนเอง และช่วยให้นักพัฒนาแอประบุผลการค้นหาไปยังอินเทอร์เฟซ
การค้นหาทั่วโลกที่ผู้ใช้ทั่วไปเข้าถึงได้
การติดตั้งใช้งานในอุปกรณ์ต้องมีอินเทอร์เฟซผู้ใช้การค้นหาแบบแชร์ทั่วทั้งระบบรายการเดียวที่ทำได้
การแนะนำแบบเรียลไทม์เพื่อตอบสนองต่ออินพุตของผู้ใช้ การติดตั้งใช้งานอุปกรณ์ต้องใช้ API ที่
อนุญาตให้นักพัฒนาแอปนำอินเทอร์เฟซผู้ใช้นี้ไปใช้ซ้ำเพื่อให้บริการค้นหาภายในแอปพลิเคชันของตนเอง
การติดตั้งใช้งานในอุปกรณ์ต้องใช้ API ที่อนุญาตให้แอปพลิเคชันของบุคคลที่สามเพิ่มคำแนะนำ
ลงในช่องค้นหาเมื่อทำงานในโหมดการค้นหาทั่วโลก หากไม่ได้ติดตั้งแอปพลิเคชันของบุคคลที่สามที่
ใช้ประโยชน์จากฟังก์ชันการทำงานนี้ ลักษณะการทำงานเริ่มต้นควรแสดงผลการค้นหาของเครื่องมือค้นหาบนเว็บและ
คำแนะนำ
การติดตั้งใช้งานในอุปกรณ์อาจมาพร้อมกับอินเทอร์เฟซผู้ใช้การค้นหาอื่น แต่ควรมีปุ่มค้นหาโดยเฉพาะแบบฮาร์ดหรือซอฟต์
ซึ่งสามารถใช้งานได้ทุกเมื่อภายในแอปใดก็ได้เพื่อเรียกใช้เฟรมเวิร์กการค้นหา
โดยมีลักษณะการทำงานตามที่ระบุไว้ในเอกสารประกอบ API
3.8.4. ข้อความแจ้ง
แอปพลิเคชันสามารถใช้ "Toast" API (ตามที่ระบุไว้ใน [แหล่งข้อมูล, 18]) เพื่อแสดงสตริงแบบไม่โมดัลสั้นๆ แก่
ผู้ใช้ปลายทาง ซึ่งจะหายไปหลังจากผ่านไประยะหนึ่ง การติดตั้งใช้งานอุปกรณ์ต้องแสดงข้อความแจ้งจาก
แอปพลิเคชันต่อผู้ใช้ปลายทางในลักษณะที่มองเห็นได้ชัดเจน
4. อ้างอิงความเข้ากันได้ของซอฟต์แวร์
ผู้ติดตั้งใช้งานอุปกรณ์ต้องทดสอบความเข้ากันได้ของการติดตั้งใช้งานโดยใช้แอปพลิเคชันโอเพนซอร์สต่อไปนี้
• เครื่องคิดเลข (รวมอยู่ใน SDK)
• Lunar Lander (รวมอยู่ใน SDK)
• ApiDemos (รวมอยู่ใน SDK)
• แอปพลิเคชัน "แอปสำหรับ Android" [แหล่งข้อมูล, 19]
แอปแต่ละรายการข้างต้นต้องเปิดและทำงานอย่างถูกต้องในการติดตั้งใช้งาน เพื่อให้การติดตั้งใช้งาน
ถือว่าเข้ากันได้
5. ความเข้ากันได้ของแพ็กเกจแอปพลิเคชัน
การติดตั้งใช้งานอุปกรณ์ต้องติดตั้งและเรียกใช้ไฟล์ ".apk" ของ Android ตามที่เครื่องมือ "aapt" สร้างขึ้น
ซึ่งรวมอยู่ใน Android SDK อย่างเป็นทางการ [แหล่งข้อมูล, 20]
การติดตั้งใช้งานอุปกรณ์ต้องไม่ขยายรูปแบบ .apk, Android Manifest หรือ Dalvik Bytecode
ในลักษณะที่ทําให้ติดตั้งและเรียกใช้ไฟล์เหล่านั้นในอุปกรณ์อื่นๆ
ที่เข้ากันได้อย่างไม่ถูกต้อง ผู้ติดตั้งใช้งานอุปกรณ์ควรใช้การติดตั้งใช้งาน Dalvik บนฝั่งต้นทางตามข้อมูลอ้างอิง
และระบบการจัดการแพ็กเกจของการติดตั้งใช้งานตามข้อมูลอ้างอิง
6. ความเข้ากันได้ของมัลติมีเดีย
อุปกรณ์ Android ที่ใช้ร่วมกันได้ต้องรองรับตัวแปลงรหัสมัลติมีเดียต่อไปนี้ โปรแกรมเปลี่ยนไฟล์ทั้งหมดเหล่านี้
มีให้ใช้งานเป็นการใช้งานซอฟต์แวร์ในการใช้งาน Android ที่ต้องการจากโครงการโอเพนซอร์ส Android [แหล่งข้อมูล, 4]
โปรดทราบว่าทั้ง Google และ Open Handset Alliance ไม่ได้รับรองว่า
ตัวแปลงรหัสเหล่านี้ไม่อยู่ภายใต้สิทธิบัตรของบุคคลที่สาม ผู้ที่ตั้งใจจะใช้ซอร์สโค้ดนี้ในฮาร์ดแวร์หรือ
ผลิตภัณฑ์ซอฟต์แวร์ควรทราบว่าการใช้งานโค้ดนี้ ซึ่งรวมถึงในซอฟต์แวร์โอเพนซอร์สหรือ
แชร์แวร์ อาจต้องใช้ใบอนุญาตสิทธิบัตรจากผู้ถือสิทธิบัตรที่เกี่ยวข้อง
ชื่อ
รายละเอียดตัวเข้ารหัส/ตัวถอดรหัส
ไฟล์ที่รองรับ
เนื้อหาโมโน/สเตอริโอใน
3GPP (.3gp) และ
ชุดค่าผสมของอัตราบิตมาตรฐาน
MPEG-4 (.mp4, .m4a)
AAC LC/LTP
X
สูงสุด 160 Kbps และไฟล์อัตราตัวอย่าง ไม่รองรับเนื้อหาแบบ RAW
ระหว่าง 8 ถึง 48 kHz
AAC (.aac)
โมโน/สเตอริโอใน
3GPP (.3gp) และ
HE-AACv1
การผสมผสานอัตราบิตมาตรฐาน
MPEG-4 (.mp4, .m4a)
X
(AAC+)
สูงสุด 96 Kbps และไฟล์อัตราตัวอย่าง ไม่รองรับเนื้อหาแบบ RAW
ระหว่าง 8 ถึง 48 kHz
AAC (.aac)
โมโน/สเตอริโอใน
HE-AACv2
3GPP (.3gp) และ
การผสมผสานของอัตราบิตมาตรฐาน
(ปรับปรุง
MPEG-4 (.mp4, .m4a)
X
สูงสุด 96 Kbps และอัตราตัวอย่าง
AAC+)
ไม่รองรับไฟล์ RAW
ระหว่าง 8 ถึง 48kHz
AAC (.aac)
AMR-NB
4.75 ถึง 12.2 kbps ที่อัตราตัวอย่าง
ไฟล์ 3GPP (.3gp)
X
X
8kHz
AMR-WB
9 อัตราตั้งแต่ 6.60 kbit/s ถึง 23.85
- ไฟล์ 3GPP (.3gp)
X
kbit/s ที่อัตราตัวอย่าง 16kHz
MP3
ไฟล์ MP3 (.mp3) แบบคงที่ 8-320 Kbps แบบโมโน/สเตอริโอ
X
(CBR) หรืออัตราบิตแบบผันแปร (VBR)
ประเภท 0 และ 1 (.mid, .xmf
MIDI ประเภท 0 และ 1 DLS เวอร์ชัน 1
MIDI
X
.mxmf) และ RTTTL/RTX
และ 2 XMF และ Mobile XMF
(.rtttl, .rtx), OTA (.ota),
การรองรับรูปแบบริงโทน
และ iMelody (.imy)
RTTTL/RTX, OTA และ iMelody
Ogg Vorbis
.ogg
X
PCM แบบเชิงเส้น 8 และ 16 บิต (อัตราสูงสุด
PCM
X
WAVE
ตามขีดจำกัดของฮาร์ดแวร์)
รูปภาพ
ไฟล์
ชื่อ
รายละเอียดเกี่ยวกับโปรแกรมเปลี่ยนไฟล์
รองรับ
JPEG
X
X
base+progressive
GIF
X
PNG
X
X
BMP
X
วิดีโอ
ไฟล์
ชื่อ
รายละเอียดเกี่ยวกับโปรแกรมเปลี่ยนไฟล์
รองรับ
3GPP (.3gp)
H.263
X
X
ไฟล์
3GPP (.3gp)
H.264
X
และ MPEG-4
(.mp4)
MPEG4
X
ไฟล์ 3GPP (.3gp)
SP
7. ความเข้ากันได้ของเครื่องมือสําหรับนักพัฒนาแอป
การติดตั้งใช้งานอุปกรณ์ต้องรองรับเครื่องมือสําหรับนักพัฒนาแอป Android ที่มีให้ใน Android SDK
โดยเฉพาะอย่างยิ่ง อุปกรณ์ที่เข้ากันได้กับ Android ต้องเข้ากันได้กับ
• Android Debug Bridge หรือ adb [แหล่งข้อมูล, 21]
การติดตั้งใช้งานอุปกรณ์ต้องรองรับฟังก์ชัน adb ทั้งหมดตามที่ระบุไว้ในเอกสารประกอบของ Android
SDK Damon ของ adb ฝั่งอุปกรณ์ควรไม่ทำงานโดยค่าเริ่มต้น แต่ต้องมีกลไกที่ผู้ใช้
เข้าถึงได้เพื่อเปิด Android Debug Bridge
• Dalvik Debug Monitor Service หรือ ddms [แหล่งข้อมูล, 22]
การติดตั้งใช้งานอุปกรณ์ต้องรองรับฟีเจอร์ ddms ทั้งหมดตามที่ระบุไว้ใน Android SDK
เนื่องจาก ddms ใช้ adb การรองรับ ddms จึงควรปิดอยู่โดยค่าเริ่มต้น แต่ต้องรองรับ
เมื่อใดก็ตามที่ผู้ใช้เปิดใช้งาน Android Debug Bridge ตามที่ระบุไว้ข้างต้น
• Monkey [แหล่งข้อมูล, 23]
การติดตั้งใช้งานอุปกรณ์ต้องมีเฟรมเวิร์ก Monkey และทำให้
แอปพลิเคชันใช้งานได้
8. ความเข้ากันได้ของฮาร์ดแวร์
Android มีไว้เพื่อรองรับผู้ติดตั้งใช้งานอุปกรณ์ที่สร้างสรรค์รูปแบบและการกำหนดค่าที่แปลกใหม่
ในขณะเดียวกัน นักพัฒนาแอป Android ก็คาดหวังฮาร์ดแวร์ เซ็นเซอร์ และ API บางรายการในอุปกรณ์ Android
ทั้งหมด ส่วนนี้จะแสดงรายการฟีเจอร์ฮาร์ดแวร์ที่อุปกรณ์ Android 1.6 ทั้งหมดที่ใช้งานร่วมกันได้ต้องรองรับ ใน
Android 1.6 คุณต้องใช้ฟีเจอร์ฮาร์ดแวร์ส่วนใหญ่ (เช่น Wi-Fi, เข็มทิศ และเซ็นเซอร์ความเร่ง)
หากอุปกรณ์มีส่วนประกอบฮาร์ดแวร์บางอย่างที่มี API ที่เกี่ยวข้องสำหรับนักพัฒนาแอปบุคคลที่สาม
การใช้งานอุปกรณ์ต้องใช้ API นั้นตามที่ระบุไว้ในเอกสารประกอบของ Android SDK
8.1. การแสดงผล
Android 1.6 มีเครื่องมือที่ดำเนินการปรับขนาดและการเปลี่ยนรูปแบบอัตโนมัติในบางกรณี
เพื่อให้มั่นใจว่าแอปพลิเคชันของบุคคลที่สามจะทำงานได้ดีพอสมควรในการกำหนดค่าฮาร์ดแวร์
ที่ไม่ได้ออกแบบมาโดยเฉพาะ[แหล่งข้อมูล, 24] อุปกรณ์ต้อง
ใช้ลักษณะการทำงานเหล่านี้อย่างถูกต้องตามที่ระบุไว้ในส่วนนี้
8.1.1. การกําหนดค่าการแสดงผลมาตรฐาน
ตารางนี้แสดงการกําหนดค่าหน้าจอมาตรฐานที่ถือว่าเข้ากันได้กับ Android
แนวทแยง
ขนาดหน้าจอ
ความหนาแน่นของหน้าจอ
ประเภทหน้าจอ
ความกว้าง (พิกเซล)
ความสูง (พิกเซล)
ช่วงความยาว
กลุ่ม
กลุ่ม
(นิ้ว)
QVGA
240
320
2.6 - 3.0
เล็ก
ต่ำ
WQVGA
240
400
3.2 - 3.5
ปกติ
ต่ำ
FWQVGA
240
432
3.5 - 3.8
ปกติ
ต่ำ
HVGA
320
480
3.0 - 3.5
ปกติ
กลาง
WVGA
480
800
3.3 - 4.0
ปกติ
สูง
FWVGA
480
854
3.5 - 4.0
ปกติ
สูง
WVGA
480
800
4.8 - 5.5
ใหญ่
กลาง
FWVGA
480
854
5.0 - 5.8
ใหญ่
กลาง
การติดตั้งใช้งานอุปกรณ์ที่สอดคล้องกับการกำหนดค่ามาตรฐานข้อใดข้อหนึ่งข้างต้นต้องได้รับการกำหนดค่า
เพื่อรายงานขนาดหน้าจอที่ระบุไปยังแอปพลิเคชันผ่านคลาส android.content.res.Configuration [Resources,
25]
แพ็กเกจ .apk บางรายการมีไฟล์ Manifest ที่ไม่ได้ระบุว่ารองรับช่วงความหนาแน่นที่เฉพาะเจาะจง
เมื่อเรียกใช้แอปพลิเคชันดังกล่าว ข้อจำกัดต่อไปนี้จะมีผล
• การติดตั้งใช้งานอุปกรณ์ต้องตีความทรัพยากรที่มีอยู่เป็นค่าเริ่มต้นเป็น
"medium" (เรียกว่า "mdpi" ในเอกสารประกอบ SDK)
• เมื่อใช้งานบนหน้าจอที่มีความหนาแน่น "ต่ำ" การติดตั้งใช้งานอุปกรณ์ต้องปรับขนาดชิ้นงานขนาดกลาง/
mdpi ลง 0.75 เท่า
• เมื่อใช้งานบนหน้าจอที่มีความหนาแน่น "สูง" การติดตั้งใช้งานอุปกรณ์ต้องปรับขนาดชิ้นงานขนาดกลาง/
mdpi ขึ้น 1.5 เท่า
• การติดตั้งใช้งานอุปกรณ์ต้องไม่ปรับขนาดชิ้นงานภายในช่วงความหนาแน่น และจะต้องปรับขนาด
ชิ้นงานตามปัจจัยเหล่านี้ระหว่างช่วงความหนาแน่น
8.1.2. การกําหนดค่าการแสดงผลที่ไม่ใช่มาตรฐาน
การกําหนดค่าการแสดงผลที่ไม่ตรงกับการกําหนดค่ามาตรฐานรายการใดรายการหนึ่งตามที่ระบุไว้ในส่วนที่ 8.2.1
ต้องได้รับการพิจารณาเพิ่มเติมและทํางานให้เข้ากันได้ ผู้ติดตั้งใช้งานอุปกรณ์ต้องติดต่อ
ทีมความเข้ากันได้ของ Android ตามที่ระบุไว้ในส่วนที่ 12 เพื่อขอรับการจัดประเภทสำหรับกลุ่มขนาดหน้าจอ ความหนาแน่น
และปัจจัยที่มีผลต่อขนาด เมื่อระบุข้อมูลนี้ การติดตั้งใช้งานอุปกรณ์ต้องใช้ข้อมูลดังกล่าว
ตามที่ระบุ
โปรดทราบว่าการกำหนดค่าการแสดงผลบางอย่าง (เช่น หน้าจอขนาดใหญ่มากหรือเล็กมาก และอัตราส่วนภาพบางอัตราส่วน)
เข้ากันไม่ได้กับ Android 1.6 โดยพื้นฐาน ดังนั้นเราขอแนะนำให้ผู้ติดตั้งใช้งานอุปกรณ์
ติดต่อทีมความเข้ากันได้ของ Android ในช่วงต้นของกระบวนการพัฒนา
8.1.3. เมตริกการแสดงผล
การติดตั้งใช้งานอุปกรณ์ต้องรายงานค่าที่ถูกต้องสำหรับเมตริกการแสดงผลทั้งหมดที่กําหนดไว้ใน
android.util.DisplayMetrics [Resources, 26]
8.2. แป้นพิมพ์
การติดตั้งใช้งานในอุปกรณ์:
• ต้องรองรับเฟรมเวิร์กการจัดการอินพุต (ซึ่งช่วยให้นักพัฒนาแอปบุคคลที่สามสร้างเครื่องมือจัดการอินพุตได้ เช่น แป้นพิมพ์เสมือนจริง) ตามที่ระบุไว้อย่างละเอียดใน
developer.android.com
• ต้องมีการติดตั้งใช้งานแป้นพิมพ์เสมือนจริงอย่างน้อย 1 รายการ (ไม่ว่าจะมีแป้นพิมพ์จริงหรือไม่ก็ตาม)
• อาจติดตั้งใช้งานแป้นพิมพ์เสมือนจริงเพิ่มเติม
• อาจติดตั้งใช้งานแป้นพิมพ์ฮาร์ดแวร์
• ต้องไม่มีแป้นพิมพ์ฮาร์ดแวร์ที่ไม่ตรงกับรูปแบบใดรูปแบบหนึ่งที่ระบุไว้ใน android.content.res.Configuration [Resources, 25] (นั่นคือ QWERTY หรือ 12 ปุ่ม)
8.3.
การนําทางแบบไม่สัมผัส
การติดตั้งใช้งานอุปกรณ์:
• อาจละเว้นตัวเลือกการนําทางแบบไม่สัมผัส (กล่าวคือ อาจละเว้นแทร็กบอล แป้นบังคับทิศทาง 5 ทิศทาง หรือ
ล้อ)
• ต้องรายงานค่าที่ถูกต้องสําหรับฮาร์ดแวร์ของ
อุปกรณ์ผ่าน android.content.res.Configuration [Resources, 25]
8.4. การวางแนวหน้าจอ
อุปกรณ์ที่เข้ากันได้ต้องรองรับการวางแนวแบบไดนามิกตามแอปพลิเคชันเป็นการวางแนวหน้าจอแนวตั้งหรือแนวนอน
กล่าวคือ อุปกรณ์ต้องปฏิบัติตามคำขอของแอปพลิเคชันสำหรับ
การวางแนวหน้าจอที่เจาะจง การติดตั้งใช้งานอุปกรณ์อาจเลือกการวางแนวแนวตั้งหรือแนวนอนเป็นค่าเริ่มต้น
อุปกรณ์ต้องรายงานค่าที่ถูกต้องสำหรับการวางแนวปัจจุบันของอุปกรณ์ทุกครั้งที่มีการค้นหาผ่าน
android.content.res.Configuration.orientation, android.view.Display.getOrientation() หรือ API อื่นๆ
8.5. อินพุตหน้าจอสัมผัส
การติดตั้งใช้งานอุปกรณ์:
• ต้องมีหน้าจอสัมผัส
• อาจมีหน้าจอสัมผัสแบบ Capacitive หรือ Resistive
• ต้องรายงานค่าของ android.content.res.Configuration [Resources, 25] ซึ่งแสดง
สอดคล้องกับประเภทของหน้าจอสัมผัสที่เฉพาะเจาะจงในอุปกรณ์
8.6. USB
การใช้งานอุปกรณ์:
• ต้องใช้ไคลเอ็นต์ USB ที่เชื่อมต่อกับโฮสต์ USB ด้วยพอร์ต USB-A มาตรฐาน
• ต้องใช้ Android Debug Bridge ผ่าน USB (ตามที่อธิบายไว้ในส่วนที่ 7)
• ต้องใช้ไคลเอ็นต์อุปกรณ์เก็บข้อมูลขนาดใหญ่ USB สำหรับอุปกรณ์เก็บข้อมูลแบบถอดออกได้/สื่อที่มีอยู่ใน
อุปกรณ์
• ควรใช้รูปแบบของอุปกรณ์แบบ micro USB ฝั่งอุปกรณ์
• ควรรองรับข้อกำหนดเฉพาะของอุปกรณ์เก็บข้อมูลขนาดใหญ่ USB (เพื่อให้สามารถเข้าถึงอุปกรณ์เก็บข้อมูลแบบถอดออกได้
หรือแบบติดตั้งถาวรในอุปกรณ์จาก PC โฮสต์ได้)
• อาจมีพอร์ตที่ไม่ใช่มาตรฐานฝั่งอุปกรณ์ แต่หากเป็นเช่นนั้น อุปกรณ์ต้องมาพร้อมกับสายที่เชื่อมต่อกับขั้วต่อที่กำหนดเองกับพอร์ต USB-A มาตรฐานได้
8.7.
ปุ่มการนําทาง
ฟังก์ชันหน้าแรก เมนู และย้อนกลับเป็นฟังก์ชันสําคัญของรูปแบบการนําทางของ Android การติดตั้งใช้งาน
อุปกรณ์ต้องทำให้ฟังก์ชันเหล่านี้พร้อมใช้งานสำหรับผู้ใช้ตลอดเวลา ไม่ว่าสถานะ
แอปพลิเคชันจะเป็นอย่างไรก็ตาม คุณควรใช้ฟังก์ชันเหล่านี้ผ่านปุ่มเฉพาะ อาจมีการใช้งาน
โดยใช้ซอฟต์แวร์ ท่าทางสัมผัส แผงสัมผัส ฯลฯ แต่หากเป็นเช่นนั้น ฟีเจอร์ดังกล่าวต้องเข้าถึงได้เสมอ และไม่บดบังหรือ
รบกวนพื้นที่แสดงผลแอปพลิเคชันที่มีอยู่
ผู้ติดตั้งใช้งานอุปกรณ์ควรระบุคำค้นหาเฉพาะด้วย ผู้ติดตั้งใช้งานอุปกรณ์อาจ
ระบุคีย์ส่งและสิ้นสุดสำหรับการโทรด้วย
8.8. Wi-Fi
การติดตั้งใช้งานอุปกรณ์ต้องรองรับ 802.11b และ 802.11g และอาจรองรับ 802.11a
8.9. กล้อง
การติดตั้งใช้งานอุปกรณ์ต้องมีกล้อง กล้องที่ให้มา
• ต้องมีความละเอียดอย่างน้อย 2 ล้านพิกเซล
• ควรมีโฟกัสอัตโนมัติแบบฮาร์ดแวร์หรือซอฟต์แวร์ในกล้อง
ไดรเวอร์ (ทำงานร่วมกับซอฟต์แวร์แอปพลิเคชัน)
• อาจมีฮาร์ดแวร์โฟกัสคงที่หรือ EDOF (ระยะชัดลึกแบบขยาย)
• อาจมีแฟลช หากกล้องมีแฟลช หลอดไฟแฟลชต้องไม่ติดสว่างขณะที่ลงทะเบียนอินสแตนซ์
android.hardware.Camera.PreviewCallback บน
พื้นผิวการแสดงตัวอย่างของกล้อง
การติดตั้งใช้งานอุปกรณ์ต้องใช้ลักษณะการทำงานต่อไปนี้สําหรับ API ที่เกี่ยวข้องกับกล้อง
[แหล่งข้อมูล, 27]
1. หากแอปพลิเคชันไม่เคยเรียกใช้ android.hardware.Camera.Parameters.setPreviewFormat(int)
อุปกรณ์ต้องใช้ android.hardware.PixelFormat.YCbCr_420_SP สำหรับข้อมูลพรีวิว
ที่ส่งไปยังการเรียกกลับของแอปพลิเคชัน
2. หากแอปพลิเคชันลงทะเบียนอินสแตนซ์ android.hardware.Camera.PreviewCallback และ
ระบบเรียกใช้เมธอด onPreviewFrame() เมื่อรูปแบบการแสดงตัวอย่างเป็น YCbCr_420_SP
ข้อมูลใน byte[] ที่ส่งไปยัง onPreviewFrame() จะต้องอยู่ในรูปแบบการเข้ารหัส NV21
(ซึ่งเป็นรูปแบบที่ฮาร์ดแวร์ตระกูล 7k ใช้โดยค่าเริ่มต้น) กล่าวคือ NV21 ต้องเป็นค่าเริ่มต้น
8.9.1. กล้องที่ไม่ใช้ระบบออโต้โฟกัส
หากอุปกรณ์ไม่มีกล้องออโต้โฟกัส ผู้ติดตั้งใช้งานอุปกรณ์ต้องปฏิบัติตามข้อกำหนดเพิ่มเติมใน
ส่วนนี้ การติดตั้งใช้งานอุปกรณ์ต้องใช้ Camera API แบบสมบูรณ์ที่รวมอยู่ในเอกสารประกอบ
SDK ของ Android 1.6 ในลักษณะที่เหมาะสม โดยไม่คำนึงถึงความสามารถของฮาร์ดแวร์กล้องจริง
สำหรับ Android 1.6 หากกล้องไม่มีโฟกัสอัตโนมัติ การติดตั้งใช้งานอุปกรณ์ต้องเป็นไปตามข้อกำหนดต่อไปนี้
1. ระบบต้องมีพร็อพเพอร์ตี้ระบบแบบอ่านอย่างเดียวชื่อ "ro.workaround.noautofocus"
ซึ่งมีค่าเป็น "1" ค่านี้มีไว้สำหรับแอปพลิเคชัน เช่น Android Market เพื่อ
ระบุความสามารถของอุปกรณ์แบบเลือกได้ และจะแทนที่ด้วย
API ที่มีประสิทธิภาพใน Android เวอร์ชันในอนาคต
2. หากแอปพลิเคชันเรียกใช้ android.hardware.Camera.autoFocus() ระบบต้องเรียกใช้เมธอดการเรียกคืน
onAutoFocus() ในอินสแตนซ์
android.hardware.Camera.AutoFocusCallback ที่ลงทะเบียนไว้ แม้ว่าจะไม่มีโฟกัสเกิดขึ้นจริง
ก็ตาม การดำเนินการนี้เพื่อไม่ให้แอปพลิเคชันที่มีอยู่ขัดข้องจากการรอ
การเรียกกลับของโฟกัสอัตโนมัติที่จะไม่เกิดขึ้น
3. การเรียกใช้เมธอด AutoFocusCallback.onAutoFocus() จะต้องทริกเกอร์โดยไดรเวอร์หรือ
เฟรมเวิร์กในเหตุการณ์ใหม่บนเธรด Looper ของเฟรมเวิร์กหลัก กล่าวคือ Camera.autoFocus()
ต้องไม่เรียกใช้ AutoFocusCallback.onAutoFocus() โดยตรง เนื่องจากละเมิดรูปแบบการแยกชุดข้อความของเฟรมเวิร์ก Android
และจะทำให้แอปใช้งานไม่ได้
8.10. เซ็นเซอร์ตรวจจับแรงโน้มถ่วง
การติดตั้งใช้งานอุปกรณ์ต้องมีเซ็นเซอร์ตรวจจับแรงโน้มถ่วง 3 แกนและส่งเหตุการณ์ได้อย่างน้อย 50 Hz ระบบพิกัดที่เซ็นเซอร์ตรวจจับแรงโน้มถ่วงใช้ต้องเป็นไปตามระบบพิกัดของเซ็นเซอร์ Android
ตามที่ระบุไว้ใน [แหล่งข้อมูล, 28] ของ Android API
8.11. เข็มทิศ
การติดตั้งใช้งานอุปกรณ์ต้องมีเข็มทิศ 3 แกนและสามารถส่งเหตุการณ์ได้อย่างน้อย
10 Hz ระบบพิกัดที่เข็มทิศใช้ต้องเป็นไปตาม
ระบบพิกัดเซ็นเซอร์ Android ตามที่ระบุไว้ใน Android API [แหล่งข้อมูล, 28]
8.12. GPS
การติดตั้งใช้งานอุปกรณ์ต้องมี GPS และควรใช้เทคนิค "GPS เสริม"
บางรูปแบบเพื่อลดเวลาในการล็อก GPS
8.13. โทรศัพท์
การติดตั้งใช้งานอุปกรณ์:
• ต้องมีโทรศัพท์ GSM หรือ CDMA
• ต้องใช้ API ที่เหมาะสมตามที่ระบุไว้ในเอกสารประกอบ Android SDK ที่
developer.android.com
โปรดทราบว่าข้อกำหนดนี้หมายความว่าอุปกรณ์ที่ไม่ใช่โทรศัพท์ใช้ร่วมกับ Android 1.6 ไม่ได้ อุปกรณ์ Android
1.6 ต้องมีฮาร์ดแวร์โทรศัพท์ โปรดดูข้อมูลเกี่ยวกับ
อุปกรณ์ที่ไม่ใช่โทรศัพท์ในภาคผนวก ค
8.14. การควบคุมระดับเสียง
อุปกรณ์ที่เข้ากันได้กับ Android ต้องมีกลไกที่ช่วยให้ผู้ใช้เพิ่มและลด
ระดับเสียงได้ การติดตั้งใช้งานอุปกรณ์ต้องทำให้ฟังก์ชันเหล่านี้พร้อมใช้งานสำหรับผู้ใช้ตลอดเวลา
ไม่ว่าสถานะแอปพลิเคชันจะเป็นอย่างไร ฟังก์ชันเหล่านี้อาจใช้ปุ่มฮาร์ดแวร์จริง
ซอฟต์แวร์ ท่าทางสัมผัส แผงสัมผัส ฯลฯ แต่ต้องเข้าถึงได้เสมอและไม่บดบังหรือรบกวน
พื้นที่แสดงผลแอปพลิเคชันที่ใช้ได้ (ดูการแสดงผลด้านบน)
เมื่อใช้ปุ่มเหล่านี้ ระบบจะต้องสร้างเหตุการณ์สําคัญที่เกี่ยวข้องและส่งไปยัง
แอปพลิเคชันที่ทำงานอยู่เบื้องหน้า หากแอปพลิเคชันไม่ได้ขัดขวางและส่งผ่านเหตุการณ์ การติดตั้งใช้งาน
อุปกรณ์จะต้องจัดการเหตุการณ์ดังกล่าวเป็นการควบคุมระดับเสียงของระบบ
9. ความเข้ากันได้ด้านประสิทธิภาพ
เป้าหมายหนึ่งของโปรแกรมความเข้ากันได้ของ Android คือเพื่อให้ผู้บริโภคได้รับประสบการณ์การใช้งานแอปพลิเคชันที่สม่ำเสมอ
การติดตั้งใช้งานที่เข้ากันได้ต้องไม่เพียงแต่ทำให้แอปพลิเคชันทำงานได้อย่างถูกต้องใน
อุปกรณ์เท่านั้น แต่ยังต้องทำงานได้อย่างมีประสิทธิภาพและมอบประสบการณ์การใช้งานที่ดีโดยรวมให้แก่ผู้ใช้ด้วย
การติดตั้งใช้งานอุปกรณ์ต้องเป็นไปตามเมตริกประสิทธิภาพหลักของอุปกรณ์ที่เข้ากันได้กับ Android 1.6
ดังที่แสดงในตารางด้านล่าง
เมตริก
เกณฑ์ประสิทธิภาพ
ความคิดเห็น
การทดสอบนี้ดำเนินการโดย CTS
แอปพลิเคชันต่อไปนี้
เวลาเริ่มต้นจะวัดจากเวลาทั้งหมดที่
ควรเปิดภายใน
โหลดกิจกรรมเริ่มต้นของ
แอปพลิเคชัน
ที่ระบุ
แอปพลิเคชัน รวมถึงเวลาในการเริ่ม
เวลาเริ่มต้น
เบราว์เซอร์: น้อยกว่า 1300 มิลลิวินาที
กระบวนการ Linux, โหลดแพ็กเกจ Android ลงใน
MMS/SMS: น้อยกว่า 700 มิลลิวินาที
Dalvik VM และเรียก onCreate
นาฬิกาปลุก: น้อยกว่า 650 มิลลิวินาที
ระบบจะเปิดแอปพลิเคชันหลายรายการ
การทดสอบนี้ดำเนินการโดย CTS
การเปิดตัว
แอปพลิเคชันแรกพร้อมกันอีกครั้งควร
แอปพลิเคชัน
เสร็จสมบูรณ์ภายในเวลาน้อยกว่า
เวลาเปิดแอปพลิเคชันครั้งแรก
10. ความเข้ากันได้ของรูปแบบการรักษาความปลอดภัย
การติดตั้งใช้งานอุปกรณ์ต้องใช้รูปแบบการรักษาความปลอดภัยที่สอดคล้องกับ
รูปแบบการรักษาความปลอดภัยของแพลตฟอร์ม Android ตามที่ระบุไว้ในเอกสารอ้างอิงเกี่ยวกับความปลอดภัยและสิทธิ์ใน API [แหล่งข้อมูล, 29] ใน
เอกสารประกอบสำหรับนักพัฒนาแอป Android การติดตั้งใช้งานอุปกรณ์ต้องรองรับการติดตั้ง
แอปพลิเคชันที่ลงนามด้วยตนเองโดยไม่ต้องขอสิทธิ์/ใบรับรองเพิ่มเติมจากบุคคลที่สาม/หน่วยงานใดๆ
กล่าวโดยละเอียดคือ อุปกรณ์ที่เข้ากันได้ต้องรองรับกลไกความปลอดภัยต่อไปนี้
10.1. สิทธิ์
การติดตั้งใช้งานอุปกรณ์ต้องรองรับรูปแบบสิทธิ์ของ Android ตามที่ระบุไว้ในเอกสารสำหรับนักพัฒนาแอป Android
[แหล่งข้อมูล, 9] กล่าวโดยละเอียดคือ การติดตั้งใช้งานต้องบังคับใช้สิทธิ์แต่ละรายการ
ตามที่อธิบายไว้ในเอกสารประกอบ SDK โดยต้องไม่ละเว้น เปลี่ยนแปลง หรือละเว้นสิทธิ์ใดๆ
การติดตั้งใช้งานอาจเพิ่มสิทธิ์เพิ่มเติมได้ โดยที่สตริงรหัสสิทธิ์ใหม่ต้องไม่อยู่ในเนมสเปซ
android.*
10.2 การแยกผู้ใช้และกระบวนการ
การติดตั้งใช้งานอุปกรณ์ต้องรองรับรูปแบบแซนด์บ็อกซ์แอปพลิเคชันของ Android ซึ่งแอปพลิเคชันแต่ละรายการ
จะทำงานเป็น UID สไตล์ Unix ที่ไม่ซ้ำกันและในกระบวนการแยกต่างหาก
การติดตั้งใช้งานอุปกรณ์ต้องรองรับการเรียกใช้แอปพลิเคชันหลายรายการโดยใช้รหัสผู้ใช้ Linux เดียวกัน โดยที่
แอปพลิเคชันต้องได้รับการลงชื่อและสร้างอย่างถูกต้องตามที่ระบุไว้ในข้อมูลอ้างอิงด้านความปลอดภัยและสิทธิ์
[แหล่งข้อมูล, 29]
10.3. สิทธิ์ของระบบไฟล์
การติดตั้งใช้งานอุปกรณ์ต้องรองรับรูปแบบสิทธิ์การเข้าถึงไฟล์ของ Android ตามที่ระบุไว้ใน
ข้อมูลอ้างอิงด้านความปลอดภัยและสิทธิ์ [ทรัพยากร, 29]
11. ชุดเครื่องมือทดสอบความเข้ากันได้
การติดตั้งใช้งานอุปกรณ์ต้องผ่านชุดเครื่องมือทดสอบความเข้ากันได้กับอุปกรณ์ Android (CTS) [แหล่งข้อมูล 3] ที่มี
จากโครงการโอเพนซอร์ส Android โดยใช้ซอฟต์แวร์เวอร์ชันสุดท้ายที่พร้อมจำหน่ายในอุปกรณ์ นอกจากนี้
ผู้ติดตั้งใช้งานอุปกรณ์ควรใช้การติดตั้งใช้งานอ้างอิงในต้นไม้ซอร์สโค้ดโอเพนซอร์สของ Android
มากที่สุดเท่าที่จะเป็นไปได้ และต้องตรวจสอบความเข้ากันได้ในกรณีที่เกิดความไม่ชัดเจนใน CTS และสำหรับ
การติดตั้งใช้งานบางส่วนของซอร์สโค้ดอ้างอิงอีกครั้ง
CTS ออกแบบมาเพื่อใช้งานบนอุปกรณ์จริง CTS อาจมีข้อบกพร่องเช่นเดียวกับซอฟต์แวร์อื่นๆ
CTS จะมีเวอร์ชันเป็นอิสระจากคำจำกัดความความเข้ากันได้นี้ และอาจมี
CTS เวอร์ชันต่างๆ ที่เผยแพร่สำหรับ Android 1.6 อย่างไรก็ตาม การเผยแพร่ดังกล่าวจะแก้ไขข้อบกพร่องด้านลักษณะการทำงานในการทดสอบ CTS
เท่านั้น และจะไม่บังคับใช้การทดสอบ ลักษณะการทำงาน หรือ API ใหม่สำหรับแพลตฟอร์มรุ่นหนึ่งๆ
12. ติดต่อเรา
คุณสามารถติดต่อทีมความเข้ากันได้ของ Android ที่ compatibility@android.com เพื่อขอคำชี้แจงเกี่ยวกับ
คำจำกัดความของความเข้ากันได้นี้และแสดงความคิดเห็นเกี่ยวกับคำจำกัดความนี้
ภาคผนวก ก: Intent ของแอปพลิเคชันที่จำเป็น
หมายเหตุ: รายการนี้เป็นข้อมูลชั่วคราวและจะอัปเดตในอนาคต
การดำเนินการแอปพลิเคชัน
โครงร่างประเภท MIME
(ไม่มี)
ข้อความ/ธรรมดา
http
ข้อความ/html
เบราว์เซอร์
android.intent.action.VIEW
https
แอปพลิเคชัน/xhtml+xml
แอปพลิเคชัน/
ว.ด.ว.xhtml+xml
(ไม่มี)
แอนดรอยด์. เจตนา. การกระทำ. ค้นหาเว็บ
http
(ไม่มี)
https
แอนดรอยด์มีเดียแอคชั่น.IMAGE_CAPTURE
แอนดรอยด์มีเดียแอคชั่น.STILL_IMAGE_CAMERA
กล้อง
แอนดรอยด์.มีเดีย.แอคชั่น.VIDEO_CAMERA
แอนดรอยด์มีเดียแอคชั่น.VIDEO_CAPTURE
ไดเรกทอรี
android.intent.action.VIEW
ภาพ
android.intent.action.รับเนื้อหา
ไดเรกทอรี
android.intent.action.เลือก
วีดีโอ
แอนดรอยด์. เจตนา. การกระทำ. แนบข้อมูล
ภาพ/*
วีดีโอ/*
android.intent.action.VIEW
RTSP รีทวีต
วีดีโอ/mp4
วีดีโอ/3gp
android.intent.action.VIEW
http
วีดีโอ/3gpp
วีดีโอ/3gpp2
แอนดรอยด์. เจตนา. การกระทำ. DIAL
โทรศัพท์ /
android.intent.action.VIEW
โทร
ติดต่อเรา
android.intent.action.เรียก
แอนดรอยด์. เจตนา. การกระทำ. DIAL
ไดเรกทอรี
android.intent.action.VIEW
บุคคล
ไดเรกทอรี
บุคคล
ไดเรกทอรี
android.intent.action.เลือก
โทรศัพท์
ไดเรกทอรี
ที่อยู่ไปรษณีย์
vnd.android.cursor.item/
บุคคล
vnd.android.cursor.item/
android.intent.action.รับเนื้อหา
โทรศัพท์
vnd.android.cursor.item/
ที่อยู่ไปรษณีย์
ข้อความ/ธรรมดา
อีเมล
android.intent.action.ส่ง
ภาพ/*
วีดีโอ/*
android.intent.action.VIEW
ส่งเมล์ถึง
android.intent.action.ส่งไปที่
ข้อความสั้น
android.intent.action.VIEW
สเอ็มเอสโต
SMS / MMS android.intent.action.ส่งถึง
เอ็มเอ็มเอส
เอ็มเอ็มเอสโต
เสียง/*
แอปพลิเคชั่น/ogg
ดนตรี
android.intent.action.VIEW
ไฟล์
แอปพลิเคชั่น/x-ogg
แอปพลิเคชั่น/itunes
เสียง/mp3
เสียง/x-mp3
android.intent.action.VIEW
http
เสียง/mpeg
เสียง/mp4
เสียง/mp4a-latm
ไดเรกทอรี
ศิลปินอัลบั้ม
ไดเรกทอรี
อัลบั้ม
ไดเรกทอรี
android.intent.action.เลือก
กำลังเล่นอยู่
ไดเรกทอรี
ติดตาม
nd.android.cursor.dir/
เพลย์ลิสต์
ไดเรกทอรี
วีดีโอ
สื่อ/*
เสียง/*
android.intent.action.รับเนื้อหา
แอปพลิเคชั่น/ogg
แอปพลิเคชั่น/x-ogg
วีดีโอ/*
เนื้อหา
บรรจุุภัณฑ์
android.intent.action.VIEW
ไฟล์
ผู้ติดตั้ง
บรรจุุภัณฑ์
ไฟล์
การติดตั้งแพ็คเกจ android.intent.action.PACKAGE_INSTALL
http
https
เจตนาของการกระทำแอปทั้งหมด
android.settings.การตั้งค่า
การตั้งค่าระบบแอนดรอยด์ WIRELESS_SETTINGS
การตั้งค่า android.settings.AIRPLANE_MODE_SETTINGS
การตั้งค่า Android.WIFI_SETTINGS
การตั้งค่า APN_SETTINGS ของแอนดรอยด์
การตั้งค่า Android.BLUETOOTH_SETTINGS
การตั้งค่า android.date_settings
การตั้งค่าแอนดรอยด์.LOCALE_SETTINGS
การตั้งค่า
การตั้งค่า Android.INPUT_METHOD_SETTINGS
การตั้งค่าเสียง
com.android.settings.การตั้งค่าการแสดงผล
การตั้งค่าระบบแอนดรอยด์.SECURITY_SETTING
การตั้งค่า android.location_settings.location_source_settings
การตั้งค่า android.settings.INTERNAL_STORAGE_SETTINGS
การตั้งค่า Android.MEMORY_CARD_SETTINGS
การกระทำของ Android.intent.set_wallpaper
ค้นหา
android.intent.action.ค้นหา
การสอบถาม
แอนดรอยด์. เจตนา. การกระทำ. ค้นหา_กดยาว
เสียง
การกระทำของ Android.intent.VOICE_COMMAND
การจัดการรายชื่อผู้ติดต่อ
เจตนาการกระทำ
คำอธิบาย
เริ่มกิจกรรมที่ให้ผู้ใช้เลือก
แนบรูปภาพ
ผู้ติดต่อที่จะแนบรูปภาพ
ใช้
EXTRA_CREATE_DESCRIPTION
กับ SHOW_OR_CREATE_CONTACT เพื่อ
ระบุคำอธิบายที่แน่นอนที่จะแสดง
เมื่อแจ้งให้ผู้ใช้ทราบเกี่ยวกับ
การสร้างรายชื่อติดต่อใหม่
ใช้
กับ SHOW_OR_CREATE_CONTACT เพื่อ
EXTRA_FORCE_CREATE
บังคับสร้างรายชื่อติดต่อใหม่หากไม่พบ
รายชื่อติดต่อที่ตรงกัน
Intent นี้จะทํางานเมื่อมีการคลิก
SEARCH_SUGGESTION_CLICKED
คําแนะนําการค้นหา
Intent นี้จะทำงานเมื่อมีการคลิก
SEARCH_SUGGESTION_CREATE_CONTACT_CLICKED คำแนะนำการค้นหาสำหรับการสร้าง
รายชื่อติดต่อ
Intent นี้จะทำงานเมื่อมีการคลิก
SEARCH_SUGGESTION_DIAL_NUMBER_CLICKED
คำแนะนำการค้นหาสำหรับการโทร
ใช้ URI ข้อมูลที่มี mailto:เป็นอินพุต
SHOW_OR_CREATE_CONTACT
หรือรูปแบบ tel:
ภาคผนวก ข: Intent การออกอากาศที่จำเป็นหมายเหตุ: รายการนี้เป็นข้อมูลชั่วคราวและจะ
อัปเดตในอนาคต
การดำเนินการตาม Intent
คำอธิบาย
การดำเนินการของ Broadcast: ระบบจะออกอากาศการดำเนินการนี้ 1 ครั้งหลังจาก
ACTION_BOOT_COMPLETED
ระบบบูตเสร็จแล้ว
การออกอากาศการดําเนินการ: ระบบจะออกอากาศ 1 ครั้งเมื่อได้รับ
ACTION_CALL_BUTTON
การโทร
การออกอากาศการดําเนินการ: มีการกด
ACTION_CAMERA_BUTTON
"ปุ่มกล้อง"
การออกอากาศการดําเนินการ: การACTION_CONFIGURATION_CHANGED
กําหนดค่า
ของอุปกรณ์ปัจจุบัน(การวางแนว ภาษา ฯลฯ) ได้
เปลี่ยนแปลงไป
ACTION_DATE_CHANGED
การดําเนินการของข้อความประกาศ: วันที่มีการเปลี่ยนแปลง
การดําเนินการของประกาศ: บ่งบอกสถานะหน่วยความจําต่ำ
ACTION_DEVICE_STORAGE_LOW
ในอุปกรณ์
การดําเนินการของประกาศ: บ่งบอกสถานะหน่วยความจําต่ำ
ACTION_DEVICE_STORAGE_OK
ในอุปกรณ์ไม่มีแล้ว
การดําเนินการของประกาศ: หูฟังแบบใช้สายเสียบอยู่หรือ
ACTION_HEADSET_PLUG
ถอดออก
การออกอากาศการดำเนินการ: มีการเปลี่ยนแปลง
ACTION_INPUT_METHOD_CHANGED
วิธีการป้อนข้อมูล
การดําเนินการของออกอากาศ: มีการนำสื่อภายนอก
ACTION_MEDIA_BAD_REMOVAL
ออกจากช่องการ์ด SD แต่ไม่ได้
ยกเลิกการต่อเชื่อมจุดต่อเชื่อม
การออกอากาศการดําเนินการ: มีการกด
ACTION_MEDIA_BUTTON
"ปุ่มสื่อ"
การดำเนินการออกอากาศ: มีสื่อภายนอกอยู่และ
กำลังตรวจสอบดิสก์ เส้นทางไปยังจุดมา운ต์สำหรับ
ACTION_MEDIA_CHECKING
สื่อที่ตรวจสอบอยู่อยู่ใน
ฟิลด์ Intent.mData
การออกอากาศการดำเนินการ: ผู้ใช้แสดงความต้องการที่จะ
ACTION_MEDIA_EJECT
นำสื่อจัดเก็บข้อมูลภายนอกออก
การออกอากาศการดําเนินการ: มีสื่อภายนอกและ
ACTION_MEDIA_MOUNTED
ติดตั้งที่จุดมา운ต์
การดําเนินการออกอากาศ: มีสื่อภายนอกอยู่ แต่
ใช้ FS ที่เข้ากันไม่ได้ (หรือว่างเปล่า) เส้นทางไปยัง
ACTION_MEDIA_NOFS
จุดมา운ต์สําหรับสื่อที่ตรวจสอบ
อยู่ในช่อง Intent.mData
การออกอากาศการดําเนินการ: สื่อภายนอก
ACTION_MEDIA_REMOVED
ถูกนําออกแล้ว
การดําเนินการของออกอากาศ: เครื่องมือสแกนสื่อเสร็จสิ้นแล้ว
ACTION_MEDIA_SCANNER_FINISHED
การสแกนไดเรกทอรี
การดำเนินการแบบออกอากาศ: ขอให้เครื่องมือสแกนสื่อ
ACTION_MEDIA_SCANNER_SCAN_FILE
สแกนไฟล์และเพิ่มลงในฐานข้อมูลสื่อ
การดำเนินการของออกอากาศ: เครื่องมือสแกนสื่อเริ่มทำงานแล้ว
ACTION_MEDIA_SCANNER_STARTED
การสแกนไดเรกทอรี
การออกอากาศการดำเนินการ: ยกเลิกการต่อเชื่อมสื่อภายนอก
ACTION_MEDIA_SHARED
เนื่องจากมีการแชร์ผ่านอุปกรณ์เก็บข้อมูลขนาดใหญ่ USB
การออกอากาศการดําเนินการ: มีสื่อภายนอก แต่
ACTION_MEDIA_UNMOUNTABLE
ไม่สามารถมา운ต์ได้
การออกอากาศการดําเนินการ: มีสื่อภายนอก แต่
ACTION_MEDIA_UNMOUNTED
ไม่ได้ติดตั้งที่จุดมา운ต์
การดําเนินการของประกาศ: กำลังจะโทรออก
ACTION_NEW_OUTGOING_CALL
การออกอากาศการดําเนินการ: ติดตั้งแพ็กเกจแอปพลิเคชันใหม่
ACTION_PACKAGE_ADDED
ในอุปกรณ์แล้ว
การออกอากาศการดําเนินการ: แพ็กเกจแอปพลิเคชันที่มีอยู่
ACTION_PACKAGE_CHANGED
มีการเปลี่ยนแปลง (เช่น มีการเปิดหรือปิดใช้คอมโพเนนต์
การดําเนินการแบบออกอากาศ: ผู้ใช้ล้างข้อมูล
แพ็กเกจ เหตุการณ์นี้ควรมี
ACTION_PACKAGE_RESTARTED มาก่อน หลังจากนั้น
ACTION_PACKAGE_DATA_CLEARED
ระบบจะลบข้อมูลถาวรทั้งหมดและส่ง
การออกอากาศนี้ โปรดทราบว่าแพ็กเกจที่ได้รับอนุมัติ
ไม่ ได้รับการออกอากาศนี้ ข้อมูลมี
ชื่อของแพ็กเกจ
การดําเนินการของประกาศ: มีการนำแพ็กเกจแอปพลิเคชันที่มีอยู่
ออกจากอุปกรณ์แล้ว ข้อมูล
ACTION_PACKAGE_REMOVED
มีชื่อแพ็กเกจ แพ็กเกจ
ที่กําลังติดตั้งไม่ ได้รับ Intent นี้
การออกอากาศการดำเนินการ: มีการติดตั้ง
แพ็กเกจACTION_PACKAGE_REPLACED
แอปพลิเคชันเวอร์ชันใหม่แทน
เวอร์ชันที่ติดตั้งไว้ก่อนหน้านี้
การดําเนินการแบบกระจาย: ผู้ใช้ได้รีสตาร์ท
แพ็กเกจ และกระบวนการทั้งหมดของแพ็กเกจนั้นถูกหยุดทำงาน
สถานะรันไทม์ทั้งหมดที่เชื่อมโยงกับแพ็กเกจ (กระบวนการ
ACTION_PACKAGE_RESTARTED
การแจ้งเตือน ฯลฯ) ควรถูกนําออก โปรดทราบว่า
แพ็กเกจที่เริ่มใหม่ไม่ รับ
การออกอากาศนี้ ข้อมูลนี้มีชื่อ
แพ็กเกจ
การออกอากาศการดำเนินการ: ผู้ให้บริการเนื้อหาบางรายมี
ส่วนหนึ่งของเนมสเปซที่เผยแพร่เหตุการณ์หรือรายการ ACTION_PROVIDER_CHANGED
ใหม่
ซึ่งผู้ใช้อาจสนใจเป็นพิเศษ
ACTION_SCREEN_OFF
การดําเนินการของประกาศ: ส่งหลังจากหน้าจอปิด
ACTION_SCREEN_ON
การดําเนินการของประกาศ: ส่งหลังจากหน้าจอเปิด
การออกอากาศการดําเนินการ: ระบบได้นํารหัสผู้ใช้
ACTION_UID_REMOVED
ออกจากระบบแล้ว
การออกอากาศการดำเนินการ: อุปกรณ์เข้าสู่โหมด USB
ACTION_UMS_CONNECTED
Mass Storage
การออกอากาศการดำเนินการ: อุปกรณ์ออกจากโหมด Mass Storage ของ USB แล้ว
ACTION_UMS_DISCONNECTED
การดำเนินการแบบออกอากาศ: ส่งเมื่อผู้ใช้อยู่
ACTION_USER_PRESENT
หลังจากอุปกรณ์ตื่นขึ้น (เช่น เมื่อ
ปุ่มล็อกหายไป)
การออกอากาศการดําเนินการ: วอลเปเปอร์ปัจจุบันของระบบ
ACTION_WALLPAPER_CHANGED
มีการเปลี่ยนแปลง
ACTION_TIME_CHANGED
การดําเนินการของประกาศ: ตั้งเวลาแล้ว
ACTION_TIME_TICK
การดําเนินการของออกอากาศ: เวลาปัจจุบันมีการเปลี่ยนแปลง
ACTION_TIMEZONE_CHANGED
การออกอากาศการดําเนินการ: เขตเวลามีการเปลี่ยนแปลง
การดําเนินการของ Broadcast: สถานะการชาร์จหรือระดับ
ACTION_BATTERY_CHANGED
แบตเตอรี่มีการเปลี่ยนแปลง
การออกอากาศการดำเนินการ: บ่งบอกสถานะแบตเตอรี่เหลือน้อย
ACTION_BATTERY_LOW
ในอุปกรณ์ การออกอากาศนี้สอดคล้องกับกล่องโต้ตอบ
"คำเตือนแบตเตอรี่ต่ำ" ของระบบ
การดำเนินการออกอากาศ: บ่งบอกว่าแบตเตอรี่อยู่ในสถานะปกติ
หลังจากแบตเตอรี่เหลือน้อย ระบบจะส่ง
ACTION_BATTERY_OKAY
หลังจาก ACTION_BATTERY_LOW เมื่อแบตเตอรี่
กลับมาอยู่ในสถานะปกติ
สถานะเครือข่าย
การดำเนินการผ่าน Intent
คำอธิบาย
การออกอากาศการดำเนินการผ่าน Intent ที่ระบุว่า
NETWORK_STATE_CHANGED_ACTION
สถานะการเชื่อมต่อ Wi-Fi มีการเปลี่ยนแปลง
การดําเนินการ Intent แบบออกอากาศที่ระบุว่า
RSSI_CHANGED_ACTION
RSSI (ความแรงของสัญญาณ) มีการเปลี่ยนแปลง
การดําเนินการ Intent แบบออกอากาศที่ระบุว่า
SUPPLICANT_STATE_CHANGED_ACTION
การเชื่อมต่อกับ
ผู้ขอเชื่อมต่อได้สร้างขึ้นหรือขาดหายไป
การดําเนินการ Intent แบบออกอากาศที่ระบุว่า Wi-Fi
WIFI_STATE_CHANGED_ACTION
เปิดใช้ ปิดใช้ กําลังเปิดใช้
ปิดใช้ หรือไม่ทราบ
รหัสเครือข่ายของเครือข่ายที่กําหนดค่า
NETWORK_IDS_CHANGED_ACTION
อาจมีการเปลี่ยนแปลง
การดําเนินการ Intent แบบออกอากาศที่ระบุว่า
การตั้งค่า ACTION_BACKGROUND_DATA_SETTING_CHANGED สําหรับการใช้งานอินเทอร์เน็ตที่ใช้งานอยู่เบื้องหลังมี
ค่าที่เปลี่ยนแปลง
ส่งออก Intent ที่ระบุว่ามีการเปลี่ยนแปลง
CONNECTIVITY_ACTION
การเชื่อมต่อเครือข่าย
การออกอากาศการดำเนินการ: ผู้ใช้ได้เปลี่ยน
ACTION_AIRPLANE_MODE_CHANGED
โทรศัพท์เป็นโหมดบนเครื่องบินหรือออกจากโหมดดังกล่าว
ภาคผนวก ค: สิ่งที่ควรพิจารณาในอนาคต ภาคผนวกนี้ชี้แจงบางส่วนของคำจำกัดความความเข้ากันได้ของ Android
1.6 และบางกรณีจะกล่าวถึงการเปลี่ยนแปลงที่คาดการณ์หรือวางแผนไว้สำหรับ
แพลตฟอร์ม Android เวอร์ชันในอนาคต ภาคผนวกนี้มีไว้เพื่อวัตถุประสงค์ในการให้ข้อมูลและการวางแผนเท่านั้น และ
ไม่ได้เป็นส่วนหนึ่งของคำจำกัดความความเข้ากันได้สำหรับ Android 1.6
1. อุปกรณ์ที่ไม่ใช่โทรศัพท์
Android 1.6 มีไว้สำหรับโทรศัพท์เท่านั้น ฟังก์ชันการโทรเป็นฟังก์ชันการทำงานที่ไม่สามารถเลือกได้ คาดว่า
แพลตฟอร์ม Android เวอร์ชันในอนาคตจะเลือกไม่ใช้การโทรได้ (และทำให้อุปกรณ์ Android
ที่ไม่ใช่โทรศัพท์ใช้งานได้) แต่มีเพียงโทรศัพท์เท่านั้นที่เข้ากันได้กับ Android 1.6
2. ความเข้ากันได้กับบลูทูธ
Android เวอร์ชัน 1.6 ไม่รองรับ Bluetooth API ดังนั้นจากมุมมองความเข้ากันได้
บลูทูธจึงไม่มีข้อควรพิจารณาใดๆ สำหรับแพลตฟอร์มเวอร์ชันนี้ อย่างไรก็ตาม
Android เวอร์ชันในอนาคตจะมี Bluetooth API เมื่อถึงเวลานั้น การสนับสนุนบลูทูธจะกลายเป็นข้อบังคับสำหรับ
ความเข้ากันได้
ดังนั้น เราขอแนะนำให้อุปกรณ์ Android 1.6 มีบลูทูธเพื่อให้
เข้ากันได้กับ Android เวอร์ชันต่อๆ ไปซึ่งต้องใช้บลูทูธ
3. คอมโพเนนต์ฮาร์ดแวร์ที่จำเป็น
คอมโพเนนต์ฮาร์ดแวร์ทั้งหมดในส่วนที่ 8 (รวมถึง Wi-Fi, มาตรแม่เหล็ก/เข็มทิศ, เซ็นเซอร์ความเร่ง ฯลฯ)
เป็นองค์ประกอบที่จำเป็นและไม่สามารถละเว้นได้ Android เวอร์ชันในอนาคตคาดว่าจะทําให้
คอมโพเนนต์เหล่านี้บางส่วน (แต่ไม่ใช่ทั้งหมด) เป็นตัวเลือกควบคู่ไปกับเครื่องมือที่เกี่ยวข้องสําหรับนักพัฒนาแอปบุคคลที่สามเพื่อจัดการ
การเปลี่ยนแปลงเหล่านี้
4. ตัวอย่างแอปพลิเคชัน
เอกสารคำจำกัดความความเข้ากันได้สำหรับ Android เวอร์ชันในอนาคตจะมีรายการแอปพลิเคชันที่ครอบคลุมและ
เป็นตัวแทนมากกว่ารายการที่ระบุไว้ในส่วนที่ 4 ด้านบน สำหรับ Android 1.6 คุณต้องทดสอบ
แอปพลิเคชันที่ระบุไว้ในส่วนที่ 4
5. หน้าจอสัมผัส
คำจำกัดความความเข้ากันได้เวอร์ชันในอนาคตอาจอนุญาตหรือไม่อนุญาตให้อุปกรณ์ละเว้นหน้าจอสัมผัส
อย่างไรก็ตาม ปัจจุบันการใช้งานเฟรมเวิร์ก Android ส่วนใหญ่จะถือว่ามี
หน้าจอสัมผัส การละเว้นหน้าจอสัมผัสจะทำให้แอปพลิเคชัน Android ของบุคคลที่สามทั้งหมดในปัจจุบันใช้งานไม่ได้อย่างมาก
ดังนั้นใน Android 1.6 จึงต้องใช้หน้าจอสัมผัสเพื่อให้เข้ากันได้
6. ประสิทธิภาพ
CTS เวอร์ชันในอนาคตจะวัดการใช้งาน CPU และประสิทธิภาพของ
คอมโพเนนต์ต่อไปนี้ของการใช้งานด้วย
• กราฟิก 2 มิติ
• กราฟิก 3 มิติ
• การเล่นวิดีโอ
• การเล่นเสียง
• การเล่น A2DP ของบลูทูธ
โครงร่างเอกสาร
- 1. บทนำ
- 2. แหล่งข้อมูล
- 3. ซอฟต์แวร์
- 4. ความเข้ากันได้ของซอฟต์แวร์อ้างอิง
- 5. ความเข้ากันได้ของแพ็กเกจแอปพลิเคชัน
- 6. ความเข้ากันได้ของมัลติมีเดีย
- 7. ความเข้ากันได้ของเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์
- 8. ความเข้ากันได้ของฮาร์ดแวร์
- 9. ความเข้ากันได้ด้านประสิทธิภาพ
- 10. ความเข้ากันได้ของรูปแบบการรักษาความปลอดภัย
- 11. ชุดเครื่องมือทดสอบความเข้ากันได้
- 12. ติดต่อเรา
- ภาคผนวก ก: Intent ของแอปพลิเคชันที่จำเป็น