1. ข้อมูลเบื้องต้น
เอกสารนี้แจกแจงข้อกำหนดที่ต้องปฏิบัติตาม ใช้ได้กับ Android 15 นะ
การใช้คำว่า "ต้อง" "ต้องไม่" "จำเป็น" "จะ" "จะไม่" "ควร" "ไม่ควร" "แนะนำ" "อาจ" และ "ไม่บังคับ" เป็นไปตามมาตรฐาน IETF ที่กำหนดไว้ใน RFC2119
ตามที่ใช้ในเอกสารนี้ "ผู้ติดตั้งใช้งานอุปกรณ์" หรือ "ผู้ติดตั้งใช้งาน" เป็นบุคคล หรือองค์กรการพัฒนาโซลูชันฮาร์ดแวร์/ซอฟต์แวร์ที่ใช้ Android 15. "การติดตั้งใช้งานอุปกรณ์" หรือ "การใช้งาน" คือ โซลูชันฮาร์ดแวร์/ซอฟต์แวร์ที่พัฒนาขึ้นอีกมาก
หากต้องการให้เข้ากันได้กับ Android 15 อุปกรณ์ การนำไปใช้งานต้องเป็นไปตามข้อกำหนดที่ระบุไว้ในความเข้ากันได้นี้ คำจำกัดความ รวมถึงเอกสารใดๆ ที่รวบรวมผ่านการอ้างอิง
คำจำกัดความนี้หรือการทดสอบซอฟต์แวร์ที่อธิบายไว้ใน ส่วนที่ 10 ไม่มีเสียง กำกวม หรือ ไม่สมบูรณ์ เป็นความรับผิดชอบของผู้ติดตั้งอุปกรณ์ที่จะตรวจสอบว่า ความเข้ากันได้กับการติดตั้งใช้งานที่มีอยู่
ด้วยเหตุนี้ โครงการโอเพนซอร์ส Android เป็นทั้งข้อมูลอ้างอิงและการใช้งาน Android ที่แนะนำ อุปกรณ์ ควรแนะนำอย่างยิ่งให้ยึดถือตามการติดตั้งใช้งาน มากที่สุดเท่าที่จะทำได้บน "อัปสตรีม" ซอร์สโค้ดที่ใช้ได้จาก โครงการโอเพนซอร์ส Android แม้ว่าองค์ประกอบบางอย่างจะตั้งสมมุติฐาน ขอแนะนำเป็นอย่างยิ่งว่าอย่า ปฏิบัติตามแนวทางปฏิบัตินี้ เนื่องจากการผ่านการทดสอบซอฟต์แวร์จะกลายเป็น ยากขึ้น เป็นความรับผิดชอบของผู้ติดตั้งใช้งานที่จะต้อง ความเข้ากันได้ด้านลักษณะการทำงานกับการใช้งาน Android มาตรฐาน ซึ่งรวมถึง และนอกเหนือจาก ชุดเครื่องมือทดสอบความเข้ากันได้ สุดท้าย โปรดทราบว่าคอมโพเนนต์บางอย่าง เอกสารฉบับนี้ห้ามมิให้แทนที่และการแก้ไขอย่างชัดแจ้ง
ทรัพยากรจำนวนมากที่เชื่อมโยงกับเอกสารฉบับนี้ ได้มาโดยตรง หรือ โดยอ้อมจาก Android SDK และจะทํางานเหมือนกับ ในเอกสารประกอบของ SDK นั้น ในกรณีที่ความเข้ากันได้นี้ คำจำกัดความหรือชุดเครื่องมือทดสอบความเข้ากันได้ไม่สอดคล้องกับ SDK ให้ถือว่าเอกสาร SDK เชื่อถือได้ ด้านเทคนิค รายละเอียดที่ระบุไว้ในแหล่งข้อมูลที่เชื่อมโยงทั้งหมดในเอกสารฉบับนี้ ถือว่ามีการรวมไว้เป็นส่วนหนึ่งของคำจำกัดความความเข้ากันได้นี้
1.1 โครงสร้างเอกสาร
1.1.1 ข้อกำหนดตามประเภทอุปกรณ์
ส่วนที่ 2 ประกอบด้วยข้อกำหนดทั้งหมดที่มีผลกับ ประเภทอุปกรณ์ที่เฉพาะเจาะจง ส่วนย่อยแต่ละส่วนของส่วนที่ 2 คือ ที่มีไว้สำหรับประเภทอุปกรณ์ที่เฉพาะเจาะจง
ข้อกำหนดอื่นๆ ทั้งหมดที่มีผลกับอุปกรณ์ Android ทั่วไป การใช้งานต่างๆ จะแสดงอยู่ในส่วนหลังจากส่วนที่ 2 ข้อกำหนดเหล่านี้เรียกว่า "ข้อกำหนดหลัก" ในเอกสารนี้
1.1.2 รหัสข้อกำหนด
มีการกำหนดรหัสข้อกำหนดสำหรับข้อกำหนด "ต้อง" แล้ว
- รหัสได้รับการกำหนดสำหรับข้อกำหนด "ต้อง" เท่านั้น
- ข้อกำหนดที่แนะนำอย่างยิ่งจะมีเครื่องหมายเป็น [SR] แต่ยังไม่มีการกำหนดบัตรประจำตัว
- รหัสประกอบด้วย : รหัสประเภทอุปกรณ์ - รหัสเงื่อนไข - รหัสข้อกำหนด (เช่น C-0-1)
แต่ละรหัสจะมีคำจำกัดความดังนี้
- รหัสประเภทอุปกรณ์ (ดูข้อมูลเพิ่มเติมใน 2. ประเภทอุปกรณ์)
- C: หลัก (ข้อกำหนดที่ใช้กับการใช้งานอุปกรณ์ Android ทั้งหมด)
- H: อุปกรณ์ Android แบบพกพา
- T: อุปกรณ์ Android TV
- ตอบ: การติดตั้งใช้งาน Android Automotive
- W: การใช้งาน Android Watch
- แท็บ: การใช้งานแท็บเล็ต Android
- รหัสเงื่อนไข
- เมื่อข้อกำหนดไม่มีเงื่อนไข ระบบจะกำหนดรหัสนี้เป็น 0
- เมื่อข้อกำหนดเป็นแบบมีเงื่อนไข ระบบจะกำหนด 1 ให้กับรายการที่ 1 และตัวเลขจะเพิ่มขึ้นทีละ 1 ในส่วนเดียวกันและ อุปกรณ์ประเภทเดียวกัน
- รหัสข้อกำหนด
- รหัสนี้เริ่มจาก 1 และเพิ่มขึ้นครั้งละ 1 ภายในส่วนเดียวกันและ เงื่อนไขเดียวกัน
1.1.3 รหัสข้อกำหนดในส่วนที่ 2
รหัสข้อกําหนดในส่วนที่ 2 มี 2 ส่วน องค์ประกอบ จะตรงกับรหัสส่วนตามที่อธิบายไว้ข้างต้น ส่วนที่ 2 จะระบุ รูปแบบของอุปกรณ์และข้อกำหนดเฉพาะของรูปแบบของอุปกรณ์
รหัสส่วนตามด้วยรหัสข้อกำหนดที่อธิบายไว้ข้างต้น
- รหัสในส่วนที่ 2 ประกอบด้วย รหัสส่วน / รหัสประเภทอุปกรณ์ - รหัสเงื่อนไข - รหัสข้อกำหนด (เช่น 7.4.3/A-0-1)
2. ประเภทอุปกรณ์
โครงการโอเพนซอร์ส Android มีสแต็กซอฟต์แวร์ที่สามารถใช้งานได้ สำหรับอุปกรณ์และรูปแบบของอุปกรณ์ที่หลากหลาย หากต้องการรองรับการรักษาความปลอดภัยในอุปกรณ์ สแต็กซอฟต์แวร์ รวมถึงระบบปฏิบัติการทดแทนหรือเคอร์เนลสำรอง จะต้องดำเนินการในสภาพแวดล้อมที่ปลอดภัยตามที่อธิบายไว้ ในส่วนที่ 9 และส่วนอื่นๆ ภายใน CDD นี้ อุปกรณ์มีอยู่หลายประเภท ซึ่งมีระบบนิเวศการจัดจำหน่ายแอปพลิเคชันที่ค่อนข้างดีกว่า
ส่วนนี้จะอธิบายประเภทอุปกรณ์ดังกล่าว รวมถึงข้อกำหนดเพิ่มเติมและ คำแนะนำที่ใช้ได้กับอุปกรณ์แต่ละประเภท
การใช้งานอุปกรณ์ Android ทั้งหมดที่ไม่เข้ากับข้อกำหนดใดๆ ที่อธิบายไว้ ประเภทอุปกรณ์ "ต้อง" ยังคงเป็นไปตามข้อกำหนดทั้งหมดในส่วนอื่นๆ ของ คำจำกัดความความเข้ากันได้
2.1 การกำหนดค่าอุปกรณ์
ความแตกต่างที่สำคัญในการกำหนดค่าฮาร์ดแวร์ตามอุปกรณ์ โปรดดูข้อกำหนดเฉพาะอุปกรณ์ดังต่อไปนี้ในหัวข้อนี้
2.2 ข้อกำหนดสำหรับอุปกรณ์พกพา
อุปกรณ์ Android พกพา หมายถึงการใช้งานอุปกรณ์ Android ที่ ที่มักใช้โดยถือไว้ในมือ เช่น โปรแกรมเล่น mp3, โทรศัพท์ หรือ แท็บเล็ต
การใช้งานอุปกรณ์ Android จัดว่าเป็นอุปกรณ์พกพา หากเป็นไปตามข้อกำหนดทั้งหมด เกณฑ์ต่อไปนี้
- มีแหล่งพลังงานที่ช่วยให้เคลื่อนไหวได้ เช่น แบตเตอรี่
- มีขนาดหน้าจอทแยงมุมจริงในช่วง 4-8 นิ้ว
- มีอินเทอร์เฟซอินพุตแบบหน้าจอสัมผัส
ข้อกำหนดเพิ่มเติมในส่วนที่เหลือของส่วนนี้ใช้สำหรับ Android เท่านั้น การใช้งานอุปกรณ์เคลื่อนที่
2.2.1. ฮาร์ดแวร์
การใช้งานอุปกรณ์เคลื่อนที่
- [7.1.1.1/H-0-1] ต้องมีอย่างน้อย 1 รายการ จอแสดงผลที่เข้ากันได้กับ Android ซึ่งวัดอย่างน้อย 2.2 นิ้ว ด้านขอบสั้น และ 3.4 นิ้ว ในด้านยาว
[7.1.1.3/H-SR-1] ขอแนะนําอย่างยิ่งให้ ช่วยให้ผู้ใช้สามารถปรับขนาดการแสดงผล (ความหนาแน่นของหน้าจอ) ได้
[7.1.1.1/H-0-2] ต้องรองรับองค์ประกอบ GPU ของ กราฟิกบัฟเฟอร์อย่างน้อยเท่ากับความละเอียดสูงสุดสำหรับความละเอียดสูงสุดที่มี จอแสดงผล
[7.1.1.1/H-0-3]* ต้องแมป
UI_MODE_NORMAL
แต่ละรายการ สำหรับแอปพลิเคชันของบุคคลที่สามบน พื้นที่แสดงผลจริงที่มีขนาดอย่างน้อย 2.2 นิ้ว นิ้วสำหรับขอบสั้นและ 3.4 นิ้ว นิ้วบนขอบด้านยาว[7.1.1.3/H-0-1]* ต้องกำหนดค่า
DENSITY_DEVICE_STABLE
ให้เป็น 92% หรือมากกว่าความหนาแน่นทางกายภาพจริง ของจอแสดงผลที่เกี่ยวข้อง
หากการใช้งานอุปกรณ์พกพารวมถึงการรองรับ Vulkan จะมีการดำเนินการต่อไปนี้
- [7.1.4.2/H-1-1] ต้องเป็นไปตามข้อกำหนด ที่ระบุไว้ในโปรไฟล์ Android Baseline 2021
หากการใช้อุปกรณ์พกพาอ้างว่าสนับสนุนช่วงไดนามิกกว้าง
แสดงผ่านทาง Configuration.isScreenHdr()
ดังนี้
- [7.1.4.5/H-1-1] ต้องโฆษณาการสนับสนุนสำหรับ
EGL_EXT_gl_colorspace_bt2020_pq
EGL_EXT_surface_SMPTE2086_metadata
EGL_EXT_surface_CTA861_3_metadata
,VK_EXT_swapchain_colorspace
และ ส่วนขยายVK_EXT_hdr_metadata
รายการ
การใช้งานอุปกรณ์เคลื่อนที่
- [7.1.4.6/H-0-1] ต้องรายงานว่าอุปกรณ์
รองรับความสามารถในการทำโปรไฟล์ GPU ผ่านพร็อพเพอร์ตี้ของระบบ
graphics.gpu.profiler.support
หากการใช้งานอุปกรณ์พกพาประกาศการรองรับผ่านพร็อพเพอร์ตี้ของระบบ
graphics.gpu.profiler.support
ได้
- [7.1.4.6/H-1-1] ต้องรายงานเป็นเอาต์พุต การติดตาม Protobuf ที่เป็นไปตามสคีมาสำหรับตัวนับ GPU และ GPU Renderstages ที่กำหนดไว้ในเอกสารประกอบของ Perfetto
- [7.1.4.6/H-1-2] ต้องรายงานค่าที่สอดคล้องกัน สำหรับตัวนับ GPU ของอุปกรณ์ตาม gpu Counter Tracking Pack Pro
- [7.1.4.6/H-1-3] ต้องรายงานค่าที่สอดคล้องกัน สำหรับ GPU RenderStag ของอุปกรณ์ตาม Proto ของแพ็คเก็ตการติดตามขั้นตอนการแสดงผล
- [7.1.4.6/H-1-4] ต้องรายงานความถี่ GPU จุดติดตามที่ระบุตามรูปแบบ: power/gpu_frequency
การใช้งานอุปกรณ์เคลื่อนที่
- [7.1.5/H-0-1] ต้องมีการสนับสนุนสำหรับรุ่นเดิม โหมดความเข้ากันได้ของแอปพลิเคชันที่ใช้งานโดยอัปสตรีม Android ที่เปิดอยู่ ซอร์สโค้ด กล่าวคือ การใช้งานอุปกรณ์ต้องไม่เปลี่ยนแปลงทริกเกอร์ หรือ ที่จะเปิดใช้งานโหมดความเข้ากันได้ และต้องไม่เปลี่ยนแปลง ของโหมดความเข้ากันได้
- [7.2.1/H-0-1] ต้องมีการสนับสนุนสำหรับบุคคลที่สาม แอปพลิเคชัน Input Method Editor (IME)
- [7.2.3/H-0-2] ต้องส่งทั้งการกดปกติและกดค้าง
เหตุการณ์ของฟังก์ชันย้อนกลับ (
KEYCODE_BACK
) ไปยังแอปพลิเคชันเบื้องหน้า เหตุการณ์เหล่านี้ต้องไม่ใช้โดยระบบ และอยู่นอกอุปกรณ์ Android (เช่น ฮาร์ดแวร์ภายนอก) แป้นพิมพ์ที่เชื่อมต่อกับอุปกรณ์ Android) - [7.2.3/H-0-3] ต้องเปิดฟังก์ชัน "อยู่บ้าน" ทุกหน้าจอที่รองรับ Android ซึ่งมีหน้าจอหลัก
- [7.2.3/H-0-4] ต้องระบุฟังก์ชัน "กลับ" ทั้งหมด จอแสดงผลที่รองรับ Android และฟังก์ชัน "ล่าสุด" บน จอแสดงผลที่รองรับ Android
- [7.2.4/H-0-1] ต้องรองรับอินพุตหน้าจอสัมผัส
- [7.2.4/H-SR-1] ขอแนะนำอย่างยิ่งให้เปิดตัว
แอปช่วยเหลือที่ผู้ใช้เลือก ซึ่งก็คือแอปที่ใช้งาน
VoiceInteractionService หรือกิจกรรมที่จัดการ
ACTION_ASSIST
เมื่อกดKEYCODE_MEDIA_PLAY_PAUSE
ค้างไว้ หรือKEYCODE_HEADSETHOOK
หากกิจกรรมเบื้องหน้าไม่สามารถจัดการกิจกรรมการกดค้างเหล่านั้นได้ - [7.3.1/H-SR-1] แนะนําอย่างยิ่งให้มีแกน 3 แกน ตัวตรวจวัดความเร่ง
หากการใช้งานอุปกรณ์พกพามีตัวตรวจวัดความเร่งแบบ 3 แกน สิ่งที่จะเกิดขึ้นมีดังนี้
- [7.3.1/H-1-1] ต้องรายงานเหตุการณ์ได้ตามความถี่ อย่างน้อย 100 Hz
หากอุปกรณ์มือถือมีตัวรับสัญญาณ GPS/GNSS และรายงาน
แอปพลิเคชันผ่านฟีเจอร์ android.hardware.location.gps
ไม่เหมาะสม
- [7.3.3/H-2-1] ต้องรายงานการวัด GNSS ทันที แม้ว่าจะยังไม่มีการรายงานตำแหน่งที่คำนวณจาก GPS/GNSS ก็ตาม
- [7.3.3/H-2-2] ต้องรายงานช่วง Pseudorange และ Pseudorange ของ GNSS ในสภาพอากาศที่โล่งหลังจากระบุตำแหน่ง อยู่กับที่หรือการเคลื่อนที่น้อยกว่า 0.2 เมตรต่อวินาทีของ ความเร่ง ก็เพียงพอที่จะคำนวณตำแหน่งที่อยู่ในระยะ 20 เมตร และความเร็ว ภายใน 0.2 เมตรต่อวินาที อย่างน้อย 95% ของเวลาทั้งหมด
หากการใช้งานอุปกรณ์พกพามีเครื่องวัดการหมุน 3 แกน สิ่งที่จะเกิดขึ้นมีดังนี้
- [7.3.4/H-3-1] ต้องรายงานเหตุการณ์ได้ตามความถี่ อย่างน้อย 100 Hz
- [7.3.4/H-3-2] ต้องสามารถวัดการเปลี่ยนแปลงการวางแนวได้ ได้สูงสุดถึง 1000 องศาต่อวินาที
การใช้งานอุปกรณ์เคลื่อนที่ที่สามารถโทรออกด้วยเสียงและระบุ
ค่าใดๆ ที่ไม่ใช่ PHONE_TYPE_NONE
ใน getPhoneType
:
- [7.3.8/H] ควรมีพร็อกซิมิตีเซ็นเซอร์
การใช้งานอุปกรณ์เคลื่อนที่
- [7.3.11/H-SR-1] แนะนำอย่างยิ่งให้รองรับเซ็นเซอร์ท่าทาง ด้วยอุณหภูมิอิสระ 6 องศา
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
หากอุปกรณ์รองรับโปรโตคอล Wi-Fi Neighbor Awareness Networking (NAN) โดย
ประกาศ PackageManager.FEATURE_WIFI_AWARE
และตำแหน่ง Wi-Fi (Wi-Fi Round
เวลาเดินทาง — RTT) โดยประกาศ PackageManager.FEATURE_WIFI_RTT
จากนั้นระบบจะดำเนินการดังต่อไปนี้
[7.4.2.5/H-1-1] ต้องรายงานช่วงอย่างถูกต้องเพื่อ ในระยะ +/-1 เมตรที่แบนด์วิดท์ 160 MHz ที่เปอร์เซ็นไทล์ที่ 68 (ตามที่คำนวณแล้ว พร้อมด้วยฟังก์ชันการกระจายสะสม) ความถี่ +/-2 เมตรที่แบนด์วิดท์ 80 MHz ที่ เปอร์เซ็นไทล์ที่ 68, +/-4 เมตรที่แบนด์วิดท์ 40 MHz ที่เปอร์เซ็นไทล์ที่ 68 และ +/-8 เมตรที่แบนด์วิดท์ 20 MHz ที่เปอร์เซ็นไทล์ที่ 68 ที่ระยะทาง 10 ซม., 1 ม., 3 ม. และ 5 ม. ตามสังเกตการณ์ผ่านทางแท็ก WifiRttManager#startRanging Android API
[7.4.2.5/H-SR-1] ขอแนะนําอย่างยิ่งให้รายงาน วัดช่วงได้แม่นยำภายใน +/-1 เมตรที่แบนด์วิดท์ 160 MHz ที่ความเร็ว 90 เปอร์เซ็นไทล์ (คำนวณด้วยฟังก์ชันการกระจายสะสม) +/-2 เมตรที่แบนด์วิดท์ 80 MHz ที่เปอร์เซ็นไทล์ที่ 90 และ +/-4 เมตรที่ 40 MHz ที่เปอร์เซ็นไทล์ที่ 90 และ +/-8 เมตรที่แบนด์วิดท์ 20 MHz ที่ เปอร์เซ็นไทล์ที่ 90 ที่ระยะทาง 10 ซม. ตามที่สังเกตการณ์ผ่านทาง WifiRttManager#startRanging Android API
ขอแนะนําอย่างยิ่งให้ทําตามขั้นตอนการตั้งค่าการวัดผลที่ระบุไว้ใน การปรับเทียบสถานที่ตั้ง
หากการใช้งานอุปกรณ์พกพาประกาศเป็น FEATURE_BLUETOOTH_LE
สิ่งที่จะเกิดขึ้นมีดังนี้
- [7.4.3/H-1-3] ต้องวัดค่าและชดเชย Rx
เพื่อให้มั่นใจว่าค่ามัธยฐานของ BLE RSSI เท่ากับ -50dBm +/-15 dB ที่ระยะห่าง 1 เมตรจาก
กำลังส่งอุปกรณ์อ้างอิงเมื่อ
ADVERTISE_TX_POWER_HIGH
- [7.4.3/H-1-4] ต้องวัดและชดเชย Tx
เพื่อให้มั่นใจว่าค่ามัธยฐานของ BLE RSSI เท่ากับ -50dBm +/-15 dB เมื่อสแกนจาก
อุปกรณ์อ้างอิงอยู่ในตำแหน่งที่ระยะห่าง 1 เมตรและกำลังส่งสัญญาณที่
ADVERTISE_TX_POWER_HIGH
หากการใช้งานอุปกรณ์พกพารวมถึงอุปกรณ์กล้องเชิงตรรกะที่แสดง
โดยใช้ความสามารถ
CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA
ดังนี้
- [7.5.4/H-1-1] ต้องมีขอบเขตการมองเห็น (FOV) ปกติโดยค่าเริ่มต้น และต้องมีค่าระหว่าง 50 ถึง องศา
การใช้งานอุปกรณ์เคลื่อนที่
- [7.6.1/H-0-1] ต้องมีพื้นที่เก็บข้อมูลอย่างน้อย 4 GB พื้นที่เก็บข้อมูลที่ไม่ผันผวนสำหรับข้อมูลส่วนตัวของแอปพลิเคชัน (หรือที่เรียกว่าพาร์ติชัน "/data")
- [7.6.1/H-0-2] ต้องแสดงผล "จริง" สำหรับ
ActivityManager.isLowRamDevice()
เมื่อมีหน่วยความจำน้อยกว่า 1 GB พร้อมใช้งานสำหรับเคอร์เนลและพื้นที่ผู้ใช้
หากการใช้อุปกรณ์พกพาประกาศว่ารองรับ ABI แบบ 32 บิตเท่านั้น ให้ทําดังนี้
[7.6.1/H-1-1] หน่วยความจำที่มีให้กับเคอร์เนล และพื้นที่ผู้ใช้ต้องมีขนาดอย่างน้อย 416 MB หากจอแสดงผลเริ่มต้นใช้ FrameBuffer ความละเอียดได้สูงสุด qHD (เช่น FWVGA)
[7.6.1/H-2-1] หน่วยความจำที่พร้อมใช้งานสำหรับเคอร์เนล และพื้นที่ผู้ใช้ต้องมีขนาดอย่างน้อย 592 MB หากจอแสดงผลเริ่มต้นใช้ FrameBuffer ความละเอียดสูงสุดถึง HD+ (เช่น HD, WSVGA)
[7.6.1/H-3-1] หน่วยความจำที่พร้อมใช้งานสำหรับเคอร์เนล และพื้นที่ผู้ใช้ต้องมีขนาดอย่างน้อย 896 MB หากจอแสดงผลเริ่มต้นใช้ FrameBuffer ความละเอียดสูงสุดถึง FHD (เช่น WSXGA+)
[7.6.1/H-4-1] หน่วยความจำที่พร้อมใช้งานสำหรับเคอร์เนล และพื้นที่ผู้ใช้ต้องมีขนาดอย่างน้อย 1344 MB หากจอแสดงผลเริ่มต้นใช้ ความละเอียดเฟรมบัฟเฟอร์สูงสุดถึง QHD (เช่น QWXGA)
หากการใช้งานอุปกรณ์พกพาประกาศว่ารองรับ ABI 64 บิต (มีหรือไม่มี ABI แบบ 32 บิต) ให้ทำดังนี้
[7.6.1/H-5-1] หน่วยความจำที่พร้อมใช้งานสำหรับเคอร์เนล และพื้นที่ผู้ใช้ต้อง มีขนาดอย่างน้อย 816 MB หากจอแสดงผลเริ่มต้นใช้ความละเอียดเฟรมบัฟเฟอร์ เป็น qHD (เช่น FWVGA)
[7.6.1/H-6-1] หน่วยความจำที่มีให้กับเคอร์เนล และพื้นที่ผู้ใช้ต้องมีค่าอย่างน้อย 944 MB หากจอแสดงผลเริ่มต้นใช้ความละเอียดเฟรมบัฟเฟอร์สูงสุดถึง HD+ (เช่น HD, WSVGA)
[7.6.1/H-7-1] หน่วยความจำที่พร้อมใช้งานสำหรับเคอร์เนล และพื้นที่ผู้ใช้ต้องมีค่าอย่างน้อย 1280 MB หากจอแสดงผลเริ่มต้นใช้ความละเอียดเฟรมบัฟเฟอร์สูงสุด FHD (เช่น WSXGA+)
[7.6.1/H-8-1] หน่วยความจำที่พร้อมใช้งานสำหรับเคอร์เนล และพื้นที่ผู้ใช้ต้องมีค่าอย่างน้อย 1824 MB หากจอแสดงผลเริ่มต้นใช้ความละเอียดเฟรมบัฟเฟอร์สูงสุด QHD (เช่น QWXGA)
โปรดทราบว่า "หน่วยความจำที่พร้อมใช้งานสำหรับเคอร์เนลและพื้นที่ผู้ใช้" ข้างต้นหมายถึง พื้นที่หน่วยความจำที่มีให้นอกเหนือจากหน่วยความจำที่มีไว้สำหรับฮาร์ดแวร์อยู่แล้ว เช่น วิทยุ วิดีโอ และอื่นๆ ที่ไม่ได้อยู่ภายใต้ ควบคุมการใช้งานอุปกรณ์
หากการใช้งานอุปกรณ์พกพามีหน่วยความจำน้อยกว่าหรือเท่ากับ 1 GB พร้อมใช้งานสำหรับเคอร์เนลและพื้นที่ผู้ใช้
- [7.6.1/H-9-1] ต้องประกาศแฟล็กฟีเจอร์
android.hardware.ram.low
- [7.6.1/H-9-2] ต้องมีพื้นที่เก็บข้อมูลอย่างน้อย 1.1 GB พื้นที่เก็บข้อมูลที่ไม่ผันผวนสำหรับแอปพลิเคชัน ข้อมูลส่วนตัว (หรือที่เรียกว่าพาร์ติชัน "/data")
หากใช้งานอุปกรณ์พกพามีหน่วยความจำมากกว่า 1 GB ไปยังเคอร์เนลและพื้นที่ผู้ใช้
- [7.6.1/H-10-1] ต้องมีพื้นที่เก็บข้อมูลอย่างน้อย 4 GB พื้นที่เก็บข้อมูลที่ไม่ผันผวนสำหรับ ข้อมูลส่วนตัวของแอปพลิเคชัน (หรือที่เรียกว่าพาร์ติชัน "/data")
- ควรประกาศแฟล็กฟีเจอร์
android.hardware.ram.normal
หากการใช้งานอุปกรณ์พกพามีค่ามากกว่าหรือเท่ากับ 2 GB และมีหน่วยความจำน้อยกว่า 4 GB สำหรับเคอร์เนลและพื้นที่ผู้ใช้
- [7.6.1/H-SR-1] แนะนําอย่างยิ่งให้รองรับพื้นที่ผู้ใช้แบบ 32 บิตเท่านั้น (ทั้งแอปและโค้ดของระบบ)
หากการใช้งานอุปกรณ์พกพามีหน่วยความจำน้อยกว่า 2 GB เคอร์เนลและพื้นที่ผู้ใช้
- [7.6.1/H-1-1] ต้องรองรับ ABI เดียวเท่านั้น (64 บิตเท่านั้นหรือ 32 บิต เท่านั้น)
การใช้งานอุปกรณ์เคลื่อนที่
- [7.6.2/H-0-1] ต้องไม่ให้ใบสมัคร พื้นที่เก็บข้อมูลที่ใช้ร่วมกันมีขนาดเล็กกว่า 1 GiB
- [7.7.1/H] ควรรวมพอร์ต USB ที่รองรับโหมดอุปกรณ์ต่อพ่วง
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
หากการใช้งานอุปกรณ์พกพามีพอร์ต USB
การสนับสนุน
ซึ่งมีตัวควบคุมที่ทำงานใน
อุปกรณ์ต่อพ่วงอาจมีลักษณะดังนี้
- [7.7.1/H-1-1] ต้องใช้ Android Open Accessory (AOA) API
สิ้นสุดข้อกำหนดใหม่
หากการใช้งานอุปกรณ์พกพามีพอร์ต USB ที่รองรับโหมดโฮสต์ ดังนี้
- [7.7.2/H-1-1] ต้องใช้คลาสเสียง USB ตามที่ระบุไว้ในเอกสาร Android SDK
การใช้งานอุปกรณ์เคลื่อนที่
- [7.8.1/H-0-1] ต้องมีไมโครโฟน
- [7.8.2/H-0-1] ต้องมีเอาต์พุตเสียงและประกาศ
android.hardware.audio.output
การใช้งานอุปกรณ์เคลื่อนที่มีประสิทธิภาพครบถ้วนหรือไม่ ข้อกำหนดในการสนับสนุนโหมด VR และมีการรองรับโหมด VR ดังนี้
- [7.9.1/H-1-1] ต้องประกาศส่วน
แฟล็กฟีเจอร์
android.hardware.vr.high_performance
- [7.9.1/H-1-2] ต้องระบุแอปพลิเคชัน
กำลังติดตั้ง
android.service.vr.VrListenerService
ที่เปิดใช้ได้ด้วย VR แอปพลิเคชันผ่านandroid.app.Activity#setVrModeEnabled
หากใช้งานอุปกรณ์พกพามีพอร์ต USB-C อย่างน้อย 1 พอร์ตในโฮสต์ และติดตั้งใช้งาน (คลาสเสียง USB) นอกเหนือจากข้อกำหนดใน ส่วนที่ 7.7.2 เพื่อนำไปใช้
- [7.8.2.2/H-1-1] ต้องระบุการแมปซอฟต์แวร์ต่อไปนี้ ของโค้ด HID:
การทำงาน | การแมป | บริบท | ลักษณะการทำงาน |
---|---|---|---|
ก | หน้าการใช้งาน HID: 0x0C การใช้งาน HID: 0x0CD คีย์เคอร์เนล: KEY_PLAYPAUSE คีย์ Android: KEYCODE_MEDIA_PLAY_PAUSE |
การเล่นสื่อ | อินพุต: กดสั้น เอาต์พุต: เล่นหรือหยุดชั่วคราว |
อินพุต: กดค้าง เอาต์พุต: เปิดคำสั่งเสียง ส่ง: android.speech.action.VOICE_SEARCH_HANDS_FREE หากอุปกรณ์
มีการล็อกหรือปิดหน้าจอ จำนวนครั้งที่ส่ง
จ่าย android.speech.RecognizerIntent.ACTION_WEB_SEARCH |
|||
สายเรียกเข้า | อินพุต: กดสั้น เอาต์พุต: รับสาย |
||
อินพุต: กดค้าง เอาต์พุต: ปฏิเสธสาย |
|||
สายที่สนทนาอยู่ | อินพุต: กดสั้น เอาต์พุต: วางสาย |
||
อินพุต: กดค้าง เอาต์พุต: ปิดหรือเปิดเสียงไมโครโฟน |
|||
B | หน้าการใช้งาน HID: 0x0C การใช้งาน HID: 0x0E9 คีย์เคอร์เนล: KEY_VOLUMEUP คีย์ Android: VOLUME_UP |
การเล่นสื่อ การโทรที่ดำเนินอยู่ | อินพุต: กดสั้นหรือค้าง เอาต์พุต: เพิ่มระดับเสียงของระบบหรือชุดหูฟัง |
C | หน้าการใช้งาน HID: 0x0C การใช้งาน HID: 0x0EA คีย์เคอร์เนล: KEY_VOLUMEDOWN คีย์ Android: VOLUME_DOWN |
การเล่นสื่อ การโทรที่ดำเนินอยู่ | อินพุต: กดสั้นหรือค้าง เอาต์พุต: ลดระดับเสียงของระบบหรือชุดหูฟัง |
D | หน้าการใช้งาน HID: 0x0C การใช้งาน HID: 0x0CF คีย์เคอร์เนล: KEY_VOICECOMMAND คีย์ Android: KEYCODE_VOICE_ASSIST |
ทั้งหมด ทริกเกอร์ได้ในทุกอินสแตนซ์ | อินพุต: กดสั้นหรือค้าง เอาต์พุต: เปิดคำสั่งเสียง |
- [7.8.2.2/H-1-2] ต้องทริกเกอร์ ACTION_HEADSET_PLUG เมื่อมีการเสียบปลั๊ก แต่เฉพาะเมื่อต่ออินเทอร์เฟซเสียงและปลายทาง USB แล้ว ได้รับการระบุอย่างเหมาะสมเพื่อระบุประเภทของขั้วต่อที่เชื่อมต่อ
เมื่อตรวจพบขั้วปลายสายไฟ USB ประเภท 0x0302 จะเกิดสิ่งต่อไปนี้
- [7.8.2.2/H-2-1] ต้องประกาศ Intent ACTION_HEADSET_PLUG ด้วย "ไมโครโฟน" ตั้งค่าพิเศษเป็น 0
เมื่อตรวจพบขั้วปลายสายไฟ USB ประเภท 0x0402 จะเกิดสิ่งต่อไปนี้
- [7.8.2.2/H-3-1] ต้องประกาศ Intent ACTION_HEADSET_PLUG ด้วย "ไมโครโฟน" ตั้งค่าเพิ่มเติมเป็น 1
เมื่อมีการเรียก API AudioManager.getDevices() ขณะที่อุปกรณ์ต่อพ่วง USB เชื่อมต่อไว้:
[7.8.2.2/H-4-1] ต้องระบุอุปกรณ์ประเภท AudioDeviceInfo.TYPE_USB_HEADSET และบทบาท
isSink()
หากช่องประเภทขั้วต่อเสียง USB คือ 0x0302[7.8.2.2/H-4-2] ต้องระบุประเภทอุปกรณ์ AudioDeviceInfo.TYPE_USB_HEADSET และบทบาท
isSink()
หากขั้วปลายสายไฟเสียง USB ฟิลด์ประเภทคือ 0x0402[7.8.2.2/H-4-3] ต้องระบุประเภทอุปกรณ์ AudioDeviceInfo.TYPE_USB_HEADSET และบทบาท
isSource()
หากขั้วปลายสายไฟเสียง USB ฟิลด์ประเภทคือ 0x0402[7.8.2.2/H-4-4] ต้องระบุอุปกรณ์ประเภท AudioDeviceInfo.TYPE_USB_DEVICE และบทบาท
isSink()
หากช่องประเภทขั้วต่อเสียง USB คือ 0x603[7.8.2.2/H-4-5] ต้องระบุประเภทอุปกรณ์ AudioDeviceInfo.TYPE_USB_DEVICE และบทบาท
isSource()
หากขั้วปลายสายไฟเสียง USB ฟิลด์ประเภท คือ 0x604[7.8.2.2/H-4-6] ต้องระบุประเภทอุปกรณ์ AudioDeviceInfo.TYPE_USB_DEVICE และบทบาท
isSink()
หากเป็นประเภทขั้วปลายสายไฟ USB คือ 0x400[7.8.2.2/H-4-7] ต้องระบุประเภทอุปกรณ์ AudioDeviceInfo.TYPE_USB_DEVICE และบทบาท
isSource()
หากขั้วปลายสายไฟเสียง USB คือ 0x400[7.8.2.2/H-SR-1] ขอแนะนำอย่างยิ่งเมื่อเชื่อมโยงกับ อุปกรณ์ต่อพ่วงเสียง USB-C สำหรับทำการแจงนับข้อบ่งชี้ USB ประเภทเทอร์มินัลและ Intent การออกอากาศ ACTION_HEADSET_PLUG ที่น้อยกว่า 1,000 มิลลิวินาที
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
หาก
สำหรับ
การใช้งานอุปกรณ์เคลื่อนที่
ที่ประกาศ
android.hardware.audio.output
และ android.hardware.microphone
กลุ่มเป้าหมายเหล่านี้
ดูข้อกำหนด RTL และ TTL ในส่วน
5.6
[5.6/H-1-1] ต้องมีการเดินทางไป-กลับเฉลี่ยต่อเนื่อง เวลาในการตอบสนอง 300 มิลลิวินาที หรือ น้อยกว่า 5 การวัด โดยมีค่าเบี่ยงเบนค่าเฉลี่ยน้อยกว่า 30 มิลลิวินาที เกิน เส้นทางข้อมูลต่อไปนี้: "ลำโพงต่อไมโครโฟน", อะแดปเตอร์ Loopback ขนาด 3.5 มม. (หากรองรับ), USB Loopback (หากรองรับ)
[5.6/H-1-2] ต้องมีเวลาในการตอบสนอง "แตะเพื่อโทนเสียง" โดยเฉลี่ย 300 มิลลิวินาทีหรือ ทำให้วัดผ่านลำโพงได้อย่างน้อย 5 ครั้ง ไปยังข้อมูลไมโครโฟน
สิ้นสุดข้อกำหนดใหม่
แอคชูเอเตอร์เชิงเส้น (LRA) เป็นระบบสปริงแบบมวลเดี่ยวซึ่งมี ความถี่สะท้อนที่สะท้อนกลับซึ่งมวลแปลไปในทิศทางของ การเคลื่อนไหวที่ต้องการ
หากการใช้งานอุปกรณ์พกพามีวัตถุประสงค์ทั่วไปอย่างน้อย 1 อย่าง 7.10 แอคชูเอเตอร์เรโซแนนต์เชิงเส้น
[7.10/H] ควรวางตำแหน่งของอุปกรณ์แอคชูเอเตอร์ใกล้กับ ตำแหน่งที่โดยปกติแล้วมือถือหรือสัมผัสอุปกรณ์
[7.10/สูง] ควรย้ายตัวดำเนินการการโต้ตอบแบบรู้สึกได้ในแกน X (ซ้าย-ขวา) ตามการวางแนวธรรมชาติของอุปกรณ์
หากการใช้งานอุปกรณ์พกพามีวัตถุประสงค์ทั่วไป ตัวดำเนินการแบบรู้สึกได้ ซึ่งเป็นแอคชูเอเตอร์เชิงเส้นแกน X (LRA)
- [7.10/สูง] ควรมีความถี่สะท้อนกลับของ LRA แกน X ต่ำกว่า 200 Hz
หากการใช้งานอุปกรณ์พกพาเป็นไปตามการแมปค่าคงที่แบบรู้สึกได้ สิ่งที่จะเกิดขึ้นมีดังนี้
- [7.10/H]* ควรตรวจสอบสถานะการติดตั้งใช้งานด้วยการเรียกใช้ android.os.Vibrator.areAllEffectsSupported() และ android.os.Vibrator.arePrimitivesSupported() API
[7.10/H]* ควรทำ การประเมินคุณภาพ เพื่อหาค่าคงที่แบบรู้สึกได้
[7.10/H]* ควรตรวจสอบและอัปเดตหากจำเป็น การกำหนดค่าสำหรับค่าพื้นฐานที่ไม่รองรับตามที่อธิบายไว้ใน หลักเกณฑ์การใช้งาน สำหรับค่าคงที่
2.2.2. มัลติมีเดีย
การใช้งานอุปกรณ์มือถือต้องรองรับการเข้ารหัสเสียงและ เพื่อถอดรหัสรูปแบบต่อไปนี้และทำให้พร้อมใช้งานกับแอปพลิเคชันของบุคคลที่สามได้
- [5.1/H-0-1] AMR-NB
- [5.1/H-0-2] AMR-WB
- [5.1/H-0-3] โปรไฟล์ MPEG-4 AAC (AAC LC)
- [5.1/H-0-4] โปรไฟล์ MPEG-4 HE AAC (AAC+)
- [5.1/H-0-5] AAC ELD (ปรับปรุงความหน่วงต่ำ AAC)
การใช้งานอุปกรณ์มือถือต้องรองรับการเข้ารหัสวิดีโอต่อไปนี้ รูปแบบต่อไปนี้และทำให้ใช้งานกับแอปพลิเคชันของบุคคลที่สามได้
การใช้งานอุปกรณ์มือถือต้องรองรับการถอดรหัสวิดีโอต่อไปนี้ รูปแบบต่อไปนี้และทำให้ใช้งานกับแอปพลิเคชันของบุคคลที่สามได้
- [5.3/H-0-1] H.264 AVC
- [5.3/H-0-2] H.265 HEVC
- [5.3/H-0-3] MPEG-4 SP
- [5.3/H-0-4] VP8
- [5.3/H-0-5] VP9
- [5.3/H-0-6] AV1
2.2.3. ซอฟต์แวร์
การใช้งานอุปกรณ์เคลื่อนที่
- [3.2.3.1/H-0-1] ต้องมี
ที่จัดการ
ACTION_GET_CONTENT
ACTION_OPEN_DOCUMENT
,ACTION_OPEN_DOCUMENT_TREE
และACTION_CREATE_DOCUMENT
ตามที่อธิบายไว้ในเอกสาร SDK และช่วยให้ผู้ใช้จ่ายได้ เพื่อเข้าถึงข้อมูลผู้ให้บริการเอกสารโดยใช้DocumentsProvider
API - [3.2.3.1/H-0-2]* ต้องโหลดล่วงหน้า 1 รายการ แอปพลิเคชันหรือคอมโพเนนต์บริการมากกว่า ที่มีเครื่องจัดการ Intent รูปแบบตัวกรอง Intent สาธารณะทั้งหมดที่กำหนดโดยแอปพลิเคชันต่อไปนี้ Intent แสดงอยู่ที่นี่
- [3.2.3.1/H-SR-1] มีประสิทธิภาพอย่างมาก แนะนำให้โหลดแอปพลิเคชันอีเมลล่วงหน้าที่สามารถจัดการ ACTION_SENDTO ล่วงหน้า หรือ ACTION_SEND หรือ ACTION_SEND_MULTIPLE ต้องการส่งอีเมล
- [3.4.1/H-0-1] ต้องระบุฟิลด์
การใช้งาน
android.webkit.Webview
API - [3.4.2/H-0-1] ต้องมีเบราว์เซอร์แบบสแตนด์อโลน แอปพลิเคชันสำหรับเรียกดูเว็บของผู้ใช้ทั่วไป
- [3.8.1/H-SR-1] ขอแนะนำเป็นอย่างยิ่ง เพื่อใช้ Launcher เริ่มต้นที่รองรับการปักหมุดทางลัดในแอป วิดเจ็ต และ widgetFeatures
- [3.8.1/H-SR-2] ขอแนะนำเป็นอย่างยิ่ง เพื่อใช้ Launcher เริ่มต้นที่ช่วยให้เข้าถึง แป้นพิมพ์ลัดที่ได้จากแอปของบุคคลที่สามผ่าน แป้นพิมพ์ลัด API
- [3.8.1/H-SR-3] ขอแนะนำเป็นอย่างยิ่ง เพื่อรวมแอป Launcher เริ่มต้นซึ่งแสดงป้ายสำหรับไอคอนแอป
- [3.8.2/H-SR-1] ขอแนะนำเป็นอย่างยิ่ง เพื่อรองรับวิดเจ็ตแอปของบุคคลที่สาม
- [3.8.3/H-0-1] ต้องอนุญาตบุคคลที่สาม
แอปสำหรับแจ้งเตือนผู้ใช้เกี่ยวกับกิจกรรมสำคัญผ่านทาง
Notification
และNotificationManager
คลาส API - [3.8.3/H-0-2] ต้องรองรับเวอร์ชันสมบูรณ์ การแจ้งเตือน
- [3.8.3/H-0-3] ต้องรองรับการแจ้งเตือน การแจ้งเตือน
- [3.8.3/H-0-4] ต้องมี หน้าต่างแจ้งเตือน ซึ่งช่วยให้ผู้ใช้สามารถควบคุมได้โดยตรง (เช่น ตอบ, เลื่อนการแจ้งเตือน, ปิด, บล็อก) การแจ้งเตือนผ่านโฆษณาสำหรับผู้ใช้ เช่น ปุ่มดำเนินการหรือแผงควบคุมตามที่ใช้ใน AOSP
- [3.8.3/H-0-5] ต้องแสดงตัวเลือก
ให้บริการผ่าน
RemoteInput.Builder setChoices()
ในหน้าต่างแจ้งเตือน - [3.8.3/H-SR-1] ขอแนะนำเป็นอย่างยิ่ง
เพื่อแสดงตัวเลือกแรกที่ให้ไว้ผ่าน
RemoteInput.Builder setChoices()
ในหน้าต่างแจ้งเตือนโดยไม่ต้องมีการโต้ตอบเพิ่มเติมจากผู้ใช้ - [3.8.3/H-SR-2] ขอแนะนำเป็นอย่างยิ่ง
เพื่อแสดงตัวเลือกทั้งหมดที่ให้ไว้ผ่าน
RemoteInput.Builder setChoices()
ในหน้าต่างแจ้งเตือนเมื่อผู้ใช้ขยายการแจ้งเตือนทั้งหมดในหน้าต่าง หน้าต่างแจ้งเตือน - [3.8.3.1/H-SR-1] ขอแนะนำเป็นอย่างยิ่ง
เพื่อแสดงการทำงานที่
Notification.Action.Builder.setContextual
ตั้งค่าเป็นtrue
ในบรรทัดโดยแสดงการตอบโดยNotification.Remoteinput.Builder.setChoices
- [3.8.4/H-SR-1] ขอแนะนำเป็นอย่างยิ่ง เพื่อใช้ Assistant ในอุปกรณ์เพื่อจัดการการดำเนินการของตัวช่วย
การใช้งานอุปกรณ์พกพารองรับการแจ้งเตือน MediaStyle หรือไม่ ดังนี้
- [3.8.3.1/H-SR-2] ขอแนะนำเป็นอย่างยิ่ง
เพื่อมอบพื้นที่โฆษณาสำหรับผู้ใช้ (เช่น ตัวสลับเอาต์พุต) ที่เข้าถึงจาก
UI ระบบที่อนุญาตให้ผู้ใช้สลับระหว่างสื่อที่เหมาะสม
(เช่น อุปกรณ์บลูทูธและเส้นทางที่ระบุไปยัง
MediaRouter2Manager
) เมื่อแอปโพสต์การแจ้งเตือนMediaStyle
ที่มีโทเค็นMediaSession
หากใช้อุปกรณ์ ซึ่งรวมถึงแป้นการนำทางของฟังก์ชันล่าสุดเป็น โดยละเอียดในส่วนที่ 7.2.3 ปรับเปลี่ยนอินเทอร์เฟซ
- [3.8.3/H-1-1] ต้องใช้หน้าจอ การปักหมุดและให้เมนูการตั้งค่าแก่ผู้ใช้เพื่อเปิด/ปิด
หากการใช้งานอุปกรณ์เคลื่อนที่รองรับการดำเนินการของ "ผู้ช่วย" สิ่งที่จะเกิดขึ้นมีดังนี้
- [3.8.4/H-SR-2] ขอแนะนำเป็นอย่างยิ่ง
เพื่อกดค้างที่คีย์
HOME
เป็นการโต้ตอบที่กำหนดเพื่อเรียกใช้งาน แอปผู้ช่วยตามที่อธิบายไว้ในส่วนที่ 7.2.3 ต้องเปิด แอปช่วยเหลือที่ผู้ใช้เลือก ซึ่งก็คือแอปที่ใช้งานVoiceInteractionService
หรือกิจกรรมที่จัดการ IntentACTION_ASSIST
หากการใช้งานอุปกรณ์พกพารองรับ conversation notifications
และจัดกลุ่มการแจ้งเตือนเป็นอีกส่วนหนึ่งจากการแจ้งเตือนและการไม่สนทนาแบบปิดเสียง
การแจ้งเตือนเหล่านี้จะ
- [3.8.4/H-1-1]* ต้องแสดง การแจ้งเตือนการสนทนาก่อนการแจ้งเตือนที่ไม่ใช่การสนทนาด้วย ข้อยกเว้นของการแจ้งเตือนบริการที่ทำงานอยู่เบื้องหน้าอย่างต่อเนื่อง ความสำคัญ:สูง การแจ้งเตือน
การใช้งานอุปกรณ์มือถือ Android รองรับหน้าจอล็อกจะส่งผลดังนี้
- [3.8.10/H-1-1] ต้องแสดงล็อก การแจ้งเตือนบนหน้าจอ รวมถึงเทมเพลตการแจ้งเตือนสื่อ
หากการใช้งานอุปกรณ์พกพารองรับหน้าจอล็อกที่ปลอดภัย สิ่งที่จะเกิดขึ้นมีดังนี้
- [3.9/H-1-1] ต้องใช้ การดูแลระบบอุปกรณ์ นโยบายที่กำหนดไว้ในเอกสาร Android SDK
หากการใช้งานอุปกรณ์พกพามีการสนับสนุนสำหรับ
ControlsProviderService
และ Control
และอนุญาตให้แอปพลิเคชันของบุคคลที่สามเผยแพร่ระบบควบคุมอุปกรณ์ จากนั้นจะทำสิ่งต่อไปนี้
- [3.8.16/H-1-1] ต้องประกาศฟีเจอร์
แฟล็ก
android.software.controls
แล้วตั้งค่าเป็นtrue
- [3.8.16/H-1-2] ต้องระบุผู้ใช้
ความสามารถในการเพิ่ม แก้ไข เลือก และดำเนินการ
ระบบควบคุมอุปกรณ์โปรดจากการควบคุมที่ลงทะเบียนโดยบุคคลที่สาม
ผ่าน
ControlsProviderService
และControl
API - [3.8.16/H-1-3] ต้องให้สิทธิ์เข้าถึง ผู้ใช้นี้มีสิทธิ์การเข้าถึงภายใน 3 การโต้ตอบจาก Launcher เริ่มต้น
[3.8.16/H-1-4] ต้องแสดงผลอย่างถูกต้อง ในการสูญเสียชื่อและไอคอนของแอปบุคคลที่สามแต่ละแอป มอบการควบคุมผ่าน
ControlsProviderService
API และช่องที่ระบุโดยControl
API[3.8.16/H-1-5] ต้องระบุผู้ใช้ ค่าใช้จ่ายในการเลือกไม่ใช้ระบบควบคุมอุปกรณ์ในการตรวจสอบสิทธิ์ที่กำหนดไว้สำหรับแอป การควบคุมที่ลงทะเบียนโดยแอปพลิเคชันของบุคคลที่สามผ่าน
ControlsProviderService
และControl
Control.isAuthRequired
API[3.8.16/H-1-6] การติดตั้งใช้งานอุปกรณ์ ต้องแสดงให้เห็นราคาสำหรับผู้ใช้อย่างถูกต้องดังนี้
- หากอุปกรณ์ตั้งค่า
config_supportsMultiWindow=true
และแอปประกาศข้อมูลเมตาMETA_DATA_PANEL_ACTIVITY
ในช่วงControlsProviderService
รวมถึง ComponentName ของ กิจกรรมที่ถูกต้อง (ตามที่กำหนดโดย API) แอป "ต้องฝัง" ดังกล่าว การกระทำของผู้ใช้ในระดับนี้ - หากแอปไม่ได้ประกาศข้อมูลเมตา
META_DATA_PANEL_ACTIVITY
ฟิลด์ดังกล่าวจะต้องแสดงผลฟิลด์ที่ระบุ ตามที่ControlsProviderService
API และช่องที่ระบุโดย ควบคุม API
- หากอุปกรณ์ตั้งค่า
[3.8.16/H-1-7] หากแอปประกาศข้อมูลเมตา
META_DATA_PANEL_ACTIVITY
ตัวแปรต้องส่งผ่านค่าของการตั้งค่าที่กำหนดไว้ใน [3.8.16/H-1-5] โดยใช้EXTRA_LOCKSCREEN_ALLOW_TRIVIAL_CONTROLS
เมื่อเปิดใช้งานกิจกรรมที่ฝัง
ในทางกลับกัน หากการใช้งานอุปกรณ์พกพาไม่ได้ใช้การควบคุมดังกล่าว ดังนี้
- [3.8.16/H-2-1] ต้องรายงาน
null
สำหรับControlsProviderService
และControl
API - [3.8.16/H-2-2] ต้องประกาศฟีเจอร์
แฟล็ก
android.software.controls
แล้วตั้งค่าเป็นfalse
หากการใช้งานอุปกรณ์เคลื่อนที่ไม่ทำงานในโหมดล็อกงาน เมื่อคัดลอกเนื้อหาไปยังคลิปบอร์ด จะมีผลดังนี้
- [3.8.17/H-1-1] ต้องแสดงการยืนยันแก่ผู้ใช้ว่าข้อมูล คัดลอกไปยังคลิปบอร์ดแล้ว (เช่น ภาพขนาดย่อหรือการแจ้งเตือน "คัดลอกเนื้อหาแล้ว") นอกจากนี้ โปรดระบุที่นี่พร้อมระบุว่าระบบจะซิงค์ข้อมูลคลิปบอร์ดหรือไม่ ในอุปกรณ์ต่างๆ
การใช้งานอุปกรณ์เคลื่อนที่
- [3.10/H-0-1] ต้องรองรับการช่วยเหลือพิเศษของบุคคลที่สาม บริการต่างๆ
- [3.10/H-SR-1] ขอแนะนำอย่างยิ่งให้โหลดล่วงหน้า บริการการช่วยเหลือพิเศษในอุปกรณ์ซึ่งมีฟังก์ชันการทำงานเทียบเท่าหรือมากกว่า การเข้าถึงด้วยสวิตช์และ TalkBack (สำหรับภาษาที่รองรับ เครื่องมืออ่านออกเสียงข้อความ) บริการการช่วยเหลือพิเศษตามที่ระบุไว้ในTalkBack ที่เปิดอยู่ โปรเจ็กต์ต้นทาง
- [3.11/H-0-1] ต้องรองรับการติดตั้ง เครื่องมือ TTS ของบุคคลที่สาม
- [3.11/H-SR-1] ขอแนะนำเป็นอย่างยิ่งให้รวม เครื่องมือ TTS ที่รองรับภาษาที่พร้อมใช้งานในอุปกรณ์
- [3.13/H-SR-1] ขอแนะนำอย่างยิ่งให้รวม คอมโพเนนต์ UI การตั้งค่าด่วน
หากการใช้งานอุปกรณ์พกพาของ Android ประกาศเป็น FEATURE_BLUETOOTH
หรือ
FEATURE_WIFI
ซึ่งมีคุณสมบัติดังนี้
- [3.16/H-1-1] ต้องรองรับการจับคู่อุปกรณ์ที่ใช้ร่วมกัน
หากฟังก์ชันการนำทางมีให้ใช้งานเป็นการทำงานตามท่าทางสัมผัสบนหน้าจอ ให้ทำดังนี้
- [7.2.3/H] โซนการจดจำท่าทางสัมผัสสำหรับปุ่มหน้าแรก ฟังก์ชันควรสูงไม่เกิน 32 dp จากด้านล่างของ บนหน้าจอ
หากการใช้งานอุปกรณ์พกพามีฟังก์ชันการนำทางเป็นท่าทางสัมผัส จากส่วนใดก็ได้จากขอบด้านซ้ายและขวาของหน้าจอ:
- [7.2.3/H-0-1] พื้นที่ท่าทางสัมผัสของฟังก์ชันการนำทาง ต้องมีความกว้างน้อยกว่า 40 dp ในแต่ละด้าน พื้นที่ท่าทางสัมผัสควร ความกว้าง 24 dp โดยค่าเริ่มต้น
การใช้อุปกรณ์พกพารองรับหน้าจอล็อกที่ปลอดภัยและ หน่วยความจํา 2 GB ที่เคอร์เนลและพื้นที่ผู้ใช้ใช้งานได้
- [3.9/H-1-2] ต้องประกาศการรองรับโปรไฟล์ที่มีการจัดการผ่านทาง
แฟล็กฟีเจอร์
android.software.managed_users
หากการใช้งานอุปกรณ์พกพาของ Android ประกาศการรองรับกล้องผ่าน
android.hardware.camera.any
พวกเขา:
- [7.5.4/H-1-1] ต้องเป็นไปตาม
android.media.action.STILL_IMAGE_CAMERA
และandroid.media.action.STILL_IMAGE_CAMERA_SECURE
แล้วเปิดกล้องในโหมดภาพนิ่งตามที่อธิบายไว้ใน SDK - [7.5.4/H-1-2] ต้องเป็นไปตาม
android.media.action.VIDEO_CAMERA
ต้องการเปิดกล้องในโหมดวิดีโอตามที่อธิบายไว้ใน SDK
หากแอปพลิเคชันการตั้งค่าการใช้งานอุปกรณ์ใช้ ฟังก์ชันการแยกส่วน โดยใช้การฝังกิจกรรม แล้วแท็กเหล่านี้
- [3.2.3.1/ H-1-1] ต้องมีกิจกรรมที่จัดการ
การตั้งค่า#ACTION_SETTINGS_EMBED_DEEP_LINK_ACTIVITYเมื่อฟังก์ชันการแยกเปิดอยู่ กิจกรรมต้องได้รับการคุ้มครองโดย
android.permission.LAUNCH_MULTI_PANE_SETTINGS_DEEP_LINK
และ "ต้อง" เริ่มกิจกรรมของ Intent ที่แยกวิเคราะห์จาก การตั้งค่า#EXTRA_SETTINGS_EMBEDDED_DEEP_LINK_INTENT_URI
หากการติดตั้งใช้งานอุปกรณ์ช่วยให้ผู้ใช้โทรออกได้ทุกประเภท
- [7.4.1.2/H-0-1] ต้องประกาศแฟล็กฟีเจอร์
android.software.telecom
- [7.4.1.2/H-0-2] ต้องใช้เฟรมเวิร์กโทรคมนาคม
2.2.4 ประสิทธิภาพและศักยภาพ
- [8.1/H-0-1] เวลาในการตอบสนองเฟรมที่สม่ำเสมอ เวลาในการตอบสนองของเฟรมไม่สอดคล้องกันหรือความล่าช้าในการแสดงผลเฟรมต้องไม่เกิดขึ้นมากกว่านี้ มักมากกว่า 5 เฟรมในวินาทีหนึ่งๆ และควรต่ำกว่า 1 เฟรมในวินาทีนั้น
- [8.1/H-0-2] เวลาในการตอบสนองของอินเทอร์เฟซผู้ใช้ การใช้งานอุปกรณ์ต้องตรวจสอบว่าผู้ใช้จะได้รับประสบการณ์ที่มีเวลาในการตอบสนองต่ำด้วยการเลื่อน รายการจำนวน 10,000 รายการตามที่กำหนดโดยชุดทดสอบความเข้ากันได้ของ Android (CTS) ในเวลาไม่ถึง 36 วินาที
- [8.1/H-0-3] การสลับงาน วันและเวลา มีการเปิดตัวแอปพลิเคชันหลายรายการ ด้วยการเปิดตัวแอปพลิเคชันที่ทำงานอยู่แล้ว หลังจากเปิดตัวแล้ว จะใช้เวลาไม่ถึง 1 วินาที
การใช้งานอุปกรณ์เคลื่อนที่
- [8.2/H-0-1] ต้องตรวจสอบว่า ประสิทธิภาพการเขียนอย่างน้อย 5 MB/วินาที
- [8.2/H-0-2] ต้องแน่ใจว่ามีการเขียนแบบสุ่ม ประสิทธิภาพอย่างน้อย 0.5 MB/วินาที
- [8.2/H-0-3] ต้องตรวจสอบว่าได้อ่านตามลำดับ ประสิทธิภาพอย่างน้อย 15 MB/วินาที
- [8.2/H-0-4] ต้องมั่นใจว่าได้อ่านแบบสุ่ม ประสิทธิภาพอย่างน้อย 3.5 MB/วินาที
หากการใช้งานอุปกรณ์พกพามีฟีเจอร์สำหรับปรับปรุงพลังงานของอุปกรณ์ การจัดการที่รวมอยู่ใน AOSP หรือขยายฟีเจอร์ที่รวมอยู่ใน AOSP ใน AOSP พวกเขา
- [8.3/H-1-1] ต้องให้เงินแก่ผู้ใช้เพื่อเปิดใช้งาน และปิดใช้ฟีเจอร์โหมดประหยัดแบตเตอรี่
- [8.3/H-1-2] ต้องให้เงินแก่ผู้ใช้ในการแสดง แอปทั้งหมดที่ได้รับการยกเว้นจากโหมดสแตนด์บายแอปและโหมดประหยัดพลังงานของ Doze
การใช้งานอุปกรณ์เคลื่อนที่
- [8.4/H-0-1] ต้องระบุ โปรไฟล์พลังงานต่อคอมโพเนนต์ที่กำหนดมูลค่าการใช้งานปัจจุบัน ของส่วนประกอบฮาร์ดแวร์แต่ละส่วนและ ปริมาณการใช้แบตเตอรี่โดยประมาณที่เกิดจาก ในช่วงเวลาที่ผ่านมาตามที่ระบุไว้ในไซต์โครงการโอเพนซอร์ส Android
- [8.4/H-0-2] ต้องรายงานพลังงานทั้งหมด ค่าการบริโภคในหน่วยมิลลิแอมแปร์ชั่วโมง (mAh)
- [8.4/H-0-3] ต้องรายงานกำลังของ CPU
การใช้งานต่อ UID ของแต่ละกระบวนการ โครงการโอเพนซอร์ส Android พบกับ
ผ่านการใช้งานโมดูลเคอร์เนล
uid_cputime
- [8.4/H-0-4] ต้องใช้พลังงานเช่นนี้
มีให้บริการผ่าน
adb shell dumpsys batterystats
เชลล์ไปยังนักพัฒนาแอป - [8.4/H] ควรมีแหล่งที่มาจาก ของส่วนประกอบฮาร์ดแวร์เอง หากไม่สามารถระบุการใช้พลังงานของส่วนประกอบฮาร์ดแวร์ได้ ในแอปพลิเคชัน
การใช้งานอุปกรณ์พกพารวมถึงหน้าจอหรือเอาต์พุตวิดีโอจะส่งผลดังนี้
- [8.4/H-1-1] ต้องเคารพ
android.intent.action.POWER_USAGE_SUMMARY
ความตั้งใจ และแสดงเมนูการตั้งค่าที่แสดงการใช้พลังงานนี้
การใช้งานอุปกรณ์เคลื่อนที่
[8.5/H-0-1] ต้องระบุ งบประมาณของผู้ใช้ในการดูแอปทั้งหมดซึ่งมีบริการที่ทำงานอยู่เบื้องหน้า หรืองานที่เริ่มต้นโดยผู้ใช้ รวมถึงระยะเวลาของบริการแต่ละอย่าง นับตั้งแต่เริ่มตามที่อธิบายไว้ในเอกสาร SDK
[8.5/H-0-2]ต้องระบุค่าใช้จ่ายของผู้ใช้ในการ หยุดแอปที่เรียกใช้บริการที่ทำงานอยู่เบื้องหน้าหรืองานที่เริ่มต้นโดยผู้ใช้
2.2.5 โมเดลการรักษาความปลอดภัย
การใช้งานอุปกรณ์เคลื่อนที่
- [9/H-0-1] ต้องประกาศ
android.hardware.security.model.compatible
- [9.1/H-0-1] ต้องอนุญาตให้แอปของบุคคลที่สามเข้าถึง
สถิติการใช้งานผ่านสิทธิ์
android.permission.PACKAGE_USAGE_STATS
และจัดให้มีกลไกที่ผู้ใช้เข้าถึงได้เพื่อให้ เพิกถอนการเข้าถึงแอปดังกล่าวเพื่อตอบสนองต่อandroid.settings.ACTION_USAGE_ACCESS_SETTINGS
Intent
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
การใช้งานอุปกรณ์ต้องประกาศการรองรับ
android.software.credentials
และ:
[9/H-0-2] ต้องทำตาม Intent
android.settings.CREDENTIAL_PROVIDER
เพื่อให้เลือกผู้ให้บริการที่ต้องการสำหรับเครื่องมือจัดการข้อมูลเข้าสู่ระบบได้ ระบบจะเปิดใช้ผู้ให้บริการรายนี้สำหรับการป้อนข้อความอัตโนมัติและ จะเป็นตำแหน่งเริ่มต้นในการบันทึกข้อมูลเข้าสู่ระบบใหม่ด้วย ป้อนผ่านเครื่องมือจัดการข้อมูลเข้าสู่ระบบ[9/H-0-3] ต้องรองรับผู้ให้บริการข้อมูลเข้าสู่ระบบพร้อมกันอย่างน้อย 2 ราย และช่วยให้ผู้ใช้ประหยัดค่าใช้จ่ายในแอปการตั้งค่าได้ เพื่อเปิดหรือปิดใช้ผู้ให้บริการ
สิ้นสุดข้อกำหนดใหม่
หากการใช้งานอุปกรณ์ประกาศการรองรับ android.hardware.telephony
ดังนี้
- [9.5/H-1-1] ต้องไม่ตั้งค่า
UserManager.isHeadlessSystemUserMode
ไปยังtrue
การใช้งานอุปกรณ์เคลื่อนที่
- [9.11/H-0-2] ต้องสำรองข้อมูลการใช้งานคีย์สโตร์ ในสภาพแวดล้อมการดำเนินการที่แยกต่างหาก
- [9.11/H-0-3] ต้องมีการติดตั้งใช้งาน RSA, AES อัลกอริทึมการเข้ารหัส ECDSA และ HMAC รวมถึงตระกูล MD5, SHA-1 และ SHA-2 ฟังก์ชันแฮชเพื่อให้รองรับระบบ Android Keystore อัลกอริทึมในพื้นที่ที่แยกออกจากโค้ดที่ทำงานอย่างปลอดภัย เคอร์เนลขึ้นไป การแยกที่ปลอดภัยต้องบล็อกกลไกที่เป็นไปได้ทั้งหมด โค้ดเคอร์เนลหรือรหัสพื้นที่ผู้ใช้อาจเข้าถึงสถานะภายในของ สภาพแวดล้อมที่แยกจากกัน ซึ่งรวมถึง DMA โอเพนซอร์ส Android แบบโอเพนซอร์ส โปรเจ็กต์ (AOSP) เป็นไปตามข้อกำหนดนี้โดยใช้การติดตั้งใช้งานทรัสตี โซลูชันแบบ ARM TrustZone หรือการตรวจสอบที่ปลอดภัยโดยบุคคลที่สาม การนำการแยกโดยใช้ไฮเปอร์ไวเซอร์ที่เหมาะสมมาใช้เป็นทางเลือก ตัวเลือก
- [9.11/H-0-4] ต้องใช้หน้าจอล็อก การตรวจสอบสิทธิ์ในสภาพแวดล้อมการดำเนินการแบบแยกต่างหาก และเฉพาะเมื่อ สำเร็จ อนุญาตให้ใช้คีย์ที่ผูกกับการตรวจสอบสิทธิ์ ล็อกหน้าจอ ข้อมูลเข้าสู่ระบบจะต้องได้รับการจัดเก็บไว้ในวิธีที่อนุญาตให้มีการดำเนินการที่แยกต่างหากเท่านั้น เพื่อตรวจสอบสิทธิ์หน้าจอล็อก อัปสตรีม Android โครงการโอเพนซอร์สมอบ Gatekeeper hardware Abstraction Layer (HAL) และ Trusty ซึ่งสามารถใช้ ตามข้อกำหนดนี้ได้
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
[9.11/H-0-5] ต้องรองรับเอกสารรับรองคีย์ที่ฟิลด์ คีย์การลงนามเอกสารรับรองได้รับการปกป้องโดยฮาร์ดแวร์ที่ปลอดภัย และการรับรองนั้น ดำเนินการในฮาร์ดแวร์ที่ปลอดภัย คีย์การลงนามเอกสารรับรองต้องมีการแชร์
มีอุปกรณ์จำนวนมากพอที่จะป้องกันไม่ให้คีย์ป้องกัน ไม่ให้ใช้เป็นแบบถาวร ตัวระบุอุปกรณ์วิธีหนึ่งในการปฏิบัติตามข้อกำหนดนี้คือการเปิดเผยข้อมูล คีย์เอกสารรับรองเดียวกัน เว้นแต่ว่า SKU หนึ่งๆ จะมีหน่วยอย่างน้อย 100,000 หน่วย การผลิต หากผลิต SKU มากกว่า 100,000 หน่วย จะมีการ อาจใช้กับหน่วยต่อ 100,000 หน่วย
สิ้นสุดข้อกำหนดใหม่
โปรดทราบว่าหากมีการใช้อุปกรณ์ใน Android รุ่นก่อนหน้าแล้ว
อุปกรณ์ดังกล่าวได้รับการยกเว้นจากข้อกำหนดที่ต้องมีคีย์สโตร์
ซึ่งได้รับการสนับสนุนโดยสภาพแวดล้อมการดำเนินการที่แยกต่างหาก และรองรับเอกสารรับรองคีย์
เว้นแต่จะประกาศฟีเจอร์ android.hardware.fingerprint
ซึ่งต้องมีแอตทริบิวต์
คีย์สโตร์ที่ได้รับการสนับสนุนโดยสภาพแวดล้อมการดำเนินการที่แยกต่างหาก
การใช้งานอุปกรณ์เคลื่อนที่ที่รองรับหน้าจอล็อกที่ปลอดภัยจะส่งผลดังนี้
- [9.11/H-1-1] ต้องอนุญาตให้ผู้ใช้เลือก ระยะหมดเวลาสลีป ซึ่งเป็นระยะเวลาการเปลี่ยนจากการปลดล็อกเป็นล็อก โดยมีความยาวไม่เกิน 15 วินาที
- [9.11/H-1-2] ต้องให้เงินช่วยเหลือแก่ผู้ใช้ในการซ่อน การแจ้งเตือนและปิดใช้การตรวจสอบสิทธิ์ทุกรูปแบบ ยกเว้น การตรวจสอบสิทธิ์หลักที่อธิบายไว้ใน 9.11.1 หน้าจอล็อกที่ปลอดภัย AOSP สอดคล้องกับ เป็นโหมดปิดล็อก
หากการติดตั้งใช้งานอุปกรณ์มีหน้าจอล็อกที่ปลอดภัยและมีเอเจนต์ความน่าเชื่อถืออย่างน้อย 1 รายการ ซึ่งใช้ TrustAgentService
System API อุปกรณ์ดังกล่าวจะทำสิ่งต่อไปนี้
- [9.11.1/H-1-1] ต้องตั้งคำถามผู้ใช้สำหรับวิธีการตรวจสอบสิทธิ์หลักที่แนะนำวิธีใดวิธีหนึ่ง (เช่น PIN, รูปแบบ, รหัสผ่าน) บ่อยกว่า 1 ครั้งในทุกๆ 72 ชั่วโมง
หากการใช้งานอุปกรณ์พกพามีผู้ใช้หลายคน และ
ไม่ประกาศ Flag ฟีเจอร์ android.hardware.telephony
เนื่องจาก
- [9.5/H-2-1] ต้องรองรับโปรไฟล์ที่ถูกจำกัด คุณลักษณะที่ช่วยให้เจ้าของอุปกรณ์สามารถจัดการผู้ใช้เพิ่มเติมและผู้ใช้ บนอุปกรณ์ เมื่อใช้โปรไฟล์ที่ถูกจำกัด เจ้าของอุปกรณ์สามารถทำสิ่งต่อไปนี้ได้ ตั้งค่าสภาพแวดล้อมแยกต่างหากอย่างรวดเร็ว เพื่อให้ผู้ใช้เพิ่มเติมทำงานได้ ด้วยความสามารถในการจัดการข้อจำกัดที่ละเอียดขึ้นในแอปที่ ที่พร้อมใช้งานในสภาพแวดล้อมเหล่านั้น
หากการใช้งานอุปกรณ์พกพามีผู้ใช้หลายคน และ
ประกาศแฟล็กฟีเจอร์ของ android.hardware.telephony
ดังนี้
- [9.5/H-3-1] ต้องไม่รองรับแบบจำกัด แต่ต้องสอดคล้องกับการปรับใช้ AOSP ของการควบคุม เพื่อเปิด /ปิด ไม่ให้ผู้ใช้รายอื่นเข้าถึงการโทรและ SMS
หากการใช้งานอุปกรณ์พกพาตั้งค่าไว้เป็น UserManager.isHeadlessSystemUserMode
ถึง true
- [9.5/H-4-1] ต้องไม่รวมการรองรับ eUICC หรือ eSIM ที่มีความสามารถในการโทร
- [9.5/H-4-2] ต้องไม่ประกาศการรองรับ
android.hardware.telephony
Android ใช้ VoiceInteractionService ผ่าน System API จะสนับสนุนกลไกสำหรับ การตรวจหาคำสั่งให้ดำเนินการแบบเปิดตลอดเวลาที่ปลอดภัยโดยไม่มีสัญญาณบอกสถานะการเข้าถึงไมค์ และการตรวจจับการค้นหาแบบเปิดตลอดเวลา โดยไม่ต้องมีไมโครโฟนหรือกล้อง สัญญาณบอกสถานะการเข้าถึง
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
การตั้งค่าที่จำกัด
การตั้งค่าที่จํากัดจะแสดงคําเตือนแก่ผู้ใช้ และขอการยืนยันจากผู้ใช้เพื่อให้สิทธิ์ สำหรับแต่ละแอปพลิเคชันที่มีคุณสมบัติอย่างใดอย่างหนึ่งต่อไปนี้
- มีการติดตั้งหลังจากดาวน์โหลดผ่านแอปพลิเคชัน
(เช่น แอปพลิเคชันรับส่งข้อความหรือเบราว์เซอร์) นอกเหนือจาก
"App Store" แอปพลิเคชันที่ระบุโดย
PackageManager
เป็นPACKAGE_DOWNLOADED_FILE
- กำลังติดตั้งจากไฟล์ในเครื่อง
(เช่น แอปพลิเคชันโหลดจากแหล่งที่ไม่รู้จัก)
ระบุโดย
PackageManager
เป็นPACKAGE_SOURCE_LOCAL_FILE
สำหรับสิทธิ์ที่บังคับใช้และ ตัวระบุที่เกี่ยวข้องซึ่งระบุไว้ด้านล่างนี้
- การปลุกและการช่วยเตือน:
AppOpsManager.OPSTR_SCHEDULE_EXACT_ALARM
- การเข้าถึงไฟล์ทั้งหมด:
AppOpsManager.OPSTR_MANAGE_EXTERNAL_STORAGE
- แสดงทับบนแอปอื่นๆ:
AppOpsManager.OPSTR_SYSTEM_ALERT_WINDOW
- ติดตั้งแอปที่ไม่รู้จัก:
AppOpsManager.OPSTR_REQUEST_INSTALL_PACKAGES
- จัดการสื่อ:
AppOpsManager.OPSTR_MANAGE_MEDIA
- แก้ไขการตั้งค่าระบบ:
AppOpsManager.OPSTR_WRITE_SETTINGS
- การแสดงภาพซ้อนภาพ:
AppOpsManager.OPSTR_PICTURE_IN_PICTURE
- เปิดหน้าจอ:
AppOpsManager.OPSTR_TURN_SCREEN_ON
- การแจ้งเตือนแบบเต็มหน้าจอ:
AppOpsManager.OPSTR_USE_FULL_SCREEN_INTENT
- การควบคุม Wi-Fi:
AppOpsManager.OPSTR_CHANGE_WIFI_STATE
- การช่วยเหลือพิเศษ:
AppOpsManager.OPSTR_BIND_ACCESSIBILITY_SERVICE
- ตัวฟังการแจ้งเตือน:
AppOpsManager.OPSTR_ACCESS_NOTIFICATIONS
- การเข้าถึงการใช้งาน:
AppOpsManager.OPSTR_GET_USAGE_STATS
- ผู้ดูแลระบบอุปกรณ์:
Manifest.permission.BIND_DEVICE_ADMIN
- ห้ามรบกวน:
Manifest.permission.MANAGE_NOTIFICATIONS
แอปพลิเคชันดังกล่าวจะมีป้ายกำกับว่า "แอปพลิเคชันที่ครอบคลุม" สำหรับข้อกำหนด ที่ระบุไว้ในส่วนนี้
การติดตั้งใช้งานอุปกรณ์
[9.8/H-0-1] ต้องใช้การตั้งค่าที่จำกัดตามที่ระบุไว้ข้างต้นสำหรับ ดังต่อไปนี้
- สิทธิ์พิเศษ
- การช่วยเหลือพิเศษ (
AppOpsManager.OPSTR_BIND_ACCESSIBILITY_SERVICE
) - ตัวฟังการแจ้งเตือน (
AppOpsManager.OPSTR_ACCESS_NOTIFICATIONS
) - แอปผู้ดูแลระบบอุปกรณ์ (
Manifest.permission.BIND_DEVICE_ADMIN
) - แสดงทับบนแอปอื่นๆ (
AppOpsManager.OPSTR_SYSTEM_ALERT_WINDOW
) - การเข้าถึงการใช้งาน (
AppOpsManager.OPSTR_GET_USAGE_STATS
)
- การช่วยเหลือพิเศษ (
- บทบาท (แอปเริ่มต้น)
- แป้นโทรศัพท์ (
RoleManager.ROLE_DIALER
) - SMS (
RoleManager.ROLE_SMS
)
- แป้นโทรศัพท์ (
- สิทธิ์รันไทม์
- รันไทม์ของ SMS (
Manifest.permission_group.SMS
)
- รันไทม์ของ SMS (
- สิทธิ์พิเศษ
[9.8/H-0-2] ต้องเปิดใช้ Restricted Settings เป็นค่าเริ่มต้นและ ขอแนะนำเป็นอย่างยิ่งว่าไม่ควรมีผู้ใช้จ่ายใดๆ ซึ่งช่วยให้ผู้ใช้ เพื่อปิดใช้การตั้งค่าที่จำกัดสำหรับแอปพลิเคชันทั้งหมด
[9.8/H-0-3] ต้องตรวจสอบว่าได้รับการยืนยันจากผู้ใช้สำหรับแต่ละผลิตภัณฑ์ แอปพลิเคชันที่ครอบคลุมก่อนที่จะให้สิทธิ์ที่บังคับใช้ได้
[9.8/H-0-4] ต้องอนุญาตให้ผู้ใช้ยืนยันการเปิดใช้การตั้งค่าที่จำกัดเท่านั้น ซึ่งได้รับจากหน้า AppInfo ของแอปพลิเคชันที่ครอบคลุม โดยใช้ EnhancedConfirmationManager API
[9.8/H-0-5] แนะนำอย่างยิ่งให้ผสานรวมและโทร EnhancedConfirmationManager สำหรับสิทธิ์พิเศษทั้งหมด เพื่อกำหนดว่าเป็นการตั้งค่าที่จำกัดหรือไม่
- การปลุกและการช่วยเตือน:
AppOpsManager.OPSTR_SCHEDULE_EXACT_ALARM
- การเข้าถึงไฟล์ทั้งหมด:
AppOpsManager.OPSTR_MANAGE_EXTERNAL_STORAGE
- แสดงทับบนแอปอื่นๆ:
AppOpsManager.OPSTR_SYSTEM_ALERT_WINDOW
- ติดตั้งแอปที่ไม่รู้จัก:
AppOpsManager.OPSTR_REQUEST_INSTALL_PACKAGES
- จัดการสื่อ:
AppOpsManager.OPSTR_MANAGE_MEDIA
- แก้ไขการตั้งค่าระบบ:
AppOpsManager.OPSTR_WRITE_SETTINGS
- การแสดงภาพซ้อนภาพ:
AppOpsManager.OPSTR_PICTURE_IN_PICTURE
- เปิดหน้าจอ:
AppOpsManager.OPSTR_TURN_SCREEN_ON
- การแจ้งเตือนแบบเต็มหน้าจอ:
AppOpsManager.OPSTR_USE_FULL_SCREEN_INTENT
- การควบคุม Wi-Fi:
AppOpsManager.OPSTR_CHANGE_WIFI_STATE
- การช่วยเหลือพิเศษ:
AppOpsManager.OPSTR_BIND_ACCESSIBILITY_SERVICE
- ตัวฟังการแจ้งเตือน:
AppOpsManager.OPSTR_ACCESS_NOTIFICATIONS
- การเข้าถึงการใช้งาน:
AppOpsManager.OPSTR_GET_USAGE_STATS
- ผู้ดูแลระบบอุปกรณ์:
Manifest.permission.BIND_DEVICE_ADMIN
- ห้ามรบกวน:
Manifest.permission.MANAGE_NOTIFICATIONS
- การปลุกและการช่วยเตือน:
สิ้นสุดข้อกำหนดใหม่
หากการใช้งานอุปกรณ์พกพารองรับ System API
HotwordDetectionService
หรือกลไกอื่นสำหรับการตรวจหาคำสั่งให้ดำเนินการโดยไม่มี
สัญญาณบอกสถานะการเข้าถึงไมค์
- [9.8/H-1-1] ต้องตรวจสอบว่าบริการตรวจจับคำสั่งให้ดำเนินการสามารถส่ง
ไปยังระบบ
ContentCaptureService
หรือบริการการจดจำคำพูดในอุปกรณ์ที่สร้างโดยSpeechRecognizer#createOnDeviceSpeechRecognizer()
- [9.8/H-1-2] ต้องตรวจสอบว่าบริการตรวจจับคำสั่งให้ดำเนินการสามารถส่ง
ข้อมูลเสียงของไมค์หรือข้อมูลที่ได้จากข้อมูลดังกล่าวไปยังเซิร์ฟเวอร์ของระบบผ่านทาง
HotwordDetectionService
API หรือไปยังContentCaptureService
ผ่าน APIContentCaptureManager
- [9.8/H-1-3] ต้องไม่ให้เสียงไมค์ที่ยาวกว่า 30 วินาทีสำหรับ คำขอที่ทริกเกอร์โดยฮาร์ดแวร์แต่ละรายการไปยังบริการตรวจจับคำสั่งให้ดำเนินการ
- [9.8/H-1-4] ต้องไม่ให้เสียงไมค์ที่บัฟเฟอร์ไว้นานกว่า 8 วินาทีสำหรับ แต่ละคำขอไปยังบริการตรวจจับคำสั่งให้ดำเนินการ
- [9.8/H-1-5] ต้องไม่ให้เสียงไมค์ที่บัฟเฟอร์ไว้นานกว่า 30 วินาทีไปยัง บริการโต้ตอบด้วยเสียงหรือเอนทิตีที่คล้ายกัน
- [9.8/H-1-6] ต้องไม่อนุญาตข้อมูลมากกว่า 100 ไบต์ (ไม่รวมสตรีมเสียง) จะส่งออกจากบริการตรวจจับคำสั่งให้ดำเนินการในแต่ละ ผลลัพธ์ของคำสั่งให้ดำเนินการ
- [9.8/H-1-7] ต้องไม่อนุญาตให้ส่งข้อมูลออกเกินกว่า 5 บิต ของบริการตรวจจับคำสั่งให้ดำเนินการในผลลัพธ์ของคำสั่งให้ดำเนินการเชิงลบแต่ละรายการ
- [9.8/H-1-8] ต้องอนุญาตการส่งข้อมูลออกจากคำสั่งให้ดำเนินการเท่านั้น บริการตรวจจับในคำขอตรวจสอบคำสั่งให้ดำเนินการจากเซิร์ฟเวอร์ระบบ
- [9.8/H-1-9] ต้องไม่อนุญาตให้แอปพลิเคชันที่ผู้ใช้ติดตั้งได้มอบ บริการตรวจจับคำสั่งให้ดำเนินการ
- [9.8/H-1-10] ต้องไม่แสดงข้อมูลเชิงปริมาณใน UI เกี่ยวกับการใช้งานไมค์ตาม บริการตรวจจับคำสั่งให้ดำเนินการ
- [9.8/H-1-11] ต้องบันทึกจำนวนไบต์ที่รวมอยู่ในการส่งข้อมูลทุกครั้ง จากบริการตรวจจับคำสั่งให้ดำเนินการเพื่อให้ตรวจสอบเพื่อความปลอดภัยได้ นักวิจัย
- [9.8/H-1-12] ต้องรองรับโหมดแก้ไขข้อบกพร่องที่บันทึกเนื้อหาดิบของ การส่งข้อมูลจากบริการตรวจจับคำสั่งให้ดำเนินการเพื่อให้ตรวจสอบได้ และนักวิจัยด้านความปลอดภัย
[9.8/H-1-14] ต้องแสดงสัญญาณบอกสถานะไมโครโฟนตามที่อธิบายไว้ในส่วน 9.8.2 เมื่อมีการส่งผลลัพธ์ของคำสั่งให้ดำเนินการไปยังเสียงพูด บริการโต้ตอบหรือเอนทิตีที่คล้ายกัน
[9.8/H-1-15] ต้องตรวจสอบว่าสตรีมเสียงที่ให้มาด้วยคำสั่งให้ดำเนินการที่ประสบความสำเร็จ ระบบจะส่งผลลัพธ์ทางเดียวจากบริการตรวจหาคำสั่งให้ดำเนินการไปยัง ซึ่งเป็นบริการโต้ตอบด้วยเสียง
[9.8/H-SR-1] แนะนําอย่างยิ่งให้แจ้งให้ผู้ใช้ทราบก่อนตั้งค่า เป็นผู้ให้บริการตรวจจับคำสั่งให้ดำเนินการ
[9.8/H-SR-2] ขอแนะนำเป็นอย่างยิ่งให้ไม่อนุญาตให้ส่ง ที่ไม่มีโครงสร้างออกจากบริการตรวจจับคำสั่งให้ดำเนินการ
[9.8/H-SR-3] ขอแนะนําอย่างยิ่งให้รีสตาร์ทกระบวนการที่โฮสต์ บริการตรวจจับคำที่นิยมอย่างน้อย 1 ครั้งทุกชั่วโมงหรือทุก 30 เหตุการณ์ทริกเกอร์ฮาร์ดแวร์ ขึ้นอยู่กับว่ากรณีใดจะเกิดขึ้นก่อน
หากการใช้งานอุปกรณ์มีแอปพลิเคชันที่ใช้ System API
HotwordDetectionService
หรือกลไกที่คล้ายกันสำหรับการตรวจหาคำสั่งให้ดำเนินการโดยไม่มี
สัญญาณบอกสถานะการใช้งานไมค์, แอปพลิเคชัน:
- [9.8/H-2-1] ต้องแจ้งผู้ใช้อย่างชัดแจ้งสำหรับวลีคำสั่งให้ดำเนินการแต่ละวลี ที่รองรับ
- [9.8/H-2-2] ต้องไม่เก็บข้อมูลดิบของเสียง หรือข้อมูลที่ได้มาจากข้อมูลดังกล่าว ผ่านบริการตรวจจับคำสั่งให้ดำเนินการ
- [9.8/H-2-3] ต้องไม่ส่งจากบริการตรวจจับคำที่นิยม เสียง
ซึ่งหมายถึงข้อมูลที่สามารถนำไปใช้สร้างเสียงใหม่ (ทั้งหมดหรือบางส่วน) ได้
หรือเนื้อหาเสียงที่ไม่เกี่ยวข้องกับตัวคำสั่งให้ดำเนินการ ยกเว้น
ContentCaptureService
หรือคำพูดในอุปกรณ์ บริการการจดจำเสียง
หากการใช้งานอุปกรณ์พกพารองรับ System API
VisualQueryDetectionService
หรือกลไกอื่นสำหรับการตรวจหาการค้นหา
โดยไม่มีสัญญาณบอกสถานะการเข้าถึงไมค์และ/หรือกล้อง
- [9.8/H-3-1] ต้องตรวจสอบว่าบริการตรวจจับการค้นหาสามารถส่งได้เฉพาะ
ไปยังระบบ หรือ
ContentCaptureService
หรือเสียงพูดในอุปกรณ์ บริการจดจำเสียง (สร้างโดยSpeechRecognizer#createOnDeviceSpeechRecognizer()
) - [9.8/H-3-2] ต้องไม่อนุญาตให้ส่งข้อมูลเสียงหรือวิดีโอ
จาก
VisualQueryDetectionService
ยกเว้นContentCaptureService
หรือบริการรู้จำคำพูด ในอุปกรณ์ - [9.8/H-3-3] ต้องแสดงข้อความแจ้งผู้ใช้ใน UI ของระบบเมื่ออุปกรณ์ตรวจพบผู้ใช้ ความตั้งใจที่จะมีส่วนร่วมกับแอปพลิเคชันผู้ช่วยดิจิทัล (เช่น ด้วยการตรวจจับ การแสดงตัวตนของผู้ใช้ผ่านกล้อง)
- [9.8/H-3-4] ต้องแสดงสัญญาณบอกสถานะไมโครโฟนและแสดงการตรวจพบ คำค้นหาของผู้ใช้ใน UI ทันทีหลังจากตรวจพบคำค้นหาของผู้ใช้
- [9.8/H-3-5] ต้องไม่อนุญาตแอปพลิเคชันที่ผู้ใช้ติดตั้งได้ให้ บริการตรวจจับการค้นหาภาพ
หากการใช้งานอุปกรณ์พกพาประกาศเป็น android.hardware.microphone
สิ่งที่จะเกิดขึ้นมีดังนี้
- [9.8.2/H-4-1] ต้องแสดงสัญญาณบอกสถานะไมโครโฟนเมื่อ
มีแอปเข้าถึงข้อมูลเสียงจากไมโครโฟน แต่ไม่เข้าถึงข้อมูลเสียงจากไมโครโฟน
HotwordDetectionService
เข้าถึงไมโครโฟนเท่านั้นSOURCE_HOTWORD
,ContentCaptureService
หรือแอปที่มีบทบาทที่ชื่อ ในส่วนที่ 9.1 ที่มีตัวระบุ CDD [C-4-X] - [9.8.2/H-4-2] ต้องแสดงรายการล่าสุดและใช้งานอยู่
แอปที่ใช้ไมโครโฟนตามที่ได้ส่งคืนจาก
PermissionManager.getIndicatorAppOpUsageData()
พร้อมกับการระบุแหล่งที่มาทั้งหมด ที่เกี่ยวข้อง - [9.8.2/H-4-3] ต้องไม่ซ่อนสัญญาณบอกสถานะไมโครโฟนสำหรับ แอประบบที่มีอินเทอร์เฟซผู้ใช้ที่มองเห็นได้หรือการโต้ตอบของผู้ใช้โดยตรง
- [9.8.2/H-4-4] ต้องแสดงรายการล่าสุดและใช้งานอยู่
แอปที่ใช้ไมโครโฟนตามที่ได้ส่งคืนจาก
PermissionManager.getIndicatorAppOpUsageData()
และข้อความระบุแหล่งที่มาที่เกี่ยวข้อง
หากการใช้งานอุปกรณ์พกพาประกาศเป็น android.hardware.camera.any
สิ่งที่จะเกิดขึ้นมีดังนี้
- [9.8.2/H-5-1] ต้องแสดงสัญญาณบอกสถานะกล้องเมื่อ แอปกำลังเข้าถึงข้อมูลกล้องแบบสด แต่ไม่ใช่เมื่อกล้องใช้อยู่เท่านั้น เข้าถึงโดยแอปที่มีบทบาทในการเรียกใช้ ส่วนที่ 9.1 ที่มีตัวระบุ CDD [C-4-X]
- [9.8.2/H-5-2] ต้องแสดงแอปล่าสุดและแอปที่ใช้งานอยู่โดยใช้
กล้องตามที่ส่งคืนจาก
PermissionManager.getIndicatorAppOpUsageData()
และข้อความระบุแหล่งที่มาที่เกี่ยวข้อง - [9.8.2/H-5-3] ต้องไม่ซ่อนสัญญาณบอกสถานะกล้องสำหรับ แอประบบที่มีอินเทอร์เฟซผู้ใช้ที่มองเห็นได้หรือการโต้ตอบของผู้ใช้โดยตรง
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
การเปิดเครื่องที่ได้รับการยืนยันเป็นฟีเจอร์ที่รับรองความสมบูรณ์ของซอฟต์แวร์ในอุปกรณ์ หากการติดตั้งใช้งานอุปกรณ์รองรับฟีเจอร์นี้ ฟีเจอร์จะทำงานดังนี้
- [9.10/H-1-1] ต้องตรวจสอบพาร์ติชันแบบอ่านอย่างเดียวทั้งหมด จะต่อเชื่อมระหว่างลำดับการเปิดเครื่อง Android และ VBMeta Digest ต้องรวมพาร์ติชันที่ได้รับการยืนยันเหล่านี้ทั้งหมดในการคำนวณ
สิ้นสุดข้อกำหนดใหม่
2.2.6 เครื่องมือสำหรับนักพัฒนาซอฟต์แวร์และความเข้ากันได้ของตัวเลือก
การใช้งานอุปกรณ์เคลื่อนที่ (* ใช้ไม่ได้กับแท็บเล็ต):
- [6.1/H-0-1]* ต้องรองรับคำสั่ง Shell
cmd testharness
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
การใช้งานอุปกรณ์เคลื่อนที่ (* ใช้ไม่ได้กับแท็บเล็ต):
- Perfetto
- [6.1/H-0-2]
*ต้องแสดง/system/bin/perfetto
ไบนารีของผู้ใช้เชลล์ที่ cmdline ปฏิบัติตาม เอกสารประกอบ - [6.1/H-0-3]
*ไบนารี Perfetto ต้องยอมรับเป็น ป้อนการกำหนดค่า Protobuf ที่เป็นไปตามสคีมาที่ระบุไว้ใน เอกสาร Perfetto - [6.1/H-0-4]
*ไบนารี Perfetto ต้องเขียนเป็น แสดงผลการติดตาม Protobuf ที่เป็นไปตามสคีมาที่ระบุไว้ใน เอกสาร Perfetto - [6.1/H-0-5]
*ต้องระบุ (perfetto) ไบนารี อย่างน้อยคือแหล่งข้อมูลที่อธิบายไว้ใน เอกสาร Perfetto - [6.1/H-0-6]
*Daemon ที่ติดตาม Perfetto ต้อง เปิดใช้งานโดยค่าเริ่มต้น (คุณสมบัติของระบบpersist.traced.enable
)
- [6.1/H-0-2]
สิ้นสุดข้อกำหนดใหม่
2.2.7 ชั้นเรียนประสิทธิภาพของสื่อแบบมือถือ
ดูส่วนที่ 7.11 สำหรับคำจำกัดความของ ระดับประสิทธิภาพของสื่อ
2.2.7.1 สื่อ
หากการใช้งานอุปกรณ์พกพาแสดงผล android.os.Build.VERSION_CODES.U
สำหรับ android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
พวกเขาจะ:
- ต้องเป็นไปตามข้อกำหนดเกี่ยวกับสื่อที่ระบุไว้ในส่วน CDD ของ Android 14 ส่วน 2.2.7.1
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
หากการใช้งานอุปกรณ์พกพากลับมาแสดงผล
android.os.Build.VERSION_CODES.V
สำหรับ android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
พวกเขา:
สิ้นสุดข้อกำหนดใหม่
- [5.1/H-1-1] ต้องโฆษณาจำนวนสูงสุดของตัวถอดรหัสวิดีโอฮาร์ดแวร์
เซสชันที่สามารถทำงานพร้อมกันในชุดค่าผสมตัวแปลงรหัสใดก็ได้ผ่าน
CodecCapabilities.getMaxSupportedInstances()
และVideoCapabilities.getSupportedPerformancePoints()
วิธี
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
- [5.1/H-1-2] ต้องรองรับตัวถอดรหัสวิดีโอฮาร์ดแวร์ 8 บิต (SDR) 6 อินสแตนซ์ เซสชัน (AVC, HEVC, VP9, AV1 หรือใหม่กว่า) ในชุดค่าผสมตัวแปลงรหัสใดๆ ที่ทำงานอยู่ เกิดขึ้นพร้อมกัน 3 เซสชันที่ความละเอียด 1080p@30 FPS และ 3 เซสชันที่ความละเอียด 4K ความละเอียด@30 เฟรมต่อวินาที ยกเว้น AV1 เซสชันทั้งหมดต้องไม่มีมากกว่า 1 เฟรม ลดลงต่อวินาที ตัวแปลงรหัส AV1 จำเป็นต้องใช้ความละเอียด 1080p เท่านั้น แต่ยังต้องรองรับอินสแตนซ์ 6 รายการที่ 1080p30fps อยู่
สิ้นสุดข้อกำหนดใหม่
- [5.1/H-1-3] ต้องโฆษณาโปรแกรมเปลี่ยนไฟล์วิดีโอฮาร์ดแวร์ถึงจำนวนสูงสุด
เซสชันที่สามารถทำงานพร้อมกันในชุดค่าผสมตัวแปลงรหัสใดก็ได้ผ่าน
CodecCapabilities.getMaxSupportedInstances()
และVideoCapabilities.getSupportedPerformancePoints()
วิธี
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
- [5.1/H-1-4] ต้องรองรับ 6 อินสแตนซ์ของโปรแกรมเปลี่ยนไฟล์วิดีโอฮาร์ดแวร์ 8 บิต (SDR) เซสชัน (AVC, HEVC, VP9, AV1 หรือใหม่กว่า) ในชุดค่าผสมตัวแปลงรหัสใดๆ ที่ทำงานอยู่ พร้อมกัน 4 เซสชันที่มีความละเอียด 1080p@30 FPS และ 2 เซสชันที่ความละเอียด 4K ความละเอียด@30 เฟรมต่อวินาที ยกเว้น AV1 เซสชันทั้งหมดต้องไม่มีมากกว่า 1 เฟรม ลดลงต่อวินาที ตัวแปลงรหัส AV1 จำเป็นต้องใช้ความละเอียด 1080p เท่านั้น แต่ยังคง ต้องรองรับ 6 อินสแตนซ์ที่ 1080p30fps
สิ้นสุดข้อกำหนดใหม่
- [5.1/H-1-5] ต้องโฆษณาถึงจำนวนสูงสุดของโปรแกรมเปลี่ยนไฟล์วิดีโอฮาร์ดแวร์และ
เซสชันตัวถอดรหัสที่เรียกใช้พร้อมกันในชุดค่าผสมตัวแปลงรหัสใดก็ได้ผ่าน
CodecCapabilities.getMaxSupportedInstances()
และVideoCapabilities.getSupportedPerformancePoints()
วิธี
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
- [5.1/H-1-6] ต้องรองรับตัวถอดรหัสวิดีโอฮาร์ดแวร์ 8 บิต (SDR) 6 อินสแตนซ์ และเซสชันโปรแกรมเปลี่ยนไฟล์วิดีโอฮาร์ดแวร์ (AVC, HEVC, VP9, AV1 หรือใหม่กว่า) ใน ชุดตัวแปลงรหัสที่ทำงานพร้อมกัน 3 เซสชันที่ 4K@30fps ความละเอียด (ยกเว้น AV1) โดยไม่เกิน 2 เซสชันคือเซสชันโปรแกรมเปลี่ยนไฟล์และ 3 เซสชัน ที่ความละเอียด 1080p เซสชันทั้งหมดต้องไม่มีมากกว่า 1 เฟรม ลดลงต่อวินาที ตัวแปลงรหัส AV1 จำเป็นต้องใช้ความละเอียด 1080p เท่านั้น แต่ยังคง ต้องรองรับ 6 อินสแตนซ์ที่ 1080p30fps
สิ้นสุดข้อกำหนดใหม่
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
- [5.1/H-1-19] ต้องรองรับตัวถอดรหัสวิดีโอฮาร์ดแวร์ 10 บิต (HDR) 3 อินสแตนซ์ และเซสชันโปรแกรมเปลี่ยนไฟล์วิดีโอฮาร์ดแวร์ (AVC, HEVC, VP9, AV1 หรือใหม่กว่า) ใน ชุดตัวแปลงรหัสที่ทำงานพร้อมกันที่ความละเอียด 4K@30fps (ยกเว้น AV1) โดยไม่เกิน 1 รายการคือเซสชันโปรแกรมเปลี่ยนไฟล์ ซึ่งสามารถกำหนดค่าได้ใน รูปแบบอินพุต RGBA_1010102 ผ่านพื้นผิว GL สำหรับ ทุกเซสชัน ต้องไม่วางเฟรมเกิน 1 เฟรมต่อ ข้อ 2 การสร้างข้อมูลเมตา HDR โดยโปรแกรมเปลี่ยนไฟล์ ไม่จำเป็นหากเข้ารหัสจากแพลตฟอร์ม GL เซสชันตัวแปลงรหัส AV1 ต้องใช้เพื่อรองรับความละเอียด 1080p เท่านั้น แม้ว่าจะมีการเรียก แบบ 4K
สิ้นสุดข้อกำหนดใหม่
- [5.1/H-1-7] ต้องมีเวลาในการตอบสนองของการเริ่มต้นตัวแปลงรหัสไม่เกิน 40 มิลลิวินาทีสำหรับ เซสชันการเข้ารหัสวิดีโอขนาด 1080p หรือที่เล็กกว่าสำหรับโปรแกรมเปลี่ยนไฟล์วิดีโอฮาร์ดแวร์ทั้งหมด น้อยกว่าโหลด การโหลดที่นี่หมายถึงวิดีโอแบบ 1080p ถึง 720p ที่เกิดขึ้นพร้อมกัน เซสชันการแปลงโดยใช้ตัวแปลงรหัสวิดีโอฮาร์ดแวร์ร่วมกับความละเอียด 1080p การเริ่มต้นการบันทึกเสียง-วิดีโอ สำหรับตัวแปลงรหัส Dolby Vision ตัวแปลงรหัส เวลาในการตอบสนองการเริ่มต้นต้องไม่เกิน 50 มิลลิวินาที
- [5.1/H-1-8] ต้องมีเวลาในการตอบสนองของการเริ่มต้นตัวแปลงรหัสไม่เกิน 30 มิลลิวินาทีสำหรับ เซสชันการเข้ารหัสเสียงอัตราบิต 128 kbps หรือต่ำกว่าสำหรับโปรแกรมเปลี่ยนไฟล์เสียงทั้งหมด น้อยกว่าโหลด การโหลดที่นี่หมายถึงวิดีโอแบบ 1080p ถึง 720p ที่เกิดขึ้นพร้อมกัน เซสชันการแปลงโดยใช้ตัวแปลงรหัสวิดีโอฮาร์ดแวร์ร่วมกับความละเอียด 1080p การเริ่มต้นการบันทึกเสียง-วิดีโอ
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
- [5.1/H-1-9] ต้องรองรับตัวถอดรหัสวิดีโอฮาร์ดแวร์ที่ปลอดภัย 2 อินสแตนซ์ เซสชัน (AVC, HEVC, VP9, AV1 หรือใหม่กว่า) ในชุดค่าผสมตัวแปลงรหัสใดๆ ที่ทำงานอยู่ พร้อมกันที่ความละเอียด 4K@30 FPS (ยกเว้น AV1) สำหรับทั้ง 8 บิต (SDR) และ เนื้อหา HDR 10 บิต เซสชันทั้งหมดต้องไม่มีมากกว่า 1 เฟรม ลดลงต่อวินาที ต้องมีเซสชันตัวแปลงรหัส AV1 เพื่อรองรับความละเอียด 1080p เท่านั้นแม้ในกรณีที่ ข้อกำหนดนี้ต้องใช้ 4K
สิ้นสุดข้อกำหนดใหม่
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
- [5.1/H-1-10] ต้องรองรับตัวถอดรหัสวิดีโอฮาร์ดแวร์ที่ไม่ปลอดภัย 3 อินสแตนซ์ เซสชันร่วมกับเซสชันตัวถอดรหัสวิดีโอฮาร์ดแวร์ที่ปลอดภัย 1 อินสแตนซ์ (รวม 4 อินสแตนซ์) (AVC, HEVC, VP9, AV1 หรือใหม่กว่า) ในตัวแปลงรหัสแบบใดก็ได้ ทำงานพร้อมกัน 3 เซสชันที่ความละเอียด 4K@30 FPS (ยกเว้น AV1) โดยมีเซสชันตัวถอดรหัสที่ปลอดภัย 1 เซสชันและเซสชันที่ปลอดภัย 1 เซสชันซึ่งความละเอียด 1080p ความละเอียด@30fps ได้สูงสุด 2 เซสชัน ในรูปแบบ HDR 10 บิต เซสชันทั้งหมดต้องไม่มีมากกว่า 1 เฟรม ลดลงต่อวินาที ต้องมีเซสชันตัวแปลงรหัส AV1 เพื่อรองรับความละเอียด 1080p เท่านั้นแม้ในกรณีที่ ข้อกำหนดนี้ต้องใช้ 4K
สิ้นสุดข้อกำหนดใหม่
- [5.1/H-1-11] ต้องรองรับตัวถอดรหัสที่ปลอดภัยสำหรับ AVC, HEVC VP9 หรือตัวถอดรหัส AV1 บนอุปกรณ์
- [5.1/H-1-12] ต้องมีเวลาในการตอบสนองของการเริ่มต้นตัวแปลงรหัสไม่เกิน 40 มิลลิวินาทีสำหรับ เซสชันการถอดรหัสวิดีโอความละเอียด 1080p หรือขนาดเล็กกว่าสำหรับการถอดรหัสวิดีโอฮาร์ดแวร์ทั้งหมด เมื่อโหลดน้อยเกินไป โหลดที่นี่กำหนดไว้เป็นความละเอียด 1080p ถึง 720p พร้อมกัน เซสชันการแปลงเฉพาะวิดีโอโดยใช้ตัวแปลงรหัสวิดีโอฮาร์ดแวร์ร่วมกับ การเริ่มต้นเล่นเสียง-วิดีโอ 1080p สำหรับตัวแปลงรหัส Dolby Vision ตัวแปลงรหัส เวลาในการตอบสนองการเริ่มต้นต้องไม่เกิน 50 มิลลิวินาที
- [5.1/H-1-13] ต้องมีเวลาในการตอบสนองของการเริ่มต้นตัวแปลงรหัสไม่เกิน 30 มิลลิวินาทีสำหรับ เซสชันการถอดรหัสเสียงที่มีอัตราบิตไม่เกิน 128 kbps สำหรับตัวถอดรหัสเสียงทั้งหมดเมื่อ น้อยกว่าโหลด การโหลดที่นี่หมายถึงวิดีโอแบบ 1080p ถึง 720p ที่เกิดขึ้นพร้อมกัน เซสชันการแปลงโดยใช้ตัวแปลงรหัสวิดีโอฮาร์ดแวร์ร่วมกับความละเอียด 1080p การเริ่มต้นเล่นเสียง-วิดีโอ
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
- [5.1/H-1-14] ต้องรองรับตัวถอดรหัสฮาร์ดแวร์ AV1 Main 10, ระดับ 4.1
และเนื้อฟิล์มที่มีเอฟเฟกต์เนื้อฟิล์มในองค์ประกอบของ GPU
สิ้นสุดข้อกำหนดใหม่
- [5.1/H-1-15] ต้องมีตัวถอดรหัสวิดีโอฮาร์ดแวร์อย่างน้อย 1 ตัวที่รองรับ 4K60
- [5.1/H-1-16] ต้องมีโปรแกรมเปลี่ยนไฟล์วิดีโอฮาร์ดแวร์อย่างน้อย 1 โปรแกรมที่รองรับ 4K60
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
- [5.1/H-1-21] ต้องรองรับ
FEATURE_DynamicColorAspect
สำหรับวิดีโอฮาร์ดแวร์ทั้งหมด ตัวถอดรหัส (AVC, HEVC, VP9, AV1 หรือใหม่กว่า) หมายเหตุ: หมายความว่าแอปพลิเคชันต่างๆ สามารถ อัปเดตลักษณะสีของเนื้อหาวิดีโอระหว่างเซสชันการถอดรหัส ตัวถอดรหัสที่รองรับเนื้อหา 10 บิตและ 8 บิตต้องรองรับแบบไดนามิก สลับระหว่างเนื้อหา 8 และ 10 บิตในโหมดแพลตฟอร์ม ตัวถอดรหัสที่รองรับ ฟังก์ชันการโอน HDR ต้องรองรับการสลับระหว่าง SDR และ HDR แบบไดนามิก เนื้อหา
สิ้นสุดข้อกำหนดใหม่
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
- [5.1/H-1-22] ต้องรองรับการเข้ารหัส การถอดรหัส การแก้ไข GPU และการแสดงวิดีโอ เนื้อหาในสัดส่วนภาพแนวตั้ง โดยไม่คำนึงถึงข้อมูลเมตาการหมุน ความละเอียดสูงสุดที่รองรับของกล้องหรือ 4K ขึ้นอยู่กับว่ากรณีใดต่ำกว่า หมายเหตุ: รวมโปรไฟล์ HDR หากตัวแปลงรหัสรองรับ HDR ตัวแปลงรหัส AV1 จำเป็นสำหรับ รองรับความละเอียด 1080p ข้อกำหนดนี้มีไว้สำหรับตัวแปลงรหัสฮาร์ดแวร์, GPU และ DPU
สิ้นสุดข้อกำหนดใหม่
- [5.3/H-1-1] ต้องไม่วางเฟรมเกิน 1 เฟรมใน 10 วินาที (กล่าวคือ น้อยกว่า เฟรมลดลง 0.167 เปอร์เซ็นต์) ของเซสชันวิดีโอความละเอียด 4K 60 fps ระหว่างโหลด
- [5.3/H-1-2] ต้องไม่วางภาพเกิน 1 เฟรมใน 10 วินาทีระหว่างเล่นวิดีโอ การเปลี่ยนแปลงความละเอียดในเซสชันวิดีโอ 60 FPS ภายใต้การโหลดสำหรับเซสชัน 4K
- [5.6/H-1-1] ต้องมีเวลาในการตอบสนองแบบแตะเพื่อโทนเสียงไม่เกิน 80 มิลลิวินาที CTS Verifier การทดสอบการแตะเพื่อโทนสี
- [5.6/H-1-2] ต้องมีเวลาในการตอบสนองสำหรับเสียงไป-กลับที่ 80 มิลลิวินาทีหรือ น้อยกว่าเส้นทางข้อมูลที่รองรับอย่างน้อย 1 เส้นทาง
- [5.6/H-1-3] ต้องรองรับเสียง 24 บิต >= สำหรับเอาต์พุตสเตอริโอเกิน 3.5 มม.
ช่องเสียบได้หากมีและผ่านเสียง USB หากข้อมูลทั้งหมดรองรับ
สำหรับการกำหนดค่าสตรีมมิงและเวลาในการตอบสนองต่ำ สำหรับเวลาในการตอบสนองต่ำ
การกำหนดค่า แอปควรใช้ AAudio ใน Callback ที่มีเวลาในการตอบสนองต่ำ
สำหรับการกำหนดค่าสตรีมมิง คุณควรใช้ Java AudioTrack
แอปนั้น ทั้งการกำหนดค่าสตรีมมิงและเวลาในการตอบสนองต่ำ HAL
ซิงก์เอาต์พุตควรยอมรับ
AUDIO_FORMAT_PCM_24_BIT
AUDIO_FORMAT_PCM_24_BIT_PACKED
,AUDIO_FORMAT_PCM_32_BIT
หรือAUDIO_FORMAT_PCM_FLOAT
สำหรับรูปแบบเอาต์พุตเป้าหมาย
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
- [5.6/H-1-4] ต้องรองรับอุปกรณ์เสียง USB >= 4 ช่องสัญญาณ
(ตัวควบคุมของดีเจจะใช้สำหรับฟังตัวอย่างเพลง)
สิ้นสุดข้อกำหนดใหม่
- [5.6/H-1-5] ต้องรองรับอุปกรณ์ MIDI ที่เป็นไปตามข้อกำหนดของคลาส และประกาศ แฟล็กฟีเจอร์ MIDI
- [5.6/H-1-9] ต้องรองรับการผสมช่องเสียงอย่างน้อย 12 ช่อง ซึ่งหมายความว่า ความสามารถในการเปิด AudioTrack พร้อมมาสก์ช่องทาง 7.1.4 และ กระจายเสียงหรือปล่อยเสียงผสมให้ช่องทุกช่องเป็นสเตอริโอ
- [5.6/H-SR] ขอแนะนำอย่างยิ่งให้รองรับ 24 ช่องร่วมกับ รองรับมาสก์ของช่องเวอร์ชัน 9.1.6 และ 22.2 เป็นอย่างน้อย
- [5.7/H-1-2] ต้องรองรับ
MediaDrm.SECURITY_LEVEL_HW_SECURE_ALL
ด้วยฟังก์ชัน ด้านล่างความสามารถในการถอดรหัสเนื้อหา
ขนาดการสุ่มตัวอย่างขั้นต่ำ | 4 MiB |
จำนวนตัวอย่างย่อยขั้นต่ำ - H264 หรือ HEVC | 28 |
จำนวนตัวอย่างย่อยขั้นต่ำ - VP9 | 9 |
จำนวนตัวอย่างย่อยขั้นต่ำ - AV1 | 288 |
ขนาดบัฟเฟอร์ของตัวอย่างย่อยขั้นต่ำ | 1 MiB |
ขนาดบัฟเฟอร์คริปโตทั่วไปขั้นต่ำ | 500 KiB |
จํานวนเซสชันที่เกิดขึ้นพร้อมกันขั้นต่ำ | 30 |
จำนวนคีย์ขั้นต่ำต่อเซสชัน | 20 |
จำนวนคีย์ทั้งหมดขั้นต่ำ (เซสชันทั้งหมด) | 80 |
จำนวนคีย์ DRM ทั้งหมดขั้นต่ำ (ทั้งหมด แต่ละเซสชัน) | 6 |
ขนาดข้อความ | 16 KiB |
เฟรมที่ถอดรหัสต่อวินาที | 60 FPS |
- [5.1/H-1-17] ต้องมีตัวถอดรหัสรูปภาพฮาร์ดแวร์อย่างน้อย 1 ตัวที่รองรับ AVIF โปรไฟล์พื้นฐาน
- [5.1/H-1-18] ต้องรองรับโปรแกรมเปลี่ยนไฟล์ AV1 ซึ่งเข้ารหัสได้สูงสุด 480p ที่ความละเอียด 30fps และ 1Mbps
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
- [5.1/H-1-20] ต้องรองรับ
Feature_HdrEditing
รองรับฮาร์ดแวร์เปลี่ยนไฟล์ AV1 และ HEVC ทั้งหมดในอุปกรณ์ที่ความละเอียด 4K หรือความละเอียดสูงสุดที่กล้องรองรับ ขึ้นอยู่กับว่าจำนวนใดน้อยกว่า
สิ้นสุดข้อกำหนดใหม่
- [5.12/H-SR] แนะนําอย่างยิ่งให้สนับสนุน
Feature_HdrEditing
สำหรับฮาร์ดแวร์เปลี่ยนไฟล์ AV1 และ HEVC ทั้งหมดในอุปกรณ์ - [5.12/H-1-2] ต้องรองรับรูปแบบสี RGBA_1010102 สำหรับ AV1 ฮาร์ดแวร์ทั้งหมดและ มีโปรแกรมเปลี่ยนไฟล์ HEVC อยู่ในอุปกรณ์
- [5.12/H-1-3] ต้องโฆษณาการสนับสนุนสำหรับส่วนขยาย EXT_YUV_target เพื่อ ตัวอย่างจากพื้นผิว YUV ทั้งแบบ 8 บิตและ 10 บิต
- [7.1.4/H-1-1] ต้องมีการวางซ้อนฮาร์ดแวร์อย่างน้อย 6 รายการในการประมวลผลการแสดงผล (DPU) โดยมีอย่างน้อย 2 หน่วยที่สามารถแสดงเนื้อหาวิดีโอ 10 บิต
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
หากการใช้งานอุปกรณ์พกพากลับมาแสดงผล
android.os.Build.VERSION_CODES.V
สำหรับ android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
และมี
รองรับโปรแกรมเปลี่ยนไฟล์ AVC หรือ HEVC แบบฮาร์ดแวร์ โดยจะมีคุณสมบัติดังนี้
สิ้นสุดข้อกำหนดใหม่
- [5.2/H-2-1] ต้องตรงตามเป้าหมายคุณภาพขั้นต่ำที่วิดีโอกำหนด เส้นโค้งการบิดเบี้ยวของอัตราโปรแกรมเปลี่ยนไฟล์สำหรับตัวแปลงรหัส AVC และ HEVC ของฮาร์ดแวร์ ตามที่กำหนดไว้ใน เรียกใช้การทดสอบประสิทธิภาพ Class 14 (PC14) - การทดสอบคุณภาพการเข้ารหัสวิดีโอ (VEQ)
2.2.7.2 กล้อง
หากการใช้งานอุปกรณ์พกพาแสดงผล android.os.Build.VERSION_CODES.U
สำหรับ android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
พวกเขาจะ:
- ต้องเป็นไปตามข้อกำหนดเกี่ยวกับสื่อที่ระบุไว้ในส่วน CDD ของ Android 14 ส่วน 2.2.7.2
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
หากการใช้งานอุปกรณ์พกพากลับมาแสดงผล
android.os.Build.VERSION_CODES.V
สำหรับ android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
พวกเขา:
สิ้นสุดข้อกำหนดใหม่
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
- [7.5/H-1-1] ต้องมีกล้องหลังตัวหลักที่มี ความละเอียดอย่างน้อย 12 เมกะพิกเซล ที่รองรับการจับภาพวิดีโอที่ 4k@30fps, 1080p@60fps และ 720p@60fps กล้องหลังตัวหลักคือ กล้องหลังที่มีรหัสกล้องต่ำสุด
สิ้นสุดข้อกำหนดใหม่
- [7.5/H-1-2] ต้องมีกล้องหน้าหลักที่มีความละเอียดอยู่ที่ อย่างน้อย 6 ล้านพิกเซลและรองรับการบันทึกวิดีโอที่ 1080p@30fps องค์ประกอบหลัก กล้องหน้าคือกล้องหน้าที่มีรหัสกล้องต่ำสุด
- [7.5/H-1-3] ต้องรองรับพร็อพเพอร์ตี้
android.info.supportedHardwareLevel
ในรูปแบบFULL
ขึ้นไปสำหรับบทบาทหลักด้านหลัง และLIMITED
หรือดีกว่าสำหรับตำแหน่งหลักด้านหน้า กล้อง - [7.5/H-1-4] ต้องรองรับ
CameraMetadata.SENSOR_INFO_TIMESTAMP_SOURCE_REALTIME
สำหรับทั้งการเลือกตั้งหลัก กล้อง - [7.5/H-1-5] ต้องมีเวลาในการตอบสนองของการบันทึกภาพ Camera2 JPEG < 1,000 มิลลิวินาทีสำหรับความละเอียด 1080p ตามที่วัดโดย PerformanceTest สำหรับกล้อง CTS ภายใต้ สภาพแสงของ ITS (3,000K) สำหรับกล้องหลักทั้ง 2 ตัว
- [7.5/H-1-6] ต้องมีเวลาในการตอบสนองเริ่มต้น Camera2 (เปิดกล้องเพื่อดูตัวอย่างแรก เฟรม) < 500 มิลลิวินาทีตามที่วัดโดย PerformanceTest ของกล้อง CTS ภายใต้ ITS สภาพแสง (3000K) สำหรับกล้องหลักทั้ง 2 ตัว
- [7.5/H-1-8] ต้องรองรับ
CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_RAW
และandroid.graphics.ImageFormat.RAW_SENSOR
สำหรับกล้องหลังหลัก - [7.5/H-1-9] ต้องมีกล้องหลักที่ด้านหลังซึ่งรองรับ 720p หรือ 1080p @ 240 fps
- [7.5/H-1-10] ต้องมีค่าขั้นต่ำ ZOOM_RATIO < 1.0 สำหรับกล้องหลัก หากมี คือกล้อง RGB มุมกว้างพิเศษโดยหันไปในทิศทางเดียวกัน
- [7.5/H-1-11] ต้องใช้สตรีมมิงส่วนหน้าพร้อมกันในแอปหลัก กล้อง
- [7.5/H-1-12] ต้องรองรับ
CONTROL_VIDEO_STABILIZATION_MODE_PREVIEW_STABILIZATION
สำหรับทั้งการเลือกตั้งหลัก กล้องหน้าและกล้องหลังหลัก - [7.5/H-1-13] ต้องรองรับความสามารถ
LOGICAL_MULTI_CAMERA
สำหรับกล้องหลังหลัก ถ้ามีกล้องด้านหลัง RGB มากกว่า 1 กล้อง - [7.5/H-1-14] ต้องรองรับความสามารถ
STREAM_USE_CASE
สำหรับทั้ง 2 บทบาทหลัก กล้องหน้าและกล้องหลังหลัก - [7.5/H-1-15] ต้องรองรับ ส่วนขยายโหมดกลางคืนผ่านทั้งส่วนขยาย CameraX และ Camera2 สำหรับส่วนขยายหลัก กล้อง
- [7.5/H-1-16] ต้องรองรับความสามารถ DYNAMIC_RANGE_TEN_BIT สำหรับ กล้อง
- [7.5/H-1-17] ต้องรองรับ CONTROL_SCENE_mode_FACE_PRIORITY และการตรวจจับใบหน้า (STATISTICS_FACE_DETECT_MODE_SIMPLE หรือ STATISTICS_FACE_DETECT_MODE_FULL) สำหรับกล้องหลัก
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
- [7.5/H-1-18] ต้องรองรับ
JPEG_R
สำหรับระบบด้านหลังหลักและ กล้องหน้าหลัก - [7.5/H-1-19] ต้องรองรับ
CONTROL_VIDEO_STABILIZATION_MODE_PREVIEW_STABILIZATION
สำหรับ 1080p HLG10 ตัวอย่างด้วยสัดส่วนภาพ JPEG ขนาดสูงสุด 16:9 และสำหรับตัวอย่าง HLG10 ขนาด 720p ด้วยชุดค่าผสมของสตรีม JPEG ที่มีสัดส่วนภาพ 16:9 ขนาดสูงสุดสำหรับองค์ประกอบหลัก กล้องหลัง - [7.5/H-1-20] ต้องเป็นเอาต์พุตเริ่มต้น
JPEG_R
สำหรับรายการหลัก กล้องหน้าและกล้องหลังหลักในแอปกล้องที่มาพร้อมเครื่อง
สิ้นสุดข้อกำหนดใหม่
2.2.7.3 ฮาร์ดแวร์
หากการใช้งานอุปกรณ์พกพาแสดงผล android.os.Build.VERSION_CODES.U
สำหรับ
android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
กล่าวคือ
- ต้องเป็นไปตามข้อกำหนดเกี่ยวกับสื่อที่ระบุไว้ในส่วน CDD ของ Android 14 ส่วน 2.2.7.3
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
หากการใช้งานอุปกรณ์พกพากลับมาแสดงผล
android.os.Build.VERSION_CODES.V
สำหรับ android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
พวกเขา:
สิ้นสุดข้อกำหนดใหม่
- [7.1.1.1/H-2-1] ต้องมีความละเอียดหน้าจออย่างน้อย 1080p
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
- [7.1.1.3/H-2-1] ต้องมีความหนาแน่นของหน้าจออย่างน้อย 400 dpi หากความกว้างหน้าจอของอุปกรณ์คือ < 600 dp
สิ้นสุดข้อกำหนดใหม่
- [7.1.1.3/H-3-1] ต้องมีจอแสดงผล HDR ที่รองรับอย่างน้อย 1,000 นิต โดยเฉลี่ย
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
- [7.6.1/H-2-1] ต้องมีหน่วยความจำทางกายภาพอย่างน้อย 8 GB
ที่มีขนาดอย่างน้อย 6.64 GB สำหรับเคอร์เนลตามที่รายงาน
android.app.ActivityManager.MemoryInfo.totalMem
สิ้นสุดข้อกำหนดใหม่
2.2.7.4 ประสิทธิภาพ
หากการใช้งานอุปกรณ์พกพาแสดงผล android.os.Build.VERSION_CODES.U
สำหรับ
android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
กล่าวคือ
- ต้องมีคุณสมบัติตามข้อกำหนดด้านประสิทธิภาพที่ระบุไว้ในส่วน CDD ของ Android 14 ส่วน 2.2.7.4
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
หากการใช้งานอุปกรณ์พกพากลับมาแสดงผล
android.os.Build.VERSION_CODES.V
สำหรับ android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
พวกเขา:
สิ้นสุดข้อกำหนดใหม่
- [8.2/H-1-1] ต้องตรวจสอบประสิทธิภาพการเขียนตามลำดับอย่างน้อย 150 MB/วินาที
- [8.2/H-1-2] ต้องตรวจสอบประสิทธิภาพการเขียนแบบสุ่มอย่างน้อย 10 MB/วินาที
- [8.2/H-1-3] ต้องมีประสิทธิภาพการอ่านตามลำดับอย่างน้อย 250 MB/วินาที
- [8.2/H-1-4] ต้องตรวจสอบประสิทธิภาพการอ่านแบบสุ่มอย่างน้อย 100 MB/วินาที
- [8.2/H-1-5] ต้องตรวจสอบประสิทธิภาพการอ่านและเขียนตามลำดับพร้อมกัน มีประสิทธิภาพการอ่าน 2 เท่าและ 1 เท่าอย่างน้อย 50 MB/วินาที
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
2.2.7.5 กราฟิก
หากการใช้งานอุปกรณ์พกพาแสดงผล android.os.Build.VERSION_CODES.V
สำหรับ android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS
พวกเขาจะ:
- [7.1.4.1/H-1-1] ข้อกำหนดนี้ถูกยกเลิกจาก Android 15 (เวอร์ชันทดลอง AOSP)
- [7.1.4.1/H-1-2] ต้องรองรับ
EGL_IMG_context_priority
และEGL_EXT_protected_content
ส่วนขยาย - [7.1.4.1/H-1-3] ต้องรองรับ
VkPhysicalDeviceProtectedMemoryFeatures.protectedMemory
และVK_KHR_global_priority
สิ้นสุดข้อกำหนดใหม่
2.3 ข้อกำหนดสำหรับโทรทัศน์
อุปกรณ์ Android TV หมายถึงการใช้งานอุปกรณ์ Android ที่ เป็นอินเทอร์เฟซความบันเทิงสำหรับการบริโภคสื่อดิจิทัล ภาพยนตร์ เกม แอป และ/หรือรายการทีวีสดสำหรับผู้ใช้ที่นั่งห่างออกไปประมาณ 10 ฟุต ("เอนหลัง" หรือ "10 ฟุต" ของอินเทอร์เฟซผู้ใช้")
การติดตั้งใช้งานอุปกรณ์ Android จัดเป็น "ทีวี" หากเป็นไปตามข้อกำหนดทั้งหมด เกณฑ์ต่อไปนี้
- ได้มอบกลไกในการควบคุมอินเทอร์เฟซผู้ใช้ที่แสดงผลจากระยะไกล จอแสดงผลที่อาจอยู่ห่างจากผู้ใช้ 10 ฟุต
- ฝังจอแสดงผลไว้ในหน้าจอที่มีความยาวเส้นทแยงมุมมากกว่า 24 อักขระ นิ้ว หรือมีพอร์ตเอาต์พุตวิดีโอ เช่น VGA, HDMI, DisplayPort หรือ พอร์ตไร้สายสำหรับจอแสดงผล
ข้อกำหนดเพิ่มเติมในส่วนที่เหลือของส่วนนี้ใช้สำหรับ Android เท่านั้น การติดตั้งใช้งานอุปกรณ์ทีวี
2.3.1 ฮาร์ดแวร์
การติดตั้งใช้งานอุปกรณ์ทีวี
- [7.2.2/T-0-1] ต้องรองรับ D-pad
- [7.2.3/T-0-1] ต้องให้หน้าแรกและกลับ
- [7.2.3/T-0-2] ต้องส่งทั้งการกดปกติและค้าง
เหตุการณ์ของฟังก์ชันย้อนกลับ (
KEYCODE_BACK
) ไปยังแอปพลิเคชันเบื้องหน้า - [7.2.6.1/T-0-1] ต้องมีการรองรับเกม
และประกาศแฟล็กฟีเจอร์
android.hardware.gamepad
- [7.2.7/T] ควรมีรีโมตคอนโทรลสำหรับ ผู้ใช้สามารถเข้าถึงการนำทางที่ไม่ได้สัมผัส และ ข้อมูลคีย์การนำทางหลัก
หากการใช้งานอุปกรณ์โทรทัศน์มีเครื่องวัดการหมุน 3 แกน การใช้งานจะดำเนินการดังนี้
- [7.3.4/T-1-1] ต้องรายงานเหตุการณ์ได้สูงสุด ความถี่อย่างน้อย 100 Hz
- [7.3.4/T-1-2] ต้องสามารถวัดการเปลี่ยนแปลงการวางแนวได้ ได้สูงสุดถึง 1000 องศาต่อวินาที
การติดตั้งใช้งานอุปกรณ์ทีวี
- [7.4.3/T-0-1] ต้องรองรับบลูทูธและ บลูทูธ LE
- [7.6.1/T-0-1] ต้องมีพื้นที่เก็บข้อมูลอย่างน้อย 4 GB พื้นที่เก็บข้อมูลที่ไม่ผันผวนสำหรับข้อมูลส่วนตัวของแอปพลิเคชัน (หรือที่เรียกว่าพาร์ติชัน "/data")
หากอุปกรณ์ทีวีมีพอร์ต USB ที่รองรับโหมดโฮสต์ ดังนี้
- [7.5.3/T-1-1] ต้องมีการรองรับกล้องภายนอก ที่เชื่อมต่อผ่านพอร์ต USB นี้ แต่ไม่จำเป็นต้องเชื่อมต่อตลอดเวลา
หากอุปกรณ์ทีวีเป็นแบบ 32 บิต
[7.6.1/T-1-1] หน่วยความจำที่พร้อมใช้งานสำหรับเคอร์เนล และพื้นที่ผู้ใช้ต้องมีขนาดอย่างน้อย 896 MB หากใช้ความหนาแน่นดังต่อไปนี้
- 400dpi ขึ้นไปบนหน้าจอขนาดเล็ก/ปกติ
- xhdpi ขึ้นไปบนหน้าจอขนาดใหญ่
- tvdpi ขึ้นไปบนหน้าจอขนาดใหญ่พิเศษ
หากอุปกรณ์ทีวีเป็นแบบ 64 บิต ให้ทำดังนี้
[7.6.1/T-2-1] หน่วยความจำที่พร้อมใช้งานสำหรับเคอร์เนล และพื้นที่ของผู้ใช้ต้องมีขนาดอย่างน้อย 1280 MB หากความหนาแน่นดังต่อไปนี้ ที่ใช้:
- 400dpi ขึ้นไปบนหน้าจอขนาดเล็ก/ปกติ
- xhdpi ขึ้นไปบนหน้าจอขนาดใหญ่
- tvdpi ขึ้นไปบนหน้าจอขนาดใหญ่พิเศษ
โปรดทราบว่า "หน่วยความจำที่พร้อมใช้งานสำหรับเคอร์เนลและพื้นที่ผู้ใช้" ข้างต้นหมายถึง พื้นที่หน่วยความจำที่ให้มานอกเหนือจากหน่วยความจำทั้งหมดที่มีอยู่ สำหรับส่วนประกอบของฮาร์ดแวร์โดยเฉพาะ เช่น วิทยุ วิดีโอ และอื่นๆ ซึ่งไม่ใช่ ภายใต้การควบคุมของเคอร์เนลในการใช้งานอุปกรณ์
การติดตั้งใช้งานอุปกรณ์ทีวี
2.3.2 มัลติมีเดีย
การใช้งานอุปกรณ์โทรทัศน์ต้องรองรับการเข้ารหัสเสียงต่อไปนี้ และถอดรหัสรูปแบบดังกล่าว รวมถึงทำให้ใช้งานกับแอปพลิเคชันของบุคคลที่สามได้
- [5.1/T-0-1] โปรไฟล์ MPEG-4 AAC (AAC LC)
- [5.1/T-0-2] โปรไฟล์ MPEG-4 HE AAC (AAC+)
- [5.1/T-0-3] AAC ELD (ปรับปรุงความหน่วงต่ำ AAC)
การใช้งานอุปกรณ์โทรทัศน์ต้องรองรับการเข้ารหัสวิดีโอต่อไปนี้ รูปแบบต่อไปนี้และทำให้ใช้งานกับแอปพลิเคชันของบุคคลที่สามได้
การติดตั้งใช้งานอุปกรณ์ทีวี
- [5.2.2/T-SR-1] แนะนําอย่างยิ่งให้สนับสนุน การเข้ารหัส H.264 ที่มีความละเอียด 720p และ 1080p ที่ 30 เฟรมต่อวินาที
การใช้งานอุปกรณ์ทีวีต้องรองรับการถอดรหัสวิดีโอต่อไปนี้ รูปแบบต่อไปนี้และทำให้ใช้งานกับแอปพลิเคชันของบุคคลที่สามได้
- [5.3.3/T-0-1] MPEG-4 SP
- [5.3.4/T-0-2] H.264 AVC
- [5.3.5/T-0-3] H.265 HEVC
- [5.3.6/T-0-4] VP8
- [5.3.7/T-0-5] VP9
- [5.3.1/T-0-6] MPEG-2
- [5.3.2/T-0-7] AV1
การใช้งานอุปกรณ์โทรทัศน์ต้องสนับสนุนการถอดรหัส MPEG-2 ตามรายละเอียดใน ส่วนที่ 5.3.1 ที่อัตราเฟรมและความละเอียดวิดีโอมาตรฐานไม่เกิน ซึ่งรวมถึง
- [5.3.1/T-1-1] HD 1080p ที่ 29.97 เฟรมต่อวินาที ที่มีโปรไฟล์หลักอยู่ในระดับสูง
- [5.3.1/T-1-2] HD 1080i ที่ 59.94 เฟรมต่อวินาที ที่มีโปรไฟล์หลักอยู่ในระดับสูง ต้องป้องกันการสอดประสานวิดีโอ MPEG-2 แบบอินเตอร์เลซ และทำให้ใช้งานกับแอปพลิเคชันของบุคคลที่สามได้
การใช้งานอุปกรณ์ทีวีต้องรองรับการถอดรหัส H.264 ตามรายละเอียดใน ส่วนที่ 5.3.4 ที่อัตราเฟรมและความละเอียดวิดีโอมาตรฐานไม่เกิน ซึ่งรวมถึง
- [5.3.4/T-1-1] HD 1080p ที่ 60 ภาพต่อวินาที โปรไฟล์พื้นฐาน
- [5.3.4/T-1-2] HD 1080p ที่ 60 ภาพต่อวินาที โปรไฟล์หลัก
- [5.3.4/T-1-3] HD 1080p ที่ 60 ภาพต่อวินาที ระดับสูงระดับ 4.2
การใช้งานอุปกรณ์โทรทัศน์ที่มีตัวถอดรหัสฮาร์ดแวร์ H.265 ต้องรองรับ การถอดรหัส H.265 ตามรายละเอียดในข้อ 5.3.5 ที่อัตราเฟรมวิดีโอมาตรฐาน และความละเอียดสูงสุด รวมทั้ง:
- [5.3.5/T-1-1] HD 1080p ที่ 60 ภาพต่อวินาที ระดับโปรไฟล์หลัก 4.1
ในกรณีที่ใช้อุปกรณ์ทีวีที่รองรับตัวถอดรหัสฮาร์ดแวร์ H.265 การถอดรหัส H.265 และโปรไฟล์การถอดรหัส UHD มีดังนี้
- [5.3.5/T-2-1] ต้องรองรับโปรไฟล์การถอดรหัส UHD ที่ 60 เฟรมต่อวินาทีเมื่อใช้โปรไฟล์หลักของระดับ Main10 ระดับ 5
การใช้งานอุปกรณ์ทีวีต้องรองรับการถอดรหัส VP8 ตามรายละเอียดใน ส่วนที่ 5.3.6 ที่อัตราเฟรมและความละเอียดวิดีโอมาตรฐานสูงสุด และ ซึ่งรวมถึง
- [5.3.6/T-1-1] โปรไฟล์การถอดรหัสแบบ HD 1080p ที่ 60 เฟรมต่อวินาที
การใช้อุปกรณ์โทรทัศน์ที่มีตัวถอดรหัสฮาร์ดแวร์ VP9 ต้องรองรับ VP9 รายละเอียดในส่วนที่ 5.3.7 ที่อัตราเฟรมวิดีโอมาตรฐานและ ความละเอียดสูงสุด และรวมถึง:
- [5.3.7/T-1-1] HD 1080p ที่ 60 ภาพต่อวินาที โปรไฟล์ 0 (ความลึกของสี 8 บิต)
การใช้อุปกรณ์ทีวีที่ใช้ตัวถอดรหัสฮาร์ดแวร์ VP9 รองรับ VP9 และการถอดรหัสแบบ UHD จะทำสิ่งต่อไปนี้ได้
- [5.3.7/T-2-1] ต้องรองรับโปรไฟล์การถอดรหัส UHD ที่ 60 เฟรมต่อวินาทีและมีโปรไฟล์ 0 (ความลึกของสี 8 บิต)
- [5.3.7/T-SR1] แนะนําอย่างยิ่งให้สนับสนุน โปรไฟล์การถอดรหัส UHD ที่ 60 เฟรมต่อวินาทีด้วยโปรไฟล์ 2 (ความลึกของสี 10 บิต)
การติดตั้งใช้งานอุปกรณ์ทีวี
- [5.5/T-0-1] ต้องมีการสนับสนุนสำหรับ System Master การลดทอนระดับเสียงและเอาต์พุตเสียงดิจิทัลในเอาต์พุตที่รองรับ ยกเว้นเอาต์พุตเสียงส่งผ่านที่บีบอัด (เมื่อไม่มีการถอดรหัสเสียง) ในอุปกรณ์)
หากการใช้งานอุปกรณ์ทีวีไม่มีจอแสดงผลในตัว แต่รองรับจอแสดงผลภายนอกที่เชื่อมต่อผ่าน HDMI แทน
- [5.8/T-0-1] ต้องตั้งค่าโหมดเอาต์พุต HDMI เป็น ความละเอียดสูงสุดสำหรับรูปแบบพิกเซลที่เลือกซึ่งทำงานร่วมกับ 50Hz หรือ 60Hz อัตราการรีเฟรชสำหรับจอแสดงผลภายนอก ขึ้นอยู่กับอัตราการรีเฟรชวิดีโอสำหรับ ภูมิภาคที่ขายอุปกรณ์
- [5.8/T-SR-1] แนะนำอย่างยิ่งให้ผู้ใช้ดำเนินการ ตัวเลือกอัตราการรีเฟรช HDMI ที่กำหนดค่าได้
- [5.8] ควรตั้งค่าอัตราการรีเฟรชโหมดเอาต์พุต HDMI เป็น 50Hz หรือ 60Hz ทั้งนี้ขึ้นอยู่กับอัตราการรีเฟรชวิดีโอสำหรับพื้นที่นั้นๆ มีการจำหน่ายอุปกรณ์
หากการใช้งานอุปกรณ์ทีวีไม่มีจอแสดงผลในตัว แต่รองรับจอแสดงผลภายนอกที่เชื่อมต่อผ่าน HDMI แทน
- [5.8/T-1-1] ต้องรองรับ HDCP 2.2
หากใช้อุปกรณ์ทีวีไม่รองรับการถอดรหัส UHD แต่ แต่รองรับจอแสดงผลภายนอกที่เชื่อมต่อผ่าน HDMI แทน
- [5.8/T-2-1] ต้องรองรับ HDCP 1.4
2.3.3 ซอฟต์แวร์
การติดตั้งใช้งานอุปกรณ์ทีวี
- [3/T-0-1] ต้องประกาศฟีเจอร์
android.software.leanback
และandroid.hardware.type.television
- [3.2.3.1/T-0-1] ต้องโหลดล่วงหน้าอย่างน้อย 1 รายการหรือ แอปพลิเคชันหรือคอมโพเนนต์บริการที่มี เครื่องจัดการ Intent ทั้งหมด รูปแบบตัวกรอง Intent สาธารณะที่กำหนดโดย Intent ของแอปพลิเคชันต่อไปนี้ ซึ่งแสดงไว้ที่นี่
- [3.4.1/T-0-1] ต้องระบุฟิลด์
การใช้งาน
android.webkit.Webview
API
หากใช้งานอุปกรณ์ Android TV รองรับหน้าจอล็อก สิ่งที่จะเกิดขึ้นมีดังนี้
- [3.8.10/T-1-1] ต้องแสดงล็อก การแจ้งเตือนบนหน้าจอ รวมถึงเทมเพลตการแจ้งเตือนสื่อ
การติดตั้งใช้งานอุปกรณ์ทีวี
- [3.8.14/T-SR-1] ขอแนะนำเป็นอย่างยิ่ง เพื่อรองรับหลายหน้าต่างในโหมดการแสดงภาพซ้อนภาพ (PIP)
- [3.10/T-0-1] ต้องรองรับการช่วยเหลือพิเศษของบุคคลที่สาม บริการต่างๆ
- [3.10/T-SR-1] ขอแนะนำเป็นอย่างยิ่งให้ โหลดบริการการช่วยเหลือพิเศษไว้ล่วงหน้าในอุปกรณ์ที่เทียบเท่าหรือเกิน ของการเข้าถึงด้วยสวิตช์และ TalkBack (สำหรับภาษาที่ เครื่องมืออ่านออกเสียงข้อความที่ติดตั้งไว้ล่วงหน้า) บริการการเข้าถึงตามที่ระบุไว้ใน โปรเจ็กต์โอเพนซอร์ส TalkBack
การติดตั้งใช้งานอุปกรณ์ทีวีรายงานฟีเจอร์นี้หรือไม่
android.hardware.audio.output
ได้
- [3.11/T-SR-1] ขอแนะนำอย่างยิ่งให้รวม เครื่องมือ TTS ที่รองรับภาษาที่พร้อมใช้งานในอุปกรณ์
- [3.11/T-1-1] ต้องรองรับการติดตั้ง เครื่องมือ TTS ของบุคคลที่สาม
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
การติดตั้งใช้งานอุปกรณ์ทีวี
- [3.12/T-0-1] ต้องรองรับเฟรมเวิร์กอินพุตทีวี
สิ้นสุดข้อกำหนดใหม่
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
Android Television Input Framework (TIF) ช่วยลดความซับซ้อนของ การส่งเนื้อหาสดไปยังอุปกรณ์ Android TV TIF แสดงมาตรฐานและ API สำหรับสร้างโมดูลอินพุตที่ควบคุมอุปกรณ์ Android TV
การติดตั้งใช้งานอุปกรณ์ทีวี
- [3/T-0-2] ต้องประกาศฟีเจอร์ของแพลตฟอร์ม
android.software.live_tv
- [3/T-0-3] ต้องรองรับ TIF API ทั้งหมดเพื่อให้แอปพลิเคชัน ซึ่งใช้ API เหล่านี้และ อินพุตที่อิงตาม TIF ของบุคคลที่สาม สามารถติดตั้งและใช้ได้ในอุปกรณ์
เฟรมเวิร์กตัวรับสัญญาณทีวีสำหรับ Android (TF) รวมการจัดการเนื้อหาสดจาก Tuner เข้ากับเนื้อหาสตรีมมิงจาก IP บนอุปกรณ์ Android TV เฟรมเวิร์ก Turner มี API มาตรฐาน เพื่อสร้างบริการอินพุตที่ใช้ Android Television Tuner
หากอุปกรณ์รองรับตัวรับสัญญาณ การตั้งค่าเหล่านี้จะมีผลดังนี้
- [3/T-1-1] ต้องรองรับ API ของตัวรับสัญญาณทั้งหมดในลักษณะที่ แอปพลิเคชันที่ใช้ API เหล่านี้สามารถติดตั้งและใช้งานบนอุปกรณ์ได้
สิ้นสุดข้อกำหนดใหม่
2.3.4 ประสิทธิภาพและศักยภาพ
- [8.1/T-0-1] เวลาในการตอบสนองเฟรมที่สม่ำเสมอ เวลาในการตอบสนองของเฟรมไม่สอดคล้องกันหรือความล่าช้าในการแสดงผลเฟรมต้องไม่เกิดขึ้นมากกว่านี้ มักมากกว่า 5 เฟรมในวินาทีหนึ่งๆ และควรต่ำกว่า 1 เฟรมในวินาทีนั้น
- [8.2/T-0-1] ต้องตรวจสอบว่า ประสิทธิภาพการเขียนอย่างน้อย 5 MB/วินาที
- [8.2/T-0-2] ต้องแน่ใจว่ามีการเขียนแบบสุ่ม ประสิทธิภาพอย่างน้อย 0.5 MB/วินาที
- [8.2/T-0-3] ต้องตรวจสอบว่า ประสิทธิภาพการอ่านอย่างน้อย 15 MB/วินาที
- [8.2/T-0-4] ต้องตรวจสอบการอ่านแบบสุ่ม ประสิทธิภาพอย่างน้อย 3.5 MB/วินาที
การใช้งานอุปกรณ์ทีวีมีฟีเจอร์ในการปรับปรุงพลังงานของอุปกรณ์หรือไม่ การจัดการที่รวมอยู่ใน AOSP หรือขยายฟีเจอร์ที่รวมอยู่ใน AOSP ใน AOSP พวกเขา
- [8.3/T-1-1] ต้องให้เงินแก่ผู้ใช้เพื่อเปิดใช้งาน และปิดใช้ฟีเจอร์โหมดประหยัดแบตเตอรี่
สิ่งที่จะเกิดขึ้นหากการใช้งานอุปกรณ์ทีวีไม่มีแบตเตอรี่มีดังนี้
- [8.3/T-1-2] ต้องลงทะเบียนอุปกรณ์เป็น อุปกรณ์แบบไม่ต้องใช้แบตเตอรี่ตามที่อธิบายไว้ในหัวข้อการรองรับอุปกรณ์แบบไม่ใช้แบตเตอรี่
สิ่งที่จะเกิดขึ้นหากการใช้งานอุปกรณ์ทีวีมีแบตเตอรี่มีดังนี้
- [8.3/T-1-3] ต้องแสดงค่าบริการต่อผู้ใช้ แอปทั้งหมดที่ได้รับการยกเว้นจากโหมดสแตนด์บายแอปและโหมดประหยัดพลังงานของ Doze
การติดตั้งใช้งานอุปกรณ์ทีวี
- [8.4/T-0-1] ต้องระบุ โปรไฟล์พลังงานต่อคอมโพเนนต์ที่กำหนดค่าการใช้งานปัจจุบัน ของส่วนประกอบฮาร์ดแวร์แต่ละส่วนและ ปริมาณการใช้แบตเตอรี่โดยประมาณที่เกิดจาก ในช่วงเวลาที่ผ่านมาตามที่ระบุไว้ในไซต์โครงการโอเพนซอร์ส Android
- [8.4/T-0-2] ต้องรายงานพลังงานทั้งหมด ค่าการบริโภคในหน่วยมิลลิแอมแปร์ชั่วโมง (mAh)
- [8.4/T-0-3] ต้องรายงานกำลังของ CPU
การใช้งานต่อ UID ของแต่ละกระบวนการ โครงการโอเพนซอร์ส Android พบกับ
ผ่านการใช้งานโมดูลเคอร์เนล
uid_cputime
- [8.4/T] ควรมีแหล่งที่มาจาก ของส่วนประกอบฮาร์ดแวร์เอง หากไม่สามารถระบุการใช้พลังงานของส่วนประกอบฮาร์ดแวร์ได้ ในแอปพลิเคชัน
- [8.4/T-0-4] ต้องใช้พลังงานเช่นนี้
มีให้บริการผ่าน
adb shell dumpsys batterystats
เชลล์ไปยังนักพัฒนาแอป
2.3.5 โมเดลการรักษาความปลอดภัย
การติดตั้งใช้งานอุปกรณ์ทีวี
- [9/T-0-1] ต้องประกาศ
android.hardware.security.model.compatible
- [9.11/T-0-1] ต้องสำรองการใช้งานคีย์สโตร์ ในสภาพแวดล้อมการดำเนินการที่แยกต่างหาก
- [9.11/T-0-2] ต้องมีการติดตั้งใช้งาน RSA, AES อัลกอริทึมการเข้ารหัส ECDSA และ HMAC รวมถึงตระกูล MD5, SHA-1 และ SHA-2 ฟังก์ชันแฮชเพื่อให้รองรับระบบ Android Keystore อัลกอริทึมในพื้นที่ที่แยกออกจากโค้ดที่ทำงานอย่างปลอดภัย เคอร์เนลขึ้นไป การแยกที่ปลอดภัยต้องบล็อกกลไกที่เป็นไปได้ทั้งหมด โค้ดเคอร์เนลหรือรหัสพื้นที่ผู้ใช้อาจเข้าถึงสถานะภายในของ สภาพแวดล้อมที่แยกจากกัน ซึ่งรวมถึง DMA โอเพนซอร์ส Android แบบโอเพนซอร์ส โปรเจ็กต์ (AOSP) เป็นไปตามข้อกำหนดนี้โดยใช้การติดตั้งใช้งานทรัสตี โซลูชันแบบ ARM TrustZone หรือการตรวจสอบที่ปลอดภัยโดยบุคคลที่สาม การนำการแยกโดยใช้ไฮเปอร์ไวเซอร์ที่เหมาะสมมาใช้เป็นทางเลือก ตัวเลือก
- [9.11/T-0-3] ต้องใช้หน้าจอล็อก การตรวจสอบสิทธิ์ในสภาพแวดล้อมการดำเนินการแบบแยกต่างหาก และเฉพาะเมื่อ สำเร็จ อนุญาตให้ใช้คีย์ที่ผูกกับการตรวจสอบสิทธิ์ ล็อกหน้าจอ ข้อมูลเข้าสู่ระบบจะต้องได้รับการจัดเก็บไว้ในวิธีที่อนุญาตให้มีการดำเนินการที่แยกต่างหากเท่านั้น เพื่อตรวจสอบสิทธิ์หน้าจอล็อก อัปสตรีม Android โครงการโอเพนซอร์สมอบ Gatekeeper hardware Abstraction Layer (HAL) และ Trusty ซึ่งสามารถใช้ ตามข้อกำหนดนี้ได้
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
[9.11/T-0-4] ต้องรองรับเอกสารรับรองคีย์ที่พร็อพเพอร์ตี้ คีย์การลงนามเอกสารรับรองได้รับการปกป้องโดยฮาร์ดแวร์ที่ปลอดภัย และการรับรองนั้น ดำเนินการในฮาร์ดแวร์ที่ปลอดภัย คีย์การลงนามเอกสารรับรองต้องมีการแชร์
มีอุปกรณ์จำนวนมากพอที่จะป้องกันไม่ให้คีย์ป้องกัน ไม่ให้ใช้เป็นแบบถาวร ตัวระบุอุปกรณ์วิธีหนึ่งในการปฏิบัติตามข้อกำหนดนี้คือการเปิดเผยข้อมูล คีย์เอกสารรับรองเดียวกัน เว้นแต่ว่า SKU หนึ่งๆ จะมีหน่วยอย่างน้อย 100,000 หน่วย การผลิต หากผลิต SKU มากกว่า 100,000 หน่วย จะมีการ อาจใช้กับหน่วยต่อ 100,000 หน่วย
สิ้นสุดข้อกำหนดใหม่
โปรดทราบว่าหากมีการใช้อุปกรณ์ใน Android รุ่นก่อนหน้าแล้ว
อุปกรณ์ดังกล่าวได้รับการยกเว้นจากข้อกำหนดที่ต้องมีคีย์สโตร์
ซึ่งได้รับการสนับสนุนโดยสภาพแวดล้อมการดำเนินการที่แยกต่างหาก และรองรับเอกสารรับรองคีย์
เว้นแต่จะประกาศฟีเจอร์ android.hardware.fingerprint
ซึ่งต้องมีแอตทริบิวต์
คีย์สโตร์ที่ได้รับการสนับสนุนโดยสภาพแวดล้อมการดำเนินการที่แยกจากกัน
หากการใช้งานอุปกรณ์ทีวีรองรับหน้าจอล็อกที่ปลอดภัย สิ่งที่จะเกิดขึ้นมีดังนี้
- [9.11/T-1-1] ต้องอนุญาตให้ผู้ใช้เลือกสลีป หมดเวลาสำหรับการเปลี่ยนจากสถานะปลดล็อกเป็นล็อก ระยะหมดเวลาต่ำสุดที่อนุญาตไม่เกิน 15 วินาที
หากการใช้งานอุปกรณ์โทรทัศน์มีผู้ใช้หลายคน และ
ไม่ประกาศ Flag ฟีเจอร์ android.hardware.telephony
เนื่องจาก
- [9.5/T-2-1] ต้องรองรับโปรไฟล์ที่ถูกจำกัด คุณลักษณะที่ช่วยให้เจ้าของอุปกรณ์สามารถจัดการผู้ใช้เพิ่มเติมและผู้ใช้ บนอุปกรณ์ เมื่อใช้โปรไฟล์ที่ถูกจำกัด เจ้าของอุปกรณ์สามารถทำสิ่งต่อไปนี้ได้ ตั้งค่าสภาพแวดล้อมแยกต่างหากอย่างรวดเร็ว เพื่อให้ผู้ใช้เพิ่มเติมทำงานได้ ด้วยความสามารถในการจัดการข้อจำกัดที่ละเอียดขึ้นในแอปที่ ที่พร้อมใช้งานในสภาพแวดล้อมเหล่านั้น
หากการใช้งานอุปกรณ์โทรทัศน์มีผู้ใช้หลายคน และ
ประกาศแฟล็กฟีเจอร์ของ android.hardware.telephony
ดังนี้
- [9.5/T-3-1] ต้องไม่รองรับแบบจำกัด แต่ต้องสอดคล้องกับการปรับใช้ AOSP ของการควบคุม เพื่อเปิด /ปิด ไม่ให้ผู้ใช้รายอื่นเข้าถึงการโทรและ SMS
หากการใช้งานอุปกรณ์ทีวีประกาศ android.hardware.microphone
ค่าจะมีลักษณะดังนี้
- [9.8.2/T-4-1] ต้องแสดงสัญญาณบอกสถานะไมโครโฟนเมื่อ มีแอปเข้าถึงข้อมูลเสียงจากไมโครโฟน แต่ไม่เข้าถึงข้อมูลเสียงจากไมโครโฟน ไมโครโฟนเข้าถึงได้โดย HotwordDetectionService, SOURCE_HOTWORD ContentCaptureService หรือแอปที่มีบทบาทที่ระบุไว้ในส่วนที่ 9.1 สิทธิ์ที่มีตัวระบุ CDD C-3-X
- [9.8.2/T-4-2] ต้องไม่ซ่อนสัญญาณบอกสถานะไมโครโฟนสำหรับ แอประบบที่มีอินเทอร์เฟซผู้ใช้ที่มองเห็นได้หรือการโต้ตอบของผู้ใช้โดยตรง
หากการใช้งานอุปกรณ์ทีวีประกาศ android.hardware.camera.any
ค่าจะมีลักษณะดังนี้
- [9.8.2/T-5-1] ต้องแสดงสัญญาณบอกสถานะกล้องเมื่อ แอปเข้าถึงข้อมูลกล้องแบบสด แต่ไม่เข้าถึงข้อมูลเมื่อกล้องเท่านั้น มีการเข้าถึงโดยแอปที่มีบทบาทที่กล่าวถึงในส่วนที่ 9.1 สิทธิ์ที่มีตัวระบุ CDD [C-3-X]
- [9.8.2/T-5-2] ต้องไม่ซ่อนสัญญาณบอกสถานะกล้องสำหรับ แอประบบที่มีอินเทอร์เฟซผู้ใช้ที่มองเห็นได้หรือการโต้ตอบของผู้ใช้โดยตรง
2.3.6 เครื่องมือสำหรับนักพัฒนาซอฟต์แวร์และความเข้ากันได้ของตัวเลือก
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
การติดตั้งใช้งานอุปกรณ์ทีวี
- Perfetto
- [6.1/T-0-1] ต้องเปิดเผย
/system/bin/perfetto
ไบนารีของผู้ใช้เชลล์ที่ cmdline ปฏิบัติตาม เอกสาร Perfetto - [6.1/T-0-2] ไบนารี Perfetto ต้องยอมรับเป็น ป้อนการกำหนดค่า Protobuf ที่เป็นไปตามสคีมาที่ระบุไว้ใน เอกสาร Perfetto
- [6.1/T-0-3] ไบนารี Perfetto ต้องเขียนเป็น แสดงผลการติดตาม Protobuf ที่เป็นไปตามสคีมาที่ระบุไว้ใน เอกสาร Perfetto
- [6.1/T-0-4] ต้องระบุ โดยผ่าน Perfetto ไบนารี อย่างน้อยคือแหล่งข้อมูลที่อธิบายไว้ใน เอกสาร Perfetto
- [6.1/T-0-5] Daemon ที่ติดตาม Perfetto
ต้องเปิดใช้โดยค่าเริ่มต้น (คุณสมบัติของระบบ
persist.traced.enable
)
- [6.1/T-0-1] ต้องเปิดเผย
สิ้นสุดข้อกำหนดใหม่
2.4 ข้อกำหนดของนาฬิกา
อุปกรณ์ Android Watch หมายถึงการใช้งานอุปกรณ์ Android ที่มีจุดประสงค์เพื่อ สวมใส่บนร่างกาย บางทีอาจเป็นที่ข้อมือ
การใช้งานอุปกรณ์ Android จะได้รับการจัดประเภทเป็น "นาฬิกา" หากเป็นไปตามข้อกำหนดทั้งหมด เกณฑ์ต่อไปนี้
- หน้าจอมีความยาวเส้นทแยงมุมจริงอยู่ในช่วง 1.1 ถึง 2.5 นิ้ว
- มีกลไกสำหรับสวมใส่ร่างกาย
ข้อกำหนดเพิ่มเติมในส่วนที่เหลือของส่วนนี้ใช้สำหรับ Android เท่านั้น ดูการติดตั้งใช้งานอุปกรณ์
2.4.1 ฮาร์ดแวร์
ดูการติดตั้งใช้งานอุปกรณ์
[7.1.1.1/W-0-1] ต้องมีหน้าจอที่มี ขนาดเส้นทแยงมุมจริงในช่วง 1.1-2.5 นิ้ว
[7.2.3/W-0-1] ต้องมีฟังก์ชัน "อยู่บ้าน" พร้อมใช้งาน และฟังก์ชันย้อนกลับ ยกเว้นเมื่อผู้ใช้อยู่ใน
UI_MODE_TYPE_WATCH
[7.2.4/W-0-1] ต้องรองรับอินพุตหน้าจอสัมผัส
[7.3.1/W-SR-1] แนะนําอย่างยิ่งให้มีแกน 3 แกน ตัวตรวจวัดความเร่ง
หากการติดตั้งใช้งานอุปกรณ์นาฬิการองรับ Vulkan จะมีการดำเนินการต่อไปนี้
- [7.1.4.2/W-1-1] ต้องเป็นไปตามข้อกำหนด ที่ระบุไว้ในโปรไฟล์ Android Baseline 2021
หากอุปกรณ์นาฬิกามีตัวรับสัญญาณ GPS/GNSS และรายงาน
แอปพลิเคชันผ่านฟีเจอร์ android.hardware.location.gps
ไม่เหมาะสม
- [7.3.3/W-1-1] ต้องรายงานการวัด GNSS ทันที แม้ว่าจะยังไม่มีการรายงานตำแหน่งที่คำนวณจาก GPS/GNSS ก็ตาม
- [7.3.3/W-1-2] ต้องรายงานช่วง Pseudorange และ Pseudorange ของ GNSS ในสภาพอากาศที่โล่งหลังจากระบุตำแหน่ง อยู่กับที่หรือการเคลื่อนที่น้อยกว่า 0.2 เมตรต่อวินาทีของ ความเร่ง ก็เพียงพอที่จะคำนวณตำแหน่งที่อยู่ในระยะ 20 เมตร และความเร็ว ภายใน 0.2 เมตรต่อวินาที อย่างน้อย 95% ของเวลาทั้งหมด
หากการใช้งานอุปกรณ์นาฬิกามีเครื่องวัดการหมุน 3 แกน สิ่งที่จะเกิดขึ้นมีดังนี้
- [7.3.4/W-2-1] ต้องสามารถวัดการเปลี่ยนการวางแนวได้ ได้สูงสุดถึง 1000 องศาต่อวินาที
ดูการติดตั้งใช้งานอุปกรณ์
[7.4.3/W-0-1] ต้องรองรับบลูทูธ
[7.6.1/W-0-1] ต้องมีพื้นที่เก็บข้อมูลอย่างน้อย 1 GB พื้นที่เก็บข้อมูลที่ไม่ผันผวนสำหรับข้อมูลส่วนตัวของแอปพลิเคชัน (หรือที่เรียกว่าพาร์ติชัน "/data")
[7.6.1/W-0-2] ต้องมีหน่วยความจำอย่างน้อย 416 MB พร้อมใช้งานสำหรับเคอร์เนลและพื้นที่ผู้ใช้
[7.8.1/W-0-1] ต้องมีไมโครโฟน
[7.8.2/W] อาจมีเอาต์พุตเสียง
2.4.2 มัลติมีเดีย
ไม่มีข้อกำหนดเพิ่มเติม
2.4.3 ซอฟต์แวร์
ดูการติดตั้งใช้งานอุปกรณ์
- [3/W-0-1] ต้องประกาศฟีเจอร์
android.hardware.type.watch
- [3/W-0-2] ต้องรองรับ uiMode = UI_mode_TYPE_Wwatch
- [3.2.3.1/W-0-1] ต้องโหลดล่วงหน้า 1 รายการ แอปพลิเคชันหรือคอมโพเนนต์บริการมากกว่า ที่มีเครื่องจัดการ Intent รูปแบบตัวกรอง Intent สาธารณะทั้งหมดที่กำหนดโดยแอปพลิเคชันต่อไปนี้ Intent แสดงอยู่ที่นี่
ดูการติดตั้งใช้งานอุปกรณ์
- [3.8.4/W-SR-1] ขอแนะนำเป็นอย่างยิ่ง เพื่อใช้ Assistant ในอุปกรณ์เพื่อจัดการการดำเนินการของตัวช่วย
ดูการติดตั้งใช้งานอุปกรณ์ที่ประกาศandroid.hardware.audio.output
แฟล็กฟีเจอร์:
- [3.10/W-1-1] ต้องรองรับการช่วยเหลือพิเศษของบุคคลที่สาม บริการต่างๆ
- [3.10/W-SR-1] ขอแนะนำอย่างยิ่งให้โหลดล่วงหน้า บริการการช่วยเหลือพิเศษในอุปกรณ์ซึ่งมีฟังก์ชันการทำงานเทียบเท่าหรือมากกว่า การเข้าถึงด้วยสวิตช์และ TalkBack (สำหรับภาษาที่รองรับ เครื่องมืออ่านออกเสียงข้อความ) บริการการช่วยเหลือพิเศษตามที่ระบุไว้ใน โปรเจ็กต์โอเพนซอร์ส Talkback
หากมีการใช้งานอุปกรณ์นาฬิกา ให้รายงานฟีเจอร์ android.hardware.audio.output ดังนี้
[3.11/W-SR-1] ขอแนะนำอย่างยิ่งให้รวม เครื่องมือ TTS ที่รองรับภาษาที่พร้อมใช้งานในอุปกรณ์
[3.11/W-0-1] ต้องรองรับการติดตั้ง เครื่องมือ TTS ของบุคคลที่สาม
2.4.4 ประสิทธิภาพและศักยภาพ
การใช้งานอุปกรณ์นาฬิกามีฟีเจอร์ในการปรับปรุงพลังงานของอุปกรณ์หรือไม่ การจัดการที่รวมอยู่ใน AOSP หรือขยายฟีเจอร์ที่รวมอยู่ใน AOSP ใน AOSP พวกเขา
- [8.3/W-SR-1] แนะนําอย่างยิ่งให้ระบุ ราคาของผู้ใช้ในการแสดงแอปทั้งหมดที่ได้รับการยกเว้นจากสแตนด์บายแอปและ โหมดประหยัดพลังงานด้วย Doze
- [8.3/W-SR-2] แนะนําอย่างยิ่งให้ระบุ ค่าใช้จ่ายในการเปิดและปิดใช้ฟีเจอร์โหมดประหยัดแบตเตอรี่ของผู้ใช้
ดูการติดตั้งใช้งานอุปกรณ์
- [8.4/W-0-1] ต้องระบุ โปรไฟล์พลังงานต่อคอมโพเนนต์ที่กำหนดมูลค่าการใช้งานปัจจุบัน ของส่วนประกอบฮาร์ดแวร์แต่ละส่วนและ ปริมาณการใช้แบตเตอรี่โดยประมาณที่เกิดจาก ในช่วงเวลาที่ผ่านมาตามที่ระบุไว้ในไซต์โครงการโอเพนซอร์ส Android
- [8.4/W-0-2] ต้องรายงานพลังงานทั้งหมด ค่าการบริโภคในหน่วยมิลลิแอมแปร์ชั่วโมง (mAh)
- [8.4/W-0-3] ต้องรายงานกำลังไฟของ CPU
การใช้งานต่อ UID ของแต่ละกระบวนการ โครงการโอเพนซอร์ส Android พบกับ
ผ่านการใช้งานโมดูลเคอร์เนล
uid_cputime
- [8.4/W-0-4] ต้องใช้พลังงานแบบนี้
มีให้บริการผ่าน
adb shell dumpsys batterystats
เชลล์ไปยังนักพัฒนาแอป - [8.4/W] ควรระบุว่ามาจาก ของส่วนประกอบฮาร์ดแวร์เอง หากไม่สามารถระบุการใช้พลังงานของส่วนประกอบฮาร์ดแวร์ได้ ในแอปพลิเคชัน
2.4.5 โมเดลการรักษาความปลอดภัย
ดูการติดตั้งใช้งานอุปกรณ์
- [9/W-0-1] ต้องประกาศ
android.hardware.security.model.compatible
หากการติดตั้งใช้งานอุปกรณ์นาฬิกามีผู้ใช้หลายคน และ
ไม่ประกาศ Flag ฟีเจอร์ android.hardware.telephony
เนื่องจาก
- [9.5/W-1-1] ต้องรองรับโปรไฟล์ที่ถูกจำกัด คุณลักษณะที่ช่วยให้เจ้าของอุปกรณ์สามารถจัดการผู้ใช้เพิ่มเติมและผู้ใช้ บนอุปกรณ์ เมื่อใช้โปรไฟล์ที่ถูกจำกัด เจ้าของอุปกรณ์สามารถทำสิ่งต่อไปนี้ได้ ตั้งค่าสภาพแวดล้อมแยกต่างหากอย่างรวดเร็ว เพื่อให้ผู้ใช้เพิ่มเติมทำงานได้ ด้วยความสามารถในการจัดการข้อจำกัดที่ละเอียดขึ้นในแอปที่ ที่พร้อมใช้งานในสภาพแวดล้อมเหล่านั้น
หากการติดตั้งใช้งานอุปกรณ์นาฬิกามีผู้ใช้หลายคน และ
ประกาศแฟล็กฟีเจอร์ของ android.hardware.telephony
ดังนี้
- [9.5/W-2-1] ต้องไม่รองรับแบบจำกัด แต่ต้องสอดคล้องกับการปรับใช้ AOSP ของการควบคุม เพื่อเปิด /ปิด ไม่ให้ผู้ใช้รายอื่นเข้าถึงการโทรและ SMS
หากการติดตั้งใช้งานอุปกรณ์มีหน้าจอล็อกที่ปลอดภัยและมีเอเจนต์ความน่าเชื่อถืออย่างน้อย 1 รายการ ซึ่งใช้ TrustAgentService
System API อุปกรณ์ดังกล่าวจะทำสิ่งต่อไปนี้
- [9.11.1/W-1-1] ต้องตั้งคำถามผู้ใช้สำหรับวิธีการตรวจสอบสิทธิ์หลักที่แนะนำวิธีใดวิธีหนึ่ง (เช่น PIN, รูปแบบ, รหัสผ่าน) บ่อยกว่า 1 ครั้งในทุกๆ 72 ชั่วโมง
2.5 ข้อกำหนดด้านยานยนต์
การติดตั้งใช้งาน Android Automotive หมายถึงเครื่องเล่นวิทยุของยานพาหนะที่ทํางานอยู่ Android เป็นระบบปฏิบัติการสำหรับระบบบางส่วนหรือทั้งหมด และ/หรือ และสาระบันเทิง
การติดตั้งใช้งานอุปกรณ์ Android จะได้รับการจัดประเภทเป็น Automotive หากมีการประกาศ
ฟีเจอร์ android.hardware.type.automotive
หรือมีคุณสมบัติตรงตามข้อกำหนดต่อไปนี้
เกณฑ์
- ฝังเป็นส่วนหนึ่งของหรือเชื่อมต่อกับรถยนต์ยานยนต์
- ใช้หน้าจอในแถวที่นั่งคนขับเป็นจอแสดงผลหลัก
ข้อกำหนดเพิ่มเติมในส่วนที่เหลือของส่วนนี้ใช้สำหรับ Android เท่านั้น การติดตั้งใช้งานอุปกรณ์ในรถยนต์
2.5.1 ฮาร์ดแวร์
การติดตั้งใช้งานอุปกรณ์ในรถยนต์:
- [7.1.1.1/A-0-1] ต้องมีหน้าจออย่างน้อย 6 หน้าจอ นิ้วในขนาดเส้นทแยงมุมจริง
- [7.1.1.1/A-0-2] ต้องมีเลย์เอาต์ขนาดหน้าจอ อย่างน้อย 750 dp x 480 dp
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
หากการใช้งานอุปกรณ์ในรถยนต์รองรับผู้ใช้หลายคนพร้อมกัน
(ซึ่งผู้ใช้ Android หลายคน
สามารถโต้ตอบกับอุปกรณ์ได้พร้อมกัน
โดยใช้จอแสดงผลของตนเอง
config_multiuserVisibleBackgroundUsers
เปิดใช้อยู่) ไว้) พวกเขาจะ:
- [7.1.1.1/A-1-1] ต้องมีหน้าจอแยกต่างหาก
ขนาดเส้นทแยงมุมจริงอย่างน้อย 6 นิ้วสำหรับโซนที่มีการเข้าใช้แต่ละโซนสำหรับ
จอแสดงผลหลัก ควรติดแท็กเป็น
CarOccupantZoneManager.DISPLAY_TYPE_MAIN
สำหรับแต่ละโซนผู้โดยสาร - [7.1.1.1/A-1-2] ต้องมีเลย์เอาต์ขนาดหน้าจอ อย่างน้อย 750 dp x 480 dp สำหรับจอแสดงผลหลักแต่ละจอ
สิ้นสุดข้อกำหนดใหม่
หากการติดตั้งใช้งานอุปกรณ์ยานยนต์รองรับ OpenGL ES 3.1
- [7.1.4.1/A-0-1] ต้องประกาศ OpenGL ES 3.1 ขึ้นไป
- [7.1.4.1/A-0-2] ต้องรองรับ Vulkan 1.1
- [7.1.4.1/A-0-3] ต้องมีตัวโหลด Vulkan และส่งออกสัญลักษณ์ทั้งหมด
หากการติดตั้งใช้งานอุปกรณ์ Automotive รวมการรองรับ Vulkan จะมีการดำเนินการต่อไปนี้
- [7.1.4.2/A-1-1] ต้องเป็นไปตามข้อกำหนด ที่ระบุไว้ในโปรไฟล์ Android Baseline 2021
การติดตั้งใช้งานอุปกรณ์ในรถยนต์:
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
- [7.1.7/A-0-1] ต้องกำหนดค่า
จอแสดงผลรอง
อยู่ในแนวสายตาของผู้ขับ
FLAG_PRIVATE
สิ้นสุดข้อกำหนดใหม่
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
- [7.2.3/A-0-1] ต้องระบุ
หน้าแรก และฟังก์ชันย้อนกลับ และอาจระบุย้อนกลับและฟังก์ชันล่าสุด
สิ้นสุดข้อกำหนดใหม่
- [7.2.3/A-0-2] ต้องส่งทั้งการกดปกติและค้าง
เหตุการณ์ของฟังก์ชันย้อนกลับ (
KEYCODE_BACK
) ไปยังแอปพลิเคชันเบื้องหน้า - [7.3/A-0-1] ต้องนำไปใช้และรายงาน
GEAR_SELECTION
NIGHT_MODE
,PERF_VEHICLE_SPEED
และPARKING_BRAKE_ON
- [7.3/A-0-2] ค่าของเมตริก
NIGHT_MODE
จะต้องสอดคล้องกับโหมดกลางวัน/กลางคืนของแดชบอร์ด และควรอิงตาม อินพุตเซ็นเซอร์แสงแวดล้อม เซ็นเซอร์แสงแวดล้อมที่อยู่ข้างใต้อาจเหมือนกัน เป็น PhotoMeter - [7.3/A-0-3] ต้องใส่ช่องข้อมูลเพิ่มเติมของเซ็นเซอร์
TYPE_SENSOR_PLACEMENT
โดยเป็นส่วนหนึ่งของ SensorAdditionalInfo สำหรับเซ็นเซอร์ทุกตัวที่มีให้ - [7.3/A-SR1] อาจเสียชีวิตไปแล้ว ตำแหน่ง ด้วยการรวม GPS/GNSS กับเซ็นเซอร์เพิ่มเติม หากสถานที่ตั้ง เป็นคำแนะนำที่แก้ไขไม่ได้ จึงขอแนะนำให้ปรับใช้และรายงาน เซ็นเซอร์ที่เกี่ยวข้อง ประเภทและ/หรือรหัสพร็อพเพอร์ตี้ยานพาหนะ
[7.3/A-0-4] สถานที่ตั้ง ได้รับคำขอผ่าน LocationManager#requestLocationUpdates() ต้องไม่ใช่แผนที่ที่ตรงกัน
[7.3.1/A-0-4] ต้องเป็นไปตามข้อกำหนดของ Android ระบบพิกัดเซ็นเซอร์ของรถ
[7.3/A-SR-1] STRONGLY_RECOMMENDED ให้รวมแกน 3 แกน ตัวตรวจวัดความเร่งและเครื่องวัดการหมุน 3 แกน
[7.3/A-SR-2] STRONGLY_RECOMMENDED นำไปใช้และรายงาน เซ็นเซอร์
TYPE_HEADING
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
หากการใช้งานอุปกรณ์ในรถยนต์รองรับผู้ใช้หลายคนพร้อมกัน
(ซึ่งผู้ใช้ Android หลายคน
สามารถโต้ตอบกับอุปกรณ์ได้พร้อมกัน
โดยใช้จอแสดงผลของตนเอง
config_multiuserVisibleBackgroundUsers
เปิดใช้อยู่) ไว้) พวกเขาจะ:
- [7.3/A-1-1] ต้องตั้งค่า
NIGHT_MODE
แจ้งค่าที่สอดคล้องกับโหมดกลางวัน/กลางคืนของแดชบอร์ด จอแสดงผลทั้งหมด รวมทั้งจอแสดงผลจากเบาะหลัง
สิ้นสุดข้อกำหนดใหม่
หากการใช้งานอุปกรณ์ยานยนต์มีตัวตรวจวัดความเร่ง สิ่งที่จะเกิดขึ้นมีดังนี้
- [7.3.1/A-1-1] ต้องรายงานเหตุการณ์ได้ตามความถี่ อย่างน้อย 100 Hz
หากการติดตั้งใช้งานอุปกรณ์มีตัวตรวจวัดความเร่งแบบ 3 แกน สิ่งที่จะเกิดขึ้นมีดังนี้
- [7.3.1/A-SR-1] ขอแนะนำอย่างยิ่งให้ใช้ เซ็นเซอร์คอมโพสิตสำหรับตัวตรวจวัดความเร่งของแกนจำกัด
หากการใช้งานอุปกรณ์ยานยนต์มีตัวตรวจวัดความเร่งที่มีค่าน้อยกว่า 3 แกน ได้แก่
- [7.3.1/A-1-3] ต้องนำไปใช้และรายงาน
เซ็นเซอร์
TYPE_ACCELEROMETER_LIMITED_AXES
- [7.3.1/A-1-4] ต้องนำไปใช้และรายงาน
เซ็นเซอร์
TYPE_ACCELEROMETER_LIMITED_AXES_UNCALIBRATED
หากการใช้งานอุปกรณ์ยานยนต์รวมถึงเครื่องวัดการหมุน จะมีการดำเนินการดังนี้
- [7.3.4/A-2-1] ต้องรายงานเหตุการณ์ได้ตามความถี่ อย่างน้อย 100 Hz
- [7.3.4/A-2-3] ต้องสามารถวัดการเปลี่ยนแปลงการวางแนวได้ ได้สูงสุดถึง 250 องศาต่อวินาที
- [7.3.4/A-SR-1] ขอแนะนําอย่างยิ่งให้กําหนดค่า ช่วงการวัดของเครื่องวัดการหมุนอยู่ที่ +/-250 dps เพื่อเพิ่มความละเอียดให้สูงสุด เท่าที่จะเป็นไปได้
หากอุปกรณ์ยานยนต์มีเครื่องวัดการหมุน 3 แกน สิ่งที่จะเกิดขึ้นมีดังนี้
- [7.3.4/A-SR-2] ขอแนะนำอย่างยิ่งให้ใช้ เซ็นเซอร์คอมโพสิตสำหรับเครื่องวัดการหมุนแบบจำกัดแกน
หากการใช้งานอุปกรณ์ยานยนต์มีเครื่องวัดการหมุนที่มีน้อยกว่า 3 แกน ระบบจะดำเนินการดังต่อไปนี้
- [7.3.4/A-4-1] ต้องนำไปใช้และรายงาน
เซ็นเซอร์
TYPE_GYROSCOPE_LIMITED_AXES
- [7.3.4/A-4-2] ต้องนำไปใช้และรายงาน
เซ็นเซอร์
TYPE_GYROSCOPE_LIMITED_AXES_UNCALIBRATED
หากใช้อุปกรณ์ Automotive มีตัวรับ GPS/GNSS แต่ไม่ได้ รวมถึงการเชื่อมต่อข้อมูลผ่านเครือข่ายมือถือ ซึ่งจะ:
- [7.3.3/A-3-1] ต้องกำหนดตำแหน่งในครั้งแรก ตัวรับสัญญาณ GPS/GNSS เปิดอยู่หรือหลังจากผ่านไป 4 วันขึ้นไปภายใน 60 วินาที
- [7.3.3/A-3-2] ต้องเป็นไปตามเกณฑ์กำหนดเวลาที่ต้องแก้ไขก่อนดังที่ระบุ ตามที่อธิบายไว้ใน 7.3.3/C-1-2 และ 7.3.3/C-1-6 สําหรับคําขอตำแหน่งอื่นๆ ทั้งหมด (เช่น คําขอที่ไม่ใช่ครั้งแรก เลยหรือหลังจาก 4 วันขึ้นไป) ข้อกำหนด 7.3.3/C-1-2 คือ ในรถยนต์ที่ไม่มีการเชื่อมต่ออินเทอร์เน็ต ผ่านเครือข่ายมือถือ โดยใช้การคาดการณ์วงโคจรของ GNSS ที่คำนวณบนเครื่องรับ หรือใช้ ตำแหน่งล่าสุดที่ทราบของยานพาหนะ รวมถึงความสามารถในการจอดพัก อย่างน้อย 60 วินาทีโดยความถูกต้องของตำแหน่งเป็นไปตามที่กำหนด 7.3.3/C-1-3 หรือทั้ง 2 อย่างร่วมกัน
หากการติดตั้งใช้งานอุปกรณ์ยานยนต์มีเซ็นเซอร์ TYPE_HEADING
สิ่งที่จะเกิดขึ้นมีดังนี้
- [7.3.4/A-4-3] ต้องรายงานเหตุการณ์ได้ตามความถี่ อย่างน้อย 1 Hz
- [7.3.4/A-SR-3] STRONGLY_RECOMMENDED เพื่อรายงานเหตุการณ์สูงสุด ความถี่อย่างน้อย 10 Hz
- ควรอ้างอิงถึงทิศเหนือจริง
- ควรพร้อมใช้งานแม้ในขณะที่ยานพาหนะยังอยู่
- ควรมีความละเอียดอย่างน้อย 1 องศา
การติดตั้งใช้งานอุปกรณ์ในรถยนต์:
- [7.4.3/A-0-1] ต้องรองรับบลูทูธและควร รองรับ Bluetooth LE
- [7.4.3/A-0-2] การติดตั้งใช้งาน Android Automotive
ต้องรองรับโปรไฟล์บลูทูธต่อไปนี้
- การโทรผ่านโทรศัพท์ผ่านโปรไฟล์แฮนด์ฟรี (HFP)
- การเล่นสื่อผ่าน Audio Distribution Profile (A2DP)
- การควบคุมการเล่นสื่อบนโปรไฟล์รีโมตคอนโทรล (AVRCP)
- การแชร์รายชื่อติดต่อโดยใช้โปรไฟล์การเข้าถึงสมุดโทรศัพท์ (PBAP)
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
- [7.4.3/A-SR-1] แนะนําอย่างยิ่งให้สนับสนุน Message Access Profile (MAP) หากอุปกรณ์มีพื้นที่ควบคุมของผู้ขับ
สิ้นสุดข้อกำหนดใหม่
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
หากการใช้งานอุปกรณ์ในรถยนต์รองรับผู้ใช้หลายคนพร้อมกัน
(ซึ่งผู้ใช้ Android หลายคน
สามารถโต้ตอบกับอุปกรณ์ได้พร้อมกัน
โดยใช้จอแสดงผลของตนเอง
config_multiuserVisibleBackgroundUsers
เปิดใช้อยู่) ไว้) พวกเขาจะ:
- [7.4.3/A-1-1] ต้องเป็นอิสระและไม่เป็นการแทรกแซง กับผู้ใช้รายอื่น ประสบการณ์ BT
สิ้นสุดข้อกำหนดใหม่
การติดตั้งใช้งานอุปกรณ์ในรถยนต์:
- [7.4.5/A] ควรมีการรองรับเครือข่ายมือถือ การเชื่อมต่อข้อมูลตามเครือข่าย
- [7.4.5/A] อาจใช้ System API
ค่าคงที่
NetworkCapabilities#NET_CAPABILITY_OEM_PAID
สำหรับ เครือข่ายที่ควรใช้งานได้ในแอประบบ
หากการติดตั้งอุปกรณ์มีการสนับสนุนวิทยุกระจายเสียง AM/FM และการเปิด ฟังก์ชันการทำงานของแอปพลิเคชันต่างๆ ได้
- 7.4/A-1-1
ต้องประกาศการรองรับ
FEATURE_BROADCAST_RADIO
กล้องหลังหมายถึง กล้องแบบมุมมองทั้งโลก ซึ่งคุณสามารถวางตำแหน่งใดก็ได้ วางบนยานพาหนะและหันไปด้านนอกห้องโดยสารของรถ ก็คือ รูปภาพที่ถ่ายจากมุมด้านหน้าของตัวรถ เช่น กล้องหลัง
กล้องด้านหน้า หมายถึง กล้องที่หันหน้าเข้าหาผู้ใช้ ซึ่งจะอยู่ในตำแหน่งใดก็ได้ วางบนยานพาหนะและหันไปด้านภายในห้องโดยสารของรถ แค่นั้น รูปภาพของผู้ใช้ เช่น สำหรับการประชุมทางวิดีโอและแอปพลิเคชันที่คล้ายกัน
การติดตั้งใช้งานอุปกรณ์ในรถยนต์:
- [7.5/A-SR-1] แนะนำอย่างยิ่งให้ใส่ภาพแบบเผชิญโลกอย่างน้อย 1 ภาพ กล้อง
- อาจมีกล้องที่แสดงต่อผู้ใช้อย่างน้อย 1 ตัว
- [7.5/A-SR-2] ขอแนะนำอย่างยิ่งให้รองรับสตรีมมิงพร้อมกัน กล้องหลายตัว
หากการใช้งานอุปกรณ์ยานยนต์มีกล้องอย่างน้อย 1 ตัว แบบที่ตอบสนองกับโลกภายนอกได้ สำหรับกล้องประเภทนี้
- [7.5/A-1-1] ต้องวางแนวเพื่อให้ด้านยาวของกล้องอยู่ในแนวเดียวกัน ด้วยระนาบ X-Y ของแกนเซ็นเซอร์ Android Automotive
- [7.5/A-SR-3] ได้รับการแนะนำอย่างยิ่งให้ใช้การโฟกัสแบบคงที่หรือ EDOF ฮาร์ดแวร์ (ระยะชัดลึก)
- [7.5/A-1-2] ต้องมีกล้องตัวหลักแบบหันไปข้างโลก ที่มีรหัสกล้องต่ำสุด
หากการใช้งานอุปกรณ์ยานยนต์มีกล้องอย่างน้อย 1 ตัว สำหรับกล้องประเภทนี้
- [7.5/A-2-1] กล้องหลักที่แสดงต่อผู้ใช้ต้องเป็นกล้องที่แสดงต่อผู้ใช้ ด้วยรหัสกล้องที่ต่ำที่สุด
- อาจปรับแนวเพื่อให้ด้านยาวของกล้องอยู่ในแนวเดียวกับ X-Y ระนาบของแกนเซ็นเซอร์ยานยนต์ของ Android
หากการติดตั้งใช้งานอุปกรณ์ Automotive มีกล้องที่เข้าถึงได้ผ่านทาง
android.hardware.Camera
หรือ android.hardware.camera2
API ดังต่อไปนี้
- [7.5/A-3-1] ต้องเป็นไปตามข้อกำหนดหลักของกล้องในส่วน 7.5
หากการติดตั้งใช้งานอุปกรณ์ Automotive มีกล้องที่เข้าถึงไม่ได้
ผ่าน android.hardware.Camera
หรือ android.hardware.camera2
API จากนั้น
ดังนี้
- [7.5/A-4-1] ต้องเข้าถึงได้ผ่านบริการ Extended View System
หากการติดตั้งใช้งานอุปกรณ์ Automotive มีกล้องอย่างน้อย 1 ตัวที่เข้าถึงได้ผ่าน Extended View System Service สำหรับกล้องประเภทนี้
- [7.5/A-5-1] ต้องไม่หมุนหรือสะท้อนภาพตัวอย่างจากกล้องในแนวนอน
- [7.5/A-SR-4] ขอแนะนำเป็นอย่างยิ่งให้มีความละเอียดอย่างน้อย 1.3 เมกะพิกเซล
หากการติดตั้งใช้งานอุปกรณ์ในรถยนต์มีกล้องอย่างน้อย 1 ตัวซึ่ง
เข้าถึงได้ทั้งผ่านบริการ Extended View System และ android.hardware.Camera
หรือ android.hardware.Camera2
API สำหรับกล้องประเภทนี้ พวกเขาจะดำเนินการดังนี้
- [7.5/A-6-1] ต้องรายงานรหัสกล้องเดียวกัน
หากการใช้งานอุปกรณ์ยานยนต์มี API กล้องที่เป็นกรรมสิทธิ์ สิ่งที่จะเกิดขึ้นมีดังนี้
- [7.5/A-7-1] ต้องใช้ API กล้องดังกล่าวโดยใช้
android.hardware.camera2
API หรือ Extended View System API
การติดตั้งใช้งานอุปกรณ์ในรถยนต์:
[7.6.1/A-0-1] ต้องมีพื้นที่เก็บข้อมูลอย่างน้อย 4 GB พื้นที่เก็บข้อมูลที่ไม่ผันผวนสำหรับข้อมูลส่วนตัวของแอปพลิเคชัน (
/data
พาร์ติชัน)[7.6.1/A] ควรจัดรูปแบบพาร์ติชันข้อมูล เพื่อเพิ่มประสิทธิภาพและอายุการใช้งานที่ยาวนานในพื้นที่เก็บข้อมูล Flash (ตัวอย่างเช่น โดยใช้ระบบไฟล์
f2fs
)
หากการติดตั้งใช้งานอุปกรณ์ Automotive มีพื้นที่เก็บข้อมูลภายนอกที่แชร์ผ่าน ภายในที่เก็บข้อมูลแบบถอดไม่ได้ภายใน
- [7.6.1/A-SR-1] แนะนําอย่างยิ่งให้ลด
โอเวอร์เฮด I/O ในการดำเนินการต่างๆ ที่ดำเนินการกับที่จัดเก็บข้อมูลภายนอก ตัวอย่างเช่น
โดยใช้
SDCardFS
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
หากการใช้งานอุปกรณ์ในรถยนต์รองรับผู้ใช้หลายคนพร้อมกัน
(ซึ่งผู้ใช้ Android หลายคน
สามารถโต้ตอบกับอุปกรณ์ได้พร้อมกัน
โดยใช้จอแสดงผลของตนเอง
config_multiuserVisibleBackgroundUsers
เปิดใช้อยู่) ไว้) พวกเขาจะ:
- [7.6.1/A-1-1] ต้องมี สำหรับอินสแตนซ์ AAOS รายการเดียว
พื้นที่เก็บข้อมูลที่ไม่ผันผวนสำหรับผู้ใช้ Android พร้อมกันอย่างน้อย 4 GB ต่อผู้ใช้ 1 คน
พร้อมใช้งานสำหรับข้อมูลส่วนตัวของแอปพลิเคชัน (
/data
พาร์ติชัน)
สิ้นสุดข้อกำหนดใหม่
หากใช้อุปกรณ์ Automotive เป็นแบบ 64 บิต
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
[7.6.1/A-2-1] หน่วยความจำที่พร้อมใช้งานสำหรับเคอร์เนล และพื้นที่ผู้ใช้ต้องมีขนาดอย่างน้อย 816 MB ต่อจอแสดงผลหลัก หากใช้ความหนาแน่นอย่างใดอย่างหนึ่งต่อไปนี้
- 280 dpi หรือต่ำกว่าบนหน้าจอขนาดเล็ก/ปกติ
- ldpi หรือต่ำกว่าบนหน้าจอขนาดใหญ่พิเศษ
- mdpi หรือต่ำกว่าบนหน้าจอขนาดใหญ่
[7.6.1/A-2-2] หน่วยความจำที่มีให้กับเคอร์เนล และพื้นที่ผู้ใช้ต้องมีขนาดอย่างน้อย 944 MB ต่อจอแสดงผลหลัก หากใช้ความหนาแน่นอย่างใดอย่างหนึ่งต่อไปนี้
- xhdpi ขึ้นไปสำหรับหน้าจอขนาดเล็ก/ปกติ
- hdpi ขึ้นไปบนหน้าจอขนาดใหญ่
- MDPI ขึ้นไปบนหน้าจอขนาดใหญ่พิเศษ
[7.6.1/A-2-3] หน่วยความจำที่มีให้กับเคอร์เนล และพื้นที่ผู้ใช้ต้องมีขนาดอย่างน้อย 1280 MB ต่อจอแสดงผลหลัก หากใช้ความหนาแน่นอย่างใดอย่างหนึ่งต่อไปนี้
- 400 dpi ขึ้นไปในหน้าจอขนาดเล็ก/หน้าจอปกติ
- xhdpi ขึ้นไปบนหน้าจอขนาดใหญ่
- tvdpi ขึ้นไปบนหน้าจอขนาดใหญ่พิเศษ
[7.6.1/A-2-4] หน่วยความจำที่มีให้กับเคอร์เนล และพื้นที่ผู้ใช้ต้องมีขนาดอย่างน้อย 1824 MB ต่อจอแสดงผลหลัก หากใช้ความหนาแน่นอย่างใดอย่างหนึ่งต่อไปนี้
- 560 dpi ขึ้นไปในหน้าจอขนาดเล็ก/หน้าจอปกติ
- 400 dpi ขึ้นไปในหน้าจอขนาดใหญ่
- xhdpi ขึ้นไปบนหน้าจอขนาดใหญ่พิเศษ
โปรดทราบว่า "หน่วยความจำที่พร้อมใช้งานสำหรับเคอร์เนลและพื้นที่ผู้ใช้" ข้างต้นหมายถึง พื้นที่หน่วยความจำที่มีให้นอกเหนือจากหน่วยความจำที่มีไว้สำหรับฮาร์ดแวร์อยู่แล้ว เช่น วิทยุ วิดีโอ และอื่นๆ ที่ไม่ได้อยู่ภายใต้ ควบคุมการใช้งานอุปกรณ์
สิ้นสุดข้อกำหนดใหม่
การติดตั้งใช้งานอุปกรณ์ในรถยนต์:
- [7.7.1/A] ควรมีพอร์ต USB ที่รองรับโหมดอุปกรณ์ต่อพ่วง
การติดตั้งใช้งานอุปกรณ์ในรถยนต์:
- [7.8.1/A-0-1] ต้องมีไมโครโฟน
การติดตั้งใช้งานอุปกรณ์ในรถยนต์:
- [7.8.2/A-0-1] ต้องมีเอาต์พุตเสียงและประกาศ
android.hardware.audio.output
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
หากการใช้งานอุปกรณ์ในรถยนต์รองรับผู้ใช้หลายคนพร้อมกัน
(ซึ่งผู้ใช้ Android หลายคน
สามารถโต้ตอบกับอุปกรณ์ได้พร้อมกัน
โดยใช้จอแสดงผลของตนเอง
config_multiuserVisibleBackgroundUsers
เปิดใช้อยู่) ไว้) พวกเขาจะ:
- [7.8.2/A-1-1] ต้องมีอุปกรณ์เอาต์พุตเสียงสำหรับแต่ละหลัก สำหรับระบบผู้ใช้หลายคนพร้อมกัน
- [7.8.2/A-1-2] ต้องมีโซนเสียงไดรเวอร์ที่ครอบคลุม ลำโพงห้องโดยสารส่วนกลาง โซนผู้โดยสารด้านหน้าจะแชร์เสียงคนขับได้ หรืออาจมีเอาต์พุตเสียงของตัวเอง
สิ้นสุดข้อกำหนดใหม่
2.5.2 มัลติมีเดีย
การติดตั้งใช้งานอุปกรณ์ Automotive ต้องรองรับการเข้ารหัสเสียงต่อไปนี้ และถอดรหัสรูปแบบดังกล่าว รวมถึงทำให้ใช้งานกับแอปพลิเคชันของบุคคลที่สามได้
- [5.1/A-0-1] โปรไฟล์ MPEG-4 AAC (AAC LC)
- [5.1/A-0-2] โปรไฟล์ MPEG-4 HE AAC (AAC+)
- [5.1/A-0-3] AAC ELD (ปรับปรุงความหน่วงต่ำ AAC)
การติดตั้งใช้งานอุปกรณ์ Automotive ต้องรองรับการเข้ารหัสวิดีโอต่อไปนี้ รูปแบบต่อไปนี้และทำให้ใช้งานกับแอปพลิเคชันของบุคคลที่สามได้
การติดตั้งใช้งานอุปกรณ์ในรถยนต์ต้องรองรับการถอดรหัสวิดีโอต่อไปนี้ รูปแบบต่อไปนี้และทำให้ใช้งานกับแอปพลิเคชันของบุคคลที่สามได้
เราขอแนะนำเป็นอย่างยิ่งให้ใช้อุปกรณ์ในยานยนต์เพื่อสนับสนุน การถอดรหัสวิดีโอต่อไปนี้:
- [5.3/A-SR-1] H.265 HEVC
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
หากการใช้งานอุปกรณ์ในรถยนต์รองรับผู้ใช้หลายคนพร้อมกัน
(ซึ่งผู้ใช้ Android หลายคน
สามารถโต้ตอบกับอุปกรณ์ได้พร้อมกัน
โดยใช้จอแสดงผลของตนเอง
config_multiuserVisibleBackgroundUsers
เปิดใช้อยู่) ไว้) พวกเขาจะ:
- [5.5.3/A-1-1] ต้องกำหนดเส้นโค้งปริมาตรที่เหมือนกันสำหรับ เอาต์พุตเสียงทั้งหมดจะสตรีมการแมปกับกลุ่มระดับเสียงเดียวกันตามที่กำหนดไว้ใน ไฟล์การกำหนดค่าระบบเสียงในรถ
สิ้นสุดข้อกำหนดใหม่
2.5.3 ซอฟต์แวร์
การติดตั้งใช้งานอุปกรณ์ในรถยนต์:
[3/A-0-1] ต้องประกาศฟีเจอร์
android.hardware.type.automotive
[3/A-0-2] ต้องรองรับ uiMode =
UI_MODE_TYPE_CAR
[3/A-0-3] ต้องรองรับ API สาธารณะทั้งหมดใน
android.car.*
Namespace
หากการติดตั้งใช้งานอุปกรณ์ Automotive มี API ที่เป็นกรรมสิทธิ์โดยใช้
android.car.CarPropertyManager
ที่มี
android.car.VehiclePropertyIds
,
ดังนี้
- [3/A-1-1] ต้องไม่แนบสิทธิ์พิเศษกับระบบ โดยใช้คุณสมบัติเหล่านี้ หรือป้องกันไม่ให้แอปพลิเคชันของบุคคลที่สาม จากการใช้คุณสมบัติเหล่านี้
- [3/A-1-2] ต้องไม่จำลองทรัพย์สินที่เป็นยานพาหนะ มีอยู่ใน SDK
การติดตั้งใช้งานอุปกรณ์ในรถยนต์:
[3.2.1/A-0-1] ต้องรองรับและบังคับใช้ทั้งหมด สิทธิ์คงที่ตามที่บันทึกข้อมูลไว้ในหน้าข้อมูลอ้างอิงสิทธิ์สำหรับยานยนต์
[3.2.3.1/A-0-1] ต้องโหลดล่วงหน้าอย่างน้อย 1 รายการหรือ แอปพลิเคชันหรือคอมโพเนนต์บริการที่มี เครื่องจัดการ Intent ทั้งหมด รูปแบบตัวกรอง Intent สาธารณะที่กำหนดโดย Intent ของแอปพลิเคชันต่อไปนี้ ซึ่งแสดงไว้ที่นี่
[3.4.1/A-0-1] ต้องระบุฟิลด์ การใช้งาน
android.webkit.Webview
API
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
- [3.8/A-0-1] ต้องไม่อนุญาตให้ผู้ใช้ระดับรองเต็มรูปแบบที่ไม่ใช่ผู้ใช้เบื้องหน้าปัจจุบันเริ่มต้นกิจกรรมและมีสิทธิ์เข้าถึง UI บนจอแสดงผลใดๆ
หากการใช้งานอุปกรณ์ในรถยนต์รองรับผู้ใช้หลายคนพร้อมกัน
(ซึ่งผู้ใช้ Android หลายคน
สามารถโต้ตอบกับอุปกรณ์ได้พร้อมกัน
โดยใช้จอแสดงผลของตนเอง
config_multiuserVisibleBackgroundUsers
เปิดใช้อยู่)
สำหรับผู้ใช้รองเต็มรูปแบบที่ไม่ใช่ผู้ใช้ที่ทำงานอยู่เบื้องหน้าในปัจจุบัน
แต่มีสิทธิ์เข้าถึง UI สำหรับจอแสดงผล
[3.8/A-1-1] ต้อง ใช้รายการ
UserRestrictions
ที่กำหนดไว้ล่วงหน้าต่อไปนี้[3.8/A-1-2] ต้องไม่อนุญาตผู้ใช้รายนั้น ถ้าต้องการเปลี่ยนการตั้งค่าต่อไปนี้สำหรับผู้ใช้คนอื่นๆ ผ่านการตั้งค่าหรือ API
- โหมดกลางวัน/กลางคืน
- ภาษา
- วันที่
- เวลา
- เขตเวลา
- ฟีเจอร์สีจอแสดงผล (รวมถึงความสว่าง แสงตอนกลางคืน ไลฟ์สไตล์ดิจิทัล โทนสีเทา และ ลดสีสว่าง)
สิ้นสุดข้อกำหนดใหม่
การติดตั้งใช้งานอุปกรณ์ในรถยนต์:
[3.8.3/A-0-1] ต้องแสดงผล การแจ้งเตือนที่ใช้
Notification.CarExtender
API เมื่อแอปพลิเคชันของบุคคลที่สามขอ[3.8.4/A-SR-1] ขอแนะนําอย่างยิ่ง เพื่อใช้ Assistant ในอุปกรณ์เพื่อจัดการการดำเนินการของตัวช่วย
หากการใช้งานอุปกรณ์ยานยนต์มีปุ่มกดเพื่อพูด ฟีเจอร์ดังกล่าวจะมีลักษณะดังนี้
- [3.8.4/A-1-1] ต้องใช้การกดสั้นๆ
ปุ่มกดเพื่อพูดเป็นการโต้ตอบที่กำหนดเพื่อเรียกใช้งาน
แอปช่วยเหลือที่ผู้ใช้เลือก ซึ่งก็คือแอปที่ใช้งาน
VoiceInteractionService
การติดตั้งใช้งานอุปกรณ์ในรถยนต์:
- [3.8.3.1/A-0-1] ต้องถูกต้อง
แสดงผลทรัพยากรตามที่อธิบายไว้ใน
Notifications on Automotive OS
เอกสารเกี่ยวกับ SDK - [3.8.3.1/A-0-2] ต้องแสดงผล
PLAY และ MUTE สำหรับการดำเนินการแจ้งเตือนแทนการดำเนินการที่ดำเนินการผ่าน
Notification.Builder.addAction()
- [3.8.3.1/A] ควรจำกัด ใช้งานการจัดการอย่างละเอียด เช่น การควบคุมต่อการแจ้งเตือน 1 ช่อง อาจใช้ความสามารถของ UI ต่อแอปพลิเคชันเพื่อลดการควบคุม
หากการติดตั้งใช้งานอุปกรณ์ในรถยนต์รองรับพร็อพเพอร์ตี้ HAL ของผู้ใช้ สิ่งที่จะเกิดขึ้นมีดังนี้
- [3.9.3/A-1-1] ต้องใช้
พร็อพเพอร์ตี้วงจรของผู้ใช้
INITIAL_USER_INFO
,SWITCH_USER
,CREATE_USER
,REMOVE_USER
การติดตั้งใช้งานอุปกรณ์ในรถยนต์:
- [3.14/A-0-1] ต้องมีเฟรมเวิร์ก UI เพื่อสนับสนุน แอปของบุคคลที่สามที่ใช้ API สื่อตามที่อธิบายไว้ในส่วน 3.14
- [3.14/A-0-2] ต้องอนุญาตให้ผู้ใช้โต้ตอบได้อย่างปลอดภัย ด้วยแอปพลิเคชันสื่อขณะขับรถ
- [3.14/A-0-3] ต้องรองรับ
CAR_INTENT_ACTION_MEDIA_TEMPLATE
การดำเนินการ Intent แบบไม่เจาะจงปลายทางด้วยฟังก์ชันCAR_EXTRA_MEDIA_PACKAGE
เพิ่มเติม - [3.14/A-0-4] ต้องมีเงินเพียงพอในการเข้าใช้ ของแอปพลิเคชันสื่อ ค่ากำหนด กิจกรรม แต่ต้องเปิดใช้เฉพาะเมื่อข้อจำกัด UX ของรถไม่มีผล
- [3.14/A-0-5] ต้องแสดง
ข้อความแสดงข้อผิดพลาด
ตั้งค่าโดยแอปพลิเคชันสื่อ และต้องรองรับบริการเสริม
ERROR_RESOLUTION_ACTION_LABEL
และERROR_RESOLUTION_ACTION_INTENT
- [3.14/A-0-6] ต้องรองรับราคาในการค้นหาในแอปสำหรับ ซึ่งเป็นแอปที่รองรับการค้นหา
- [3.14/A-0-7] ต้องเคารพ
CONTENT_STYLE_BROWSABLE_HINT
และCONTENT_STYLE_PLAYABLE_HINT
เมื่อแสดง MediaBrowser ลำดับชั้น
หากการติดตั้งใช้งานอุปกรณ์ Automotive มีแอป Launcher เริ่มต้น ระบบจะดำเนินการต่อไปนี้
- [3.14/A-1-1] ต้องระบุบริการสื่อและเปิดบริการเหล่านั้น
พร้อมด้วย
CAR_INTENT_ACTION_MEDIA_TEMPLATE
Intent
การติดตั้งใช้งานอุปกรณ์ในรถยนต์:
- [3.8/A] อาจจำกัดแอปพลิเคชัน
ในการเข้าสู่โหมดเต็มหน้าจอตามที่อธิบายไว้ใน
immersive documentation
- [3.8/A] อาจใช้แถบสถานะและ แถบนำทางที่มองเห็นได้ตลอดเวลา
- [3.8/A] อาจจำกัดแอปพลิเคชัน ให้เปลี่ยนสีในส่วน ของ UI ระบบเพื่อให้แน่ใจว่า องค์ประกอบเหล่านั้นมองเห็นได้อย่างชัดเจนตลอดเวลา
2.5.4 ประสิทธิภาพและศักยภาพ
การติดตั้งใช้งานอุปกรณ์ในรถยนต์:
- [8.2/A-0-1] ต้องรายงานจำนวน
ไบต์ที่อ่านและเขียนไปยังพื้นที่เก็บข้อมูลที่ไม่ผันผวนต่อ UID ของแต่ละกระบวนการเพื่อค่า
สถิติพร้อมให้นักพัฒนาซอฟต์แวร์ใช้งานผ่าน System API
android.car.storagemonitoring.CarStorageMonitoringManager
Android Open โปรเจ็กต์ต้นทางมีคุณสมบัติตรงตามข้อกำหนดผ่านโมดูลเคอร์เนลของuid_sys_stats
- [8.3/A-1-3] ต้องรองรับโหมดโรงรถ
- [8.3/A] ควรอยู่ในโหมดโรงรถอย่างน้อย
15 นาทีหลังการขับขี่ทุกครั้ง ยกเว้นในกรณีต่อไปนี้
- แบตเตอรี่หมด
- ไม่มีกำหนดเวลางานที่ไม่มีการใช้งาน
- คนขับออกจากโหมด Garage
- [8.4/A-0-1] ต้องระบุ โปรไฟล์พลังงานต่อคอมโพเนนต์ที่กำหนดมูลค่าการใช้งานปัจจุบัน ของส่วนประกอบฮาร์ดแวร์แต่ละส่วนและ ปริมาณการใช้แบตเตอรี่โดยประมาณที่เกิดจาก ในช่วงเวลาที่ผ่านมาตามที่ระบุไว้ในไซต์โครงการโอเพนซอร์ส Android
- [8.4/A-0-2] ต้องรายงานพลังงานทั้งหมด ค่าการบริโภคในหน่วยมิลลิแอมแปร์ชั่วโมง (mAh)
- [8.4/A-0-3] ต้องรายงานกำลังของ CPU
การใช้งานต่อ UID ของแต่ละกระบวนการ โครงการโอเพนซอร์ส Android พบกับ
ผ่านการใช้งานโมดูลเคอร์เนล
uid_cputime
- [8.4/A] ควรมีแหล่งที่มาจาก ของส่วนประกอบฮาร์ดแวร์เอง หากไม่สามารถระบุการใช้พลังงานของส่วนประกอบฮาร์ดแวร์ได้ ในแอปพลิเคชัน
- [8.4/A-0-4] ต้องใช้พลังงานเช่นนี้
มีให้บริการผ่าน
adb shell dumpsys batterystats
เชลล์ไปยังนักพัฒนาแอป
2.5.5 โมเดลการรักษาความปลอดภัย
หากการติดตั้งใช้งานอุปกรณ์ Automotive รองรับผู้ใช้หลายคน สิ่งที่จะเกิดขึ้นมีดังนี้
- [9.5/A-1-1] ต้องไม่อนุญาตให้ผู้ใช้โต้ตอบกับ หรือเปลี่ยนไปใช้ผู้ใช้ระบบแบบไม่มีส่วนหัว ยกเว้นการจัดสรรอุปกรณ์
- [9.5/A-1-2] ต้องเปลี่ยนเป็นผู้ใช้รอง
ก่อน
BOOT_COMPLETED
- [9.5/A-1-3] ต้องรองรับความสามารถในการสร้าง ผู้ใช้ชั่วคราว แม้ในกรณีที่อุปกรณ์ถึงจำนวน ผู้ใช้สูงสุดแล้ว
หากการติดตั้งใช้งานอุปกรณ์ Automotive ประกาศ android.hardware.microphone
ดังนี้
- [9.8.2/A-1-1] ต้องแสดงสัญญาณบอกสถานะไมโครโฟนเมื่อ
มีแอปเข้าถึงข้อมูลเสียงจากไมโครโฟน แต่ไม่เข้าถึงข้อมูลเสียงจากไมโครโฟน
HotwordDetectionService
,SOURCE_HOTWORD
,ContentCaptureService
หรือแอปที่มีบทบาทในการเรียกใช้ ส่วนที่ 9.1 ที่มีตัวระบุ CDD [C-4-X] - [9.8.2/A-1-2] ต้องไม่ซ่อนสัญญาณบอกสถานะไมโครโฟนสำหรับ แอประบบที่มีอินเทอร์เฟซผู้ใช้ที่มองเห็นได้หรือการโต้ตอบของผู้ใช้โดยตรง
- [9.8.2/A-1-3] ต้องให้เงินแก่ผู้ใช้ในการสลับ ไมโครโฟนในแอปการตั้งค่า
หากการติดตั้งใช้งานอุปกรณ์ Automotive ประกาศ android.hardware.camera.any
ให้ทําดังนี้
ดังนี้
- [9.8.2/A-2-1] ต้องแสดงสัญญาณบอกสถานะกล้องเมื่อ แอปกำลังเข้าถึงข้อมูลกล้องแบบสด แต่ไม่ใช่เมื่อกล้องใช้อยู่เท่านั้น เข้าถึงโดยแอปที่มีบทบาทตามที่กำหนดไว้ใน ส่วนที่ 9.1 สิทธิ์ ด้วยตัวระบุ CDD [C-4-X]
- [9.8.2/A-2-2] ต้องไม่ซ่อนสัญญาณบอกสถานะกล้องสำหรับ แอประบบที่มีอินเทอร์เฟซผู้ใช้ที่มองเห็นได้หรือการโต้ตอบของผู้ใช้โดยตรง
- [9.8.2/A-2-3] ต้องระบุราคาของผู้ใช้ในการสลับกล้องในแอปการตั้งค่า
- [9.8.2/A-2-4] ต้องแสดงแอปล่าสุดและแอปที่ใช้งานอยู่โดยใช้กล้องตามที่ส่งคืน
จาก
PermissionManager.getIndicatorAppOpUsageData()
รวมถึง ข้อความระบุแหล่งที่มาที่เชื่อมโยงกับข้อความ
การติดตั้งใช้งานอุปกรณ์ในรถยนต์:
- [9/A-0-1] ต้องประกาศ
android.hardware.security.model.compatible
- [9.11/A-0-1] ต้องสำรองข้อมูลการใช้งานคีย์สโตร์ ในสภาพแวดล้อมการดำเนินการที่แยกต่างหาก
- [9.11/A-0-2] ต้องมีการติดตั้งใช้งาน RSA, AES อัลกอริทึมการเข้ารหัส ECDSA และ HMAC รวมถึงตระกูล MD5, SHA-1 และ SHA-2 ฟังก์ชันแฮชเพื่อให้รองรับระบบ Android Keystore อัลกอริทึมในพื้นที่ที่แยกออกจากโค้ดที่ทำงานอย่างปลอดภัย เคอร์เนลขึ้นไป การแยกที่ปลอดภัยต้องบล็อกกลไกที่เป็นไปได้ทั้งหมด โค้ดเคอร์เนลหรือรหัสพื้นที่ผู้ใช้อาจเข้าถึงสถานะภายในของ สภาพแวดล้อมที่แยกจากกัน ซึ่งรวมถึง DMA โอเพนซอร์ส Android แบบโอเพนซอร์ส โปรเจ็กต์ (AOSP) เป็นไปตามข้อกำหนดนี้โดยใช้การติดตั้งใช้งานทรัสตี โซลูชันแบบ ARM TrustZone หรือการตรวจสอบที่ปลอดภัยโดยบุคคลที่สาม การนำการแยกโดยใช้ไฮเปอร์ไวเซอร์ที่เหมาะสมมาใช้เป็นทางเลือก ตัวเลือก
- [9.11/A-0-3] ต้องใช้หน้าจอล็อก การตรวจสอบสิทธิ์ในสภาพแวดล้อมการดำเนินการแบบแยกต่างหาก และเฉพาะเมื่อ สำเร็จ อนุญาตให้ใช้คีย์ที่ผูกกับการตรวจสอบสิทธิ์ ล็อกหน้าจอ ข้อมูลเข้าสู่ระบบจะต้องได้รับการจัดเก็บไว้ในวิธีที่อนุญาตให้มีการดำเนินการที่แยกต่างหากเท่านั้น เพื่อตรวจสอบสิทธิ์หน้าจอล็อก อัปสตรีม Android โครงการโอเพนซอร์สมอบ Gatekeeper hardware Abstraction Layer (HAL) และ Trusty ซึ่งสามารถใช้ ตามข้อกำหนดนี้ได้
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
[9.11/A-0-4] ต้องรองรับเอกสารรับรองคีย์ที่พร็อพเพอร์ตี้ คีย์การลงนามเอกสารรับรองได้รับการปกป้องโดยฮาร์ดแวร์ที่ปลอดภัย และการรับรองนั้น ดำเนินการในฮาร์ดแวร์ที่ปลอดภัย คีย์การลงนามเอกสารรับรองต้องมีการแชร์
มีอุปกรณ์จำนวนมากพอที่จะป้องกันไม่ให้คีย์ป้องกัน ไม่ให้ใช้เป็นแบบถาวร ตัวระบุอุปกรณ์วิธีหนึ่งในการปฏิบัติตามข้อกำหนดนี้คือการเปิดเผยข้อมูล คีย์เอกสารรับรองเดียวกัน เว้นแต่ว่า SKU หนึ่งๆ จะมีหน่วยอย่างน้อย 100,000 หน่วย การผลิต หากผลิต SKU มากกว่า 100,000 หน่วย จะมีการ อาจใช้กับหน่วยต่อ 100,000 หน่วย
สิ้นสุดข้อกำหนดใหม่
โปรดทราบว่าหากมีการใช้อุปกรณ์ใน Android รุ่นก่อนหน้าแล้ว
อุปกรณ์ดังกล่าวได้รับการยกเว้นจากข้อกำหนดที่ต้องมีคีย์สโตร์
ซึ่งได้รับการสนับสนุนโดยสภาพแวดล้อมการดำเนินการที่แยกต่างหาก และรองรับเอกสารรับรองคีย์
เว้นแต่จะประกาศฟีเจอร์ android.hardware.fingerprint
ซึ่งต้องมีแอตทริบิวต์
คีย์สโตร์ที่ได้รับการสนับสนุนโดยสภาพแวดล้อมการดำเนินการที่แยกจากกัน
การติดตั้งใช้งานอุปกรณ์ในรถยนต์:
- [9.14/A-0-1] ต้องมีข้อความกันขโมย จากระบบย่อยของยานพาหนะในเฟรมเวิร์ก Android เช่น ข้อความที่อนุญาตในรายการที่อนุญาต และแหล่งที่มาของข้อความ
- [9.14/A-0-2] ต้องเฝ้าระวัง การโจมตีแบบปฏิเสธการให้บริการจากเฟรมเวิร์กของ Android หรือแอปของบุคคลที่สาม ช่วงเวลานี้ ป้องกันซอฟต์แวร์ที่เป็นอันตรายที่ทำให้การจราจรคล่องตัวในเครือข่ายของรถ ซึ่งอาจทำให้ระบบย่อยของยานพาหนะทำงานผิดพลาด
2.5.6 เครื่องมือสำหรับนักพัฒนาซอฟต์แวร์และความเข้ากันได้ของตัวเลือก
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
การติดตั้งใช้งานอุปกรณ์ในรถยนต์:
- Perfetto
- [6.1/A-0-1] ต้องแสดง
/system/bin/perfetto
ไบนารีของผู้ใช้เชลล์ที่ cmdline ปฏิบัติตาม เอกสาร Perfetto - [6.1/A-0-2] ไบนารี Perfetto ต้องยอมรับเป็น ป้อนการกำหนดค่า Protobuf ที่เป็นไปตามสคีมาที่ระบุไว้ใน เอกสาร Perfetto
- [6.1/A-0-3] ไบนารี Perfetto ต้องเขียนเป็น แสดงผลการติดตาม Protobuf ที่เป็นไปตามสคีมาที่ระบุไว้ใน เอกสาร Perfetto
- [6.1/A-0-4] ต้องระบุ โดยผ่าน Perfetto ไบนารี อย่างน้อยคือแหล่งข้อมูลที่อธิบายไว้ใน เอกสาร Perfetto
- [6.1/A-0-5] Daemon ที่ติดตาม Perfetto
ต้องเปิดใช้โดยค่าเริ่มต้น (คุณสมบัติของระบบ
persist.traced.enable
)
- [6.1/A-0-1] ต้องแสดง
สิ้นสุดข้อกำหนดใหม่
2.6 ข้อกำหนดสำหรับแท็บเล็ต
อุปกรณ์แท็บเล็ต Android หมายถึงการใช้งานอุปกรณ์ Android ที่ มักจะเป็นไปตามเกณฑ์ต่อไปนี้ทั้งหมด
- ใช้โดยถือไว้ในมือทั้ง 2 ข้าง
- ไม่มีการกำหนดค่าแบบฝาพับหรือแบบพับจอได้
- การใช้แป้นพิมพ์จริงที่ใช้กับอุปกรณ์เชื่อมต่อโดย วิธีการเชื่อมต่อมาตรฐาน (เช่น USB, บลูทูธ)
มีแหล่งพลังงานที่ช่วยให้เคลื่อนไหวได้ เช่น แบตเตอรี่
มีขนาดการแสดงผลของหน้าจอใหญ่กว่า 7 นิ้วและน้อยกว่า 18 นิ้ว โดยวัดในแนวทแยง
การใช้งานอุปกรณ์แท็บเล็ตมีข้อกำหนดที่คล้ายกับอุปกรณ์มือถือ การนำไปใช้งานจริง ข้อยกเว้นจะแสดงด้วยเครื่องหมาย * ในส่วนนั้น และระบุไว้เพื่อใช้อ้างอิงในส่วนนี้
2.6.1 ฮาร์ดแวร์
เครื่องวัดการหมุน
หากอุปกรณ์แท็บเล็ตมีเครื่องวัดการหมุน 3 แกน สิ่งที่จะเกิดขึ้นมีดังนี้
- [7.3.4/Tab-1-1] ต้องวัดการวางแนวได้ เปลี่ยนได้ถึง 1000 องศาต่อวินาที
หน่วยความจำและพื้นที่เก็บข้อมูลขั้นต่ำ (ส่วนที่ 7.6.1)
ความหนาแน่นของหน้าจอที่แสดงสำหรับหน้าจอขนาดเล็ก/ปกติในอุปกรณ์พกพา ข้อกำหนด นี้ ไม่สามารถใช้ได้กับแท็บเล็ต
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
โหมดอุปกรณ์ต่อพ่วง USB (ส่วนที่ 7.7.1)
หากการใช้งานอุปกรณ์แท็บเล็ตมีพอร์ต USB ที่รองรับอุปกรณ์ต่อพ่วง ได้
- [7.7.1/Tab] อาจใช้ Android Open Accessory (AOA) API
สิ้นสุดข้อกำหนดใหม่
โหมด Virtual Reality (ส่วนที่ 7.9.1)
ความเป็นจริงเสมือนประสิทธิภาพสูง (ส่วนที่ 7.9.2)
ข้อกำหนดเกี่ยวกับ Virtual Reality ใช้ไม่ได้กับแท็บเล็ต
2.6.2 โมเดลการรักษาความปลอดภัย
คีย์และข้อมูลเข้าสู่ระบบ (ส่วนที่ 9.11)
โปรดดูหัวข้อ [9.11]
หากการใช้งานอุปกรณ์แท็บเล็ตมีผู้ใช้หลายคนและ
ไม่ประกาศ Flag ฟีเจอร์ android.hardware.telephony
เนื่องจาก
- [9.5/T-1-1] ต้องรองรับโปรไฟล์ที่ถูกจำกัด คุณลักษณะที่ช่วยให้เจ้าของอุปกรณ์สามารถจัดการผู้ใช้เพิ่มเติมและผู้ใช้ บนอุปกรณ์ เมื่อใช้โปรไฟล์ที่ถูกจำกัด เจ้าของอุปกรณ์สามารถทำสิ่งต่อไปนี้ได้ ตั้งค่าสภาพแวดล้อมแยกต่างหากอย่างรวดเร็ว เพื่อให้ผู้ใช้เพิ่มเติมทำงานได้ ด้วยความสามารถในการจัดการข้อจำกัดที่ละเอียดขึ้นในแอปที่ ที่พร้อมใช้งานในสภาพแวดล้อมเหล่านั้น
หากการใช้งานอุปกรณ์แท็บเล็ตมีผู้ใช้หลายคนและ
ประกาศแฟล็กฟีเจอร์ของ android.hardware.telephony
ดังนี้
- [9.5/T-2-1] ต้องไม่รองรับแบบจำกัด แต่ต้องสอดคล้องกับการปรับใช้ AOSP ของการควบคุม เพื่อเปิด /ปิด ไม่ให้ผู้ใช้รายอื่นเข้าถึงการโทรและ SMS
2.6.2 ซอฟต์แวร์
- [3.2.3.1/Tab-0-1] ต้องโหลดล่วงหน้า 1 รายการ แอปพลิเคชันหรือคอมโพเนนต์บริการ ที่มีเครื่องจัดการ Intent รูปแบบตัวกรอง Intent สาธารณะที่กำหนดโดย Intent ของแอปพลิเคชันต่อไปนี้ ซึ่งแสดงไว้ที่นี่
3. ซอฟต์แวร์
3.1 ความเข้ากันได้กับ API ที่มีการจัดการ
สภาพแวดล้อมการดำเนินการแบบไบต์โค้ด Dalvik ที่มีการจัดการคือพาหนะหลักสำหรับ แอปพลิเคชัน Android Application Programming Interface (API) ของ Android คือ ชุดอินเทอร์เฟซแพลตฟอร์ม Android ที่เปิดเผยต่อแอปพลิเคชันที่ทำงานใน สภาพแวดล้อมรันไทม์ที่มีการจัดการ
การติดตั้งใช้งานอุปกรณ์
[C-0-1] ต้องมีการติดตั้งใช้งานที่สมบูรณ์ รวมถึงเอกสารทั้งหมด ของ API ที่บันทึกไว้ซึ่งเปิดเผยโดย Android SDK หรือ API ใดๆ ที่ตกแต่งด้วย "@SystemApi" เครื่องหมายในอัปสตรีม Android ซอร์สโค้ด
[C-0-2] ต้องสนับสนุน/รักษาคลาส เมธอด และองค์ประกอบที่เกี่ยวข้องทั้งหมด ที่ระบุโดยคำอธิบายประกอบ TestApi (@TestApi)
[C-0-3] ต้องไม่ละเว้น API ที่มีการจัดการ เปลี่ยนแปลงอินเทอร์เฟซหรือลายเซ็น API เบี่ยงเบนไปจากลักษณะการทำงานที่บันทึกไว้ หรือรวมสิ่งที่ไม่มีการดำเนินการ ยกเว้นในกรณีที่ ได้รับอนุญาตเป็นการเฉพาะโดยคำจำกัดความความเข้ากันได้นี้
[C-0-4] ต้องทำให้ API ยังอยู่และทำงานได้ อย่างเหมาะสม แม้แต่ในกรณีที่คุณลักษณะของฮาร์ดแวร์บางอย่างที่ Android โดยจะละเว้น API เอาไว้ ดูส่วนที่ 7 สำหรับข้อกำหนดเฉพาะสำหรับสถานการณ์นี้
[C-0-5] ต้องไม่อนุญาตให้แอปของบุคคลที่สามใช้อินเทอร์เฟซที่ไม่ใช่ SDK คือเมธอดและฟิลด์ในแพ็กเกจภาษา Java ที่ ในคลาสพาธการเปิดเครื่องใน AOSP และไม่ใช่ส่วนหนึ่งของผู้ใช้ทั่วไป SDK ซึ่งรวมถึง API ที่ตกแต่งด้วยคำอธิบายประกอบ
@hide
แต่ไม่มีกับ@SystemAPI
ตามที่อธิบายไว้ในเอกสาร SDK ทั้งแบบส่วนตัวและแบบแพ็กเกจ[C-0-6] ต้องจัดส่งอินเทอร์เฟซที่ไม่ใช่ SDK ทั้งหมดในส่วนเดียวกันและอินเทอร์เฟซที่ไม่ใช่ SDK เดียวกัน ตามที่ระบุไว้ผ่านแฟล็กชั่วคราวและรายการที่ปฏิเสธใน
prebuilts/runtime/appcompat/hiddenapi-flags.csv
เส้นทางสำหรับสาขาระดับ API ที่เหมาะสมใน AOSP[C-0-7] ต้องรองรับการกำหนดค่าที่ลงนาม กลไกการอัปเดตแบบไดนามิกเพื่อนำอินเทอร์เฟซที่ไม่ใช่ SDK ออกจากรายการที่ถูกจำกัด ด้วยการฝังการกำหนดค่าที่ลงนามไว้ใน APK ใดๆ ก็ตาม โดยใช้คีย์สาธารณะที่มีอยู่ ที่อยู่ใน AOSP
อย่างไรก็ตาม
- อาจหากไม่มี API ที่ซ่อนไว้หรือมีการใช้งานในอุปกรณ์ที่แตกต่างออกไป ให้ย้าย API ที่ซ่อนอยู่ไปไว้ในรายการที่ปฏิเสธ หรือละเว้น API นั้น รายชื่อที่ถูกจำกัดทั้งหมด
- หากยังไม่มี API ที่ซ่อนไว้ใน AOSP ให้เพิ่ม API ไปยังรายชื่อที่ถูกจำกัด
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
- [C-0-8] ต้องไม่สนับสนุนการติดตั้งแอปพลิเคชันที่กำหนดเป้าหมายระดับ API
น้อยกว่า
2324
สิ้นสุดข้อกำหนดใหม่
3.1.1. ส่วนขยาย Android
Android รองรับการขยายแพลตฟอร์ม API ที่มีการจัดการของระดับ API เฉพาะโดย
อัปเดตเวอร์ชันส่วนขยายสำหรับ API ระดับนั้น
android.os.ext.SdkExtensions.getExtensionVersion(int apiLevel)
API จะแสดงผล
เวอร์ชันส่วนขยายของ apiLevel
ที่ให้ไว้ หากมีส่วนขยาย
ระดับ API
การติดตั้งใช้งานอุปกรณ์ Android
[C-0-1] ต้องโหลดการใช้งาน AOSP ของไลบรารีที่ใช้ร่วมกันทั้ง 2 แบบล่วงหน้า
ExtShared
และบริการExtServices
ที่มีเวอร์ชันสูงกว่าหรือเท่ากับ เวอร์ชันต่ำสุดที่อนุญาตต่อ API แต่ละระดับ เช่น Android 7.0 การใช้งานอุปกรณ์, การเรียกใช้ API ระดับ 24 ต้องมีอย่างน้อย เวอร์ชัน 1[C-0-2] ต้องส่งคืนเฉพาะหมายเลขเวอร์ชันส่วนขยายที่ถูกต้องซึ่ง ที่ AOSP กำหนดไว้
[C-0-3] ต้องรองรับ API ทั้งหมดที่กำหนดโดยเวอร์ชันส่วนขยาย ส่งคืนโดย
android.os.ext.SdkExtensions.getExtensionVersion(int apiLevel)
ในลักษณะเดียวกันกับ API ที่มีการจัดการอื่นๆ ที่ได้รับการสนับสนุน ตาม ตามข้อกำหนดในส่วนที่ 3.1
3.1.2. ไลบรารี Android
เนื่องจากการเลิกใช้งานไคลเอ็นต์ Apache HTTP การติดตั้งใช้งานอุปกรณ์
- [C-0-1] ต้องไม่วางไลบรารี
org.apache.http.legacy
ไว้ในส่วน Bootclasspath - [C-0-2] ต้องเพิ่มไลบรารี
org.apache.http.legacy
ลงในแอปพลิเคชัน classpath เฉพาะเมื่อแอปเป็นไปตามเงื่อนไขข้อใดข้อหนึ่งต่อไปนี้- กำหนดเป้าหมาย API ระดับ 28 หรือต่ำกว่า
- ประกาศในไฟล์ Manifest ว่าต้องมีไลบรารีโดยการตั้งค่า
แอตทริบิวต์
android:name
ของ<uses-library>
เป็นorg.apache.http.legacy
การติดตั้งใช้งาน AOSP จะเป็นไปตามข้อกำหนดเหล่านี้
3.2 ความเข้ากันได้ของ Soft API
นอกจาก API ที่มีการจัดการจากส่วนที่ 3.1 แล้ว Android ยังมีฟีเจอร์ "Soft" สำหรับรันไทม์เท่านั้น API ในรูปแบบของ เช่น ความตั้งใจ สิทธิ์ และลักษณะที่คล้ายกันของแอปพลิเคชัน Android ไม่สามารถบังคับใช้ในเวลาคอมไพล์แอปพลิเคชัน
3.2.1. สิทธิ์
- [C-0-1] ผู้ปฏิบัติงานใช้อุปกรณ์ต้องรองรับและบังคับใช้สิทธิ์ทั้งหมด เป็นค่าคงที่ตามที่ระบุไว้ในหน้าอ้างอิงสิทธิ์ โปรดทราบว่าส่วนที่ 9 มีรายการเพิ่มเติม ข้อกำหนดที่เกี่ยวข้องกับโมเดลความปลอดภัยของ Android
3.2.2 พารามิเตอร์บิลด์
API ของ Android มีค่าคงที่ใน ชั้นเรียน android.os.Build ที่ใช้อธิบายอุปกรณ์ปัจจุบัน
- [C-0-1] เพื่อให้ค่าที่มีความหมายและสอดคล้องกันในทุกอุปกรณ์ ตารางด้านล่างนี้จะรวมถึงข้อจำกัดเพิ่มเติมเกี่ยวกับรูปแบบ ของค่าเหล่านี้ซึ่งการติดตั้งใช้งานอุปกรณ์ต้องสอดคล้อง
พารามิเตอร์ | รายละเอียด |
---|---|
VERSION.RELEASE | เวอร์ชันของระบบ Android ที่กำลังใช้งานอยู่ในปัจจุบัน ในรูปแบบที่มนุษย์อ่านได้ ช่องนี้ต้องมีค่าสตริงค่าใดค่าหนึ่งตามที่กำหนดไว้ใน สตริงเวอร์ชันที่อนุญาตสำหรับ Android 15 |
VERSION.SDK | เวอร์ชันของระบบ Android ที่กำลังใช้งานอยู่ในปัจจุบันในรูปแบบ รหัสแอปพลิเคชันของบุคคลที่สามเข้าถึงได้ สำหรับ Android 15 ช่องนี้ต้องมีค่าจำนวนเต็ม 15_INT |
VERSION.SDK_INT | เวอร์ชันของระบบ Android ที่กำลังใช้งานอยู่ในปัจจุบันในรูปแบบ รหัสแอปพลิเคชันของบุคคลที่สามเข้าถึงได้ สำหรับ Android 15 ช่องนี้ต้องมีค่าจำนวนเต็ม 15_INT |
เวอร์ชันที่เพิ่มขึ้น | ค่าที่ผู้ติดตั้งใช้งานอุปกรณ์เลือกซึ่งกำหนดบิลด์ที่เฉพาะเจาะจง
ของระบบ Android ที่กำลังเรียกใช้อยู่ ในรูปแบบที่มนุษย์อ่านได้ ช่วงเวลานี้
ต้องไม่นําค่ามาใช้ซ้ำกับบิลด์ต่างๆ ที่ผู้ใช้ปลายทางใช้งานได้ ต
การใช้งานตามปกติของฟิลด์นี้คือ เพื่อระบุหมายเลขบิลด์หรือ
มีการใช้ตัวระบุการเปลี่ยนแปลงการควบคุมแหล่งที่มาในการสร้างบิลด์ ค่า
ของฟิลด์นี้ต้องเข้ารหัสเป็น ASCII แบบ 7 บิตที่พิมพ์ได้ และตรงกับ
นิพจน์ทั่วไป ^[^ :\/~]+$ |
กระดาน | ค่าที่เลือกโดยผู้ใช้อุปกรณ์ซึ่งระบุถึง
ฮาร์ดแวร์ภายในที่อุปกรณ์ใช้ในรูปแบบที่มนุษย์อ่านได้ เป็นไปได้
ช่องนี้ใช้เพื่อระบุเวอร์ชันที่เจาะจงของการจ่ายไฟของบอร์ด
อุปกรณ์ ค่าของช่องนี้ต้องเข้ารหัสเป็น ASCII แบบ 7 บิตและ
ตรงกับนิพจน์ทั่วไป ^[a-zA-Z0-9_-]+$ |
แบรนด์ | ค่าที่แสดงชื่อแบรนด์ที่เชื่อมโยงกับอุปกรณ์
ผู้ใช้ปลายทาง ต้องอยู่ในรูปแบบที่มนุษย์อ่านได้และควรแสดงถึง
ผู้ผลิตอุปกรณ์หรือแบรนด์บริษัทที่ใช้อุปกรณ์ดังกล่าว
ในการทำการตลาด ค่าของช่องนี้ต้องเข้ารหัสเป็น ASCII แบบ 7 บิตและตรงกัน
นิพจน์ทั่วไป ^[a-zA-Z0-9_-]+$ |
แถบ&ปิดที่รองรับ;ABIS | ชื่อของชุดคำสั่ง (ประเภท CPU + แบบแผน ABI) ของโฆษณาเนทีฟ โค้ด ดูส่วนที่ 3.3 API ดั้งเดิม ความเข้ากันได้ |
รองรับ_32_BIT_ABIS | ชื่อของชุดคำสั่ง (ประเภท CPU + แบบแผน ABI) ของโฆษณาเนทีฟ โค้ด ดูส่วนที่ 3.3 API ดั้งเดิม ความเข้ากันได้ |
รองรับ_64_BIT_ABIS | ชื่อชุดคำสั่งที่ 2 (ประเภท CPU + แบบแผน ABI) ของ โค้ดแบบเนทีฟ ดูส่วนที่ 3.3 เนทีฟ ความเข้ากันได้กับ API |
แถบ&โลว์บาร์;ABI | ชื่อของชุดคำสั่ง (ประเภท CPU + แบบแผน ABI) ของโฆษณาเนทีฟ โค้ด ดูส่วนที่ 3.3 API ดั้งเดิม ความเข้ากันได้ |
แถบ&โลว์บาร์;ABI2 | ชื่อชุดคำสั่งที่ 2 (ประเภท CPU + แบบแผน ABI) ของ โค้ดแบบเนทีฟ ดูส่วนที่ 3.3 เนทีฟ ความเข้ากันได้กับ API |
อุปกรณ์ | ค่าที่เลือกโดยผู้ใช้อุปกรณ์ที่มีชื่อการพัฒนา
หรือชื่อรหัสที่ระบุการกำหนดค่าฟีเจอร์ของฮาร์ดแวร์และ
การออกแบบเชิงอุตสาหกรรมของอุปกรณ์ ค่าของช่องนี้ต้องเข้ารหัสได้
เป็น ASCII แบบ 7 บิต และจับคู่นิพจน์ทั่วไป
^[a-zA-Z0-9_-]+$ ชื่ออุปกรณ์นี้จะต้องไม่เปลี่ยนชื่อในระหว่าง
อายุการใช้งานของผลิตภัณฑ์ |
Fingerprint | สตริงที่ระบุบิลด์นี้ได้โดยไม่ซ้ำกัน ควรมีเหตุผล
ที่มนุษย์อ่านได้ ต้องเป็นไปตามเทมเพลตนี้
$(BRAND)/$(ผลิตภัณฑ์)/ เช่น acme/myproduct/ ลายนิ้วมือต้องไม่มีอักขระช่องว่าง ค่าของ ช่องนี้ต้องเข้ารหัสเป็น ASCII แบบ 7 บิต |
ฮาร์ดแวร์ | ชื่อของฮาร์ดแวร์ (จากบรรทัดคำสั่งของเคอร์เนลหรือ /proc) ทั้งนี้
ควรให้มนุษย์อ่านเข้าใจได้พอสมควร ค่าของช่องนี้ต้องเป็น
เข้ารหัสเป็น ASCII แบบ 7 บิต และตรงกับนิพจน์ทั่วไป
^[a-zA-Z0-9_-]+$ |
ผู้จัด | สตริงที่ระบุโฮสต์ที่สร้างบิลด์โดยไม่ซ้ำกัน ที่มนุษย์อ่านได้ ไม่มีข้อกำหนดสำหรับรูปแบบที่เฉพาะเจาะจงของ ฟิลด์นี้ เว้นแต่ว่าช่องจะต้องไม่เป็นค่าว่างหรือสตริงว่างเปล่า ("") |
รหัส | ตัวระบุที่ผู้ติดตั้งใช้งานอุปกรณ์เลือกเพื่ออ้างถึง
เผยแพร่ในรูปแบบที่มนุษย์อ่านได้ ฟิลด์นี้สามารถเหมือนกับ
android.os.Build.VERSION.INCREMENTAL แต่ควรเป็นค่าที่เพียงพอ
มีความหมายต่อผู้ใช้ปลายทาง
เพื่อแยกระหว่างรุ่นซอฟต์แวร์ต่างๆ ค่า
ของฟิลด์นี้ต้องเข้ารหัสเป็น ASCII แบบ 7 บิต และตรงกับ
นิพจน์ ^[a-zA-Z0-9._-]+$ |
ผู้ผลิต | ชื่อทางการค้าของผู้ผลิตอุปกรณ์ดั้งเดิม (OEM) ของบริษัท ผลิตภัณฑ์ ไม่มีข้อกำหนดเกี่ยวกับรูปแบบเฉพาะของช่องนี้ เว้นแต่ว่าต้องไม่เป็นค่าว่างหรือสตริงว่างเปล่า ("") ฟิลด์นี้ ต้องไม่เปลี่ยนแปลงตลอดอายุการใช้งานของผลิตภัณฑ์ |
SOC_ผู้ผลิต | การแลกเปลี่ยนชื่อผู้ผลิต ระบบหลัก บน
ชิป (SOC) ที่ใช้ในผลิตภัณฑ์ อุปกรณ์ที่มีผู้ผลิต SOC รายเดียวกัน
ควรใช้ค่าคงที่เดียวกัน โปรดสอบถามผู้ผลิต SOC สำหรับ
ค่าคงที่ที่ถูกต้อง ค่าของช่องนี้ต้องเข้ารหัสได้
เป็น ASCII แบบ 7 บิต ต้องตรงกับนิพจน์ทั่วไป
^([0-9A-Za-z ]+) ต้องไม่ขึ้นต้นหรือลงท้ายด้วยช่องว่าง
และต้องไม่เท่ากับ "ไม่ทราบ" ช่องนี้ต้องไม่เปลี่ยนแปลงในระหว่าง
อายุการใช้งานของผลิตภัณฑ์ |
&โมเดล SOC | ชื่อรุ่นของระบบหลักบนชิป (SOC) ที่ใช้ใน
ผลิตภัณฑ์ อุปกรณ์ที่มี SOC รุ่นเดียวกันควรใช้ค่าคงที่เดียวกัน
โปรดสอบถามผู้ผลิต SOC เพื่อใช้ค่าคงที่ที่ถูกต้อง
ค่าของช่องนี้ต้องเข้ารหัสเป็น ASCII แบบ 7 บิต และตรงกับ
นิพจน์ทั่วไป ^([0-9A-Za-z ._/+-]+)$ ต้องไม่ขึ้นต้นหรือ
ลงท้ายด้วยช่องว่าง และต้องไม่เท่ากับ "ไม่ทราบ" ฟิลด์นี้
ต้องไม่เปลี่ยนแปลงตลอดอายุการใช้งานของผลิตภัณฑ์ |
MODEL | ค่าที่เลือกโดยผู้ติดตั้งใช้งานอุปกรณ์ซึ่งมีชื่อของ อุปกรณ์ที่ผู้ใช้ปลายทางทราบ ชื่อนี้ควรเป็นชื่อเดียวกับที่ มีการทำการตลาดและขายอุปกรณ์ให้กับผู้ใช้ปลายทาง ไม่มีข้อกำหนดสำหรับ รูปแบบเฉพาะของฟิลด์นี้ ยกเว้นว่าต้องเป็นค่าว่าง หรือ สตริงว่าง ("") ช่องนี้ต้องไม่เปลี่ยนแปลงในระหว่าง อายุการใช้งานของผลิตภัณฑ์ |
ผลิตภัณฑ์ | ค่าที่เลือกโดยผู้ใช้อุปกรณ์ที่มีชื่อการพัฒนา
หรือรหัสของผลิตภัณฑ์ที่เฉพาะเจาะจง (SKU) ที่ต้องไม่ซ้ำกันภายใน
แบรนด์เดียวกัน ต้องเป็นภาษาที่มนุษย์อ่านได้ แต่ไม่จำเป็นต้องมีสำหรับการดู
จากผู้ใช้ปลายทาง ค่าของช่องนี้ต้องเข้ารหัสเป็น ASCII แบบ 7 บิตและ
ตรงกับนิพจน์ทั่วไป ^[a-zA-Z0-9_-]+$ ผลิตภัณฑ์นี้
ชื่อต้องไม่เปลี่ยนแปลงตลอดอายุการใช้งานของผลิตภัณฑ์ |
ODM_SKU | ค่าที่ไม่บังคับซึ่งผู้ให้บริการอุปกรณ์เลือกซึ่งมี
SKU (Stock Keeping Unit) ใช้เพื่อติดตามการกำหนดค่าที่เจาะจงของ
เช่น อุปกรณ์ต่อพ่วงใดๆ ที่รวมอยู่ในอุปกรณ์เมื่อจำหน่าย
ค่าของช่องนี้ต้องเข้ารหัสเป็น ASCII แบบ 7 บิต และตรงกับ
นิพจน์ทั่วไป ^([0-9A-Za-z.,_-]+)$ |
ซีเรียล | ต้องส่งคืน "UNKNOWN" |
แท็ก | รายการแท็กที่คั่นด้วยคอมมาซึ่งผู้ให้บริการอุปกรณ์เลือก
สร้างความโดดเด่นให้กับงานสร้างมากเป็นพิเศษ แท็กต้องเข้ารหัสเป็น ASCII แบบ 7 บิต
และตรงกับนิพจน์ทั่วไป ^[a-zA-Z0-9._-]+ และ "ต้อง"
มีค่าใดค่าหนึ่งที่สอดคล้องกับแพลตฟอร์ม Android ทั่วไป 3 แพลตฟอร์ม
การกำหนดค่าการรับรอง: คีย์การเผยแพร่, คีย์นักพัฒนาซอฟต์แวร์ และคีย์การทดสอบ |
เวลา | ค่าที่แสดงการประทับเวลาเมื่อมีการสร้างบิลด์ |
ประเภท | ค่าที่ผู้ติดตั้งใช้งานอุปกรณ์เลือกซึ่งระบุรันไทม์ ของบิลด์ ช่องนี้ต้องมีค่าใดค่าหนึ่ง ตามการกำหนดค่ารันไทม์ทั่วไปของ Android 3 แบบ ได้แก่ ผู้ใช้ การแก้ไขข้อบกพร่องของผู้ใช้ หรือการมีส่วนร่วม |
ผู้ใช้ | ชื่อหรือรหัสผู้ใช้ของผู้ใช้ (หรือผู้ใช้อัตโนมัติ) ที่สร้าง งานสร้าง ไม่มีข้อกำหนดเกี่ยวกับรูปแบบเฉพาะของช่องนี้ เว้นแต่ว่าต้องไม่เป็นค่าว่างหรือสตริงว่างเปล่า ("") |
แถบ&โลว์บาร์;แพตช์ | ค่าที่ระบุระดับแพตช์ความปลอดภัยของบิลด์ ต้องแสดงถึง การสร้างแอปไม่ได้มีช่องโหว่ต่อปัญหาใดๆ ที่อธิบายไว้ ผ่านกระดานข่าวสารด้านความปลอดภัยสาธารณะของ Android ที่กำหนดไว้ ต้องเป็น รูปแบบ [YYYY-MM-DD] ตรงกับสตริงที่กำหนดซึ่งระบุไว้ใน ความปลอดภัยสาธารณะของ Android กระดานข่าวสารหรือใน คำแนะนำด้านความปลอดภัยของ Android เช่น "2015-11-01" |
แถบ_ระบบปฏิบัติการ | ค่าที่แสดงพารามิเตอร์ FINGERPRINT ของบิลด์ที่ หรือเหมือนกันกับบิลด์นี้ ยกเว้นแพตช์ที่ระบุไว้ใน กระดานข่าวสารด้านความปลอดภัยสาธารณะของ Android จะต้องรายงานค่าที่ถูกต้อง และถ้า ไม่มีบิลด์ดังกล่าว รายงานสตริงว่างเปล่า ("") |
รองเท้าบู๊ต | ค่าที่เลือกโดยผู้ใช้อุปกรณ์ซึ่งระบุถึง
เวอร์ชัน Bootloader ภายในที่ใช้ในอุปกรณ์ในรูปแบบที่มนุษย์อ่านได้
ค่าของช่องนี้ต้องเข้ารหัสเป็น ASCII แบบ 7 บิต และตรงกับ
นิพจน์ทั่วไป ^[a-zA-Z0-9._-]+$ |
getRadioVersion() | ต้อง (หรือส่งคืน) ค่าที่เลือกโดยผู้ใช้อุปกรณ์
ระบุเวอร์ชันวิทยุ/โมเด็มภายในที่ใช้ในอุปกรณ์
ในรูปแบบที่มนุษย์อ่านได้ ถ้าอุปกรณ์ไม่มีภายใน
Radio/modem ต้องแสดงผลเป็น NULL ค่าของช่องนี้ต้องเป็น
เข้ารหัสเป็น ASCII แบบ 7 บิต และตรงกับนิพจน์ทั่วไป
^[a-zA-Z0-9._-,]+$ |
getSerial() |
ต้อง (มีหรือส่งคืน) หมายเลขซีเรียลของฮาร์ดแวร์ ซึ่ง "ต้องมี"
และไม่ซ้ำกับผู้อื่นบนอุปกรณ์ที่ใช้ MODEL และ MANUFACTURER เหมือนกัน ค่าของ
ช่องนี้ต้องเข้ารหัสเป็น ASCII แบบ 7 บิต และตรงกับนิพจน์ทั่วไป
^[a-zA-Z0-9]+$ |
3.2.3 ความเข้ากันได้กับ Intent
3.2.3.1 Intent ทั่วไปของแอปพลิเคชัน
Intent ของ Android อนุญาตให้คอมโพเนนต์ของแอปพลิเคชันขอฟังก์ชันการทำงานจาก คอมโพเนนต์อื่นๆ ของ Android โปรเจ็กต์ต้นทางของ Android มีรายการ แอปพลิเคชันซึ่งใช้รูปแบบความตั้งใจหลายแบบเพื่อทำงานทั่วไป
การติดตั้งใช้งานอุปกรณ์
- [C-SR-1] ขอแนะนำอย่างยิ่งให้โหลดแอปพลิเคชันอย่างน้อย 1 รายการล่วงหน้า หรือ คอมโพเนนต์บริการที่มีเครื่องจัดการ Intent สำหรับตัวกรอง Intent สาธารณะทั้งหมด รูปแบบที่กำหนดโดย Intent ของแอปพลิเคชันต่อไปนี้ซึ่งแสดงไว้ที่นี่ และมอบการดำเนินการที่ เป็นไปตามความคาดหวังของนักพัฒนาแอป Intent ของแอปพลิเคชันตามที่อธิบายไว้ใน SDK
โปรดดูส่วนที่ 2 สำหรับ Intent ของแอปพลิเคชันที่บังคับ สำหรับอุปกรณ์แต่ละประเภท
3.2.3.2 ความละเอียดของความตั้งใจ
[C-0-1] เนื่องจาก Android เป็นแพลตฟอร์มที่ขยายได้ การติดตั้งใช้งานอุปกรณ์ต้อง อนุญาตรูปแบบ Intent แต่ละรูปแบบที่อ้างอิงในส่วนที่ 3.2.3.1 ยกเว้นการตั้งค่า ให้แอปพลิเคชันของบุคคลที่สามลบล้าง การติดตั้งใช้งานโอเพนซอร์สของ Android จะอนุญาตโดยค่าเริ่มต้น
[C-0-2] ผู้ปฏิบัติงานใช้อุปกรณ์ต้องไม่แนบสิทธิ์พิเศษกับระบบ แอปพลิเคชัน การใช้รูปแบบความตั้งใจเหล่านี้ หรือป้องกันไม่ให้แอปพลิเคชันของบุคคลที่สาม ตั้งแต่การเชื่อมโยงไปจนถึงการใช้การควบคุมรูปแบบเหล่านี้ ข้อห้ามนี้ ซึ่งรวมถึงแต่ไม่จำกัดเพียงการปิดใช้ "ตัวเลือก" ผู้ใช้ ที่ให้ผู้ใช้เลือกระหว่าง แอปพลิเคชันต่างๆ ที่ จัดการรูปแบบ Intent เดียวกัน
[C-0-3] การใช้งานอุปกรณ์ต้องมีอินเทอร์เฟซผู้ใช้เพื่อให้ผู้ใช้ แก้ไขกิจกรรมเริ่มต้นสำหรับ Intent
อย่างไรก็ตาม การติดตั้งใช้งานอุปกรณ์อาจมีกิจกรรมเริ่มต้นสำหรับ รูปแบบ URI (เช่น http://play.google.com) เมื่อกิจกรรมเริ่มต้นระบุพารามิเตอร์ แอตทริบิวต์ที่เจาะจงมากขึ้นสำหรับ URI ข้อมูล เช่น รูปแบบตัวกรอง Intent การระบุ URI ของข้อมูล "http://www.android.com" มีความเฉพาะเจาะจงกว่า รูปแบบ Intent หลักของเบราว์เซอร์สำหรับ "http://"
Android ยังมีกลไกที่แอปของบุคคลที่สามจะประกาศ ลักษณะการลิงก์แอปเริ่มต้นที่เชื่อถือได้ สำหรับ Intent ของ URI เว็บบางประเภท เมื่อการประกาศที่เชื่อถือได้ดังกล่าว ที่กำหนดไว้ในรูปแบบตัวกรอง Intent ของแอป การใช้งานอุปกรณ์:
- [C-0-4] ต้องพยายามตรวจสอบตัวกรอง Intent โดยการดำเนินการ ขั้นตอนการตรวจสอบที่กำหนดไว้ในข้อกำหนดเกี่ยวกับลิงก์เนื้อหาดิจิทัล ตามที่มีการใช้โดย Package Manager ในโอเพนซอร์ส Android โอเพนซอร์ส โปรเจ็กต์
- [C-0-5] ต้องตรวจสอบความถูกต้องของตัวกรอง Intent ระหว่างการติดตั้ง แอปพลิเคชันและตั้งค่าตัวกรอง Intent URI ที่ผ่านการตรวจสอบความถูกต้องทั้งหมดแล้วเป็น เครื่องจัดการแอปเริ่มต้นสำหรับ URI ของตน
- อาจตั้งค่าตัวกรอง Intent ของ URI ที่เจาะจงเป็นตัวแฮนเดิลแอปเริ่มต้นสำหรับ URI ของผู้ใช้ หากยืนยันสำเร็จ แต่ตัวกรอง URI ที่แนะนำอื่นๆ ดำเนินการไม่สำเร็จ การยืนยันของคุณ หากการติดตั้งใช้งานอุปกรณ์มีลักษณะดังกล่าว จะต้องระบุ ลบล้างรูปแบบต่อ URI ที่เหมาะสมในเมนูการตั้งค่า
- ต้องระบุการควบคุม App Link สำหรับแต่ละแอปให้กับผู้ใช้ในการตั้งค่าเป็น
ดังต่อไปนี้:
- [C-0-6] ผู้ใช้ต้องสามารถลบล้างแอปเริ่มต้นในภาพรวมได้ เป็นลักษณะการทำงานของลิงก์ เช่น เปิดตลอดเวลา ถามทุกครั้ง หรือไม่เปิดเลย ซึ่งต้องนำไปใช้กับตัวกรอง Intent ของ URI ที่เป็นตัวเลือกเท่าๆ กัน
- [C-0-7] ผู้ใช้ต้องสามารถดูรายการ Intent ของ URI ที่รอการพิจารณา ตัวกรอง
- การนำอุปกรณ์มาใช้อาจทำให้ผู้ใช้ดำเนินการต่อไปนี้ได้ ลบล้างตัวกรอง Intent ของ URI ที่เป็นตัวเลือกที่ดำเนินการสำเร็จ ได้รับการยืนยันตามตัวกรองต่อความตั้งใจ
- [C-0-8] การใช้งานอุปกรณ์ต้องทำให้ผู้ใช้สามารถ ดูและลบล้างตัวกรอง Intent ของ URI ที่เป็นตัวเลือกที่เจาะจงหากอุปกรณ์ การใช้งานช่วยให้ตัวกรอง Intent ของ URI ที่เลือกประสบความสำเร็จได้ แต่บางกรณีก็อาจล้มเหลวได้
3.2.3.3 เนมสเปซ Intent
- [C-0-1] การใช้งานอุปกรณ์ต้องไม่มีคอมโพเนนต์ Android ที่ ดำเนินการตามรูปแบบความตั้งใจหรือจุดประสงค์ในการออกอากาศใหม่ๆ โดยใช้ ACTION, CATEGORY หรือ สตริงคีย์อื่นๆ ในเนมสเปซ android.* หรือ com.android.*
- [C-0-2] ผู้ติดตั้งใช้งานอุปกรณ์ต้องไม่มีองค์ประกอบ Android ที่ ยึดรูปแบบความตั้งใจหรือความตั้งใจใหม่ๆ ในการออกอากาศโดยใช้ ACTION, CATEGORY หรือ สตริงคีย์อื่นในพื้นที่แพ็กเกจที่เป็นขององค์กรอื่น
- [C-0-3] ผู้ปฏิบัติงานใช้อุปกรณ์ต้องไม่เปลี่ยนแปลงหรือขยายเจตนาใดๆ รูปแบบที่แสดงในหัวข้อ 3.2.3.1
- การใช้งานอุปกรณ์อาจรวมรูปแบบความตั้งใจที่ใช้เนมสเปซอย่างชัดเจน และเห็นได้ชัดว่ามีความเชื่อมโยงกับองค์กรของตน ข้อห้ามนี้ ซึ่งคล้ายกับที่ระบุสำหรับคลาสภาษา Java ในส่วนที่ 3.6
3.2.3.4 ความตั้งใจในการออกอากาศ
แอปพลิเคชันของบุคคลที่สามต้องอาศัยแพลตฟอร์มในการเผยแพร่ความตั้งใจบางอย่างเพื่อ แจ้งการเปลี่ยนแปลงในสภาพแวดล้อมของฮาร์ดแวร์หรือซอฟต์แวร์
การติดตั้งใช้งานอุปกรณ์
- [C-0-1] ต้องประกาศเจตนารมณ์ในการออกอากาศสู่สาธารณะตามที่แสดงรายการไว้ที่นี่ เพื่อตอบสนองต่อเหตุการณ์ของระบบที่เหมาะสมตามที่อธิบายไว้ในเอกสารประกอบของ SDK โปรดทราบว่าข้อกำหนดนี้ไม่ขัดแย้งกับส่วนที่ 3.5 เนื่องจาก มีการอธิบายข้อจำกัดด้านแอปพลิเคชันในพื้นหลังไว้ใน SDK ด้วย เอกสารประกอบ นอกจากนี้ จุดประสงค์การออกอากาศบางรายการขึ้นอยู่กับเงื่อนไขของฮาร์ดแวร์ หากอุปกรณ์รองรับฮาร์ดแวร์ที่จำเป็น ก็ต้องเผยแพร่ Intent และระบุลักษณะการทำงานไปพร้อมกับเอกสาร SDK
3.2.3.5 Intent ของแอปพลิเคชันแบบมีเงื่อนไข
Android มีการตั้งค่าที่ช่วยให้ผู้ใช้สามารถเลือก แอปพลิเคชันเริ่มต้น เช่น หน้าจอหลักหรือ SMS
การติดตั้งใช้งานอุปกรณ์ต้องมีการตั้งค่าที่คล้ายกันตามความเหมาะสม และเข้ากันได้กับรูปแบบตัวกรอง Intent และเมธอด API ที่อธิบายไว้ ในเอกสารประกอบของ SDK ด้านล่าง
หากการติดตั้งใช้งานอุปกรณ์รายงาน android.software.home_screen
สิ่งที่จะเกิดขึ้นมีดังนี้
- [C-1-1] ต้องปฏิบัติตาม
android.settings.HOME_SETTINGS
ต้องการแสดงเมนูการตั้งค่าแอปเริ่มต้นสำหรับหน้าจอหลัก
หากการติดตั้งใช้งานอุปกรณ์รายงาน android.hardware.telephony.calling
สิ่งที่จะเกิดขึ้นมีดังนี้
[C-2-1] ต้องระบุเมนูการตั้งค่าที่เรียก
android.provider.Telephony.ACTION_CHANGE_DEFAULT
ต้องการแสดงกล่องโต้ตอบเพื่อเปลี่ยนแอปพลิเคชัน SMS เริ่มต้น[C-2-2] ต้องปฏิบัติตาม
android.telecom.action.CHANGE_DEFAULT_DIALER
ต้องการแสดงกล่องโต้ตอบเพื่อให้ผู้ใช้เปลี่ยนโทรศัพท์เริ่มต้น แอปพลิเคชัน- ต้องใช้ UI ของแอปโทรศัพท์เริ่มต้นที่ผู้ใช้เลือกสำหรับสายเรียกเข้าและ สายโทรออก ยกเว้นสายฉุกเฉิน ซึ่งจะใช้ แอปโทรศัพท์ที่ติดตั้งไว้ล่วงหน้า
[C-2-3] ต้องปฏิบัติตาม android.telecom.action.CHANGE_PHONE_ACCOUNTS เพื่อให้ผู้ใช้สามารถกำหนดค่า
ConnectionServices
ได้ ที่เชื่อมโยงกับPhoneAccounts
เป็น รวมถึงบัญชีโทรศัพท์เริ่มต้นซึ่งผู้ให้บริการโทรคมนาคม ใช้ในการโทรออก การติดตั้งใช้งาน AOSP จะเป็นไปตามข้อกำหนดนี้โดย รวม "ตัวเลือกบัญชีการโทร" ภายในเมนู "การโทร" เมนูการตั้งค่า[C-2-4] ต้องอนุญาต
android.telecom.CallRedirectionService
สําหรับแอปที่มีandroid.app.role.CALL_REDIRECTION
[C-2-5] ต้องให้เงินแก่ผู้ใช้ในการเลือกแอปที่มี
android.app.role.CALL_REDIRECTION
[C-2-6] ต้องเป็นไปตาม android.intent.action.SENDTO และ android.intent.action.VIEW Intent และระบุกิจกรรมเพื่อส่ง/แสดงข้อความ SMS
[C-SR-1] ขอแนะนําอย่างยิ่งให้ทำตาม android.intent.action.ANSWER android.intent.action.CALL android.intent.action.CALL_BUTTON, android.intent.action.VIEW และ android.intent.action.DIAL Intent ด้วยแอปพลิเคชันแป้นโทรศัพท์ที่โหลดไว้ล่วงหน้า ซึ่งสามารถจัดการ Intent เหล่านี้ได้และ มอบการดำเนินการให้สมบูรณ์ตามที่อธิบายไว้ใน SDK
หากการติดตั้งใช้งานอุปกรณ์รายงาน android.hardware.nfc.hce
สิ่งที่จะเกิดขึ้นมีดังนี้
- [C-3-1] ต้องเป็นไปตาม android.settings.NFC_PAYMENT_SETTINGS ตั้งใจที่จะแสดงเมนูการตั้งค่าแอปเริ่มต้นสำหรับการชำระเงินแบบไม่ต้องสัมผัส
- [C-3-2] ต้องทำตาม android.nfc.cardemulation.action.ACTION_CHANGE_DEFAULT ต้องการแสดงกิจกรรมซึ่งจะเปิดกล่องโต้ตอบเพื่อขอให้ผู้ใช้เปลี่ยน บริการจำลองบัตรเริ่มต้นสำหรับหมวดหมู่หนึ่งๆ ตามที่ได้อธิบายไว้ใน SDK
หากการติดตั้งใช้งานอุปกรณ์รายงาน android.hardware.nfc
สิ่งที่จะเกิดขึ้นมีดังนี้
- [C-4-1] ต้องปฏิบัติตาม Intent เหล่านี้ android.nfc.action.NDEF_DISCOVERED android.nfc.action.TAG_DISCOVERED และ android.nfc.action.TECH_DISCOVERED เพื่อแสดงกิจกรรมซึ่งตอบสนองความคาดหวังของนักพัฒนาแอปสำหรับ Intent เหล่านี้ ตามที่อธิบายไว้ใน SDK
หากการติดตั้งใช้งานอุปกรณ์รายงาน android.hardware.bluetooth
สิ่งที่จะเกิดขึ้นมีดังนี้
- [C-5-1] ต้องทำตาม 'android.bluetooth.adapter.action.REQUEST_ENABLE' Intent และแสดงกิจกรรมของระบบเพื่ออนุญาตให้ผู้ใช้เปิดบลูทูธ
- [C-5-2] ต้องเคารพ "android.bluetooth.adapter.action.REQUEST_DISCOVERABLE" Intent และแสดงกิจกรรมของระบบที่ขอโหมดที่ค้นพบได้
หากอุปกรณ์รองรับฟีเจอร์ DND ระบบจะดำเนินการดังต่อไปนี้
- [C-6-1] ต้องดำเนินกิจกรรมที่จะตอบสนองต่อความตั้งใจ
ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS
ซึ่งสำหรับการปรับใช้กับ UI_MODE_TYPE_NORMAL ข้อมูลดังกล่าวจะต้องเป็นกิจกรรมที่ ผู้ใช้สามารถให้หรือปฏิเสธการเข้าถึงแอปในการกำหนดค่านโยบาย DND
หากการใช้งานอุปกรณ์อนุญาตให้ผู้ใช้ใช้วิธีการป้อนข้อมูลของบุคคลที่สามใน ได้
- [C-7-1] ต้องระบุกลไกที่ผู้ใช้เข้าถึงได้เพื่อเพิ่มและกำหนดค่า
วิธีการป้อนข้อมูลของบุคคลที่สามเพื่อตอบสนองต่อ
android.settings.INPUT_METHOD_SETTINGS
Intent
หากการใช้งานอุปกรณ์รองรับบริการช่วยเหลือพิเศษของบุคคลที่สาม บริการเหล่านั้นจะมีลักษณะดังนี้
- [C-8-1] ต้องปฏิบัติตาม
android.settings.ACCESSIBILITY_SETTINGS
ในการมอบกลไกที่ผู้ใช้เข้าถึงได้เพื่อเปิดใช้และปิดใช้ บริการการช่วยเหลือพิเศษของบุคคลที่สามควบคู่ไปกับการช่วยเหลือพิเศษที่โหลดไว้ล่วงหน้า บริการต่างๆ
หากการใช้งานอุปกรณ์มีการสนับสนุนสำหรับ Wi-Fi Easy Connect และการเปิด ไปยังแอปของบุคคลที่สามได้
- [C-9-1] ต้องใช้การตั้งค่า#ACTION_PROCESS_WIFI_EASY_CONNECT_ URI Intent API ตามที่อธิบายไว้ในเอกสารประกอบ SDK
หากการติดตั้งใช้งานอุปกรณ์มีโหมดประหยัดอินเทอร์เน็ต สิ่งที่จะเกิดขึ้นมีดังนี้
- [C-10-1] ต้องระบุอินเทอร์เฟซผู้ใช้ในการตั้งค่าที่จัดการ
Settings.ACTION_IGNORE_BACKGROUND_DATA_RESTRICTIONS_SETTINGS
ซึ่งช่วยให้ผู้ใช้เพิ่มแอปพลิเคชันหรือนำแอปพลิเคชันออกจาก ในรายการที่อนุญาต
หากอุปกรณ์ไม่มีโหมดประหยัดอินเทอร์เน็ต ระบบจะดำเนินการดังนี้
- [C-11-1] ต้องมีกิจกรรมที่จัดการ
Settings.ACTION_IGNORE_BACKGROUND_DATA_RESTRICTIONS_SETTINGS
แต่อาจใช้ การดำเนินการโดยไม่ดำเนินการ
หากการใช้งานอุปกรณ์ประกาศการรองรับกล้องผ่าน
android.hardware.camera.any
ได้
- [C-12-3] ต้องจัดการและอนุญาตเฉพาะแอปพลิเคชัน Android ที่ติดตั้งไว้ล่วงหน้า
จัดการ Intent ต่อไปนี้ได้
MediaStore.ACTION_IMAGE_CAPTURE
MediaStore.ACTION_IMAGE_CAPTURE_SECURE
, และMediaStore.ACTION_VIDEO_CAPTURE
ตามที่อธิบายไว้ในเอกสาร SDK
หากการติดตั้งใช้งานอุปกรณ์รายงาน android.software.device_admin
สิ่งที่จะเกิดขึ้นมีดังนี้
[C-13-1] ต้องเคารพเจตนา
android.app.action.ADD_DEVICE_ADMIN
เพื่อเรียกใช้ UI เพื่อให้ผู้ใช้เพิ่ม ผู้ดูแลระบบอุปกรณ์ลงใน ระบบ (หรืออนุญาตให้ปฏิเสธ)[C-13-2] ต้องเคารพเจตนารมณ์ android.app.action.PROVISION_MANAGED_PROFILE android.app.action.SET_NEW_PARENT_PROFILE_PASSWORD android.app.action.SET_NEW_PASSWORD และ android.app.actionSTART_ENCRYPTION และมีกิจกรรมเพื่อให้บรรลุผลสำหรับ Intent ดังกล่าวตามที่อธิบายไว้ ใน SDK ได้ที่นี่
หากการติดตั้งใช้งานอุปกรณ์ประกาศ android.software.autofill
แฟล็กฟีเจอร์
- [C-14-1] ต้องใช้
AutofillService
อย่างสมบูรณ์ และAutofillManager
API และใช้ android.settings.REQUEST_SET_AUTOFILL_SERVICE ต้องการแสดงเมนูการตั้งค่าแอปเริ่มต้นเพื่อเปิดใช้และปิดใช้การป้อนข้อความอัตโนมัติ และ เปลี่ยนบริการป้อนข้อความอัตโนมัติเริ่มต้นให้ผู้ใช้
หากการใช้งานอุปกรณ์มีแอปที่ติดตั้งไว้ล่วงหน้าหรือต้องการอนุญาต แอปของบุคคลที่สามเพื่อเข้าถึงสถิติการใช้งานได้ โดยบริการจะดำเนินการดังนี้
- [C-SR-2] ได้รับการแนะนำอย่างยิ่งให้มีกลไกที่ให้ผู้ใช้เข้าถึงได้ในการให้
หรือเพิกถอนการเข้าถึงสถิติการใช้งานตาม
android.settings.ACTION_USAGE_ACCESS_SETTINGS
Intent สำหรับแอปที่ประกาศ
android.permission.PACKAGE_USAGE_STATS
สิทธิ์
หากการใช้งานอุปกรณ์ตั้งใจจะไม่อนุญาตแอปใด ๆ รวมถึงแอปที่ติดตั้งไว้ล่วงหน้า ไม่ให้เข้าถึงสถิติการใช้งาน พวกเขาจะ:
- [C-15-1] ต้องมีกิจกรรมที่จัดการ android.settings.ACTION_USAGE_ACCESS_SETTINGS รูปแบบ Intent แต่ "ต้อง" ใช้ "ไม่มีการดำเนินการ" กล่าวคือ ต้องมีค่าเทียบเท่า เหมือนตอนที่ผู้ใช้ถูกปฏิเสธการเข้าถึง
หากการใช้งานอุปกรณ์แสดงลิงก์ไปยังกิจกรรมที่ระบุ ป้อนอัตโนมัติService_passwordsActivity ในการตั้งค่าหรือลิงก์ไปยังรหัสผ่านของผู้ใช้ผ่านทางกลไกที่คล้ายกัน พวกเขาจะดำเนินการต่อไปนี้
- [C-16-1] ต้องแสดงลิงก์ดังกล่าวสำหรับบริการป้อนข้อความอัตโนมัติทั้งหมดที่ติดตั้งไว้
หากการติดตั้งใช้งานอุปกรณ์รองรับ VoiceInteractionService
และมี
มีแอปพลิเคชันที่ใช้ API นี้ติดตั้งไว้พร้อมกันมากกว่าหนึ่งแอปพลิเคชัน
- [C-18-1] ต้องปฏิบัติตาม
android.settings.ACTION_VOICE_INPUT_SETTINGS
ต้องการแสดงเมนูการตั้งค่าแอปเริ่มต้นสำหรับการป้อนข้อมูลด้วยเสียงและความช่วยเหลือ
หากการติดตั้งใช้งานอุปกรณ์รายงานฟีเจอร์ android.hardware.audio.output
ดังนี้
- [C-SR-3] ได้รับการแนะนำอย่างยิ่งให้ทำตาม android.intent.action.TTS_SERVICE android.speech.tts.engine.INSTALL_TTS_DATA และ Intent android.speech.tts.engine.GET_SAMPLE_TEXT มีกิจกรรมที่จะแจ้ง Fulfillment สำหรับ Intent เหล่านี้ตามที่อธิบายไว้ใน SDK ที่นี่
Android รองรับภาพพักหน้าจอแบบอินเทอร์แอกทีฟ เหมือนความฝัน โปรแกรมรักษาหน้าจอช่วยให้ผู้ใช้สามารถโต้ตอบกับแอปพลิเคชันเมื่ออุปกรณ์ ที่เชื่อมต่อกับแหล่งจ่ายไฟไม่มีการใช้งานหรือวางอยู่บนแท่นชาร์จ การใช้งานอุปกรณ์:
- ควรรองรับภาพพักหน้าจอและเสนอตัวเลือกการตั้งค่าสำหรับ
ผู้ใช้ให้กำหนดค่าโปรแกรมรักษาหน้าจอเพื่อตอบสนองต่อ
Intent
android.settings.DREAM_SETTINGS
หากการติดตั้งใช้งานอุปกรณ์รายงาน android.hardware.nfc.uicc
หรือ android.hardware.nfc.ese
ดังนี้
- [C-19-1] ต้องใช้ NfcAdapter.ACTION_TRANSACTION_DETECTED Intent API (ดังที่ "EVT_TRANSACTION" กำหนดไว้ตามข้อกำหนดทางเทคนิคของการเชื่อมโยง GSM TS.26 - ข้อกำหนดของเครื่องโทรศัพท์ NFC)
3.2.4 กิจกรรมบนจอแสดงผลรอง/หลายจอแสดงผล
หากการติดตั้งใช้งานอุปกรณ์อนุญาตให้เปิดใช้กิจกรรม Android ปกติมากกว่า จอแสดงผลเดียว โดยจะ
- [C-1-1] ต้องตั้งค่า
android.software.activities_on_secondary_displays
แฟล็กฟีเจอร์ - [C-1-2] ต้องรับประกันความเข้ากันได้ของ API ที่คล้ายกับกิจกรรมที่ทำงานอยู่ จอแสดงผลหลัก
- [C-1-3] ต้องลงจอดกิจกรรมใหม่บนจอแสดงผลเดียวกับกิจกรรมที่
เปิดใช้งานแล้ว เมื่อมีการเปิดตัวกิจกรรมใหม่โดยไม่ระบุเป้าหมาย
แสดงผ่าน
ActivityOptions.setLaunchDisplayId()
API - [C-1-4] ต้องทำลายกิจกรรมทั้งหมดเมื่อจอแสดงผลที่มี
Display.FLAG_PRIVATE
ธงถูกลบ - [C-1-5] ต้องซ่อนเนื้อหาบนทุกหน้าจออย่างปลอดภัยเมื่ออุปกรณ์ล็อกอยู่
ที่มีหน้าจอล็อกที่ปลอดภัย เว้นแต่แอปจะเลือกให้แสดงบนล็อก
หน้าจอโดยใช้
Activity#setShowWhenLocked()
API - ควรมี
android.content.res.Configuration
ซึ่งสอดคล้องกับจอแสดงผลนั้นเพื่อให้แสดง ดำเนินการ อย่างถูกต้องและคงความสามารถในการใช้งานร่วมกันไว้หากกิจกรรมเปิดตัวใน จอแสดงผลรอง
หากการใช้งานอุปกรณ์อนุญาตให้เปิดใช้กิจกรรม Android ปกติในอุปกรณ์รอง และจอแสดงผลรองจะมี android.view.Display.FLAG_PRIVATE ธง:
- [C-3-1] เฉพาะเจ้าของจอแสดงผล ระบบ และกิจกรรมที่ อยู่บนจอแสดงผลนั้นอยู่แล้ว ต้องเปิดในจอแสดงผลนั้นได้ ทุกคนสามารถเปิดใช้งาน จอแสดงผลที่มี android.view.Display.FLAG_PUBLIC แจ้ง
3.3 ความเข้ากันได้กับ API เดิม
ความเข้ากันได้ของโค้ดเนทีฟนั้นทำได้ยาก ด้วยเหตุนี้ ผู้ให้บริการอุปกรณ์ ได้แก่
- [C-SR-1] แนะนำอย่างยิ่งให้ใช้การใช้งานของไลบรารี ที่แสดงด้านล่างจากโปรเจ็กต์โอเพนซอร์ส Android
3.3.1 อินเทอร์เฟซแบบไบนารีของแอปพลิเคชัน
ไบต์โค้ด Dalvik ที่มีการจัดการจะเรียกใช้โค้ดแบบเนทีฟที่ระบุไว้ในแอปพลิเคชันได้
ไฟล์ .apk
เป็นไฟล์ ELF .so
ที่คอมไพล์ไว้สำหรับฮาร์ดแวร์อุปกรณ์ที่เหมาะสม
สถาปัตยกรรม เนื่องจากโค้ดแบบเนทีฟจะขึ้นอยู่กับโปรเซสเซอร์ที่เกี่ยวข้องเป็นสำคัญ
Android ได้กำหนด จำนวนอินเทอร์เฟซแบบไบนารีของแอปพลิเคชัน (ABI) ใน
Android NDK
การติดตั้งใช้งานอุปกรณ์
- [C-0-1] ต้องเข้ากันได้กับ Android NDK ABI ที่กำหนดไว้อย่างน้อย 1 รายการ
- [C-0-2] ต้องมีการรองรับโค้ดที่ทำงานในสภาพแวดล้อมที่มีการจัดการเพื่อ ลงในโค้ดแบบเนทีฟ โดยใช้ Java Native Interface (JNI) มาตรฐาน อรรถศาสตร์
- [C-0-3] ต้องรองรับแหล่งที่มา (เช่น ใช้ร่วมกับส่วนหัวได้) และ ไบนารีที่ใช้ร่วมกันได้ (สำหรับ ABI) พร้อมด้วยไลบรารีที่จำเป็นแต่ละรายการในรายการ ที่ด้านล่าง
- [C-0-5] ต้องรายงานอินเทอร์เฟซแบบไบนารีของแอปพลิเคชันแบบเนทีฟอย่างถูกต้อง
(ABI) ที่อุปกรณ์รองรับผ่าน
android.os.Build.SUPPORTED_ABIS
android.os.Build.SUPPORTED_32_BIT_ABIS
และandroid.os.Build.SUPPORTED_64_BIT_ABIS
พารามิเตอร์ คั่นแต่ละรายการด้วยเครื่องหมายจุลภาค รายการ ABI ที่เรียงลำดับจากมากที่สุดไปน้อยที่สุด
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
- [C-0-6] ต้องรายงานชุดย่อยของข้อมูลต่อไปนี้ โดยใช้พารามิเตอร์ข้างต้น
รายชื่อ ABI และต้องไม่รายงาน ABI ใดๆ ที่ไม่ได้อยู่ในรายการ
armeabi
(NDK ไม่รองรับการกําหนดเป้าหมายอีกต่อไป)armeabi-v7a
arm64-v8a
x86
x86-64
riscv64
สิ้นสุดข้อกำหนดใหม่
[C-0-7] ต้องสร้างไลบรารีต่อไปนี้ทั้งหมด โดยให้ API แบบเนทีฟ ใช้ได้กับแอปที่มีโค้ดแบบเนทีฟ
- libaaudio.so (รองรับเสียงแบบเนทีฟ)
- libamidi.so (การรองรับ MIDI เนทีฟหากมีฟีเจอร์
android.software.midi
มีการอ้างสิทธิตามที่อธิบายไว้ในส่วน 5.9) - libandroid.so (การสนับสนุนกิจกรรมในเครื่องของ Android)
- libc (ไลบรารี C)
- libcamera2ndk.so
- libdl (ลิงก์แบบไดนามิก)
- libEGL.so (การจัดการแพลตฟอร์ม OpenGL ของระบบ)
- libGLESv1_CM.so (OpenGL ES 1.x)
- libGLESv2.so (OpenGL ES 2.0)
- libGLESv3.so (OpenGL ES 3.x)
- libicui18n.so
- libicuuc.so
- libjnigraphics.so
- liblog (การบันทึกของ Android)
- libmediandk.so (รองรับ API สื่อเนทีฟ)
- libm (ห้องสมุดคณิตศาสตร์)
- libneuralnetworks.so (API เครือข่ายประสาทเทียม)
- libOpenMAXAL.so (การสนับสนุน OpenMAX AL 1.0.1)
- libOpenSLES.so (การสนับสนุนระบบเสียง OpenSL ES 1.0.1)
- libRS.so
- libstdc++ (การสนับสนุนขั้นต่ำสำหรับ C++)
- libvulkan.so (วัลคาน)
- libz (การบีบอัด Zlib)
- อินเทอร์เฟซ JNI
[C-0-8] ต้องไม่เพิ่มหรือนำฟังก์ชันสาธารณะสำหรับไลบรารีเนทีฟออก ตามรายการข้างต้น
[C-0-9] ต้องแสดงไลบรารีเพิ่มเติมที่ไม่ใช่ AOSP ที่เปิดเผยต่อ แอปของบุคคลที่สามใน
/vendor/etc/public.libraries.txt
[C-0-10] ต้องไม่เปิดเผยไลบรารีเนทีฟอื่นๆ ที่นำไปใช้ และ ที่ให้ไว้ใน AOSP เป็นไลบรารีระบบไปยังแอปของบุคคลที่สามที่กำหนดเป้าหมายเป็น API ระดับ 24 ขึ้นไป เนื่องจากมีการจองไว้
[C-0-11] ต้องส่งออก OpenGL ES 3.1 และแพ็กส่วนขยาย Android ทั้งหมด สัญลักษณ์ฟังก์ชัน ตามที่กำหนดไว้ใน NDK ผ่านไลบรารี
libGLESv3.so
โปรดทราบว่าจะต้องมีสัญลักษณ์ทั้งหมด แต่ส่วนที่ 7.1.4.1 จะอธิบาย รายละเอียดเพิ่มเติมเกี่ยวกับข้อกำหนดในการติดตั้งใช้งาน ฟังก์ชันที่เกี่ยวข้อง[C-0-12] ต้องส่งออกสัญลักษณ์ฟังก์ชันสำหรับแกนหลัก ฟังก์ชัน Vulkan 1.1 สัญลักษณ์ต่างๆ รวมถึง
VK_KHR_surface
,VK_KHR_android_surface
VK_KHR_swapchain
,VK_KHR_maintenance1
และ ส่วนขยายจำนวนVK_KHR_get_physical_device_properties2
คลังlibvulkan.so
โปรดทราบว่าแม้ต้องมีสัญลักษณ์ทั้งหมด ส่วนที่ 7.1.4.2 จะอธิบายรายละเอียดเพิ่มเติมถึงข้อกำหนดเกี่ยวกับ การใช้งานฟังก์ชันที่เกี่ยวข้องแต่ละรายการนั้นคาดว่าจะได้รับควรสร้างโดยใช้ซอร์สโค้ดและไฟล์ส่วนหัวที่มีอยู่ใน อัปสตรีมของโครงการโอเพนซอร์ส Android
โปรดทราบว่า Android รุ่นต่อๆ ไปอาจเพิ่มการรองรับ ABI
3.3.2 ความเข้ากันได้กับโค้ดแบบเนทีฟของ ARM 32 บิต
การนำอุปกรณ์ไปใช้รายงานการรองรับ ABI ของ armeabi
สิ่งที่จะเกิดขึ้นมีดังนี้
- [C-3-1] ต้องสนับสนุน
armeabi-v7a
ด้วยและรายงานการรองรับ เช่นarmeabi
มีไว้สำหรับความเข้ากันได้แบบย้อนหลังกับแอปรุ่นเก่าเท่านั้น
หากการติดตั้งใช้งานอุปกรณ์รายงานการรองรับ ABI ของ armeabi-v7a
สำหรับแอป
ที่ใช้ ABI นี้
[C-2-1] ต้องใส่บรรทัดต่อไปนี้ใน
/proc/cpuinfo
และไม่ควร ปรับเปลี่ยนค่าในอุปกรณ์เดียวกัน แม้ว่า ABI อื่นๆ จะอ่านค่านั้นก็ตามFeatures:
ตามด้วยรายการฟีเจอร์ CPU ARMv7 ที่ไม่บังคับ ที่อุปกรณ์รองรับCPU architecture:
ตามด้วยจำนวนเต็มที่อธิบายข้อมูลต่อไปนี้ สถาปัตยกรรม ARM ที่รองรับสูงสุด (เช่น "8" สำหรับอุปกรณ์ ARMv8)
[C-2-2] ต้องทำให้การดำเนินการต่อไปนี้พร้อมใช้งานเสมอ แม้ใน ในกรณีที่มีการใช้ ABI ในสถาปัตยกรรม ARMv8 ไม่ว่าจะผ่าน การสนับสนุน CPU ในตัวหรือผ่านการจำลองซอฟต์แวร์:
- วิธีการสำหรับ SWP และ SWPB
- การดำเนินงานที่เป็นอุปสรรคของ CP15ISB, CP15DSB และ CP15DMB
[C-2-3] ต้องรวมการรองรับ Advanced SIMD (หรือที่เรียกว่า NEON)
3.4 ความเข้ากันได้กับเว็บ
3.4.1 ความเข้ากันได้กับ WebView
หากการติดตั้งใช้งานอุปกรณ์ทำให้มีการติดตั้งใช้งาน
android.webkit.Webview
API ซึ่งจะมีคุณสมบัติดังนี้
- [C-1-1] ต้องรายงาน
android.software.webview
- [C-1-2] ต้องใช้บิลด์โปรเจ็กต์ Chromium
จากโปรเจ็กต์โอเพนซอร์ส Android ต้นทางบน Android
15 สาขาสําหรับการติดตั้งใช้งาน
android.webkit.WebView
API [C-1-3] สตริง User Agent ที่ WebView รายงานต้องอยู่ในรูปแบบต่อไปนี้
Mozilla/5.0 (Linux; Android $(VERSION); [$(MODEL)] [Build/$(BUILD)]; wv) AppleWebKit/537.36 (KHTML, like Gecko) เวอร์ชัน/4.0 $(CHROMIUM_VER) อุปกรณ์เคลื่อนที่ Safari/537.36
- ค่าของสตริง $(VERSION) ต้องเท่ากับค่าของสตริง android.os.Build.VERSION.RELEASE
- สตริง $(MODEL) อาจว่างเปล่า แต่ถ้าสตริงไม่ว่างเปล่า สตริงนี้ต้องมี ค่าเดียวกับ android.os.Build.MODEL
- "สร้าง/$(สร้าง)" อาจละเว้นได้ แต่หากเป็น $(BUILD) สตริงต้องเป็นค่าเดียวกับค่า android.os.Build.ID
- ค่าของสตริง $(CHROMIUM_VER) ต้องเป็นเวอร์ชัน Chromium ในโปรเจ็กต์โอเพนซอร์ส Android ต้นทาง
- การใช้งานอุปกรณ์อาจเว้น "อุปกรณ์เคลื่อนที่" ในสตริง User Agent
คอมโพเนนต์ WebView ควรมีการสนับสนุนฟีเจอร์ HTML5 มากเท่ากับ และถ้าสนับสนุนคุณลักษณะ ควรสอดคล้องกับ ข้อกำหนด HTML5
[C-1-4] ต้องแสดงผลเนื้อหาที่ให้ไว้หรือเนื้อหา URL ระยะไกลในกระบวนการ ที่แตกต่างจากแอปพลิเคชันที่สร้างอินสแตนซ์ WebView โดยเฉพาะ กระบวนการแสดงผลที่แยกต่างหากต้องถือสิทธิ์ในระดับต่ำกว่า เรียกใช้ เป็นรหัสผู้ใช้แยกต่างหาก ไม่มีสิทธิ์เข้าถึงไดเรกทอรีข้อมูลของแอป ไม่มีการเข้าถึงเครือข่ายโดยตรง และมีเพียงการเข้าถึงเครือข่ายอินเทอร์เน็ตขั้นต่ำ บริการระบบผ่าน Binder การใช้ AOSP ของ WebView เป็นไปตาม ข้อกำหนดนี้
โปรดทราบว่าหากอุปกรณ์เป็นแบบ 32 บิต หรือประกาศแฟล็กฟีเจอร์
android.hardware.ram.low
บุคคลเหล่านี้ได้รับการยกเว้นจาก C-1-3
3.4.2 ความเข้ากันได้กับเบราว์เซอร์
หากการใช้งานอุปกรณ์มีแอปพลิเคชันเบราว์เซอร์แบบสแตนด์อโลนสำหรับผู้ใช้ทั่วไป การท่องเว็บได้อย่างมีประสิทธิภาพ
- [C-1-1] ต้องรองรับ API แต่ละรายการเหล่านี้ที่เชื่อมโยงกับ HTML5
- [C-1-2] ต้องรองรับ HTML5/W3C webstorage API และควรรองรับ HTML5/W3C IndexedDB API โปรดทราบว่าตามที่เว็บ หน่วยงานด้านมาตรฐานการพัฒนากำลังเปลี่ยนไปใช้ IndexedDB webstorage คาดหวังว่า IndexedDB จะเป็นองค์ประกอบที่จำเป็นใน Android เวอร์ชันอนาคต
- อาจจัดส่งสตริง User Agent ที่กำหนดเองในแอปพลิเคชันเบราว์เซอร์แบบสแตนด์อโลน
- ควรใช้การสนับสนุน HTML5 ให้มากที่สุดเท่าที่จะเป็นไปได้ในสแตนด์อโลน แอปพลิเคชันเบราว์เซอร์ (ไม่ว่าจะใช้เบราว์เซอร์ WebKit อัปสตรีมหรือไม่ก็ตาม หรือบุคคลที่สาม)
อย่างไรก็ตาม หากการใช้งานอุปกรณ์ไม่มีเบราว์เซอร์แบบสแตนด์อโลน ในแอปพลิเคชัน
- [C-2-1] ต้องรองรับรูปแบบความตั้งใจสาธารณะดังที่อธิบายไว้ใน หัวข้อ 3.2.3.1
3.5 ความเข้ากันได้ด้านพฤติกรรมของ API
การติดตั้งใช้งานอุปกรณ์
- [C-0-9] ต้องตรวจสอบว่าได้นําความเข้ากันได้ด้านลักษณะการทำงานของ API ไปใช้กับทั้งหมด แอปที่ติดตั้งเว้นแต่จะถูกจำกัดดังที่อธิบายไว้ใน ส่วนที่ 3.5.1
- [C-0-10] ต้องไม่ใช้แนวทางการอนุญาตรายการที่จะดูแลให้ API ทำงาน ความเข้ากันได้ด้านลักษณะการทำงานสำหรับแอปที่เลือกตามอุปกรณ์เท่านั้น ของ Google
ลักษณะการทำงานของ API แต่ละประเภท (แบบมีการจัดการ ซอฟต์แวร์ดั้งเดิม และเว็บ) ต้องมีลักษณะดังนี้ สอดคล้องกับการติดตั้งใช้งานอัปสตรีมที่ต้องการ โครงการโอเพนซอร์ส Android บางพื้นที่ ดังนี้
- [C-0-1] อุปกรณ์ต้องไม่เปลี่ยนลักษณะการทำงานหรือความหมายของ Intent มาตรฐาน
- [C-0-2] อุปกรณ์ต้องไม่เปลี่ยนแปลงวงจรหรืออรรถศาสตร์ของ ประเภทของคอมโพเนนต์ระบบที่เฉพาะเจาะจง (เช่น บริการ กิจกรรม ผู้ให้บริการเนื้อหา ฯลฯ)
- [C-0-3] อุปกรณ์ต้องไม่เปลี่ยนความหมายของสิทธิ์มาตรฐาน
- อุปกรณ์ต้องไม่เปลี่ยนแปลงข้อจำกัดที่บังคับใช้กับแอปพลิเคชันในเบื้องหลัง
กล่าวอย่างเจาะจงคือ สำหรับแอปพื้นหลัง
- [C-0-4] ลูกค้าต้องหยุดการดำเนินการ Callback ที่จดทะเบียนโดย
เพื่อรับเอาต์พุตจาก
GnssMeasurement
และGnssNavigationMessage
- [C-0-5] พวกเขาต้องจำกัดความถี่ในการอัปเดตที่
ซึ่งได้รับจากบริการผ่าน
LocationManager
คลาส API หรือWifiManager.startScan()
- [C-0-6] หากแอปกำหนดเป้าหมายเป็น API ระดับ 25 ขึ้นไป พวกเขาต้องไม่
อนุญาตให้ลงทะเบียน Broadcast Receiver สำหรับการออกอากาศโดยนัยของ
Intent มาตรฐานของ Android ในไฟล์ Manifest ของแอป เว้นแต่จะเป็นการออกอากาศ
Intent ต้องมี
"signature"
หรือ"signatureOrSystem"
protectionLevel
หรืออยู่ใน รายการยกเว้น - [C-0-7] หากแอปกำหนดเป้าหมายเป็น API ระดับ 25 ขึ้นไป แอปจะต้องหยุด
บริการพื้นหลังของแอปพลิเคชัน ราวกับว่าแอปพลิเคชันได้เรียกใช้
บริการ
stopSelf()
ยกเว้นในกรณีที่แอปนั้นอยู่ในรายการที่อนุญาตชั่วคราวเพื่อจัดการ งานที่ผู้ใช้มองเห็นได้ - [C-0-8] หากแอปกำหนดเป้าหมายเป็น API ระดับ 25 ขึ้นไป พวกเขาต้อง ปล่อยการทำงานขณะล็อกที่แอปพักการทำงาน
- [C-0-4] ลูกค้าต้องหยุดการดำเนินการ Callback ที่จดทะเบียนโดย
เพื่อรับเอาต์พุตจาก
- [C-0-11] อุปกรณ์ต้องส่งผู้ให้บริการด้านความปลอดภัยต่อไปนี้เป็นผู้ให้บริการแรก
ค่าอาร์เรย์ 7 ค่าจาก
Security.getProviders()
ในลำดับที่ระบุ และมีชื่อที่ระบุ (ตามที่ส่งคืนโดยProvider.getName()
) และชั้นเรียน ยกเว้นกรณีที่แอปมีการแก้ไขรายการผ่านinsertProviderAt()
หรือremoveProvider()
อุปกรณ์ อาจแสดงผลผู้ให้บริการเพิ่มเติมหลังจากรายชื่อผู้ให้บริการที่ระบุ ที่ด้านล่าง- AndroidNSSP -
android.security.net.config.NetworkSecurityConfigProvider
- AndroidOpenSSL -
com.android.org.conscrypt.OpenSSLProvider
- CertPathProvider -
sun.security.provider.CertPathProvider
- AndroidKeyStoreBCวิธีแก้ปัญหา -
android.security.keystore.AndroidKeyStoreBCWorkaroundProvider
- BC -
com.android.org.bouncycastle.jce.provider.BouncyCastleProvider
- HarmonyJSSE -
com.android.org.conscrypt.JSSEProvider
- AndroidKeyStore -
android.security.keystore.AndroidKeyStoreProvider
- AndroidNSSP -
รายการด้านบนเป็นเพียงตัวอย่างบางส่วนเท่านั้น การทดสอบชุดทดสอบความเข้ากันได้ (CTS) ส่วนสำคัญของแพลตฟอร์มนี้สำหรับความเข้ากันได้ด้านพฤติกรรม แต่ไม่ใช่ทั้งหมด ผู้ติดตั้งใช้งานมีหน้าที่ตรวจสอบว่าความเข้ากันได้ด้านพฤติกรรม กับโครงการโอเพนซอร์ส Android ด้วยเหตุนี้ ผู้ติดตั้งใช้งานอุปกรณ์ ควรใช้ซอร์สโค้ดที่มีให้ผ่านทางโครงการโอเพนซอร์ส Android ซึ่ง แทนการนำส่วนที่สำคัญของระบบมาใช้ใหม่
3.5.1 ข้อจำกัดแอปพลิเคชัน
หากการติดตั้งใช้งานอุปกรณ์ใช้กลไกที่เป็นกรรมสิทธิ์เพื่อจำกัดแอป (เช่น การเปลี่ยนแปลงหรือจำกัดการทำงานของ API ที่ ตามที่อธิบายไว้ใน SDK) และ กลไกดังกล่าวจะมีข้อจำกัดมากกว่าที่เก็บข้อมูลสแตนด์บายแอปที่ถูกจำกัดเสียอีก
- [C-1-1] ต้องอนุญาตให้ผู้ใช้เห็นรายการแอปที่ถูกจำกัด
- [C-1-2] ต้องให้เงินแก่ผู้ใช้ในการเปิดหรือปิด ข้อจำกัดที่เป็นกรรมสิทธิ์ของแต่ละแอป
[C-1-3] ต้องไม่ใช้ข้อจำกัดอันเป็นกรรมสิทธิ์เหล่านี้โดยอัตโนมัติโดยไม่มี หลักฐานแสดงลักษณะการทำงานของระบบที่ไม่ดี แต่อาจใช้การจำกัดในแอป เมื่อพบการทำงานที่มีประสิทธิภาพของระบบที่ไม่ดี เช่น การทำงานขณะล็อกที่ค้าง การทำงานเป็นเวลานาน บริการ และเกณฑ์อื่นๆ เกณฑ์อาจกำหนดได้ตามอุปกรณ์ แต่ "ต้อง" เกี่ยวข้องกับผลกระทบที่แอปมีต่อประสิทธิภาพของระบบ อื่นๆ เกณฑ์ที่ไม่ได้เกี่ยวข้องกับประสิทธิภาพการทำงานของระบบเพียงอย่างเดียว เช่น ไม่ได้รับความนิยมในตลาด ต้องไม่ใช่เกณฑ์
[C-1-4] ต้องไม่ใช้ข้อจำกัดที่เป็นกรรมสิทธิ์เหล่านี้โดยอัตโนมัติสำหรับแอป เมื่อผู้ใช้ปิดการจำกัดแอปด้วยตนเอง และอาจแนะนำผู้ใช้ เพื่อใช้ข้อจำกัดที่เป็นกรรมสิทธิ์เหล่านี้
[C-1-5] ต้องแจ้งให้ผู้ใช้ทราบหากข้อจำกัดที่เป็นกรรมสิทธิ์เหล่านี้บังคับใช้กับ แอปโดยอัตโนมัติ ต้องระบุข้อมูลดังกล่าวในช่วง 24 ชั่วโมง ก่อนที่จะมีการบังคับใช้ข้อจำกัดอันเป็นกรรมสิทธิ์เหล่านี้
[C-1-6] ต้องแสดงผลเป็น true สำหรับ ActivityManager.isBackgroundRestricted() สำหรับการเรียก API จากแอป
[C-1-7] ต้องไม่จำกัดแอปที่ทำงานอยู่เบื้องหน้ายอดนิยมที่ใช้อย่างชัดแจ้งโดย ผู้ใช้รายนั้น
[C-1-8] ต้องระงับข้อจำกัดที่เป็นกรรมสิทธิ์เหล่านี้ในแอปเมื่อใดก็ตามที่ ผู้ใช้เริ่มใช้แอปอย่างชัดเจน ทำให้แอปเป็นเบื้องหน้าสุด แอปพลิเคชัน
[C-1-10] ต้องระบุเอกสารหรือเว็บไซต์สาธารณะและชัดเจนที่อธิบาย วิธีใช้ข้อจำกัดที่เป็นกรรมสิทธิ์ เอกสารหรือเว็บไซต์นี้ ลิงก์ได้จากเอกสาร Android SDK และต้องมีข้อมูลต่อไปนี้
- เงื่อนไขการทริกเกอร์สำหรับข้อจำกัดที่เป็นกรรมสิทธิ์
- วิธีจำกัดแอปและวิธีจำกัด
- วิธียกเว้นแอปจากข้อจำกัดดังกล่าว
- แอปขอการยกเว้นจากข้อจำกัดที่เป็นกรรมสิทธิ์ได้อย่างไร หาก รองรับการยกเว้นดังกล่าวสำหรับแอปที่ผู้ใช้ติดตั้งได้
หากมีการติดตั้งแอปไว้ล่วงหน้าในอุปกรณ์และไม่มีการใช้งานอย่างชัดแจ้งโดย ผู้ใช้มานานกว่า 30 วัน [C-1-3] [C-1-5] จะได้รับการยกเว้น
หากการติดตั้งใช้งานอุปกรณ์ขยายข้อจำกัดของแอปที่มีการใช้งาน ใน AOSP พวกเขา
- [C-2-1]ต้องปฏิบัติตามการดำเนินการที่อธิบายไว้ในเอกสารนี้
3.5.2 ไฮเบอร์เนตของแอปพลิเคชัน
หากการใช้งานอุปกรณ์มี App Hibernation ที่รวมอยู่ใน AOSP หรือ ขยายฟีเจอร์ที่รวมอยู่ใน AOSP จากนั้นจะ
- [C-1-1] ต้องมีคุณสมบัติตรงตามข้อกำหนดทั้งหมดในส่วน 3.5.1 ยกเว้น [C-1-6] และ [C-1-3]
- [C-1-2] ต้องใช้ข้อจำกัดในแอปสำหรับผู้ใช้เมื่อมี หลักฐานว่าผู้ใช้ไม่ได้ใช้แอปมาระยะหนึ่งแล้ว ช่วงเวลานี้ ระยะเวลาที่แนะนำคือ 1 เดือนขึ้นไป การใช้งานต้องเป็น กำหนดโดยการโต้ตอบอย่างชัดแจ้งของผู้ใช้ผ่าน UsageStats#getLastTimeVisible() API หรืออะไรก็ตามที่จะทำให้แอปออกจากสถานะบังคับให้หยุด ซึ่งรวมถึงการผูกบริการ การผูกผู้ให้บริการเนื้อหา การออกอากาศที่ชัดแจ้ง ฯลฯ ซึ่งจะติดตามโดย API UsageStats#getLastTimeAnyComponentUsed() ใหม่
- [C-1-3] ต้องใช้ข้อจำกัดที่มีผลต่อผู้ใช้อุปกรณ์ทั้งหมดเท่านั้น เป็นหลักฐานว่าไม่มีการใช้แพ็กเกจโดยผู้ใช้ใดๆ เป็นเวลาระยะหนึ่ง เราขอแนะนำอย่างยิ่งให้กำหนดระยะเวลานี้อย่างน้อย 1 เดือน
- [C-1-4] ต้องไม่แสดงผลแอปไม่สามารถตอบสนองต่อความตั้งใจของกิจกรรม การเชื่อมโยงบริการ คำขอของผู้ให้บริการเนื้อหา หรือการออกอากาศที่อาจไม่เหมาะสม
การไฮเบอร์เนตของแอปใน AOSP เป็นไปตามข้อกำหนดข้างต้น
3.6 เนมสเปซ API
Android เป็นไปตามแบบแผนเนมสเปซแพ็กเกจและคลาสที่กำหนดโดย Java ภาษาโปรแกรม หากต้องการตรวจสอบความเข้ากันได้กับแอปพลิเคชันของบุคคลที่สาม ผู้ใช้อุปกรณ์จะต้องไม่ทำการปรับเปลี่ยนข้อห้ามใดๆ (ดูด้านล่าง) เพื่อ เนมสเปซของแพ็กเกจเหล่านี้
java.*
javax.*
sun.*
android.*
androidx.*
com.android.*
กล่าวคือ
- [C-0-1] ต้องไม่แก้ไข API ที่เปิดเผยต่อสาธารณะบนแพลตฟอร์ม Android โดยเปลี่ยนวิธีหรือลายเซ็นของชั้นเรียน หรือโดยการนำชั้นเรียนออก ด้วย
- [C-0-2] ต้องไม่เพิ่มองค์ประกอบที่เปิดเผยต่อสาธารณะ (เช่น ชั้นเรียน หรือ อินเทอร์เฟซ หรือช่องหรือเมธอดไปยังชั้นเรียนหรืออินเทอร์เฟซที่มีอยู่) หรือการทดสอบ หรือ API ระบบไปยัง API ในเนมสเปซด้านบน "เปิดเผยต่อสาธารณะ องค์ประกอบ" เป็นโครงสร้างที่ไม่ได้ตกแต่งด้วย "@hide" ทำเครื่องหมายเป็น ที่ใช้ในซอร์สโค้ด Android อัปสตรีม
ผู้ใช้อุปกรณ์อาจแก้ไขการติดตั้งใช้งานที่สำคัญของ API ได้ แต่ การแก้ไขดังกล่าว
- [C-0-3] ต้องไม่ส่งผลกระทบต่อลักษณะการทำงานที่ระบุไว้และลายเซ็นภาษา Java API ใดๆ ที่เปิดเผยต่อสาธารณะ
- [C-0-4] ต้องไม่โฆษณาหรือเปิดเผยต่อนักพัฒนาซอฟต์แวร์
อย่างไรก็ตาม ผู้ใช้อุปกรณ์อาจเพิ่ม API ที่กำหนดเองนอกเหนือจาก Android มาตรฐานได้ Namespace แต่ API ที่กำหนดเองมีลักษณะดังนี้
- [C-0-5] ต้องไม่อยู่ในเนมสเปซที่คุณเป็นเจ้าของหรืออ้างอิงถึง
องค์กร ตัวอย่างเช่น ผู้ใช้อุปกรณ์ต้องไม่เพิ่ม API ลงใน
com.google.*
หรือเนมสเปซที่คล้ายกัน: มีเพียง Google เท่านั้นที่ดำเนินการได้ ในทำนองเดียวกัน Google ต้องไม่เพิ่ม API ให้กับบริษัทอื่น เนมสเปซ - [C-0-6] ต้องจัดแพ็กเกจในไลบรารีที่ใช้ร่วมกันของ Android เพื่อให้เฉพาะแอป ที่ใช้งานอย่างชัดเจน (ผ่านกลไก <uses-library>) ได้แก่ ได้รับผลกระทบจากการใช้งานหน่วยความจำที่เพิ่มขึ้นของ API ดังกล่าว
ผู้ใช้อุปกรณ์อาจเพิ่ม API ที่กำหนดเองในภาษาท้องถิ่นนอก NDK ได้ API เฉพาะ API ที่กำหนดเอง
- [C-1-1] ต้องไม่อยู่ในห้องสมุด NDK หรือห้องสมุดของผู้อื่น องค์กรตามที่อธิบายไว้ ที่นี่
หากผู้ติดตั้งใช้งานอุปกรณ์เสนอให้ปรับปรุงเนมสเปซของแพ็กเกจรายการใดรายการหนึ่งข้างต้น (เช่น การเพิ่มฟังก์ชันใหม่ที่มีประโยชน์ลงใน API ที่มีอยู่ หรือการเพิ่มฟังก์ชัน API) ผู้ติดตั้งใช้งานควรไปที่ source.android.com และเริ่มขั้นตอนสำหรับการเปลี่ยนแปลง ตามข้อมูลในเว็บไซต์นั้น
โปรดทราบว่าข้อจำกัดข้างต้นสอดคล้องกับรูปแบบมาตรฐานสำหรับการตั้งชื่อ API ในภาษาโปรแกรม Java ส่วนนี้มุ่งเน้นที่จะเน้นย้ำ ข้อกำหนดดังกล่าวและทำให้ข้อตกลงเหล่านั้นผูกพันผ่านการรวมไว้ในความเข้ากันได้นี้ คำจำกัดความ
3.7 ความเข้ากันได้ของรันไทม์
การติดตั้งใช้งานอุปกรณ์
[C-0-1] ต้องรองรับรูปแบบ Dalvik Executable (DEX) แบบเต็ม และข้อมูลจำเพาะและความหมายของไบต์โค้ด Daalvik
[C-0-2] ต้องกำหนดค่ารันไทม์ของ Dalvik เพื่อจัดสรรหน่วยความจำ ตามแพลตฟอร์ม Android อัปสตรีม และตามที่ระบุโดย ตารางต่อไปนี้ (ดูส่วนที่ 7.1.1 สำหรับ ขนาดหน้าจอและความหนาแน่นของหน้าจอ)
ควรใช้ Android RunTime (ART) ซึ่งเป็นอัปสตรีมอ้างอิง การนำรูปแบบปฏิบัติการของ Dalvik มาใช้และการอ้างอิง การจัดการแพ็กเกจของการนำไปใช้งาน
ควรทำการทดสอบ Fuzz ในโหมดการดำเนินการต่างๆ และสถาปัตยกรรมเป้าหมายเพื่อรักษาความเสถียรของรันไทม์ โปรดดู JFuzz และ DexFuzz ในเว็บไซต์โครงการโอเพนซอร์ส Android
โปรดทราบว่าค่าหน่วยความจำที่ระบุด้านล่างถือเป็นค่าขั้นต่ำ และ การใช้งานอุปกรณ์อาจจัดสรรหน่วยความจำต่อแอปพลิเคชันมากขึ้น
รูปแบบหน้าจอ | ความหนาแน่นของหน้าจอ | หน่วยความจำแอปพลิเคชันขั้นต่ำ |
---|---|---|
นาฬิกาข้อมือ Android | 120 dpi (ldpi) | 32MB |
140 dpi (140dpi) | ||
160 dpi (mdpi) | ||
180 dpi (180dpi) | ||
200 dpi (200dpi) | ||
213 dpi (tvdpi) | ||
220 dpi (220dpi) | 36MB | |
240 dpi (hdpi) | ||
280 dpi (280dpi) | ||
320 dpi (Xhdpi) | 48MB | |
360 dpi (360dpi) | ||
400 dpi (400dpi) | 56MB | |
420 dpi (420dpi) | 64MB | |
480 dpi (xxhdpi) | 88MB | |
560 dpi (560dpi) | 112MB | |
640 dpi (xxxhdpi) | 154MB | |
เล็ก/ปกติ | 120 dpi (ldpi) | 32MB |
140 dpi (140dpi) | ||
160 dpi (mdpi) | ||
180 dpi (180dpi) | 48MB | |
200 dpi (200dpi) | ||
213 dpi (tvdpi) | ||
220 dpi (220dpi) | ||
240 dpi (hdpi) | ||
280 dpi (280dpi) | ||
320 dpi (Xhdpi) | 80MB | |
360 dpi (360dpi) | ||
400 dpi (400dpi) | 96MB | |
420 dpi (420dpi) | 112MB | |
480 dpi (xxhdpi) | 128MB | |
560 dpi (560dpi) | 192MB | |
640 dpi (xxxhdpi) | 256MB | |
ใหญ่ | 120 dpi (ldpi) | 32MB |
140 dpi (140dpi) | 48MB | |
160 dpi (mdpi) | ||
180 dpi (180dpi) | 80MB | |
200 dpi (200dpi) | ||
213 dpi (tvdpi) | ||
220 dpi (220dpi) | ||
240 dpi (hdpi) | ||
280 dpi (280dpi) | 96MB | |
320 dpi (Xhdpi) | 128MB | |
360 dpi (360dpi) | 160MB | |
400 dpi (400dpi) | 192MB | |
420 dpi (420dpi) | 228MB | |
480 dpi (xxhdpi) | 256MB | |
560 dpi (560dpi) | 384MB | |
640 dpi (xxxhdpi) | 512MB | |
xlarge | 120 dpi (ldpi) | 48MB |
140 dpi (140dpi) | 80MB | |
160 dpi (mdpi) | ||
180 dpi (180dpi) | 96MB | |
200 dpi (200dpi) | ||
213 dpi (tvdpi) | ||
220 dpi (220dpi) | ||
240 dpi (hdpi) | ||
280 dpi (280dpi) | 144MB | |
320 dpi (Xhdpi) | 192MB | |
360 dpi (360dpi) | 240MB | |
400 dpi (400dpi) | 288MB | |
420 dpi (420dpi) | 336MB | |
480 dpi (xxhdpi) | 384MB | |
560 dpi (560dpi) | 576MB | |
640 dpi (xxxhdpi) | 768MB |
3.8 ความเข้ากันได้ของอินเทอร์เฟซผู้ใช้
3.8.1 Launcher (หน้าจอหลัก)
Android มีแอปพลิเคชัน Launcher (หน้าจอหลัก) และการรองรับ แอปพลิเคชันของบุคคลที่สามที่จะแทนที่ Launcher ของอุปกรณ์ (หน้าจอหลัก)
หากการใช้งานอุปกรณ์อนุญาตให้แอปพลิเคชันของบุคคลที่สามแทนที่อุปกรณ์ บนหน้าจอหลัก
- [C-1-1] ต้องประกาศฟีเจอร์ของแพลตฟอร์ม
android.software.home_screen
- [C-1-2] ต้องส่งคืน
AdaptiveIconDrawable
เมื่อแอปพลิเคชันของบุคคลที่สามใช้แท็ก<adaptive-icon>
เพื่อระบุ ไอคอนของผู้ใช้ และPackageManager
มีการเรียกเมธอดในการเรียกไอคอน
หากการใช้งานอุปกรณ์มี Launcher เริ่มต้นที่รองรับในแอป ปักหมุดทางลัดไว้ ดังนี้
- [C-2-1] ต้องรายงาน
true
สำหรับShortcutManager.isRequestPinShortcutSupported()
- [C-2-2] ต้องมีค่าใช้จ่ายของผู้ใช้ที่ขอผู้ใช้ก่อนที่จะเพิ่มทางลัดที่ขอ
ผ่าน
ShortcutManager.requestPinShortcut()
เมธอดของ API - [C-2-3] ต้องรองรับแป้นพิมพ์ลัดที่ปักหมุดไว้ รวมถึงแบบไดนามิกและแบบคงที่ ตามที่บันทึกไว้ในหน้าทางลัดของแอป
ในทางกลับกัน หากการใช้งานอุปกรณ์ไม่รองรับการปักหมุดในแอป ทางลัดเหล่านี้
- [C-3-1] ต้องรายงาน
false
สำหรับShortcutManager.isRequestPinShortcutSupported()
หากการติดตั้งใช้งานอุปกรณ์ใช้ Launcher เริ่มต้นที่ช่วยให้ สิทธิ์เข้าถึงทางลัดเพิ่มเติมที่ได้รับจากแอปของบุคคลที่สามผ่าน เครื่องมือจัดการทางลัด API มีคุณสมบัติดังนี้
- [C-4-1] ต้องรองรับฟีเจอร์ทางลัดทั้งหมดที่บันทึกไว้ (เช่น ภาพนิ่งและ
แป้นพิมพ์ลัดแบบไดนามิก การปักหมุดทางลัด) และใช้งาน API ของบริการ
ShortcutManager
คลาส API
หากการใช้งานอุปกรณ์มีแอป Launcher เริ่มต้นที่แสดงป้าย ไอคอนแอปได้
- [C-5-1] ต้องเป็นไปตาม
NotificationChannel.setShowBadge()
เมธอดของ API กล่าวคือ แสดงภาพในราคาที่เกี่ยวข้องกับไอคอนแอปหาก ได้รับการตั้งค่าเป็นtrue
และไม่แสดงรูปแบบการติดป้ายไอคอนแอปใดๆ เมื่อทั้งหมด ของช่องทางการแจ้งเตือนของแอปได้กำหนดค่าเป็นfalse
- อาจลบล้างป้ายไอคอนแอปด้วยรูปแบบการติดป้ายที่เป็นกรรมสิทธิ์เมื่อ
แอปพลิเคชันของบุคคลที่สามระบุการรองรับรูปแบบการติดป้ายที่เป็นกรรมสิทธิ์
ผ่านการใช้ API ที่เป็นกรรมสิทธิ์ แต่ควรใช้ทรัพยากรและค่า
ที่มีให้ผ่าน API ป้ายการแจ้งเตือนที่อธิบายไว้ใน SDK
เช่น
Notification.Builder.setNumber()
และNotification.Builder.setBadgeIconType()
API
หากรองรับการใช้งานอุปกรณ์ ขาวดำ ไอคอนเหล่านี้:
- [C-6-1] ต้องใช้เฉพาะเมื่อผู้ใช้เปิดใช้อย่างชัดเจน (เช่น การตั้งค่าหรือเมนูตัวเลือกวอลเปเปอร์)
3.8.2 วิดเจ็ต
Android รองรับวิดเจ็ตแอปของบุคคลที่สามด้วยการกำหนดประเภทคอมโพเนนต์และ API และวงจรที่เกี่ยวข้องซึ่งช่วยให้แอปพลิเคชันแสดง "AppWidget" ต่อผู้ใช้ปลายทาง
หากการใช้งานอุปกรณ์รองรับวิดเจ็ตแอปของบุคคลที่สาม วิดเจ็ตจะดำเนินการดังนี้
- [C-1-1] ต้องประกาศการรองรับฟีเจอร์ของแพลตฟอร์ม
android.software.app_widgets
- [C-1-2] ต้องมีการรองรับ AppWidgets ในตัวและเปิดเผย ความสามารถของอินเทอร์เฟซผู้ใช้สำหรับการเพิ่ม กำหนดค่า ดู และนำ AppWidgets ออก
- [C-1-3] ต้องสามารถแสดงผลวิดเจ็ตขนาด 4 x 4 ในขนาดตารางกริดมาตรฐาน ดูหลักเกณฑ์การออกแบบวิดเจ็ตของแอป ในเอกสารประกอบของ Android SDK เพื่อดูรายละเอียด
- อาจสนับสนุนวิดเจ็ตของแอปพลิเคชันบนหน้าจอล็อก
หากการใช้งานอุปกรณ์รองรับวิดเจ็ตและในแอปของบุคคลที่สาม ปักหมุดทางลัดไว้ ดังนี้
- [C-2-1] ต้องรายงาน
true
สำหรับAppWidgetManager.html.isRequestPinAppWidgetSupported()
- [C-2-2] ต้องมีค่าใช้จ่ายของผู้ใช้ที่ขอผู้ใช้ก่อนที่จะเพิ่มทางลัดที่ขอ
ผ่าน
AppWidgetManager.requestPinAppWidget()
เมธอดของ API
3.8.3 การแจ้งเตือน
Android ประกอบด้วย Notification
และ
NotificationManager
API ที่อนุญาตให้นักพัฒนาแอปบุคคลที่สามแจ้งผู้ใช้เกี่ยวกับกิจกรรมที่น่าสนใจและ
ดึงดูดผู้ใช้ ความสนใจโดยใช้ส่วนประกอบฮาร์ดแวร์ (เช่น เสียง การสั่น
และแสง) และฟีเจอร์ของซอฟต์แวร์ (เช่น หน้าต่างแจ้งเตือน แถบระบบ) ของ
อุปกรณ์
3.8.3.1 การนำเสนอการแจ้งเตือน
หากการนำอุปกรณ์ไปใช้งานอนุญาตให้แอปของบุคคลที่สามแจ้งเตือนผู้ใช้เกี่ยวกับเหตุการณ์ที่น่าจดจำ สิ่งที่จะเกิดขึ้นมีดังนี้
- [C-1-1] ต้องรองรับการแจ้งเตือนที่ใช้ฟีเจอร์ของฮาร์ดแวร์ตามที่อธิบายไว้ใน เอกสารประกอบเกี่ยวกับ SDK และในขอบเขตที่เป็นไปได้สำหรับการใช้งานอุปกรณ์ ฮาร์ดแวร์ ตัวอย่างเช่น หากการติดตั้งอุปกรณ์มีเครื่องสั่นด้วย ก็ต้อง ใช้ API การสั่นอย่างถูกต้อง หากไม่มีการติดตั้งใช้งานอุปกรณ์ API ที่เกี่ยวข้องจะต้องใช้งานเป็นแบบไม่ต้องดำเนินการ ลักษณะการทำงานนี้ ดูรายละเอียดเพิ่มเติมในส่วนที่ 7
- [C-1-2] ต้องแสดงผลทรัพยากรทั้งหมดอย่างถูกต้อง (ไอคอน ไฟล์ภาพเคลื่อนไหว ฯลฯ) ที่มีให้ใน API หรือใน คู่มือรูปแบบไอคอนของแถบสถานะ/แถบระบบ แม้ส่วนขยายอาจนำเสนอประสบการณ์ของผู้ใช้ ในรูปแบบอื่นสำหรับการแจ้งเตือน มากกว่าที่ได้จากการใช้งานโอเพนซอร์ส Android อ้างอิง
- [C-1-3] ต้องให้เกียรติและดำเนินการตามพฤติกรรมที่อธิบายไว้สำหรับ API เพื่ออัปเดต นำออก และการแจ้งเตือนกลุ่ม
- [C-1-4] ต้องระบุลักษณะการทำงานทั้งหมดของ NotificationChannel API ที่บันทึกไว้ใน SDK
- [C-1-5] ต้องเสนอค่าตอบแทนของผู้ใช้ในการบล็อกและแก้ไข การแจ้งเตือนของแอปของบุคคลที่สามในแต่ละช่องและระดับแพ็กเกจแอป
- [C-1-6] ต้องให้สิทธิ์เข้าถึงแก่ผู้ใช้ในการแสดงการแจ้งเตือนที่ลบไปแล้ว แชแนล
[C-1-7] ต้องแสดงผลทรัพยากรทั้งหมดอย่างถูกต้อง (รูปภาพ สติกเกอร์ ไอคอน ฯลฯ) ที่ให้บริการผ่าน Notification.MessagingStyle ข้างข้อความแจ้งเตือนโดยไม่มีการโต้ตอบเพิ่มเติมจากผู้ใช้ สำหรับ เช่น ต้องแสดงทรัพยากรทั้งหมด รวมถึงไอคอนที่จัดเตรียมให้ android.app.Person ในการสนทนากลุ่มที่ใช้ตั้งค่า setGroupConversation
[C-SR-1] ได้รับการแนะนำอย่างยิ่งให้จ่ายเงินแก่ผู้ใช้ในการ ควบคุมการแจ้งเตือนที่จะแสดงในแอปที่ได้รับสิทธิ์ สิทธิ์ฟังการแจ้งเตือน ต้องมีรายละเอียด เพื่อให้ผู้ใช้สามารถ ควบคุมสำหรับ Listener การแจ้งเตือนแต่ละรายการว่าการแจ้งเตือนประเภทใด ที่เชื่อมโยงมายัง Listener นี้ ประเภทต้องมี "การสนทนา" "การแจ้งเตือน" "ปิดเสียง" และ "การดำเนินการที่สำคัญอย่างต่อเนื่อง" การแจ้งเตือน
[C-SR-2] แนะนำอย่างยิ่งให้ทางเลือกแก่ผู้ใช้ในการระบุ แอปที่ยกเว้นไม่ให้แจ้งเตือนผู้ฟังการแจ้งเตือนที่เจาะจงได้
[C-SR-3] ได้รับการแนะนำอย่างยิ่งให้แสดงค่าตอบแทนของผู้ใช้โดยอัตโนมัติ บล็อกการแจ้งเตือนของแอปบุคคลที่สามบางรายการสำหรับแต่ละช่องและแอป ระดับแพ็กเกจหลังจากที่ผู้ใช้ปิดการแจ้งเตือนดังกล่าวหลายครั้ง
ควรรองรับการแจ้งเตือนที่สมบูรณ์
ควรแสดงการแจ้งเตือนที่มีลำดับความสำคัญสูงกว่าเป็นการแจ้งเตือนล่วงหน้า
ผู้ใช้ควรสามารถเลื่อนการแจ้งเตือน
อาจจัดการได้เฉพาะระดับการมองเห็นและช่วงเวลาที่แอปของบุคคลที่สามสามารถแจ้งเตือนได้เท่านั้น ผู้ใช้เหตุการณ์ที่โดดเด่นเพื่อลดปัญหาด้านความปลอดภัย เช่น สิ่งรบกวนผู้ขับขี่
Android 11 เพิ่มการรองรับการแจ้งเตือนการสนทนา การแจ้งเตือนที่ใช้ MessagingStyle และระบุรหัสทางลัดของ People ที่เผยแพร่แล้ว
การติดตั้งใช้งานอุปกรณ์
- [C-SR-4] ได้รับการแนะนำอย่างยิ่งให้จัดกลุ่มและแสดงผล
conversation notifications
ก่อนการแจ้งเตือนที่ไม่ใช่การสนทนา ยกเว้น การแจ้งเตือนบริการที่ทำงานอยู่เบื้องหน้าและimportance:high
การแจ้งเตือน
หากการใช้งานอุปกรณ์รองรับ conversation notifications
และแอปให้ข้อมูลที่จำเป็นสำหรับ
bubbles
พวกเขา:
- [C-SR-5] แนะนำให้แสดงการสนทนานี้เป็นบับเบิล การติดตั้งใช้งาน AOSP จะเป็นไปตามข้อกำหนดเหล่านี้ด้วย UI เริ่มต้นของระบบ การตั้งค่าและ Launcher
หากอุปกรณ์รองรับการแจ้งเตือนที่สมบูรณ์ สิ่งที่จะเกิดขึ้นมีดังนี้
- [C-2-1] ต้องใช้แหล่งข้อมูลที่ถูกต้อง
ที่ให้บริการผ่าน
Notification.Style
คลาส API และคลาสย่อยสำหรับองค์ประกอบทรัพยากรที่แสดง - ควรนำเสนอองค์ประกอบทรัพยากรทั้งหมด (เช่น
ไอคอน ชื่อ และข้อความสรุป) ที่กำหนดไว้ใน
Notification.Style
คลาส API และคลาสย่อย
การแจ้งเตือนล่วงหน้าคือการแจ้งเตือนที่ แสดงแก่ผู้ใช้เนื่องจากมาจากแพลตฟอร์มที่ผู้ใช้ เปิดอยู่ หากการใช้งานอุปกรณ์รองรับการแจ้งเตือน การแจ้งเตือน จากนั้นจะดำเนินการดังนี้
- [C-3-1] ต้องใช้มุมมองทรัพยากรการแจ้งเตือนล่วงหน้าและทรัพยากร
ตามที่อธิบายไว้ใน
Notification.Builder
คลาส API เมื่อมีการแสดงการแจ้งเตือนล่วงหน้า - [C-3-2] ต้องแสดงการดำเนินการที่ได้จาก
Notification.Builder.addAction()
กับเนื้อหาการแจ้งเตือนโดยไม่ต้องมีการโต้ตอบเพิ่มเติมจากผู้ใช้ ตามที่อธิบายไว้ใน SDK
3.8.3.2 บริการฟังการแจ้งเตือน
Android มี NotificationListenerService
API ที่อนุญาตให้แอป (เมื่อเปิดใช้อย่างชัดแจ้งโดยผู้ใช้) รับสำเนาของ
การแจ้งเตือนทั้งหมดเมื่อมีการโพสต์หรืออัปเดต
การติดตั้งใช้งานอุปกรณ์
- [C-0-1] ต้องอัปเดตการแจ้งเตือนทั้งหมดอย่างถูกต้องและทันท่วงที บริการ Listener ที่ติดตั้งและเปิดใช้ ดังกล่าวทั้งหมด รวมถึง ข้อมูลเมตาทั้งหมดที่แนบมากับออบเจ็กต์การแจ้งเตือน
- [C-0-2] ต้องเป็นไปตาม
snoozeNotification()
เรียก API และปิดการแจ้งเตือนและทำการติดต่อกลับหลังจากปิดเสียงเตือนชั่วคราว ระยะเวลาที่กำหนดไว้ในการเรียก API
หากการติดตั้งอุปกรณ์ทำให้ผู้ใช้สามารถเลื่อนการแจ้งเตือนได้ สิ่งที่จะเกิดขึ้นมีดังนี้
- [C-1-1] ต้องแสดงสถานะการแจ้งเตือนที่เลื่อนการแจ้งเตือนอย่างถูกต้อง
ผ่าน API มาตรฐาน เช่น
NotificationListenerService.getSnoozedNotifications()
- [C-1-2] ต้องทำให้ผู้ใช้รายนี้มีกำลังมากพอที่จะเลื่อนการแจ้งเตือน จากแอปพลิเคชันของบุคคลที่สามที่ติดตั้งแต่ละแอป เว้นแต่ว่าจะมาจาก บริการที่ทำงานอยู่เบื้องหน้า/ถาวร
3.8.3.3 DND (ห้ามรบกวน) / โหมดลำดับความสำคัญ
หากการใช้งานอุปกรณ์รองรับฟีเจอร์ DND (หรือเรียกว่าโหมดลำดับความสำคัญสูง) ดังนี้
- [C-1-1] ต้องเมื่อการติดตั้งใช้งานอุปกรณ์ได้มอบวิธีการแก่ผู้ใช้ เพื่อให้สิทธิ์หรือปฏิเสธแอปของบุคคลที่สามในการเข้าถึงการกำหนดค่านโยบาย DND แสดงกฎ DND อัตโนมัติ ที่สร้างโดยแอปพลิเคชัน ควบคู่ไปกับกฎที่ผู้ใช้สร้างและที่กำหนดไว้ล่วงหน้า
- [C-1-3] ต้องปฏิบัติตาม
suppressedVisualEffects
ค่าที่ส่งไปพร้อมกับNotificationManager.Policy
และหากแอปได้ตั้งค่า SUPPRESSED_EFFECT_SCREEN_OFF หรือ SUPPRESSED_EFFECT_SCREEN_ON ควรแจ้งผู้ใช้ว่า ระงับเอฟเฟกต์ภาพในเมนูการตั้งค่า DND
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
3.8.3.4 การป้องกันการแจ้งเตือนที่มีความละเอียดอ่อน
ข้อมูลการแจ้งเตือนที่ละเอียดอ่อนจะรวมถึงเนื้อหาอย่างเช่นรหัสผ่านที่สามารถใช้งานได้เพียงครั้งเดียว รหัสยืนยันแบบครั้งเดียว และการตรวจสอบสิทธิ์หรือรีเซ็ตรหัสที่คล้ายกันที่ ปรากฏใน การแจ้งเตือน ให้แก่ผู้ใช้
หากการใช้งานอุปกรณ์อนุญาตให้แอปของบุคคลที่สาม แจ้งเตือนผู้ใช้เกี่ยวกับเหตุการณ์ที่น่าจดจำ ดังนี้
[C-1-1] ต้องปกปิดข้อมูลการแจ้งเตือนที่มีความละเอียดอ่อนไม่ให้ส่งผ่านไปยัง Listener การแจ้งเตือน เว้นแต่บริการ Listener เป็นหนึ่งในรายการต่อไปนี้
- แอปที่ลงชื่อในระบบด้วย
uid
< 10,000 - UI ของระบบ
- เปลือกหอย
- แอปอุปกรณ์ที่ใช้ร่วมกันที่กําหนด (กําหนดโดย
CompanionDeviceManager
) - บทบาท
SYSTEM_AUTOMOTIVE_PROJECTION
- บทบาท
SYSTEM_NOTIFICATION_INTELLIGENCE
- บทบาทในบ้าน
- แอปที่ลงชื่อในระบบด้วย
การนำ AOSP มาใช้สำหรับ
NotificationAssistantServices
เป็นตัวอย่างและเป็นไปตามข้อกำหนดเหล่านี้ โปรดดู
android.ext.services.notification
สิ้นสุดข้อกำหนดใหม่
3.8.4 API การสนับสนุน
Android มี Assist API เพื่อให้แอปพลิเคชันเลือกได้ว่าจะให้ ข้อมูลในบริบทปัจจุบันมากน้อยแค่ไหน แชร์กับ Assistant ในอุปกรณ์
หากการติดตั้งใช้งานอุปกรณ์รองรับการดำเนินการสนับสนุน การดำเนินการต่อไปนี้จะเกิดขึ้น
- [C-2-1] ต้องระบุอย่างชัดเจนถึงผู้ใช้ปลายทางเมื่อมีการแชร์บริบท โดย
อย่างใดอย่างหนึ่งต่อไปนี้
- ทุกครั้งที่แอปผู้ช่วยเข้าถึงบริบท ระบบจะแสดงไอคอนสีขาว รอบขอบหน้าจอที่ด้านหรือเกินระยะเวลาและ ความสว่างของการติดตั้งใช้งานโปรเจ็กต์โอเพนซอร์ส Android
- สำหรับแอปผู้ช่วยที่ติดตั้งไว้ล่วงหน้า ทำให้ผู้ใช้เสียค่าใช้จ่ายน้อยกว่า การนำทางห่างจาก การป้อนข้อมูลด้วยเสียงเริ่มต้นและเมนูการตั้งค่าแอป Assistant และแชร์เฉพาะบริบทเมื่อมีการเรียกใช้แอปผู้ช่วยอย่างชัดแจ้งเท่านั้น ผู้ใช้ผ่านคำสั่งให้ดำเนินการหรือแป้นนำทางช่วย
- [C-2-2] การโต้ตอบที่กำหนดเพื่อเปิดแอปผู้ช่วยตามที่อธิบายไว้
ในส่วนที่ 7.2.3 "ต้องเปิดใช้งานรายการที่ผู้ใช้เลือก"
แอปผู้ช่วย ซึ่งก็คือแอปที่ใช้
VoiceInteractionService
หรือกิจกรรมที่จัดการ IntentACTION_ASSIST
3.8.5 การแจ้งเตือนและขนมปังปิ้ง
แอปพลิเคชันสามารถใช้Toast
API เพื่อแสดงสตริงสั้นๆ ที่ไม่ใช่โมดัลแก่ผู้ใช้ปลายทางซึ่งจะหายไปหลังจาก
ระยะเวลาสั้นๆ และใช้ TYPE_APPLICATION_OVERLAY
API ประเภทหน้าต่างเพื่อแสดงหน้าต่างการแจ้งเตือนเป็นหน้าต่างวางซ้อนเหนือแอปอื่นๆ
หากการใช้งานอุปกรณ์มีหน้าจอหรือเอาต์พุตวิดีโอ ระบบจะดำเนินการดังต่อไปนี้
[C-1-1] ต้องระบุราคาที่ผู้ใช้จะสามารถบล็อกแอปไม่ให้แสดงการแจ้งเตือน หน้าต่างที่ใช้
TYPE_APPLICATION_OVERLAY
การใช้งาน AOSP เป็นไปตามข้อกำหนดนี้โดยการควบคุมในหน้าต่างแจ้งเตือน[C-1-2] ต้องปฏิบัติตาม Toast API และแสดง Toasts จากแอปพลิเคชันแก่ผู้ใช้ปลายทางใน ลักษณะที่มองเห็นได้ง่าย
3.8.6 ธีม
แอนดรอยด์มี "ธีม" เป็นกลไกสำหรับแอปพลิเคชันในการนำรูปแบบไปใช้ กิจกรรมหรือแอปพลิเคชันทั้งหมด
Android มี "Holo" และ "วัสดุ" กลุ่มธีมเป็นชุดรูปแบบที่กำหนด ที่นักพัฒนาแอปพลิเคชันใช้ในกรณีที่ พวกเขาต้องการจับคู่ รูปลักษณ์ของธีมโฮโล ตามที่กำหนดโดย Android SDK
หากการใช้งานอุปกรณ์มีหน้าจอหรือเอาต์พุตวิดีโอ ระบบจะดำเนินการดังต่อไปนี้
- [C-1-1] ต้องไม่เปลี่ยนแปลงแอตทริบิวต์ธีม Holo ที่แสดง แอปพลิเคชัน
- [C-1-2] ต้องรองรับ "Material" ธีมของ Google และต้องไม่ดัดแปลง แอตทริบิวต์ธีมวัสดุ หรือเนื้อหาที่เปิดเผยต่อแอปพลิเคชัน
[C-1-3] ต้องตั้งค่า "sans-serif" ชุดแบบอักษรเป็น Roboto เวอร์ชัน 2.x สำหรับภาษาต่างๆ ที่ Roboto รองรับ หรือมอบค่าตอบแทนของผู้ใช้ในการเปลี่ยนแบบอักษรที่ใช้ สำหรับ "sans-serif" ชุดแบบอักษรเป็น Roboto เวอร์ชัน 2.x สำหรับภาษาที่ Roboto รองรับ
[C-1-4] ต้องสร้างชุดโทนสีไดนามิกตามที่ระบุใน AOSP เอกสารประกอบของ
Settings.THEME_CUSTOMIZATION_OVERLAY_PACKAGES
(ดูandroid.theme.customization.system_palette
และandroid.theme.customization.theme_style
)[C-1-5] ต้องสร้างชุดโทนสีไดนามิกโดยใช้รูปแบบธีมสี แจกแจงใน
Settings.THEME_CUSTOMIZATION_OVERLAY_PACKAGES
(ดูandroid.theme.customization.theme_styles
) ได้แก่TONAL_SPOT
,VIBRANT
,EXPRESSIVE
,SPRITZ
,RAINBOW
FRUIT_SALAD
และMONOCHROMATIC
"สีของแหล่งที่มา" ใช้ในการสร้างชุดโทนสีแบบไดนามิกเมื่อส่ง
android.theme.customization.system_palette
(ตามที่บันทึกไว้ในSettings.THEME_CUSTOMIZATION_OVERLAY_PACKAGES
)[C-1-6] ต้องมีค่าความคมชัด
CAM16
เท่ากับ 5 ขึ้นไปควรได้มาจากวอลเปเปอร์ผ่านทาง
com.android.systemui.monet.ColorScheme#getSeedColors
ซึ่งให้ สีแหล่งที่มาที่ถูกต้องหลายสีให้เลือกควรใช้ค่า
0xFF1B6EF3
หากไม่มีสีที่ระบุตรง ข้อกำหนดสีต้นฉบับข้างต้น
Android ยังมี "ค่าเริ่มต้นของอุปกรณ์" กลุ่มธีมเป็นชุดรูปแบบที่กำหนด ให้นักพัฒนาแอปพลิเคชันใช้หากต้องการ ให้สอดคล้องกับรูปลักษณ์ของ ธีมของอุปกรณ์ตามที่ผู้ติดตั้งใช้งานอุปกรณ์กำหนด
- การใช้งานอุปกรณ์อาจแก้ไขแอตทริบิวต์ธีมเริ่มต้นของอุปกรณ์ที่แสดง แอปพลิเคชัน
Android สนับสนุนธีมของตัวแปรที่มีแถบระบบโปร่งแสง ซึ่งช่วยให้ เพื่อเติมพื้นที่ด้านหลังสถานะและแถบนำทาง กับเนื้อหาแอป เพื่อให้นักพัฒนาแอปได้รับประสบการณ์ที่สอดคล้องกัน การกำหนดค่า สิ่งสำคัญคือต้องคงรูปแบบไอคอนของแถบสถานะไว้ การใช้งานอุปกรณ์ที่แตกต่างกัน
หากการใช้งานอุปกรณ์มีแถบสถานะของระบบ ระบบจะดำเนินการดังต่อไปนี้
- [C-2-1] ต้องใช้สีขาวสำหรับไอคอนสถานะของระบบ (เช่น ความแรงของสัญญาณและ ระดับแบตเตอรี่) และการแจ้งเตือนที่ระบบออกให้ ยกเว้นกรณีที่ไอคอน การแสดงสถานะที่เป็นปัญหาหรือแอปขอแถบสถานะไฟโดยใช้ WindowInsetsController#APPEARANCE_LIGHT_STATUS_BARS แจ้ง
- [C-2-2] การใช้งานอุปกรณ์ Android ต้องเปลี่ยนสีของระบบ ไอคอนสถานะให้เป็นสีดำ (โปรดดูรายละเอียดใน R.style) เมื่อแอป ขอแถบสถานะไฟ
3.8.7 วอลเปเปอร์เคลื่อนไหว
Android กําหนดประเภทคอมโพเนนต์ รวมถึง API และวงจรที่เกี่ยวข้องซึ่งช่วยให้ แอปพลิเคชันเพื่อแสดง "วอลเปเปอร์เคลื่อนไหว" ต่อผู้ใช้ปลายทาง วอลเปเปอร์เคลื่อนไหวเป็นภาพเคลื่อนไหว ลวดลาย หรือรูปภาพที่คล้ายกัน พร้อมความสามารถในการป้อนข้อมูลที่จำกัดซึ่งแสดงเป็นวอลเปเปอร์ โดยอยู่หลัง แอปพลิเคชัน
ฮาร์ดแวร์ถือว่าสามารถเรียกใช้วอลเปเปอร์เคลื่อนไหวได้อย่างน่าเชื่อถือหากทำงานได้ วอลเปเปอร์เคลื่อนไหวทั้งหมดโดยไม่มีข้อจำกัดฟังก์ชันต่างๆ ในเฟรมที่เหมาะสม โดยไม่มีผลเสียต่อแอปพลิเคชันอื่นๆ หากข้อจำกัดใน ฮาร์ดแวร์ทำให้วอลเปเปอร์และ/หรือแอปพลิเคชันขัดข้อง ทำงานผิดปกติ ใช้ กำลัง CPU หรือแบตเตอรี่มากเกินไป หรือมีอัตราเฟรมต่ำ ซึ่งยอมรับไม่ได้ ฮาร์ดแวร์ถือว่าไม่สามารถใช้งานวอลเปเปอร์เคลื่อนไหวได้ ตัวอย่างเช่น วอลเปเปอร์เคลื่อนไหวอาจใช้บริบท OpenGL 2.0 หรือ 3.x ในการแสดงผลเนื้อหา วอลเปเปอร์เคลื่อนไหวจะไม่ทำงานอย่างเสถียรบนฮาร์ดแวร์ที่ไม่รองรับ บริบท OpenGL เนื่องจากการใช้วอลเปเปอร์เคลื่อนไหวของบริบท OpenGL อาจขัดแย้งกัน กับแอปพลิเคชันอื่นๆ ที่ใช้บริบท OpenGL เช่นกัน
- การติดตั้งใช้งานอุปกรณ์สามารถใช้วอลเปเปอร์เคลื่อนไหวได้อย่างน่าเชื่อถือตามที่อธิบายไว้ ด้านบน ควรใช้วอลเปเปอร์เคลื่อนไหว
หากอุปกรณ์ที่ใช้วอลเปเปอร์เคลื่อนไหว จะมีการดำเนินการดังนี้
- [C-1-1] ต้องรายงานแฟล็กฟีเจอร์แพลตฟอร์ม android.software.live_wallpaper
3.8.8 การสลับกิจกรรม
ซอร์สโค้ด Android ต้นทางประกอบด้วย หน้าจอภาพรวม อินเทอร์เฟซผู้ใช้ระดับระบบสำหรับการสลับงานและการแสดงที่เข้าถึงล่าสุด กิจกรรมและงานต่างๆ ที่ใช้ภาพขนาดย่อของกราฟิกของแอปพลิเคชัน ณ เวลาที่ผู้ใช้ออกจากแอปพลิเคชันครั้งสุดท้าย
การติดตั้งใช้งานอุปกรณ์ รวมถึงแป้นนำทางฟังก์ชันล่าสุดตามรายละเอียดใน ส่วนที่ 7.2.3 อาจปรับเปลี่ยนอินเทอร์เฟซได้
หากใช้อุปกรณ์รวมถึงคีย์การนำทางฟังก์ชันล่าสุดตามรายละเอียดใน ส่วนที่ 7.2.3 ปรับเปลี่ยนอินเทอร์เฟซ ซึ่งจะดำเนินการดังนี้
- [C-1-1] ต้องรองรับกิจกรรมที่แสดงอย่างน้อย 7 รายการ
- ควรแสดงชื่อกิจกรรม 4 รายการต่อครั้งเป็นอย่างน้อย
- ควรแสดงสีไฮไลต์ ไอคอน และชื่อหน้าจอในช่วงล่าสุด
- ควรแสดงราคาปิด ("x") แต่อาจล่าช้าจนกว่าผู้ใช้จะโต้ตอบกับหน้าจอ
- ควรใช้ทางลัดเพื่อสลับไปยังกิจกรรมก่อนหน้าได้อย่างง่ายดาย
- ควรทริกเกอร์การทำงานสลับอย่างรวดเร็วระหว่างตัวเลือกที่ใช้งานล่าสุด เมื่อมีการแตะแป้นฟังก์ชันล่าสุด 2 ครั้ง
- ควรทริกเกอร์โหมดหลายหน้าต่างแยกหน้าจอ (หากรองรับ) เมื่อ มีการกดแป้นฟังก์ชันล่าสุดค้างไว้
- อาจแสดงรายการล่าสุดที่เชื่อมโยงเป็นกลุ่มที่ย้ายไปด้วยกัน
- [C-SR-1] แนะนําอย่างยิ่งให้ใช้ผู้ใช้ Android อัปสตรีม (หรืออินเทอร์เฟซที่ใช้ภาพขนาดย่อที่คล้ายกัน) สำหรับหน้าจอภาพรวม
3.8.9 การจัดการอินพุต
Android รองรับ การจัดการอินพุต และรองรับตัวแก้ไขวิธีการป้อนข้อมูลของบุคคลที่สาม
หากการใช้งานอุปกรณ์อนุญาตให้ผู้ใช้ใช้วิธีการป้อนข้อมูลของบุคคลที่สามใน ได้
- [C-1-1] ต้องประกาศฟีเจอร์แพลตฟอร์ม android.software.input_methods และ รองรับ IME API ตามที่กำหนดไว้ในเอกสารประกอบ Android SDK
3.8.10 การควบคุมสื่อสำหรับหน้าจอล็อก
API ไคลเอ็นต์การควบคุมระยะไกลเลิกใช้งานแล้วจาก Android 5.0 เพื่อสนับสนุน เทมเพลตการแจ้งเตือนสื่อ ที่ทำให้แอปพลิเคชันสื่อสามารถผสานรวมกับตัวควบคุมการเล่นที่ ที่แสดงบนหน้าจอล็อก
3.8.11 ภาพพักหน้าจอ (ก่อนหน้านี้เรียกว่า Dreams)
ดูการตั้งค่าในส่วนที่ 3.2.3.5 ในการกำหนดเป้าหมายโปรแกรมรักษาหน้าจอ
3.8.12 ตำแหน่ง
หากการใช้งานอุปกรณ์มีเซ็นเซอร์ฮาร์ดแวร์ (เช่น GPS) ที่สามารถ ในการให้พิกัดตำแหน่ง
- [C-1-2] ต้องแสดงสถานะปัจจุบันของตำแหน่ง ในเมนูตำแหน่งภายใน "การตั้งค่า"
- [C-1-3] ต้องไม่แสดงโหมดตำแหน่ง ในเมนูตำแหน่งภายใน "การตั้งค่า"
3.8.13 Unicode และแบบอักษร
Android รองรับอักขระอีโมจิที่กำหนดไว้ใน Unicode 10.0
หากการใช้งานอุปกรณ์มีหน้าจอหรือเอาต์พุตวิดีโอ ระบบจะดำเนินการดังต่อไปนี้
- [C-1-1] ต้องแสดงภาพอักขระอีโมจิเหล่านี้เป็นรูปอักขระสีได้
- [C-1-2] ต้องมีการสนับสนุนสำหรับ:
- แบบอักษร Roboto 2 ที่มีน้ำหนักต่างกัน เช่น sans-serif-thin, sans-serif-light sans-serif-medium, sans-serif-black, sans-serif-condensed, sans-serif-condensed-light สำหรับภาษาที่พร้อมใช้งานในอุปกรณ์
- ครอบคลุม Unicode 7.0 แบบสมบูรณ์ในละติน กรีก และซีริลลิก รวมถึง ภาษาละติน Extended A, B, C และ D และรูปอักขระทั้งหมดในสกุลเงิน บล็อกสัญลักษณ์ของ Unicode 7.0
- [C-1-3] ต้องไม่นำออกหรือแก้ไข NotoColorEmoji.tff ในอิมเมจระบบ (คุณสามารถเพิ่มแบบอักษรอีโมจิใหม่เพื่อแทนที่อีโมจิใน NotoColorEmoji.tff)
- ควรรองรับสีผิวและอีโมจิที่หลากหลายสำหรับครอบครัวตามที่ระบุไว้ใน รายงานทางเทคนิคของ Unicode #51
หากอุปกรณ์มี IME รวมอยู่ด้วย ระบบจะดำเนินการดังนี้
- ควรระบุวิธีการป้อนข้อมูลสำหรับอักขระอีโมจิเหล่านี้ให้แก่ผู้ใช้
Android รองรับการแสดงผลแบบอักษรภาษาเมียนมา เมียนมามี แบบอักษรที่ไม่ปฏิบัติตาม Unicode หรือที่รู้จักกันโดยทั่วไปว่า "Zawgyi" สำหรับการแสดงภาพเมียนมา ภาษา
หากการติดตั้งใช้งานอุปกรณ์ครอบคลุมการรองรับภาษาพม่า การใช้งานจะส่งผลดังนี้
- [C-2-1] ต้องแสดงผลข้อความที่ใช้แบบอักษรที่สอดคล้องกับ Unicode เป็นค่าเริ่มต้น แบบอักษรที่ไม่สอดคล้องกับ Unicode ต้องไม่ตั้งเป็นแบบอักษรเริ่มต้น เว้นแต่ผู้ใช้ ให้เลือกในตัวเลือกภาษา
- [C-2-2] ต้องรองรับแบบอักษร Unicode และแบบอักษรที่ไม่สอดคล้องกับ Unicode หากมี อุปกรณ์รองรับแบบอักษรที่ไม่สอดคล้องกับ Unicode ไม่ใช่ยูนิโค้ด แบบอักษรที่เป็นไปตามข้อกำหนดต้องไม่ลบหรือเขียนทับแบบอักษร Unicode
- [C-2-3] ต้องแสดงผลข้อความด้วยแบบอักษรที่ไม่สอดคล้องกับ Unicode เฉพาะ IF a รหัสภาษาที่มี โค้ดสคริปต์ Qaag (เช่น my-Qaag) ไม่มีภาษา ISO หรือรหัสภูมิภาคอื่นๆ (ไม่ว่าจะ ไม่ได้กำหนด ไม่ได้กำหนด หรือจองแล้ว) สามารถใช้เพื่ออ้างอิงถึงรายการที่ไม่ใช่ Unicode แบบอักษรที่สอดคล้องกับเมียนมา นักพัฒนาแอปและผู้เขียนหน้าเว็บสามารถ ระบุ my-Qaag เป็นรหัสภาษาที่กำหนดเช่นเดียวกับ ภาษาอื่น
3.8.14 หลายหน้าต่าง
หากการติดตั้งใช้งานอุปกรณ์สามารถแสดงกิจกรรมหลายอย่างที่ ในขณะเดียวกัน
- [C-1-1] ต้องใช้โหมดหลายหน้าต่างดังกล่าวตาม การทำงานของแอปพลิเคชันและ API ที่อธิบายไว้ใน Android SDK เอกสารสนับสนุนโหมดหลายหน้าต่าง และ Meet ข้อกำหนดต่อไปนี้
- [C-1-2] ต้องทำตาม
android:resizeableActivity
ที่กำหนดโดยแอปในไฟล์AndroidManifest.xml
ตามที่อธิบายไว้ใน SDK นี้ - [C-1-3] ต้องไม่เสนอโหมดแยกหน้าจอหรือโหมดอิสระ ความสูงหน้าจอน้อยกว่า 440 dp และความกว้างหน้าจอน้อยกว่า 440 dp
- [C-1-4] ต้องไม่ปรับขนาดกิจกรรมให้มีขนาดเล็กกว่า 220dp โหมดหลายหน้าต่างนอกเหนือจากการแสดงภาพซ้อนภาพ
- การใช้งานอุปกรณ์ที่มีขนาดหน้าจอ
xlarge
ควรรองรับรูปแบบอิสระ
หากการใช้งานอุปกรณ์รองรับโหมดหลายหน้าต่างและการแยกหน้าจอ ได้
- [C-2-2] ต้องครอบตัดกิจกรรมที่อยู่บนแท่นชาร์จของโหมดแยกหน้าจอหลายหน้าต่าง แต่ ควรแสดงเนื้อหาบางส่วน หากแอป Launcher เป็นหน้าต่างที่โฟกัสอยู่
- [C-2-3] ต้องปฏิบัติตาม
AndroidManifestLayout_minWidth
ที่ประกาศไว้ และAndroidManifestLayout_minHeight
ของแอปพลิเคชันตัวเรียกใช้งานของบุคคลที่สาม และไม่แทนที่ค่าเหล่านี้ ในการแสดงเนื้อหา ของกิจกรรมบนแท่นชาร์จ
หากการใช้งานอุปกรณ์รองรับโหมดหลายหน้าต่างและการแสดงภาพซ้อนภาพ โหมดหลายหน้าต่าง
- [C-3-1] ต้องเปิดกิจกรรมในโหมดหลายหน้าต่างแบบการแสดงภาพซ้อนภาพ
เมื่อแอป
* API ที่กำหนดเป้าหมายระดับ 26 ขึ้นไปและประกาศ
android:supportsPictureInPicture
* API เป้าหมายระดับ 25 หรือต่ำกว่า และประกาศทั้งandroid:resizeableActivity
และandroid:supportsPictureInPicture
- [C-3-2] ต้องแสดงการดำเนินการใน SystemUI เป็น
ที่ระบุโดยกิจกรรม PIP ปัจจุบันผ่าน
setActions()
API - [C-3-3] ต้องรองรับสัดส่วนภาพที่มากกว่าหรือเท่ากับ
1:2.39 และน้อยกว่าหรือเท่ากับ 2.39:1 ตามที่ระบุโดยกิจกรรม PIP ผ่าน
setAspectRatio()
API - [C-3-4] ต้องใช้
KeyEvent.KEYCODE_WINDOW
เพื่อควบคุมหน้าต่าง PIP หากไม่ได้ใช้โหมด PIP คีย์ต้องเป็น ในกิจกรรมเบื้องหน้า - [C-3-5] ต้องระบุราคาที่ผู้ใช้จะสามารถบล็อกแอปไม่ให้แสดงใน โหมด PIP การติดตั้งใช้งาน AOSP จะเป็นไปตามข้อกำหนดนี้ ในหน้าต่างแจ้งเตือน
[C-3-6] ต้องจัดสรรความกว้างและความสูงขั้นต่ำต่อไปนี้สำหรับ PIP เมื่อแอปพลิเคชันไม่ได้ประกาศค่า
AndroidManifestLayout_minWidth
และAndroidManifestLayout_minHeight
:- อุปกรณ์ที่มี Configuration.uiMode ที่ตั้งค่าไว้นอกเหนือจาก
UI_MODE_TYPE_TELEVISION
ต้องจัดสรรความกว้างและความสูงขั้นต่ำเป็น 108 dp - อุปกรณ์ที่มี Configuration.uiMode ที่ตั้งค่าเป็น
UI_MODE_TYPE_TELEVISION
ต้องจัดสรรความกว้างขั้นต่ำเป็น 240 dp และความสูงขั้นต่ำเป็น 135 dp
- อุปกรณ์ที่มี Configuration.uiMode ที่ตั้งค่าไว้นอกเหนือจาก
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
หากการใช้งานอุปกรณ์ใช้งานร่วมกับ Android ได้มากกว่า 1 รายการ พื้นที่แสดงผลและทำให้พื้นที่ดังกล่าวพร้อมใช้งานสำหรับแอป
- [C-4-1] ต้องรองรับโหมดหลายหน้าต่าง
หากการใช้งานอุปกรณ์รองรับโหมดหลายหน้าต่าง การดำเนินการต่อไปนี้จะเกิดขึ้น
- [C-5-1] ต้องใช้ Window Manager Extensions เวอร์ชันที่ถูกต้อง
ระดับ API ตามที่อธิบายไว้ใน
WindowManager
ส่วนขยาย
สิ้นสุดข้อกำหนดใหม่
3.8.15 หน้าจอรอยบาก
Android รองรับหน้าจอรอยบากตามที่อธิบายไว้
ในเอกสาร SDK DisplayCutout
API จะกำหนด
บริเวณขอบของจอแสดงผลที่อาจใช้งานไม่ได้สำหรับแอปพลิเคชัน
เพราะมีหน้าจอโค้งหรือขอบจอโค้ง
หากการใช้งานอุปกรณ์รวมหน้าจอรอยบากไว้ จะมีผลดังนี้
- [C-1-5] ต้องไม่มีรอยบากหากสัดส่วนภาพของอุปกรณ์คือ 1.0(1:1)
- [C-1-2] ต้องไม่มีคัตเอาต์มากกว่า 1 คัตเอาต์ต่อขอบ
- [C-1-3] ต้องปฏิบัติตามแฟล็กหน้าจอรอยบากที่แอปกำหนดผ่าน
WindowManager.LayoutParams
API ตามที่อธิบายไว้ใน SDK - [C-1-4] ต้องรายงานค่าที่ถูกต้องสำหรับเมตริกคัตเอาต์ทั้งหมดที่กำหนดไว้ในฟิลด์
DisplayCutout
API
3.8.16 ระบบควบคุมอุปกรณ์
Android มี ControlsProviderService
และ Control
API เพื่อให้แอปพลิเคชันของบุคคลที่สามเผยแพร่ระบบควบคุมอุปกรณ์เพื่อการดำเนินการได้อย่างรวดเร็ว
สถานะและการดำเนินการสำหรับผู้ใช้
โปรดดูข้อกำหนดเฉพาะอุปกรณ์ในส่วน 2_2_3
3.8.17 คลิปบอร์ด
การติดตั้งใช้งานอุปกรณ์
- [C-0-1] ต้องไม่ส่งข้อมูลคลิปบอร์ดไปยังคอมโพเนนต์ กิจกรรม บริการ หรือ ผ่านการเชื่อมต่อเครือข่ายใดๆ โดยที่ผู้ใช้ไม่ต้องดำเนินการใดๆ อย่างชัดเจน (เช่น กด บนโฆษณาซ้อนทับ) ยกเว้นบริการที่กล่าวถึงใน 9.8.6 การบันทึกเนื้อหาและการค้นหาแอป
หากการนำอุปกรณ์ไปใช้งานจะสร้างการแสดงตัวอย่างที่ผู้ใช้มองเห็นได้เมื่อมีการคัดลอกเนื้อหา
ไปยังคลิปบอร์ดสำหรับรายการ ClipData
ซึ่ง
ClipData.getDescription().getExtras()
มี
android.content.extra.IS_SENSITIVE
มีคุณสมบัติดังนี้
- [C-1-1] ต้องปกปิดตัวอย่างที่ผู้ใช้เห็นได้
การใช้ข้อมูลอ้างอิง AOSP เป็นไปตามข้อกำหนดของคลิปบอร์ดเหล่านี้
3.9 การดูแลระบบของอุปกรณ์
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
Android มีฟีเจอร์ที่อนุญาตให้ใช้งานที่คำนึงถึงความปลอดภัย
แอปพลิเคชัน เปิดใช้งาน
แอปพลิเคชันเครื่องมือควบคุมนโยบายด้านอุปกรณ์เพื่อดำเนินการ
ฟังก์ชันการดูแลระบบอุปกรณ์ในระดับระบบ เช่น การบังคับใช้รหัสผ่าน
หรือดำเนินการล้างข้อมูลจากระยะไกลผ่าน
API การดูแลระบบอุปกรณ์ Android
Device Policy Manager API
- [C-1-1] ต้องประกาศ
android.software.device_admin
- [C-1-2] ต้องรองรับการจัดสรรเจ้าของอุปกรณ์ตามที่อธิบายไว้ใน ส่วนที่ 3.9.1 และ ส่วน 3.9.1.1
สิ้นสุดข้อกำหนดใหม่
3.9.1 การจัดเตรียมอุปกรณ์
3.9.1.1 การจัดสรรเจ้าของอุปกรณ์
การใช้งานอุปกรณ์จะประกาศ android.software.device_admin
ดังต่อไปนี้
- [C-1-1] ต้องรองรับการลงทะเบียนไคลเอ็นต์ Device Policy (DPC) เป็น
แอปของเจ้าของอุปกรณ์
ตามที่อธิบายไว้ด้านล่าง
- เมื่อการใช้งานอุปกรณ์มี
ทั้งผู้ใช้และ
ข้อมูลผู้ใช้ที่กำหนดค่าไว้ ก็จะ:
- [C-1-5] ต้องลงทะเบียนแอปพลิเคชัน DPC เป็นแอปเจ้าของอุปกรณ์
หรือเปิดใช้แอป DPC เพื่อเลือกว่าจะ
ได้เป็นเจ้าของอุปกรณ์หรือเจ้าของโปรไฟล์
หากอุปกรณ์ประกาศการรองรับ Near Field Communications (NFC) ผ่านทาง
ฟีเจอร์แฟล็ก
android.hardware.nfc
และรับข้อความ NFC มีระเบียนที่มีประเภท MIMEMIME_TYPE_PROVISIONING_NFC
- [C-1-8] ต้องส่ง ACTION_GET_PROVISIONING_mode
Intent หลังมีการเรียกใช้การจัดสรรเจ้าของอุปกรณ์ เพื่อให้
แอป DPC เลือกได้ว่าจะเป็นเจ้าของอุปกรณ์หรือโปรไฟล์
เจ้าของ โดยขึ้นอยู่กับค่าของ
android.app.extra.PROVISIONING_ALLOWED_PROVISIONING_MODES
, เว้นแต่ว่าจะระบุได้จาก ที่ระบุว่ามีตัวเลือกที่ถูกต้องเพียงตัวเลือกเดียว - [C-1-9] ต้องระบุ ACTION_ADMIN_POLICY_COMPLIANCE Intent ไปยังแอปเจ้าของอุปกรณ์ หากมีการสร้างเจ้าของอุปกรณ์แล้ว ในระหว่างการจัดสรรโดยไม่คำนึงถึงวิธีการจัดสรร ผู้ใช้ต้องไม่สามารถดำเนินการในวิซาร์ดการตั้งค่าได้จนกว่าจะ แอปของเจ้าของอุปกรณ์ทำงานให้เสร็จสิ้น
- [C-1-5] ต้องลงทะเบียนแอปพลิเคชัน DPC เป็นแอปเจ้าของอุปกรณ์
หรือเปิดใช้แอป DPC เพื่อเลือกว่าจะ
ได้เป็นเจ้าของอุปกรณ์หรือเจ้าของโปรไฟล์
หากอุปกรณ์ประกาศการรองรับ Near Field Communications (NFC) ผ่านทาง
ฟีเจอร์แฟล็ก
- เมื่อการใช้งานอุปกรณ์มี
ผู้ใช้ หรือ
ข้อมูลผู้ใช้ได้อย่างง่ายดาย
- [C-1-7] ต้องไม่ลงทะเบียนแอปพลิเคชัน DPC เป็นแอปเจ้าของอุปกรณ์ และอื่นๆ อีกมากมาย
- เมื่อการใช้งานอุปกรณ์มี
ทั้งผู้ใช้และ
ข้อมูลผู้ใช้ที่กำหนดค่าไว้ ก็จะ:
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
[C-1-2] ต้องแสดงประกาศการเปิดเผยข้อมูลที่เหมาะสม (เช่นที่กล่าวถึงใน AOSP) และรับความยินยอมจากผู้ใช้ปลายทางก่อนใช้งานแอป ถูกตั้งค่าเป็นเจ้าของอุปกรณ์ เว้นแต่จะมีการกำหนดค่าอุปกรณ์แบบเป็นโปรแกรม สำหรับโหมดการสาธิตสำหรับร้านค้าปลีก ก่อนการโต้ตอบของผู้ใช้บนหน้าจอ หากการใช้งานอุปกรณ์ประกาศ
android.software.device_admin
แต่ มีกรรมสิทธิ์ โซลูชันการจัดการอุปกรณ์และจัดให้มีกลไก เพื่อโปรโมตแอปพลิเคชันที่กำหนดค่าในโซลูชันเป็น "เจ้าของอุปกรณ์ เทียบเท่า" "เจ้าของอุปกรณ์" แบบมาตรฐาน ที่รู้จักโดย Android มาตรฐาน ตัวจัดการนโยบายด้านอุปกรณ์ API เหล่านี้มีคุณสมบัติดังนี้[C-2-1] ต้องมีขั้นตอนยืนยันว่าแอปที่ระบุ ได้รับการโปรโมตอยู่ในการจัดการอุปกรณ์ขององค์กรที่ถูกต้องตามกฎหมาย ซึ่งได้รับการกำหนดค่าไว้ในโซลูชันที่เป็นกรรมสิทธิ์ เพื่อรับสิทธิ์เทียบเท่ากับ "เจ้าของอุปกรณ์"
[C-2-2] ต้องแสดงการเปิดเผยความยินยอมของเจ้าของอุปกรณ์ AOSP เดียวกันกับ การดำเนินการโดย
android.app.action.PROVISION_MANAGED_DEVICE
ก่อนลงทะเบียนแอปพลิเคชัน DPC เป็น "เจ้าของอุปกรณ์"[C-2-3] ต้องไม่ฮาร์ดโค้ดความยินยอมหรือป้องกัน การใช้แอปของเจ้าของอุปกรณ์อื่นๆ
สิ้นสุดข้อกำหนดใหม่
3.9.1.2 การจัดสรรโปรไฟล์ที่มีการจัดการ
การใช้งานอุปกรณ์จะประกาศ android.software.managed_users
ดังต่อไปนี้
- [C-1-1] ต้องใช้ API อนุญาตให้แอปพลิเคชัน Device Policy Controller (DPC) เป็น เจ้าของโปรไฟล์ที่มีการจัดการใหม่
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
- [C-1-2] กระบวนการจัดสรรโปรไฟล์ที่มีการจัดการ (ขั้นตอนที่เริ่มต้นโดย DPC โดยใช้ android.app.action.PROVISION_MANAGED_PROFILE) หรือตามแพลตฟอร์ม) หน้าจอขอความยินยอมและประสบการณ์ของผู้ใช้ต้องสอดคล้องกับ การนำ AOSP มาใช้
สิ้นสุดข้อกำหนดใหม่
[C-1-3] ต้องมีค่าใช้จ่ายสำหรับผู้ใช้ต่อไปนี้ภายในการตั้งค่าเพื่อ แจ้งให้ผู้ใช้ทราบเมื่อมีการปิดใช้งานฟังก์ชันของระบบบางอย่างโดย เครื่องมือควบคุมนโยบายด้านอุปกรณ์ (DPC)
- ไอคอนที่สม่ำเสมอหรืออัตราราคาอื่นๆ ของผู้ใช้ (เช่น อัปสตรีม) ไอคอนข้อมูล AOSP) เพื่อแสดงเมื่อการตั้งค่าบางอย่างถูกจำกัดโดย ผู้ดูแลระบบอุปกรณ์
- ข้อความอธิบายสั้นๆ ตามที่ผู้ดูแลระบบอุปกรณ์ระบุไว้ผ่าน
setShortSupportMessage
- ไอคอนของแอปพลิเคชัน DPC
[C-1-4] ต้องเปิดเครื่องจัดการสำหรับ ACTION_PROVISIONING_SUCCESSFUL ในโปรไฟล์งาน หากสร้างเจ้าของโปรไฟล์เมื่อ การจัดสรรเริ่มต้นโดย android.app.action.PROVISION_MANAGED_PROFILE และ DPC ได้ติดตั้งใช้งานเครื่องจัดการแล้ว
[C-1-5] ต้องส่ง ACTION_PROFILE_PROVISIONING_COMPLETE ประกาศไปยัง DPC ของโปรไฟล์งานเมื่อเริ่มต้นการจัดสรรโดย android.app.action.PROVISION_MANAGED_PROFILE Intent
[C-1-6] ต้องส่ง ACTION_GET_PROVISIONING_mode Intent หลังจากมีการเรียกใช้การจัดสรรเจ้าของโปรไฟล์เพื่อให้แอป DPC สามารถเลือกได้ว่าจะเป็นเจ้าของอุปกรณ์หรือเจ้าของโปรไฟล์ ยกเว้นในกรณีที่ การจัดสรรจะทริกเกอร์โดย Intent android.app.action.PROVISION_MANAGED_PROFILE
[C-1-7] ต้องส่ง ACTION_ADMIN_POLICY_COMPLIANCE ข้อมูลในโปรไฟล์งานเมื่อมีการสร้างเจ้าของโปรไฟล์ระหว่าง การจัดสรร โดยไม่คำนึงว่าจะใช้วิธีการจัดสรรใดก็ตาม เมื่อ Intent android.app.action.PROVISION_MANAGED_PROFILE ทริกเกอร์การจัดสรร ผู้ใช้ต้องไม่สามารถดำเนินการในวิซาร์ดการตั้งค่าได้จนกว่าจะ ใช้งานแอปของเจ้าของเสร็จแล้ว
[C-1-8] ต้องส่ง ACTION_MANAGED_PROFILE_PROVISIONED ประกาศไปยัง DPC ของโปรไฟล์ส่วนตัวเมื่อสร้างเจ้าของโปรไฟล์แล้ว ไม่ว่าจะใช้วิธีการจัดสรรแบบใดก็ตาม
3.9.2 การสนับสนุนโปรไฟล์ที่มีการจัดการ
การใช้งานอุปกรณ์จะประกาศ android.software.managed_users
ดังต่อไปนี้
- [C-1-1] ต้องรองรับโปรไฟล์ที่มีการจัดการผ่าน
android.app.admin.DevicePolicyManager
API - [C-1-2] ต้องอนุญาตให้สร้างโปรไฟล์ที่มีการจัดการได้ 1 รายการเท่านั้น
- [C-1-3] ต้องใช้ป้ายไอคอน (คล้ายกับป้ายงานต้นทางของ AOSP) เพื่อ แสดงแอปพลิเคชันและวิดเจ็ตที่มีการจัดการ และองค์ประกอบ UI อื่นๆ ที่มีตราสถานะ เช่น รายการล่าสุดและ การแจ้งเตือน
- [C-1-4] ต้องแสดงไอคอนการแจ้งเตือน (คล้ายกับงานต้นทางของ AOSP ) เพื่อระบุว่ามีผู้ใช้อยู่ในแอปพลิเคชันโปรไฟล์ที่มีการจัดการเมื่อใด
- [C-1-5] ต้องแสดงข้อความโทสต์ที่ระบุว่าผู้ใช้อยู่ในกลุ่มที่มีการจัดการ หากและเมื่ออุปกรณ์เริ่มทำงาน (ACTION_USER_PRESENT) และ แอปพลิเคชันที่ทำงานอยู่เบื้องหน้าอยู่ในโปรไฟล์ที่มีการจัดการ
- [C-1-6] เมื่อมีโปรไฟล์ที่มีการจัดการ ต้องแสดงความสามารถในการมองเห็น "ตัวเลือก" ของ Intent เพื่ออนุญาตให้ผู้ใช้ส่งต่อ Intent จาก โปรไฟล์ให้แก่ผู้ใช้หลัก หรือในทางกลับกัน หากเปิดใช้โดย Device Policy ตัวควบคุม
- [C-1-7] เมื่อมีโปรไฟล์ที่มีการจัดการ ต้องแสดงผู้ใช้ต่อไปนี้
ราคาสำหรับทั้งผู้ใช้หลักและโปรไฟล์ที่มีการจัดการ
- แยกการพิจารณาการใช้งานแบตเตอรี่ ตำแหน่ง ข้อมูลมือถือ และพื้นที่เก็บข้อมูล สำหรับผู้ใช้หลักและโปรไฟล์ที่มีการจัดการ
- การจัดการแอปพลิเคชัน VPN ที่ติดตั้งภายในไฟล์หลักแบบอิสระ ผู้ใช้หรือโปรไฟล์ที่มีการจัดการ
- การจัดการแอปพลิเคชันที่ติดตั้งภายในผู้ใช้หลักอย่างอิสระ หรือโปรไฟล์ที่มีการจัดการ
- การจัดการบัญชีอิสระภายในผู้ใช้หลักหรือจัดการ โปรไฟล์
- [C-1-8] ต้องตรวจสอบให้แน่ใจว่าแป้นโทรศัพท์ รายชื่อติดต่อ และการรับส่งข้อความที่ติดตั้งไว้ล่วงหน้า สามารถค้นหาและค้นหาข้อมูลผู้โทรจาก โปรไฟล์ (หากมี) ควบคู่ไปกับโปรไฟล์จากโปรไฟล์หลัก หาก เครื่องมือควบคุมนโยบายด้านอุปกรณ์อนุญาต
- [C-1-9] ต้องตรวจสอบว่าอุปกรณ์ตรงตามข้อกำหนดด้านความปลอดภัยทั้งหมด ใช้ได้กับอุปกรณ์ที่เปิดใช้ผู้ใช้หลายคน (ดูส่วนที่ 9.5) แม้ว่าโปรไฟล์ที่มีการจัดการ ไม่นับว่าเป็นผู้ใช้รายอื่นนอกเหนือจากผู้ใช้หลัก
- [C-1-10] ต้องตรวจสอบว่าได้บันทึกข้อมูลภาพหน้าจอไว้ในโปรไฟล์งานแล้ว
เมื่อจับภาพหน้าจอด้วย
topActivity
หน้าต่างที่มีโฟกัส (รายการที่ผู้ใช้โต้ตอบด้วยรายการสุดท้ายจากกิจกรรมทั้งหมด) และเป็นของ แอปโปรไฟล์งาน - [C-1-11] ต้องไม่บันทึกเนื้อหาหน้าจออื่นๆ (แถบระบบ การแจ้งเตือนหรือเนื้อหาในโปรไฟล์ส่วนตัวใดๆ) ยกเว้นโปรไฟล์งาน หน้าต่าง/หน้าต่างแอปพลิเคชัน เมื่อบันทึกภาพหน้าจอไปยังโปรไฟล์งาน (เพื่อให้แน่ใจได้ว่า ไม่ได้บันทึกข้อมูลโปรไฟล์ไว้ในโปรไฟล์งาน)
หากการใช้งานอุปกรณ์ประกาศ android.software.managed_users
และ
android.software.secure_lock_screen
กล่าวคือ
- [C-2-1] ต้องรองรับความสามารถในการระบุการประชุมในหน้าจอล็อกแยกต่างหาก
ข้อกำหนดต่อไปนี้เพื่อให้สิทธิ์การเข้าถึงแอปที่ทำงานใน
โปรไฟล์เท่านั้น
- การติดตั้งใช้งานอุปกรณ์ต้องยึดตาม
DevicePolicyManager.ACTION_SET_NEW_PASSWORD
Intent และแสดงอินเทอร์เฟซเพื่อกำหนดค่าหน้าจอล็อกแยกต่างหาก ข้อมูลเข้าสู่ระบบสำหรับโปรไฟล์ที่มีการจัดการ - ข้อมูลเข้าสู่ระบบบนหน้าจอล็อกของโปรไฟล์ที่มีการจัดการต้องใช้ข้อมูลเดียวกัน ที่จัดเก็บข้อมูลรับรองและกลไกการจัดการในฐานะโปรไฟล์หลัก ตามที่ระบุไว้ใน เว็บไซต์โครงการโอเพนซอร์ส Android
- นโยบายรหัสผ่านของ DPC
ต้องใช้กับข้อมูลเข้าสู่ระบบบนหน้าจอล็อกของโปรไฟล์ที่มีการจัดการเท่านั้น เว้นแต่
เรียกใช้อินสแตนซ์
DevicePolicyManager
ซึ่งแสดงผลโดยgetParentProfileInstance
- การติดตั้งใช้งานอุปกรณ์ต้องยึดตาม
- เมื่อรายชื่อติดต่อจากโปรไฟล์ที่มีการจัดการปรากฏขึ้น ในบันทึกการโทรที่ติดตั้งไว้ล่วงหน้า, UI ในสาย, อยู่ระหว่างดำเนินการ และสายที่ไม่ได้รับ การแจ้งเตือน รายชื่อติดต่อ และแอปรับส่งข้อความ ที่ควรติดป้าย ป้ายเดียวกับที่ใช้ระบุแอปพลิเคชันโปรไฟล์ที่มีการจัดการ
3.9.3 การสนับสนุนผู้ใช้ที่มีการจัดการ
การใช้งานอุปกรณ์จะประกาศ android.software.managed_users
ดังต่อไปนี้
- [C-1-1] ต้องให้เงินแก่ผู้ใช้ในการออกจากระบบของผู้ใช้ปัจจุบัน
สลับกลับไปเป็นผู้ใช้หลักในเซสชันที่มีผู้ใช้หลายคน
isLogoutEnabled
แสดงผลtrue
ราคาของผู้ใช้ต้องเข้าถึงได้จากหน้าจอล็อก โดยไม่ต้องปลดล็อกอุปกรณ์
หากการใช้งานอุปกรณ์ประกาศ android.software.device_admin
และระบุ
ผู้ใช้ในอุปกรณ์ที่มีกำลังทรัพย์ในการเพิ่มผู้ใช้รอง โดยจะดำเนินการต่อไปนี้ได้
- [C-SR-1] คำแนะนำอย่างยิ่งแสดงความยินยอมของเจ้าของอุปกรณ์ AOSP เดียวกัน การเปิดเผยที่แสดงในกระบวนการที่เริ่มต้นโดย android.app.action.PROVISION_MANAGED_DEVICE ก่อนที่จะอนุญาตให้เพิ่มบัญชีใน "ผู้ใช้รองใหม่" เพื่อให้ผู้ใช้ทราบว่าอุปกรณ์มีการจัดการ
3.9.4 ข้อกำหนดของบทบาทการจัดการนโยบายด้านอุปกรณ์
หากการติดตั้งใช้งานอุปกรณ์รายงาน android.software.device_admin
หรือ
android.software.managed_users
จากนั้นจะดำเนินการดังนี้
- [C-1-1] ต้องรองรับบทบาทการจัดการนโยบายด้านอุปกรณ์ตามที่ระบุไว้ใน
ส่วนที่ 9.1 แอปพลิเคชันที่มีบทบาทการจัดการนโยบายด้านอุปกรณ์
อาจกำหนดโดยการตั้งค่า
config_devicePolicyManagement
เป็นชื่อแพ็กเกจ ชื่อแพ็กเกจต้องตามด้วย:
และใบรับรองที่ลงนาม เว้นแต่มีการโหลดแอปพลิเคชันไว้ล่วงหน้า
หากไม่ได้กำหนดชื่อแพ็กเกจสำหรับ config_devicePolicyManagement
เป็น
ที่อธิบายไว้ข้างต้น
- [C-2-1] การใช้งานอุปกรณ์ต้องรองรับการจัดสรรโดยไม่ต้องใช้อุปกรณ์ แอปพลิเคชันผู้ถือบทบาทการจัดการนโยบาย (AOSP ติดตั้งใช้งานข้อมูลอ้างอิง)
หากมีการกำหนดชื่อแพ็กเกจสำหรับ config_devicePolicyManagement
ตามที่อธิบายไว้
ด้านบน:
- [C-3-1] ต้องติดตั้งแอปพลิเคชันบน โปรไฟล์ สำหรับผู้ใช้
- [C-3-2] การใช้งานอุปกรณ์อาจกำหนดแอปพลิเคชันที่อัปเดต
เจ้าของบทบาทการจัดการนโยบายด้านอุปกรณ์ก่อนการจัดสรรโดยการตั้งค่า
config_devicePolicyManagementUpdater
หากมีการกำหนดชื่อแพ็กเกจสำหรับ config_devicePolicyManagementUpdater
เป็น
ที่อธิบายไว้ข้างต้น
- [C-4-1] อุปกรณ์ต้องติดตั้งแอปพลิเคชันไว้ล่วงหน้า
- [C-4-2] แอปพลิเคชันต้องใช้ตัวกรอง Intent ซึ่งจะแก้ไข
android.app.action.UPDATE_DEVICE_POLICY_MANAGEMENT_ROLE_HOLDER
3.9.5 กรอบการแก้ปัญหาของนโยบายด้านอุปกรณ์
หากการติดตั้งใช้งานอุปกรณ์รายงาน android.software.device_admin
หรือ
android.software.managed_users
จากนั้นจะดำเนินการดังนี้
- [C-1-1] ต้องแก้ไขความขัดแย้งของนโยบายด้านอุปกรณ์ตามที่ได้ระบุไว้ในเอกสาร กรอบการแก้ปัญหานโยบายด้านอุปกรณ์
3.10 การช่วยเหลือพิเศษ
Android มีเลเยอร์การช่วยเหลือพิเศษที่ช่วยให้ผู้ใช้ที่มีความพิการ ไปยังส่วนต่างๆ ในอุปกรณ์ได้ง่ายขึ้น นอกจากนี้ Android ยังมี API ของแพลตฟอร์ม ที่ช่วยให้การติดตั้งใช้งานบริการการช่วยเหลือพิเศษได้รับ Callback สำหรับผู้ใช้ และเหตุการณ์ของระบบ แล้วสร้างกลไกการแสดงความคิดเห็นแบบอื่น เช่น การอ่านออกเสียงข้อความ การตอบสนองแบบรู้สึกได้ และการนำทางของแทร็กบอล/D-pad
หากการใช้งานอุปกรณ์รองรับบริการช่วยเหลือพิเศษของบุคคลที่สาม บริการเหล่านั้นจะมีลักษณะดังนี้
- [C-1-1] ต้องใช้งานฟังก์ชันการช่วยเหลือพิเศษใน Android ตามที่อธิบายไว้ใน API การช่วยเหลือพิเศษ เอกสารเกี่ยวกับ SDK
- [C-1-2] ต้องสร้างเหตุการณ์ความสามารถเข้าถึงได้ง่ายและนำเสนอ
AccessibilityEvent
สำหรับผู้ที่ลงทะเบียนทั้งหมดAccessibilityService
ตามที่กำหนดไว้ใน SDK - [C-1-4] ต้องให้เงินแก่ผู้ใช้เพื่อควบคุมการช่วยเหลือพิเศษ บริการที่ประกาศ AccessibilityServiceInfo.FLAG_REQUEST_ACCESSIBILITY_BUTTON โปรดทราบว่าเมื่อใช้อุปกรณ์ ที่มีแถบนำทางของระบบ ควรให้ผู้ใช้มีตัวเลือกสำหรับปุ่มใน ในการควบคุมบริการเหล่านี้
หากการใช้งานอุปกรณ์มีบริการการช่วยเหลือพิเศษที่ติดตั้งไว้ล่วงหน้า สิ่งที่จะเกิดขึ้นมีดังนี้
- [C-2-1] ต้องใช้บริการการช่วยเหลือพิเศษที่ติดตั้งไว้ล่วงหน้าเป็น การรับรู้การเปิดเครื่องโดยตรง เมื่อมีการเข้ารหัสพื้นที่เก็บข้อมูลด้วยการเข้ารหัสตามไฟล์ (FBE)
- ควรมีกลไกในขั้นตอนการตั้งค่าที่พร้อมใช้งานทันทีเพื่อให้ผู้ใช้เปิดใช้ บริการการช่วยเหลือพิเศษที่เกี่ยวข้อง รวมถึงตัวเลือกในการปรับขนาดแบบอักษร ขนาดการแสดงผลและท่าทางสัมผัสการขยาย
3.11 การอ่านออกเสียงข้อความ
Android มี API ที่อนุญาตให้แอปพลิเคชันใช้ประโยชน์จากการอ่านออกเสียงข้อความ (TTS) และช่วยให้ผู้ให้บริการสามารถติดตั้งใช้งาน TTS บริการต่างๆ
หากมีการติดตั้งใช้งานอุปกรณ์รายงานฟีเจอร์ android.hardware.audio.output ดังนี้
- [C-1-1] ต้องสนับสนุน เฟรมเวิร์ก Android TTS API
หากการติดตั้งอุปกรณ์รองรับการติดตั้งเครื่องมือ TTS ของบุคคลที่สาม การติดตั้งจะดำเนินการดังนี้
- [C-2-1] ต้องให้เงินแก่ผู้ใช้เพื่อให้ผู้ใช้เลือก TTS เครื่องมือสำหรับการใช้งานในระดับระบบ
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
3.12 เฟรมเวิร์กอินพุตทีวี
Android TV Input Framework (TIF) ช่วยลดความซับซ้อนของ การส่งเนื้อหาสดไปยังอุปกรณ์ Android TV TIF แสดงมาตรฐานและ API สำหรับสร้างโมดูลอินพุตที่ควบคุมอุปกรณ์ Android TV
หากการติดตั้งใช้งานอุปกรณ์รองรับ TIF สิ่งที่จะเกิดขึ้นมีดังนี้
- [C-1-1] ต้องประกาศฟีเจอร์ของแพลตฟอร์ม
android.software.live_tv
- [C-1-2] ต้องรองรับ TIF API ทั้งหมดในลักษณะที่แอปพลิเคชันที่ใช้ API เหล่านี้และอินพุตที่อิงตาม TIF ของบุคคลที่สาม สามารถติดตั้งและใช้ได้ในอุปกรณ์
สิ้นสุดข้อกำหนดใหม่
3.13 การตั้งค่าด่วน
Android มีคอมโพเนนต์ UI การตั้งค่าด่วนที่ช่วยให้เข้าถึง การดำเนินการที่ใช้บ่อยหรือที่จำเป็นอย่างเร่งด่วน
หากการใช้งานอุปกรณ์มีคอมโพเนนต์ UI การตั้งค่าด่วนและรองรับของบุคคลที่สาม การตั้งค่าด่วน
- [C-1-1] ต้องอนุญาตให้ผู้ใช้เพิ่มหรือนำชิ้นส่วนที่กรอกผ่าน
quicksettings
API จากแอปของบุคคลที่สาม - [C-1-2] ต้องไม่เพิ่มการ์ดโดยอัตโนมัติจากแอปของบุคคลที่สามโดยตรง ไปยังการตั้งค่าด่วน
- [C-1-3] ต้องแสดงการ์ดที่ผู้ใช้เพิ่มทั้งหมดจากแอปของบุคคลที่สาม ควบคู่ไปกับชิ้นส่วนการตั้งค่าด่วนที่มีให้
3.14 UI สื่อ
หากการใช้งานอุปกรณ์มีแอปพลิเคชันที่ไม่ได้เปิดใช้งานด้วยเสียง (แอป) ซึ่งโต้ตอบกับ
แอปพลิเคชันของบุคคลที่สามผ่าน MediaBrowser
หรือ MediaSession
แอป
[C-1-2] ต้องแสดงไอคอนที่ได้รับผ่านทาง
getIconBitmap()
หรือgetIconUri()
และชื่ออย่างชัดเจน ได้รับผ่านทางgetTitle()
ตามที่อธิบายไว้ในMediaDescription
อาจย่อชื่อเพื่อให้สอดคล้องกับกฎระเบียบด้านความปลอดภัย (เช่น สิ่งรบกวนผู้ขับขี่)[C-1-3] ต้องแสดงไอคอนแอปพลิเคชันของบุคคลที่สามทุกครั้งที่แสดงเนื้อหาที่ให้บริการโดย แอปพลิเคชันของบุคคลที่สามนี้
[C-1-4] ต้องอนุญาตให้ผู้ใช้โต้ตอบกับ
MediaBrowser
ทั้งหมด ลำดับชั้น อาจจำกัดการเข้าถึงในบางลำดับชั้นเพื่อปฏิบัติตามกฎระเบียบด้านความปลอดภัย (เช่น สิ่งรบกวนผู้ขับขี่) แต่ต้องไม่ให้การดูแลเป็นพิเศษตามเนื้อหาหรือ Content Provider[C-1-5] ต้องแตะ 2 ครั้ง
KEYCODE_HEADSETHOOK
หรือKEYCODE_MEDIA_PLAY_PAUSE
ด้วยKEYCODE_MEDIA_NEXT
สำหรับMediaSession.Callback#onMediaButtonEvent
3.15 Instant Apps
หากอุปกรณ์รองรับ Instant Apps แอปจะต้องเป็นไปตามเงื่อนไขต่อไปนี้ ข้อกำหนด
- [C-1-1] Instant Apps ต้องได้รับสิทธิ์ที่มี
android:protectionLevel
ตั้งค่าเป็น"instant"
- [C-1-2] Instant Apps ต้องไม่โต้ตอบกับแอปที่ติดตั้งผ่าน implicit Intent
ยกเว้นในกรณีต่อไปนี้
- แสดงตัวกรองรูปแบบ Intent ของคอมโพเนนต์และมี CATEGORY_BROWSABLE
- การกระทำนี้เป็นหนึ่งใน ACTION_SEND, ACTION_SENDTO, ACTION_SEND_MULTIPLE
- เป้าหมายจะปรากฏอย่างชัดเจนด้วย android:visibleToInstantApps
- [C-1-3] Instant Apps ต้องไม่โต้ตอบกับแอปที่ติดตั้งอย่างชัดเจน เว้นแต่ คอมโพเนนต์ถูกเปิดเผยผ่าน android:visibleToInstantApps
- [C-1-4] แอปที่ติดตั้งต้องไม่ดูรายละเอียดเกี่ยวกับ Instant Apps บน ยกเว้นในกรณีที่ Instant App เชื่อมต่อกับ ติดตั้งแอปพลิเคชันแล้ว
การติดตั้งใช้งานอุปกรณ์ต้องให้เงินช่วยเหลือต่อไปนี้แก่ผู้ใช้ ที่โต้ตอบกับ Instant Apps ได้ AOSP มีคุณสมบัติตามข้อกำหนดเกี่ยวกับ UI, การตั้งค่า และ Launcher เริ่มต้นของระบบ การติดตั้งใช้งานอุปกรณ์
- [C-1-5] ต้องเสนอค่าตอบแทนให้กับผู้ใช้ในการดูและลบ Instant Apps แคชในเครื่องสำหรับแพ็กเกจแอปแต่ละรายการ
- [C-1-6] ต้องระบุการแจ้งเตือนสำหรับผู้ใช้อย่างต่อเนื่องที่สามารถ
ยุบในขณะที่ Instant App ทำงานอยู่ในเบื้องหน้า ผู้ใช้รายนี้
การแจ้งเตือนต้องระบุว่า Instant Apps ไม่ต้องใช้การติดตั้ง
และให้ค่าตอบแทนแก่ผู้ใช้ที่จะนำผู้ใช้ไปยังแอปพลิเคชัน
ในหน้าจอ "การตั้งค่า" สำหรับ Instant Apps ที่เปิดตัวผ่านเว็บ Intent
กำหนดโดยใช้ Intent ที่มีชุดการดำเนินการเป็น
Intent.ACTION_VIEW
และ ด้วยรูปแบบ "http" หรือ "https" ซึ่งเป็นค่าใช้จ่ายสำหรับผู้ใช้เพิ่มเติม ควรอนุญาตให้ผู้ใช้เปิด Instant App และ ให้เปิดลิงก์ที่เชื่อมโยงกับเว็บเบราว์เซอร์ที่กำหนดค่าไว้ หากเบราว์เซอร์ ในอุปกรณ์ - [C-1-7] ต้องอนุญาตให้เรียกใช้ Instant App จากรายการล่าสุด หากมีฟังก์ชัน "ล่าสุด" ในอุปกรณ์
[C-1-8] ต้องโหลดแอปพลิเคชันหรือองค์ประกอบบริการล่วงหน้าอย่างน้อย 1 รายการ ด้วยเครื่องจัดการ Intent สำหรับ Intent ที่แสดงอยู่ใน SDK ที่นี่ และแสดง Intent ของ Instant Apps ได้
3.16 การจับคู่อุปกรณ์ที่ใช้ร่วมกัน
Android รองรับการจับคู่อุปกรณ์ที่ใช้ร่วมกันเพื่อให้จัดการได้อย่างมีประสิทธิภาพมากขึ้น
เชื่อมโยงกับอุปกรณ์ที่ใช้ร่วมกันและให้ CompanionDeviceManager
API ของแอปเพื่อเข้าถึงฟีเจอร์นี้
หากการใช้งานอุปกรณ์รองรับฟีเจอร์การจับคู่อุปกรณ์ที่ใช้ร่วมกัน การใช้งานจะมีลักษณะดังนี้
- [C-1-1] ต้องประกาศแฟล็กฟีเจอร์
FEATURE_COMPANION_DEVICE_SETUP
ที่ใช้เวลาเพียง 2 นาที - [C-1-2] ต้องตรวจสอบให้แน่ใจว่า API ใน
android.companion
เสร็จสมบูรณ์
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
- [C-1-3] ต้องเสนอค่าตอบแทนให้แก่ผู้ใช้ในการเลือก/ยืนยัน มีอุปกรณ์ที่ใช้ร่วมกันพร้อมใช้งาน ซึ่งต้องใช้ข้อความเดียวกับที่ติดตั้งใช้งานใน AOSP โดยไม่ต้องเพิ่มหรือ การแก้ไข
สิ้นสุดข้อกำหนดใหม่
3.17. แอปขนาดใหญ่
หากการติดตั้งใช้งานอุปกรณ์ประกาศฟีเจอร์ FEATURE_CANT_SAVE_STATE
ให้ดำเนินการดังนี้
- [C-1-1] ต้องมีแอปที่ติดตั้งเพียงแอปเดียวซึ่งระบุ
cantSaveState
ทำงานในระบบต่อครั้ง หากผู้ใช้ ออกจากแอปดังกล่าวโดยไม่ได้ออกจากแอปอย่างชัดแจ้ง (เช่น การกด อยู่บ้านในขณะที่ออกจากกิจกรรมที่ใช้งานอยู่ แทนการกดย้อนกลับ โดยไม่มีกิจกรรมที่ใช้งานอยู่เหลืออยู่ในระบบ) การติดตั้งใช้งานอุปกรณ์ต้องให้ความสำคัญกับแอปนั้นใน RAM เช่นเดียวกับแอปอื่นๆ สิ่งที่คาดว่าจะยังทำงานอยู่ เช่น บริการที่ทำงานอยู่เบื้องหน้า ในขณะที่แอปดังกล่าวทำงานอยู่เบื้องหลัง ระบบก็ยังคงเสียบปลั๊กได้ ฟีเจอร์การจัดการ เช่น การจำกัดการเข้าถึง CPU และเครือข่าย - [C-1-2] ต้องกำหนดราคา UI เพื่อเลือกแอปที่จะไม่
เข้าร่วมในกลไกการบันทึก/กู้คืนสถานะปกติเมื่อผู้ใช้
เปิดตัวแอปที่ 2 ที่ประกาศด้วย
cantSaveState
- [C-1-3] ต้องไม่ใช้การเปลี่ยนแปลงอื่นๆ ในนโยบายกับแอปที่ระบุ
cantSaveState
เช่น การเปลี่ยนประสิทธิภาพของ CPU หรือการเปลี่ยนลำดับความสำคัญของกำหนดการ
หากการติดตั้งใช้งานอุปกรณ์ไม่ประกาศฟีเจอร์นี้
FEATURE_CANT_SAVE_STATE
ให้ดำเนินการดังนี้
- [C-1-1] ต้องละเว้น
cantSaveState
ที่แอปและต้องไม่เปลี่ยนลักษณะการทำงานของแอปตามนั้น
3.18 รายชื่อติดต่อ
Android มี
Contacts Provider
API เพื่ออนุญาตให้แอปพลิเคชันจัดการข้อมูลติดต่อที่จัดเก็บไว้ในอุปกรณ์
โดยทั่วไปแล้ว ข้อมูลรายชื่อติดต่อที่ป้อนในอุปกรณ์โดยตรงจะซิงค์กัน
กับบริการบนเว็บ แต่ข้อมูลอาจยังอยู่ในตัวอุปกรณ์เท่านั้น
ที่อยู่ติดต่อที่จัดเก็บไว้ในอุปกรณ์เท่านั้นจะเรียกว่าภายใน
รายชื่อติดต่อ
รายชื่อติดต่อข้อมูลดิบ
นั้น "เชื่อมโยงกับ" หรือ "จัดเก็บไว้ใน" CANNOT TRANSLATE
บัญชี
เมื่อ
ACCOUNT_NAME
,
และ
ACCOUNT_TYPE
สำหรับข้อมูลติดต่อดิบตรงกับ
ชื่อบัญชี
และ
Account.type
ของบัญชี
บัญชีเริ่มต้นในเครื่อง: บัญชีสำหรับรายชื่อติดต่อดิบที่เก็บไว้เฉพาะใน
อุปกรณ์และไม่เชื่อมโยงกับบัญชีใน
ผู้จัดการฝ่ายดูแลลูกค้า
ซึ่งสร้างขึ้นด้วยค่า null สำหรับพารามิเตอร์
ACCOUNT_NAME
,
และ
ACCOUNT_TYPE
บัญชีในเครื่องที่กำหนดเอง: บัญชีสำหรับรายชื่อติดต่อดิบที่เก็บไว้เฉพาะใน
อุปกรณ์ และไม่เชื่อมโยงกับ "บัญชี" ใน AccountManager ซึ่งเป็น
สร้างขึ้นโดยมีค่าที่ไม่ใช่ค่าว่างอย่างน้อย 1 ค่าสำหรับค่า
ACCOUNT_NAME
,
และ
ACCOUNT_TYPE
การติดตั้งใช้งานอุปกรณ์
- [C-SR-1] ขอแนะนำเป็นอย่างยิ่งว่าอย่าสร้างบัญชีในพื้นที่ที่กำหนดเอง
หากการใช้อุปกรณ์ใช้บัญชีในเครื่องที่กำหนดเอง ให้ทำดังนี้
- [C-1-1]
ACCOUNT_NAME
ของบัญชีท้องถิ่นที่กำหนดเองต้องส่งคืนโดยContactsContract.RawContacts.getLocalAccountName
- [C-1-2]
ACCOUNT_TYPE
ของบัญชีท้องถิ่นที่กำหนดเองต้องส่งคืนโดยContactsContract.RawContacts.getLocalAccountType
- [C-1-3] รายชื่อติดต่อดิบที่แทรกโดยแอปพลิเคชันของบุคคลที่สามที่มี
บัญชีภายในที่เป็นค่าเริ่มต้น (กล่าวคือ ด้วยการกำหนดค่า Null สำหรับ
ACCOUNT_NAME
และACCOUNT_TYPE
) ต้องแทรกลงในท้องถิ่นที่กำหนดเอง บัญชี - [C-1-4] รายชื่อติดต่อดิบที่แทรกลงในบัญชีในเครื่องที่กำหนดเองต้องไม่ นำออกเมื่อมีการเพิ่มหรือนำบัญชีออก
- [C-1-5] การลบดำเนินการในบัญชีในเครื่องที่กำหนดเอง
ต้องทำให้ รายชื่อติดต่อดิบ ถูกล้างทันที (เหมือนกับว่า
CALLER_IS_SYNCADAPTER
param เป็น true) แม้ว่าจะตั้งค่าพารามิเตอร์CALLER\_IS\_SYNCADAPTER
แล้ว เป็นเท็จหรือไม่ได้ระบุ
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
3.19 การตั้งค่าภาษา
การติดตั้งใช้งานอุปกรณ์
- [C-0-1] ต้องไม่ให้เงินแก่ผู้ใช้ในการเลือกเฉพาะเพศ การดูแลภาษาสำหรับภาษาที่ไม่รองรับเพศสภาพ คำแปล ดูแหล่งข้อมูลด้านไวยากรณ์ เพื่อดูข้อมูลเพิ่มเติม
สิ้นสุดข้อกำหนดใหม่
4. ความเข้ากันได้ของแพ็กเกจแอปพลิเคชัน
การติดตั้งใช้งานอุปกรณ์
[C-0-1] ต้องติดตั้งและเรียกใช้ Android ".apk" ได้ เก็บบันทึกเป็น ที่สร้างโดย "aapt" เครื่องมือที่รวมอยู่ใน Android SDK อย่างเป็นทางการ
- ตามข้อกำหนดข้างต้นอาจเป็นเรื่องท้าทาย การติดตั้งใช้งานอุปกรณ์ แนะนำให้ใช้การจัดการแพ็กเกจของการใช้งานข้อมูลอ้างอิง AOSP ระบบ
[C-0-2] ต้องรองรับการยืนยัน ".apk" โดยใช้ APK Signature Scheme v3.1, APK Signature Scheme v3 รูปแบบลายเซ็น APK เวอร์ชัน 2 และการลงชื่อ JAR
[C-0-3] ต้องไม่ขยาย .apk Android Manifest Dalvik Bycode หรือ รูปแบบไบต์โค้ดของ RenderScript ในลักษณะที่จะป้องกันไม่ให้ไฟล์เหล่านั้น ติดตั้งและทำงานอย่างถูกต้องบนอุปกรณ์อื่นๆ ที่เข้ากันได้
[C-0-4] ต้องไม่อนุญาตแอปอื่นนอกเหนือจากแอปปัจจุบัน "โปรแกรมติดตั้งระเบียน" แพ็กเกจสามารถถอนการติดตั้งแอปโดยไม่ต้อง การยืนยันผู้ใช้ ตามที่ระบุไว้ใน SDK สำหรับ
DELETE_PACKAGE
สิทธิ์ ข้อยกเว้นเพียงอย่างเดียวคือการจัดการแอปของเครื่องมือยืนยันแพ็กเกจของระบบ PACKAGE_NEEDS_VERIFICATION Intent และการจัดการแอปบนตัวจัดการพื้นที่เก็บข้อมูล พื้นที่เก็บข้อมูล ACTION_MANAGE_STORAGE Intent[C-0-5] ต้องมีกิจกรรมที่จัดการ
android.settings.MANAGE_UNKNOWN_APP_SOURCES
Intent[C-0-6] ต้องไม่ติดตั้งแพ็กเกจแอปพลิเคชันจาก ยกเว้นแอปที่ขอการติดตั้ง มีคุณสมบัติตรงตามข้อกำหนดต่อไปนี้ทั้งหมด
- ต้องประกาศ
REQUEST_INSTALL_PACKAGES
หรือตั้งค่าandroid:targetSdkVersion
เป็น 24 หรือต่ำกว่า - แอปต้องได้รับอนุญาตจากผู้ใช้ แหล่งที่มาที่ไม่รู้จัก
- ต้องประกาศ
ควรให้ค่าตอบแทนแก่ผู้ใช้ในการให้สิทธิ์/เพิกถอนการให้สิทธิ์ ติดตั้งแอปพลิเคชันจากแหล่งที่มาที่ไม่รู้จักต่อแอปพลิเคชัน แต่อาจเลือกใช้ได้ รายการนี้เป็นแบบไม่มีการดำเนินการและแสดงผล
RESULT_CANCELED
สำหรับstartActivityForResult()
, หากการใช้อุปกรณ์ไม่ต้องการให้ผู้ใช้มีตัวเลือกนี้ อย่างไรก็ตาม ในกรณีเหล่านี้ ควรระบุให้ผู้ใช้ทราบว่าไม่มี เสนอทางเลือกดังกล่าว[C-0-7] ต้องแสดงกล่องคำเตือนพร้อมสตริงคำเตือนที่ ระบุผ่าน API ระบบ
PackageManager.setHarmfulAppWarning
กับผู้ใช้ก่อนที่จะเปิดกิจกรรมในแอปพลิเคชันที่มีการทำเครื่องหมายว่า โดย API ระบบเดียวกันกับPackageManager.setHarmfulAppWarning
เป็นอันตรายควรเสนอทางเลือกแก่ผู้ใช้ในการเลือกที่จะถอนการติดตั้งหรือเปิดตัว บนกล่องโต้ตอบคำเตือน
[C-0-8] ต้องใช้การสนับสนุนระบบไฟล์ส่วนเพิ่มตามที่บันทึกไว้ ที่นี่
[C-0-9] ต้องรองรับการยืนยันไฟล์ .apk โดยใช้ APK Signature Scheme v4 และ APK Signature Scheme v4.1
5. ความเข้ากันได้กับมัลติมีเดีย
การติดตั้งใช้งานอุปกรณ์
- [C-0-1] ต้องรองรับรูปแบบสื่อ โปรแกรมเปลี่ยนไฟล์ โปรแกรมถอดรหัส ประเภทไฟล์
และรูปแบบคอนเทนเนอร์ที่กำหนดไว้ในส่วนที่ 5.1
สำหรับตัวแปลงรหัสแต่ละตัวและทุกๆ ตัวแปลงรหัสที่ประกาศโดย
MediaCodecList
- [C-0-2] ต้องประกาศและรายงานการรองรับโปรแกรมเปลี่ยนไฟล์และตัวถอดรหัสที่มี
ไปยังแอปพลิเคชันของบุคคลที่สามผ่าน
MediaCodecList
- [C-0-3] ต้องสามารถถอดรหัสและเปิดเผยต่อบุคคลที่สามได้อย่างเหมาะสม
ทุกรูปแบบที่สามารถเข้ารหัสได้ ซึ่งรวมถึงบิตสตรีมทั้งหมดที่
โปรแกรมเปลี่ยนไฟล์จะสร้างและโปรไฟล์ที่รายงานในไฟล์
CamcorderProfile
การติดตั้งใช้งานอุปกรณ์
- ควรใช้เวลาในการตอบสนองของตัวแปลงรหัสขั้นต่ำ หรือพูดอีกอย่างก็คือ
- ไม่ควรใช้และจัดเก็บบัฟเฟอร์อินพุต รวมถึงแสดงผลบัฟเฟอร์อินพุตเท่านั้น เมื่อประมวลผลแล้ว
- ไม่ควรเก็บบัฟเฟอร์ที่ถอดรหัสแล้วไว้นานกว่าที่ มาตรฐาน (เช่น SPS)
- ไม่ควรเก็บบัฟเฟอร์ที่เข้ารหัสไว้นานกว่าที่ GOP กำหนด ใหม่
ตัวแปลงรหัสทั้งหมดที่ระบุในส่วนด้านล่างเป็นซอฟต์แวร์ ในการใช้งาน Android ที่แนะนำ จาก Android Open โปรเจ็กต์ต้นทาง
โปรดทราบว่าทั้ง Google และ Open Handset Alliance ไม่ได้ให้ เพื่อแสดงให้เห็นว่าตัวแปลงรหัสเหล่านี้ไม่มีสิทธิบัตรของบุคคลที่สาม เหล่านั้น หากตั้งใจจะใช้ซอร์สโค้ดนี้ในผลิตภัณฑ์ฮาร์ดแวร์หรือซอฟต์แวร์ การติดตั้งโค้ดนี้ ซึ่งรวมถึงในซอฟต์แวร์โอเพนซอร์สหรือ แชร์แวร์ อาจต้องมีใบอนุญาตสิทธิบัตรจากผู้ถือสิทธิบัตรที่เกี่ยวข้อง
5.1 ตัวแปลงสัญญาณสื่อ
5.1.1 การเข้ารหัสเสียง
ดูรายละเอียดเพิ่มเติมใน 5.1.3 รายละเอียดตัวแปลงสัญญาณเสียง
หากการใช้งานอุปกรณ์ประกาศ android.hardware.microphone
ต้องรองรับการเข้ารหัสรูปแบบเสียงต่อไปนี้และทำให้พร้อมใช้งาน
ไปยังแอปของบุคคลที่สามได้
- [C-1-1] PCM/WAVE
- [C-1-2] FLAC
- [C-1-3] โอปัส
โปรแกรมเปลี่ยนไฟล์เสียงทั้งหมดต้องสนับสนุนรายการต่อไปนี้
- [C-3-1] เฟรมเสียงสำหรับสั่งซื้อไบต์ดั้งเดิมของ PCM 16 บิตผ่าน
android.media.MediaCodec
API
5.1.2 การถอดรหัสเสียง
ดูรายละเอียดเพิ่มเติมใน 5.1.3 รายละเอียดตัวแปลงสัญญาณเสียง
หากการใช้งานอุปกรณ์ประกาศการรองรับ
android.hardware.audio.output
จะต้องรองรับการถอดรหัส
รูปแบบเสียงต่อไปนี้:
- [C-1-1] โปรไฟล์ MPEG-4 AAC (AAC LC)
- [C-1-2] โปรไฟล์ MPEG-4 HE AAC (AAC+)
- [C-1-3] โปรไฟล์ MPEG-4 HE AACv2 (AAC+ ที่ปรับปรุงใหม่)
- [C-1-4] AAC ELD (ปรับปรุงความหน่วงต่ำ AAC)
- [C-1-11] xHE-AAC (ISO/IEC 23003-3 Extended HE AAC Profile ซึ่งประกอบด้วย โปรไฟล์ฐานของ USAC และช่วงไดนามิกของ ISO/IEC 23003-4 โปรไฟล์ควบคุม)
- [C-1-5] FLAC
- MP3 [C-1-6]
- [C-1-7] MIDI
- [C-1-8] เวอร์บี
- [C-1-9] PCM/WAVE รวมเสียงความละเอียดสูง รูปแบบได้สูงสุด 24 บิต อัตราการสุ่มตัวอย่าง 192 kHz และ 8 ช่อง โปรดทราบว่าข้อกำหนดนี้มีไว้สำหรับการถอดรหัสเท่านั้น และอุปกรณ์ ได้รับอนุญาตให้แสดงตัวอย่างน้อยลงและดาวน์มิกซ์ได้ในระยะการเล่น
- [C-1-10] โอปัส
หากการใช้งานอุปกรณ์รองรับการถอดรหัสบัฟเฟอร์อินพุต AAC
สตรีมแบบหลายช่อง (เช่น มากกว่า 2 ช่อง) ไปยัง PCM ผ่านค่าเริ่มต้น
โปรแกรมถอดรหัสเสียง AAC ใน android.media.MediaCodec
API ต้องมีสิ่งต่อไปนี้
รองรับ
- [C-2-1] ต้องถอดรหัสโดยไม่ต้องลงมิกซ์ (เช่น 5.0 AAC ต้องถอดรหัสสตรีมเป็น PCM 5 ช่อง และต้องถอดรหัสสตรีม 5.1 AAC เป็น 6 ช่องสัญญาณของ PCM)
- [C-2-2] ข้อมูลเมตาของช่วงไดนามิกต้องระบุไว้ใน "การควบคุมช่วงไดนามิก"
(DRC)" ใน ISO/IEC 14496-3 และคีย์ DRC
android.media.MediaFormat
เพื่อ กำหนดค่าลักษณะการทำงานที่เกี่ยวข้องกับช่วงไดนามิกของเครื่องมือถอดรหัสเสียง คีย์ AAC DRC เปิดตัวใน API 21 และมีคุณสมบัติดังนี้KEY_AAC_DRC_ATTENUATION_FACTOR
KEY_AAC_DRC_BOOST_FACTOR
KEY_AAC_DRC_HEAVY_COMPRESSION
,KEY_AAC_DRC_TARGET_REFERENCE_LEVEL
และKEY_AAC_ENCODED_TARGET_LEVEL
- [C-SR-1] ขอแนะนำเป็นอย่างยิ่งว่าข้อกำหนด C-2-1 และ C-2-2 ข้างต้น ของผู้ถอดรหัสเสียง AAC ทั้งหมด
เมื่อถอดรหัสเสียง USAC, MPEG-D (ISO/IEC 23003-4)
- [C-3-1] ต้องตีความและนำไปใช้ความดังและข้อมูลเมตาของ DRC ตามที่ระบุใน MPEG-D DRC Dynamic Range Control Profile Level 1
- [C-3-2] ตัวถอดรหัสต้องทำงานตามการกำหนดค่า
ตั้งค่าด้วยคีย์
android.media.MediaFormat
ต่อไปนี้KEY_AAC_DRC_TARGET_REFERENCE_LEVEL
และKEY_AAC_DRC_EFFECT_TYPE
ตัวถอดรหัสโปรไฟล์ MPEG-4 AAC, HE AAC และ HE AACv2:
- อาจรองรับความดังและการควบคุมช่วงไดนามิกโดยใช้ ISO/IEC 23003-4 โปรไฟล์การควบคุมช่วงไดนามิก
รองรับ ISO/IEC 23003-4 และรองรับทั้ง ISO/IEC 23003-4 และ ข้อมูลเมตา ISO/IEC 14496-3 แสดงอยู่ในบิตสตรีมที่ถอดรหัสแล้ว จากนั้น
- ข้อมูลเมตา ISO/IEC 23003-4 จะมีความสำคัญเหนือกว่า
ตัวถอดรหัสเสียงทั้งหมดต้องรองรับเอาต์พุต:
- [C-6-1] เฟรมเสียงสำหรับสั่งซื้อไบต์เนทีฟแบบ PCM 16 บิตผ่าน
android.media.MediaCodec
API
หากการใช้งานอุปกรณ์รองรับการถอดรหัสบัฟเฟอร์อินพุต AAC
สตรีมแบบหลายช่อง (เช่น มากกว่า 2 ช่อง) ไปยัง PCM ผ่านค่าเริ่มต้น
โปรแกรมถอดรหัสเสียง AAC ใน android.media.MediaCodec
API ต้องมีสิ่งต่อไปนี้
ที่รองรับ:
- [C-7-1] ต้องสามารถกำหนดค่าโดยแอปพลิเคชันโดยใช้การถอดรหัส
ด้วยคีย์
KEY_MAX_OUTPUT_CHANNEL_COUNT
เพื่อควบคุมว่าจะให้เนื้อหาดาวน์มิกซ์เป็นสเตอริโอหรือไม่ (เมื่อใช้ค่า 2) หรือเอาต์พุตโดยใช้จำนวนช่องเสียงดั้งเดิม (เมื่อใช้ค่าเท่ากับหรือ มากกว่าตัวเลขนั้น) เช่น ค่า 6 ขึ้นไป จะกำหนดค่า ตัวถอดรหัสเพื่อเอาต์พุต 6 ช่องสัญญาณเมื่อป้อนเนื้อหา 5.1 - [C-7-2] เมื่อถอดรหัส เครื่องมือถอดรหัสต้องโฆษณามาสก์ช่องทางที่ใช้
ในรูปแบบเอาต์พุตที่มี
KEY_CHANNEL_MASK
โดยใช้ค่าคงที่android.media.AudioFormat
(เช่นCHANNEL_OUT_5POINT1
)
หากการติดตั้งใช้งานอุปกรณ์รองรับตัวถอดรหัสเสียงที่ไม่ใช่ AAC เริ่มต้น ตัวถอดรหัสเสียงและสามารถส่งออกเสียงแบบหลายช่องทางได้ (เช่น มากกว่า 2 ช่อง) เมื่อป้อนเนื้อหาแบบหลายช่องที่มีการบีบอัดแล้ว ให้ดำเนินการดังนี้
- [C-SR-2] เราขอแนะนำตัวถอดรหัสให้สามารถกำหนดค่าโดย
โดยใช้การถอดรหัสด้วยคีย์
KEY_MAX_OUTPUT_CHANNEL_COUNT
เพื่อควบคุมว่าจะให้เนื้อหาดาวน์มิกซ์เป็นสเตอริโอหรือไม่ (เมื่อใช้ค่า 2) หรือเอาต์พุตโดยใช้จำนวนช่องเสียงดั้งเดิม (เมื่อใช้ค่าเท่ากับหรือ มากกว่าตัวเลขนั้น) เช่น ค่า 6 ขึ้นไป จะกำหนดค่า ตัวถอดรหัสเพื่อเอาต์พุต 6 ช่องสัญญาณเมื่อป้อนเนื้อหา 5.1 - [C-SR-3] เมื่อถอดรหัส ขอแนะนำอย่างยิ่งให้ใช้ตัวถอดรหัสเพื่อโฆษณา
การใช้มาสก์ช่องทางในรูปแบบเอาต์พุตที่มีฟิลด์
KEY_CHANNEL_MASK
โดยใช้ค่าคงที่ android.media.AudioFormat (ตัวอย่างเช่นCHANNEL_OUT_5POINT1
)
5.1.3 รายละเอียดตัวแปลงสัญญาณเสียง
รูปแบบ/ตัวแปลงรหัส | รายละเอียด | ประเภทไฟล์/รูปแบบคอนเทนเนอร์ที่จะรองรับ |
---|---|---|
โปรไฟล์ MPEG-4 AAC (AAC LC) |
รองรับเนื้อหาโมโน/สเตอริโอ/5.0/5.1 ที่มีมาตรฐาน อัตราการสุ่มตัวอย่างตั้งแต่ 8 ถึง 48 kHz |
|
โปรไฟล์ MPEG-4 HE AAC (AAC+) | รองรับเนื้อหาโมโน/สเตอริโอ/5.0/5.1 ที่มีมาตรฐาน อัตราการสุ่มตัวอย่างตั้งแต่ 16 ถึง 48 kHz |
|
MPEG-4 HE AACv2 โปรไฟล์ (AAC+ ที่ปรับปรุงแล้ว) |
รองรับเนื้อหาโมโน/สเตอริโอ/5.0/5.1 ที่มีมาตรฐาน อัตราการสุ่มตัวอย่างตั้งแต่ 16 ถึง 48 kHz |
|
AAC ELD (ปรับปรุงความหน่วงต่ำของ AAC) | รองรับเนื้อหาโมโน/สเตอริโอที่มีอัตราการสุ่มตัวอย่างมาตรฐานตั้งแต่ 16 ถึง 48 kHz |
|
ฐานความรู้ด้านสิ่งแวดล้อม (USAC) | รองรับเนื้อหาโมโน/สเตอริโอที่มีอัตราการสุ่มตัวอย่างมาตรฐานตั้งแต่ 7.35 ขึ้นไป เป็น 48 kHz | MPEG-4 (.mp4, .m4a) |
AMR-NB | สุ่มตัวอย่าง 4.75 ถึง 12.2 kbps @ 8 kHz | 3GPP (.3gp) |
AMR-WB | 9 อัตราจาก 6.60 kbit/s ถึง 23.85 kbit/s แบบสุ่มตัวอย่างที่ 16 kHz ตามที่กําหนดไว้ที่ AMR-WB, Adaptive Multi-Rate - ตัวแปลงรหัสเสียงความถี่กว้าง | 3GPP (.3gp) |
FLAC | สำหรับทั้งโปรแกรมเปลี่ยนไฟล์และเครื่องถอดรหัส: โหมดโมโนและสเตอริโอต้องมีค่าเป็นอย่างต่ำ ที่รองรับ รองรับอัตราการสุ่มตัวอย่างสูงสุด 192 kHz 16 บิตและ 24 บิต ต้องมีการรองรับความละเอียด ต้องจัดการ FLAC ข้อมูลเสียง 24 บิต ใช้ได้กับการกำหนดค่าเสียงแบบลอย |
|
MP3 | ค่าคงที่แบบโมโน/สเตอริโอ 8-320 Kbps (CBR) หรืออัตราบิตแปรผัน (VBR) |
|
MIDI | MIDI ประเภท 0 และ 1 DLS เวอร์ชัน 1 และ 2 XMF และ XMF สำหรับอุปกรณ์เคลื่อนที่ การสนับสนุนสำหรับ รูปแบบเสียงเรียกเข้า RTTTL/RTX, OTA และ iMelody |
|
Vorbis | การถอดรหัส: รองรับเนื้อหาแบบโมโน, สเตอริโอ, 5.0 และ 5.1 ที่มีการสุ่มตัวอย่าง
อัตรา 8000, 12000, 16000, 24000 และ 48000 Hz การเข้ารหัส: การสนับสนุนเนื้อหาโมโนและสเตอริโอที่มีอัตราสุ่ม 8000, 12000, 16000, 24000 และ 48000 Hz |
|
PCM/WAVE | ตัวแปลงรหัส PCM ต้องรองรับ PCM เชิงเส้น 16 บิตและแบบลอย 16 บิต โบกมือ เครื่องมือแยกข้อมูลต้องรองรับ PCM เชิงเส้น 16 บิต, 24 บิต, 32 บิต และลอยตัว 32 บิต (อัตราสูงสุดถึงขีดจำกัดของฮาร์ดแวร์) ต้องรองรับอัตราการสุ่มตัวอย่างจาก 8 kHz ถึง 192 kHz | WAVE (.wav) |
Opus | การถอดรหัส: รองรับเนื้อหาแบบโมโน, สเตอริโอ, 5.0 และ 5.1
ด้วยอัตราการสุ่มตัวอย่าง 8000, 12000, 16000, 24000 และ 48000 Hz
การเข้ารหัส: การสนับสนุนเนื้อหาโมโนและสเตอริโอ ด้วยอัตราการสุ่มตัวอย่าง 8000, 12000, 16000, 24000 และ 48000 Hz |
|
5.1.4 การเข้ารหัสรูปภาพ
ดูรายละเอียดเพิ่มเติมใน 5.1.6 รายละเอียดตัวแปลงรหัสรูปภาพ
การใช้งานอุปกรณ์ต้องรองรับการเข้ารหัสการเข้ารหัสรูปภาพต่อไปนี้
- [C-0-1] JPEG
- [C-0-2] PNG
- [C-0-3] WebP
- [C-0-4] AVIF
- อุปกรณ์ต้องรองรับ
BITRATE_MODE_CQ
และโปรไฟล์พื้นฐาน
- อุปกรณ์ต้องรองรับ
หากการใช้งานอุปกรณ์รองรับการเข้ารหัส HEIC ผ่าน android.media.MediaCodec
สำหรับประเภทสื่อ MIMETYPE_IMAGE_ANDROID_HEIC
ดังนี้
- [C-1-1] ต้องระบุตัวแปลงรหัส HEVC ที่ใช้ฮาร์ดแวร์เร่งการแสดงผล ซึ่ง
รองรับ
BITRATE_MODE_CQ
โหมดควบคุมอัตราบิตHEVCProfileMainStill
และเฟรมขนาด 512 x 512 พิกเซลได้
5.1.5 การถอดรหัสรูปภาพ
ดูรายละเอียดเพิ่มเติมใน 5.1.6 รายละเอียดตัวแปลงรหัสรูปภาพ
การใช้งานอุปกรณ์ต้องรองรับการถอดรหัสการเข้ารหัสรูปภาพต่อไปนี้
- [C-0-1] JPEG
- GIF [C-0-2]
- [C-0-3] PNG
- [C-0-4] BMP
- [C-0-5] WebP
- [C-0-6] ดิบ
- [C-0-7] AVIF (โปรไฟล์พื้นฐาน)
หากการใช้งานอุปกรณ์รองรับการถอดรหัสวิดีโอ HEVC การดำเนินการต่อไปนี้
- [C-1-1] ต้องรองรับการถอดรหัสรูปภาพ HEIF (HEIC)
ตัวถอดรหัสรูปภาพที่รองรับรูปแบบที่มีความลึกของบิตสูง (9 บิตขึ้นไปต่อช่อง):
- [C-2-1] ต้องรองรับเอาต์พุตรูปแบบ 8 บิตที่เทียบเท่ากันหากได้รับคำขอจาก
แอปพลิเคชัน เช่น ผ่าน
ARGB_8888
การกำหนดค่าของandroid.graphics.Bitmap
5.1.6 รายละเอียดตัวแปลงรหัสภาพ
รูปแบบ/ตัวแปลงรหัส | รายละเอียด | รูปแบบไฟล์/รูปแบบคอนเทนเนอร์ที่รองรับ |
---|---|---|
JPEG | ฐาน +โพรเกรสซีฟ | JPEG (.jpg) |
GIF | GIF (.gif) | |
PNG | PNG (.png) | |
BMP | BMP (.bmp) | |
WebP | WebP (.webp) | |
แบบข้อมูลดิบ | ARW (.arw), CR2 (.cr2), DNG (.dng), NEF (.nef), NRW (.nrw), ORF (.orf) PEF (.pef), RAF (.raf), RW2 (.rw2), SRW (.srw) | |
HEIF | รูปภาพ คอลเล็กชันรูปภาพ ลำดับรูปภาพ | HEIF (.heif), HEIC (.heic) |
AVIF (โปรไฟล์พื้นฐาน) | รูปภาพ คอลเลกชันรูปภาพ โปรไฟล์เส้นฐานของลำดับรูปภาพ | คอนเทนเนอร์ HEIF (.avif) |
โปรแกรมเปลี่ยนไฟล์และตัวถอดรหัสรูปภาพที่แสดงผ่าน MediaCodec API
[C-1-1] ต้องรองรับสีที่ปรับเปลี่ยนได้ YUV420 8:8:8 รูปแบบ (
COLOR_FormatYUV420Flexible
) จนถึงCodecCapabilities
[C-SR-1] แนะนำอย่างยิ่งให้รองรับรูปแบบสี RGB888 สำหรับพื้นผิวอินพุต
[C-1-3] ต้องรองรับระนาบหรือสัมมนาอย่างน้อย 1 รายการ YUV420 8:8:8 รูปแบบสี:
COLOR_FormatYUV420PackedPlanar
(เทียบเท่ากับCOLOR_FormatYUV420Planar
) หรือCOLOR_FormatYUV420PackedSemiPlanar
(เทียบเท่า เป็นCOLOR_FormatYUV420SemiPlanar
) เราขอแนะนำเป็นอย่างยิ่งให้สนับสนุน ทั้ง 2 อย่าง
5.1.7 ตัวแปลงรหัสวิดีโอ
- เพื่อคุณภาพที่ยอมรับได้ของการสตรีมวิดีโอบนเว็บและการประชุมทางวิดีโอ บริการ การใช้งานอุปกรณ์ควรใช้ตัวแปลงรหัส VP8 ของฮาร์ดแวร์ที่ตรงตาม ข้อกำหนด
หากการใช้งานอุปกรณ์มีตัวถอดรหัสวิดีโอหรือโปรแกรมเปลี่ยนไฟล์
[C-1-1] ตัวแปลงรหัสวิดีโอต้องรองรับขนาดเอาต์พุตและไบต์บัฟเฟอร์อินพุตที่ รองรับเฟรมที่บีบอัดและไม่บีบอัดขนาดใหญ่ที่สุดเท่าที่จะทำได้ ตามมาตรฐานและการกำหนดค่า แต่ก็ไม่ใช่ภาพรวม
[C-1-2] โปรแกรมเปลี่ยนไฟล์และตัวถอดรหัสวิดีโอต้องรองรับสีที่ปรับเปลี่ยนได้ YUV420 8:8:8 รูปแบบ (
COLOR_FormatYUV420Flexible
) จนถึงCodecCapabilities
[C-1-3] โปรแกรมเปลี่ยนไฟล์และตัวถอดรหัสวิดีโอต้องรองรับระนาบหรือ รูปแบบสี YUV420 8:8:8 แบบเซมิแพลน:
COLOR_FormatYUV420PackedPlanar
(เทียบเท่ากับCOLOR_FormatYUV420Planar
) หรือCOLOR_FormatYUV420PackedSemiPlanar
(เทียบเท่ากับCOLOR_FormatYUV420SemiPlanar
) เราขอแนะนำเป็นอย่างยิ่งให้สนับสนุนทั้ง 2 อย่างนี้[C-SR-1] เราขอแนะนำเป็นอย่างยิ่งให้ใช้โปรแกรมเปลี่ยนไฟล์และตัวถอดรหัสวิดีโอเพื่อรองรับ สี YUV420 8:8:8 ที่เพิ่มประสิทธิภาพฮาร์ดแวร์อย่างน้อยหนึ่งรายการ (YV12, NV12, NV21 หรือรูปแบบที่เพิ่มประสิทธิภาพผู้ให้บริการที่เทียบเท่า)
[C-1-5] ตัวถอดรหัสวิดีโอที่รองรับรูปแบบที่มีความลึกของบิตสูง (9 บิตขึ้นไปต่อช่อง) ต้องรองรับเอาต์พุตรูปแบบ 8 บิตที่เทียบเท่ากัน ตามที่แอปพลิเคชันขอ สิ่งนี้ต้องสะท้อนให้เห็นโดยการสนับสนุน YUV420 รูปแบบสี 8:8:8 ผ่าน
android.media.MediaCodecInfo
การนำอุปกรณ์ไปใช้งานจะโฆษณาการรองรับโปรไฟล์ HDR ผ่านทาง
Display.HdrCapabilities
ดังนี้
- [C-2-1] ต้องรองรับการแยกวิเคราะห์และการจัดการข้อมูลเมตาแบบคงที่ HDR
หากมีการติดตั้งใช้งานอุปกรณ์ ระบบจะโฆษณาการสนับสนุนการรีเฟรชภายในผ่าน
FEATURE_IntraRefresh
ในMediaCodecInfo.CodecCapabilities
ได้
- [C-3-1] ต้องรองรับระยะเวลารีเฟรชในช่วง 10 - 60 เฟรมและ ทำงานได้อย่างถูกต้องภายใน 20% ของระยะเวลารีเฟรชที่กำหนดค่าไว้
เว้นแต่แอปพลิเคชันจะระบุไว้เป็นอย่างอื่นโดยใช้ KEY_COLOR_FORMAT
คีย์รูปแบบ, การติดตั้งใช้งานตัวถอดรหัสวิดีโอ:
- [C-4-1] ต้องมีค่าเริ่มต้นเป็นรูปแบบสีที่เหมาะกับการแสดงผลด้วยฮาร์ดแวร์ หากกำหนดค่าโดยใช้เอาต์พุต Surface
- [C-4-2] ต้องมีค่าเริ่มต้นเป็นรูปแบบสี YUV420 8:8:8 ที่เพิ่มประสิทธิภาพสำหรับ CPU อ่านค่าหากมีการกำหนดค่าไว้ไม่ให้ใช้เอาต์พุต Surface
5.1.8 รายการตัวแปลงรหัสวิดีโอ
รูปแบบ/ตัวแปลงรหัส | รายละเอียด | ประเภทไฟล์/รูปแบบคอนเทนเนอร์ที่จะรองรับ |
---|---|---|
H.263 |
|
|
H.264 AVC | ดูส่วนที่ 5.2 และ 5.3 สำหรับรายละเอียด |
|
HEVC ของ H.265 | ดูรายละเอียดในส่วนที่ 5.3 |
|
MPEG-2 | โปรไฟล์หลัก |
|
MPEG-4 SP |
|
|
VP8 | โปรดดูส่วนที่ 5.2 และ 5.3 สำหรับรายละเอียด |
|
VP9 | ดูรายละเอียดในส่วนที่ 5.3 |
|
AV1 | ดูรายละเอียดได้ในส่วนที่ 5.2 และส่วนที่ 5.3 |
|
5.1.9 ความปลอดภัยของตัวแปลงรหัสสื่อ
การใช้งานอุปกรณ์ต้องตรวจสอบการปฏิบัติตามข้อกำหนดของฟีเจอร์ความปลอดภัยของตัวแปลงรหัสสื่อ ตามที่อธิบายไว้ด้านล่าง
Android รองรับ OMX ซึ่งเป็นการเร่งความเร็วมัลติมีเดีย API ข้ามแพลตฟอร์ม รวมทั้งตัวแปลงรหัส 2.0 ซึ่งเป็น API การเร่งความเร็วมัลติมีเดียต่ำ
หากการใช้งานอุปกรณ์รองรับมัลติมีเดีย จะมีผลดังนี้
- [C-1-1] ต้องให้การสนับสนุนตัวแปลงรหัสสื่อผ่าน OMX หรือตัวแปลงรหัส 2.0 API (หรือทั้งสองอย่าง) ตามในโครงการโอเพนซอร์ส Android และไม่ปิดใช้หรือ การรักษาความปลอดภัย ซึ่งไม่ได้หมายความว่า ตัวแปลงรหัสต้องใช้ OMX หรือตัวแปลงรหัส 2.0 API เฉพาะที่สนับสนุน หนึ่งใน API เหล่านี้ต้องพร้อมใช้งาน และต้องสนับสนุน API ที่ใช้ได้ รวมการป้องกันความปลอดภัยที่มีอยู่
- [C-SR-1] ขอแนะนำอย่างยิ่งให้รวมการสนับสนุนตัวแปลงรหัส 2.0 API
หากการใช้งานอุปกรณ์ไม่รองรับตัวแปลงรหัส 2.0 API อุปกรณ์จะทำงานดังนี้
- [C-2-1] ต้องรวมตัวแปลงรหัสซอฟต์แวร์ OMX ที่สอดคล้องกันจาก Android โปรเจ็กต์โอเพนซอร์ส (หากมี) สำหรับรูปแบบและสื่อแต่ละประเภท (โปรแกรมเปลี่ยนไฟล์หรือตัวถอดรหัส) ที่อุปกรณ์รองรับ
- [C-2-2] ตัวแปลงรหัสที่มีชื่อขึ้นต้นด้วย "OMX.google" ต้องอิงตาม เกี่ยวกับซอร์สโค้ดของโครงการโอเพนซอร์ส Android
- [C-SR-2] ขอแนะนำเป็นอย่างยิ่งว่าตัวแปลงรหัสซอฟต์แวร์ OMX จะทำงานในตัวแปลงรหัส กระบวนการที่ไม่สามารถเข้าถึงไดรเวอร์ฮาร์ดแวร์นอกเหนือจากนักทำแผนที่หน่วยความจำ
หากอุปกรณ์รองรับตัวแปลงรหัสตัวแปลงรหัส 2.0 API อุปกรณ์จะทำงานดังนี้
- [C-3-1] ต้องรวมตัวแปลงรหัสของซอฟต์แวร์ Codec 2.0 ที่สอดคล้องกันจาก โปรเจ็กต์โอเพนซอร์ส Android (หากมี) สำหรับสื่อแต่ละรูปแบบและประเภท (โปรแกรมเปลี่ยนไฟล์หรือตัวถอดรหัส) ที่อุปกรณ์รองรับ
- [C-3-2] ต้องเก็บตัวแปลงรหัสซอฟต์แวร์ Codec 2.0 ไว้ในตัวแปลงรหัสของซอฟต์แวร์ ตามที่กำหนดไว้ในโครงการโอเพนซอร์ส Android เพื่อทำให้ เพื่อให้สิทธิ์เข้าถึงตัวแปลงรหัสซอฟต์แวร์ในวงแคบ
- [C-3-3] ตัวแปลงรหัสที่มีชื่อขึ้นต้นด้วย "c2.android" ต้องอิงตาม เกี่ยวกับซอร์สโค้ดของโครงการโอเพนซอร์ส Android
5.1.10 การจำแนกลักษณะของตัวแปลงรหัสสื่อ
หากการติดตั้งใช้งานอุปกรณ์รองรับตัวแปลงรหัสสื่อ ตัวแปลงสัญญาณต่อไปนี้
- [C-1-1] ต้องส่งคืนค่าที่ถูกต้องของการกำหนดลักษณะของตัวแปลงรหัสสื่อผ่านทาง
MediaCodecInfo
API
โดยเฉพาะอย่างยิ่ง:
- [C-1-2] ตัวแปลงรหัสที่มีชื่อขึ้นต้นด้วย "OMX" ต้องใช้ OMX API และมีชื่อที่สอดคล้องกับหลักเกณฑ์การตั้งชื่อของ OMX IL
- [C-1-3] ตัวแปลงรหัสที่มีชื่อขึ้นต้นด้วย "c2" ต้องใช้ตัวแปลงรหัส 2.0 API และ มีชื่อที่สอดคล้องกับหลักเกณฑ์การตั้งชื่อของตัวแปลงรหัส 2.0 สำหรับ Android
- [C-1-4] ตัวแปลงรหัสที่มีชื่อขึ้นต้นด้วย "OMX.google" หรือ "c2.android" ต้อง ไม่มีลักษณะเป็นผู้ให้บริการหรือเป็นการเร่งฮาร์ดแวร์
- [C-1-5] ตัวแปลงรหัสที่ทำงานในกระบวนการของตัวแปลงรหัส (ผู้ให้บริการหรือระบบ) ที่มี การเข้าถึงไดรเวอร์ฮาร์ดแวร์อื่นๆ นอกเหนือจากเครื่องมือจัดสรรหน่วยความจำและผู้ทำแผนที่ต้อง มีลักษณะเป็นซอฟต์แวร์เท่านั้น
- [C-1-6] ตัวแปลงรหัสไม่มีอยู่ในโครงการโอเพนซอร์ส Android หรือไม่ได้อ้างอิง ในซอร์สโค้ดในโปรเจ็กต์นั้นต้องอยู่ในรูปแบบผู้ให้บริการ
- [C-1-7] ตัวแปลงรหัสที่ใช้การเร่งฮาร์ดแวร์จะต้องมีลักษณะพิเศษ เป็นการเร่งฮาร์ดแวร์
- [C-1-8] ชื่อตัวแปลงรหัสต้องไม่ทำให้เข้าใจผิด ตัวอย่างเช่น ตัวแปลงรหัสที่ชื่อ "ตัวถอดรหัส" ต้องรองรับการถอดรหัส และโปรแกรมที่ชื่อ "โปรแกรมเปลี่ยนไฟล์" ต้องรองรับ การเข้ารหัส ตัวแปลงรหัสที่มีชื่อที่มีรูปแบบสื่อต้องรองรับ รูปแบบ
หากการใช้งานอุปกรณ์รองรับตัวแปลงรหัสวิดีโอ ให้ทำดังนี้
- [C-2-1] ตัวแปลงรหัสวิดีโอทั้งหมดต้องเผยแพร่ข้อมูลอัตราเฟรมที่ทำได้ ขนาดต่อไปนี้หากตัวแปลงรหัสสนับสนุน:
SD (คุณภาพต่ำ) | SD (คุณภาพสูง) | HD 720p | HD 1080p | UHD | |
---|---|---|---|---|---|
ความละเอียดของวิดีโอ |
|
|
|
1920 x 1080 พิกเซล (นอกเหนือจาก MPEG4, AV1) | 3840 x 2160 พิกเซล (HEVC, VP9, AV1) |
- [C-2-2] ตัวแปลงรหัสวิดีโอที่มีลักษณะเป็นการเร่งความเร็วด้วยฮาร์ดแวร์ต้อง
เผยแพร่ข้อมูลคะแนนประสิทธิภาพ แต่ละรายการต้องมีการสนับสนุนทั้งหมด
คะแนนประสิทธิภาพมาตรฐาน (แสดงอยู่ใน
PerformancePoint
API) เว้นแต่จะครอบคลุมอยู่ในจุดประสิทธิภาพมาตรฐานอื่นๆ ที่รองรับ - นอกจากนี้ ควรเผยแพร่คะแนนประสิทธิภาพเพิ่มเติมหาก สนับสนุนประสิทธิภาพของวิดีโอที่ยั่งยืน ซึ่งไม่ใช่วิดีโอมาตรฐานที่ระบุไว้
5.2 การเข้ารหัสวิดีโอ
หากการติดตั้งใช้งานอุปกรณ์รองรับโปรแกรมเปลี่ยนไฟล์วิดีโอและทำให้พร้อมใช้งานสำหรับ
แอปของบุคคลที่สาม และตั้งค่า
MediaFormat.KEY_BITRATE_MODE
ถึง
BITRATE_MODE_VBR
เพื่อให้โปรแกรมเปลี่ยนไฟล์ทำงานในโหมดอัตราบิตที่ปรับเปลี่ยนได้
ตราบใดที่ไม่ส่งผลต่อคุณภาพขั้นต่ำขั้นต่ำ
อัตราบิตที่เข้ารหัส :
- ไม่ควรเป็น มากกว่าหนึ่ง หน้าต่างเลื่อน ซึ่งมากกว่า 15% ของอัตราบิตระหว่างภายในเฟรม (I-Frame) เป็นรอบ
- ไม่ควรเกิน อัตราบิต 100% บนหน้าต่างเลื่อน 1 วินาที
หากการติดตั้งใช้งานอุปกรณ์รองรับโปรแกรมเปลี่ยนไฟล์วิดีโอและทำให้พร้อมใช้งานสำหรับ
แอปของบุคคลที่สาม แล้วตั้งค่า
MediaFormat.KEY_BITRATE_MODE
ถึง
BITRATE_MODE_CBR
ดังนั้นโปรแกรมเปลี่ยนไฟล์จะทำงานในโหมดอัตราบิตคงที่ ตามด้วยอัตราบิตที่เข้ารหัส:
- [C-SR-2] ขอแนะนำเป็นอย่างยิ่งให้ ไม่เกิน 15% ของอัตราบิตเป้าหมายในหน้าต่างเลื่อน 1 วินาที
หากการใช้งานอุปกรณ์รวมการแสดงผลของหน้าจอแบบฝังที่มี
ความยาวแนวทแยงมุมอย่างน้อย 2.5 นิ้ว หรือรวมพอร์ตเอาต์พุตวิดีโอ หรือ
ประกาศการรองรับกล้องผ่าน android.hardware.camera.any
แฟล็กฟีเจอร์
- [C-1-1] ต้องมีการสนับสนุนวิดีโอ VP8 หรือ H.264 อย่างน้อย 1 รายการ โปรแกรมเปลี่ยนไฟล์ และทำให้ใช้งานได้สำหรับแอปพลิเคชันของบุคคลที่สาม
- รองรับทั้งโปรแกรมเปลี่ยนไฟล์วิดีโอ VP8 และ H.264 และทำให้ใช้งานได้ สำหรับแอปพลิเคชันของบุคคลที่สาม
หากการติดตั้งใช้งานอุปกรณ์รองรับวิดีโอ H.264, VP8, VP9 หรือ HEVC และทำให้พร้อมใช้งานสำหรับแอปพลิเคชันของบุคคลที่สามได้
- [C-2-1] ต้องรองรับอัตราบิตที่กำหนดค่าแบบไดนามิกได้
- ควรรองรับอัตราเฟรมที่เปลี่ยนแปลงได้ ซึ่งโปรแกรมเปลี่ยนไฟล์วิดีโอควรกำหนด ระยะเวลาของเฟรมทันทีตามการประทับเวลาของบัฟเฟอร์อินพุต และ จัดสรรที่เก็บข้อมูลบิตโดยอิงตามระยะเวลาของเฟรมนั้น
หากการใช้งานอุปกรณ์รองรับโปรแกรมเปลี่ยนไฟล์วิดีโอ MPEG-4 SP และทำให้ มีให้บริการสำหรับแอปของบุคคลที่สาม
- ควรสนับสนุนอัตราบิตที่กำหนดค่าแบบไดนามิกสำหรับโปรแกรมเปลี่ยนไฟล์ที่สนับสนุน
หากการติดตั้งอุปกรณ์มีโปรแกรมเปลี่ยนไฟล์วิดีโอหรือรูปภาพที่ใช้ฮาร์ดแวร์เร่งการแสดงผล
และรองรับกล้องฮาร์ดแวร์ที่ติดหรือเสียบได้อย่างน้อย 1 ตัวที่รั่วไหลผ่าน
android.camera
API:
- [C-4-1] โปรแกรมเปลี่ยนไฟล์และรูปภาพวิดีโอที่เร่งการแสดงผลด้วยฮาร์ดแวร์ต้องรองรับ เพื่อเข้ารหัสเฟรมจากกล้องฮาร์ดแวร์
- ควรรองรับเฟรมการเข้ารหัสจากกล้องฮาร์ดแวร์ผ่านวิดีโอทั้งหมด หรือโปรแกรมเปลี่ยนไฟล์รูปภาพ
หากการติดตั้งใช้งานอุปกรณ์มีการเข้ารหัส HDR สิ่งที่จะเกิดขึ้นมีดังนี้
- [C-SR-1] ขอแนะนำอย่างยิ่งให้ระบุปลั๊กอินสำหรับ API การแปลงที่ราบรื่นในการแปลงจากรูปแบบ HDR เป็นรูปแบบ SDR
5.2.1 H.263
หากการติดตั้งใช้งานอุปกรณ์รองรับโปรแกรมเปลี่ยนไฟล์ H.263 และทำให้พร้อมใช้งานได้ กับแอปของบุคคลที่สาม
- [C-1-1] ต้องรองรับความละเอียด QCIF (176 x 144) โดยใช้โปรไฟล์พื้นฐานระดับ 45 ความละเอียด SQCIF เป็นตัวเลือกที่ไม่บังคับ
5.2.2 H.264
หากอุปกรณ์รองรับตัวแปลงรหัส H.264 การทำงานเหล่านี้จะมีผลดังนี้
- [C-1-1] ต้องรองรับโปรไฟล์พื้นฐานระดับ 3 อย่างไรก็ตาม การรองรับ ASO (Arbitrary Slice Ordering), FMO (แบบยืดหยุ่น การเรียงลำดับ Macroblock) และ RS (ส่วนซ้ำซ้อน) จะไม่บังคับ นอกจากนี้ เพื่อ สามารถรักษาความเข้ากันได้กับอุปกรณ์ Android อื่นๆ ขอแนะนำว่า โปรแกรมเปลี่ยนไฟล์จะไม่ใช้ ASO, FMO และ RS กับโปรไฟล์พื้นฐาน
- [C-1-2] ต้องรองรับโปรไฟล์การเข้ารหัสวิดีโอ SD (ความละเอียดมาตรฐาน) ในตารางต่อไปนี้
- ควรรองรับโปรไฟล์หลักระดับ 4
- ควรสนับสนุนโปรไฟล์การเข้ารหัสวิดีโอ HD (ความละเอียดสูง) เป็น ที่ระบุไว้ในตารางต่อไปนี้
หากการใช้งานอุปกรณ์รายงานการรองรับการเข้ารหัส H.264 สำหรับ 720p หรือ 1080p ความละเอียดวิดีโอผ่าน API สื่อต่างๆ ได้
- [C-2-1] ต้องรองรับโปรไฟล์การเข้ารหัสในตารางต่อไปนี้
SD (คุณภาพต่ำ) | SD (คุณภาพสูง) | HD 720p | HD 1080p | |
---|---|---|---|---|
ความละเอียดของวิดีโอ | 320 x 240 พิกเซล | 720 x 480 พิกเซล | 1280 x 720 พิกเซล | 1920 x 1080 พิกเซล |
อัตราเฟรมของวิดีโอ | 20 FPS | 30 fps | 30 fps | 30 fps |
อัตราบิตของวิดีโอ | 384 Kbps | 2 Mbps | 4 Mbps | 10 Mbps |
5.2.3 VP8
หากอุปกรณ์รองรับตัวแปลงรหัส VP8 อุปกรณ์ดังกล่าวจะมีลักษณะดังนี้
- [C-1-1] ต้องรองรับโปรไฟล์การเข้ารหัสวิดีโอ SD
- ควรสนับสนุนโปรไฟล์การเข้ารหัสวิดีโอความละเอียดสูง (ความละเอียดสูง) ต่อไปนี้
- [C-1-2] ต้องรองรับการเขียนไฟล์ Matroska WebM
- ควรมีตัวแปลงรหัส VP8 สำหรับฮาร์ดแวร์ที่ตรงตาม ข้อกำหนดการเขียนโค้ดฮาร์ดแวร์ RTC ของโครงการ WebM เพื่อให้แน่ใจว่า คุณภาพที่ยอมรับได้ของบริการสตรีมมิงวิดีโอบนเว็บและการประชุมทางวิดีโอ
หากการใช้งานอุปกรณ์รายงานการรองรับการเข้ารหัส VP8 สำหรับ 720p หรือ 1080p ความละเอียดวิดีโอผ่าน API สื่อต่างๆ ได้
- [C-2-1] ต้องรองรับโปรไฟล์การเข้ารหัสในตารางต่อไปนี้
SD (คุณภาพต่ำ) | SD (คุณภาพสูง) | HD 720p | HD 1080p | |
---|---|---|---|---|
ความละเอียดของวิดีโอ | 320 x 180 พิกเซล | 640 x 360 พิกเซล | 1280 x 720 พิกเซล | 1920 x 1080 พิกเซล |
อัตราเฟรมของวิดีโอ | 30 fps | 30 fps | 30 fps | 30 fps |
อัตราบิตของวิดีโอ | 800 Kbps | 2 Mbps | 4 Mbps | 10 Mbps |
5.2.4 VP9
หากอุปกรณ์รองรับตัวแปลงรหัส VP9 อุปกรณ์จะทำงานดังนี้
- [C-1-2] ต้องรองรับโปรไฟล์ 0 ระดับ 3
- [C-1-1] ต้องรองรับการเขียนไฟล์ Matroska WebM
- [C-1-3] ต้องสร้างข้อมูล CodecPrivate
- ควรสนับสนุนโปรไฟล์การถอดรหัส HD ตามที่ระบุในตารางต่อไปนี้
- [C-SR-1] ขอแนะนำเป็นอย่างยิ่งให้สนับสนุนโปรไฟล์การถอดรหัส HD เนื่องจาก ซึ่งจะระบุในตารางต่อไปนี้หากมีฮาร์ดแวร์เปลี่ยนไฟล์
SD | HD 720p | HD 1080p | UHD | |
---|---|---|---|---|
ความละเอียดของวิดีโอ | 720 x 480 พิกเซล | 1280 x 720 พิกเซล | 1920 x 1080 พิกเซล | 3840 x 2160 พิกเซล |
อัตราเฟรมของวิดีโอ | 30 fps | 30 fps | 30 fps | 30 fps |
อัตราบิตของวิดีโอ | 1.6 Mbps | 4 Mbps | 5 Mbps | 20 Mbps |
หากการติดตั้งใช้งานอุปกรณ์อ้างว่ารองรับโปรไฟล์ 2 หรือโปรไฟล์ 3 ผ่าน API สื่อ:
- การรองรับรูปแบบ 12 บิตเป็นตัวเลือกที่ไม่บังคับ
5.2.5 H.265
หากอุปกรณ์รองรับตัวแปลงรหัส H.265 อุปกรณ์จะทำงานดังนี้
- [C-1-1] ต้องรองรับโปรไฟล์หลักระดับ 3 จนถึง ความละเอียด 512 x 512
- [C-SR-1] ขอแนะนำเป็นอย่างยิ่งให้สนับสนุน โปรไฟล์ SD ขนาด 720 x 480 และ โปรไฟล์การเข้ารหัส HD ตามที่ระบุไว้ในตารางต่อไปนี้ หากมี ฮาร์ดแวร์เปลี่ยนไฟล์
SD | HD 720p | HD 1080p | UHD | |
---|---|---|---|---|
ความละเอียดของวิดีโอ | 720 x 480 พิกเซล | 1280 x 720 พิกเซล | 1920 x 1080 พิกเซล | 3840 x 2160 พิกเซล |
อัตราเฟรมของวิดีโอ | 30 fps | 30 fps | 30 fps | 30 fps |
อัตราบิตของวิดีโอ | 1.6 Mbps | 4 Mbps | 5 Mbps | 20 Mbps |
5.2.6 AV1
หากการติดตั้งใช้งานอุปกรณ์รองรับตัวแปลงรหัส AV1 อุปกรณ์เหล่านี้จะมีลักษณะดังนี้
- [C-1-1] ต้องสนับสนุนโปรไฟล์หลัก ซึ่งรวมถึงเนื้อหาแบบ 8 บิตและ 10 บิต
[C-1-2] ต้องเผยแพร่ข้อมูลประสิทธิภาพ เช่น รายงานข้อมูลประสิทธิภาพผ่านทาง
getSupportedFrameRatesFor()
หรือgetSupportedPerformancePoints()
API สำหรับความละเอียดที่รองรับในตารางด้านล่าง[C-1-3] ต้องยอมรับข้อมูลเมตา HDR และเอาต์พุตไปยังบิตสตรีม
หากโปรแกรมเปลี่ยนไฟล์ AV1 เร่งฮาร์ดแวร์ ระบบจะดำเนินการต่อไปนี้
- [C-2-1] ต้องรองรับและรวมโปรไฟล์การเข้ารหัส HD1080p จาก ตารางด้านล่าง
SD | HD 720p | HD 1080p | UHD | |
---|---|---|---|---|
ความละเอียดของวิดีโอ | 720 x 480 พิกเซล | 1280 x 720 พิกเซล | 1920 x 1080 พิกเซล | 3840 x 2160 พิกเซล |
อัตราเฟรมของวิดีโอ | 30 fps | 30 fps | 30 fps | 30 fps |
อัตราบิตของวิดีโอ | 5 Mbps | 8 Mbps | 16 Mbps | 50 Mbps |
5.3 การถอดรหัสวิดีโอ
หากการติดตั้งใช้งานอุปกรณ์รองรับตัวแปลงรหัส VP8, VP9, H.264 หรือ H.265 ระบบจะดำเนินการดังต่อไปนี้
- [C-1-1] ต้องรองรับความละเอียดของวิดีโอแบบไดนามิกและการสลับอัตราเฟรม ผ่าน Android API มาตรฐานภายในสตรีมเดียวกันสำหรับ VP8, VP9 ตัวแปลงรหัส H.264 และ H.265 แบบเรียลไทม์และมีความละเอียดสูงสุดที่รองรับ ตามตัวแปลงรหัสแต่ละตัวบนอุปกรณ์
5.3.1 MPEG-2
หากการติดตั้งอุปกรณ์รองรับตัวถอดรหัส MPEG-2 สิ่งที่จะเกิดขึ้นมีดังนี้
- [C-1-1] ต้องสนับสนุนระดับสูงของโปรไฟล์หลัก
5.3.2 H.263
หากการติดตั้งใช้งานอุปกรณ์รองรับตัวถอดรหัส H.263 สิ่งที่จะเกิดขึ้นมีดังนี้
- [C-1-1] ต้องรองรับโปรไฟล์พื้นฐานระดับ 30 (ความละเอียด CIF, QCIF และ SQCIF @ 30fps 384kbps) และระดับ 45 (QCIF และ ความละเอียด SQCIF ที่ 30fps 128kbps)
5.3.3 MPEG-4
หากอุปกรณ์มีตัวถอดรหัส MPEG-4 สิ่งที่จะเกิดขึ้นมีดังนี้
- [C-1-1] ต้องรองรับ Simple Profile ระดับ 3
5.3.4 H.264
หากการติดตั้งใช้งานอุปกรณ์รองรับตัวถอดรหัส H.264 ระบบจะดำเนินการต่อไปนี้
- [C-1-1] ต้องรองรับโปรไฟล์หลักระดับ 3.1 และโปรไฟล์พื้นฐาน ที่ค้ำ สำหรับ ASO (Arbitrary Slice Ordering), FMO (แบบยืดหยุ่น Macroblock Ordering) และ RS (ส่วนที่ซ้ำกัน) ไม่บังคับ
- [C-1-2] ต้องสามารถถอดรหัสวิดีโอด้วย SD (ความละเอียดมาตรฐาน) โปรไฟล์ที่แสดงในตารางต่อไปนี้และเข้ารหัสด้วยโปรไฟล์พื้นฐาน และโปรไฟล์หลักระดับ 3.1 (รวมถึง 720p30)
- ควรสามารถถอดรหัสวิดีโอที่มีโปรไฟล์ HD (ความละเอียดสูง) ตามที่ระบุไว้ในตารางต่อไปนี้
หากความสูงที่เมธอด Display.getSupportedModes()
รายงานคือ
เท่ากับหรือมากกว่าความละเอียดของวิดีโอ การใช้งานอุปกรณ์
- [C-2-1] ต้องรองรับโปรไฟล์การถอดรหัสวิดีโอ HD 720p ในสิ่งต่อไปนี้
- [C-2-2] ต้องรองรับโปรไฟล์การถอดรหัสวิดีโอ HD 1080p ในสิ่งต่อไปนี้
SD (คุณภาพต่ำ) | SD (คุณภาพสูง) | HD 720p | HD 1080p | |
---|---|---|---|---|
ความละเอียดของวิดีโอ | 320 x 240 พิกเซล | 720 x 480 พิกเซล | 1280 x 720 พิกเซล | 1920 x 1080 พิกเซล |
อัตราเฟรมของวิดีโอ | 30 fps | 30 fps | 60 FPS | 30 FPS (60 FPS ทีวี) |
อัตราบิตของวิดีโอ | 800 Kbps | 2 Mbps | 8 Mbps | 20 Mbps |
5.3.5 H.265 (HEVC)
หากอุปกรณ์รองรับตัวแปลงรหัส H.265 อุปกรณ์จะทำงานดังนี้
- [C-1-1] ต้องรองรับระดับโปรไฟล์หลักระดับ 3 และวิดีโอ SD การถอดรหัสโปรไฟล์ตามที่ระบุในตารางต่อไปนี้
- ควรสนับสนุนโปรไฟล์การถอดรหัส HD ตามที่ระบุในตารางต่อไปนี้
- [C-1-2] ต้องสนับสนุนโปรไฟล์การถอดรหัส HD ดังที่ระบุต่อไปนี้ หากมีตัวถอดรหัสฮาร์ดแวร์
หากความสูงที่เมธอด Display.getSupportedModes()
รายงานคือ
เท่ากับหรือมากกว่าความละเอียดของวิดีโอแล้ว:
- [C-2-1] การใช้งานอุปกรณ์ต้องรองรับ H.265 หรือ VP9 อย่างน้อย 1 รายการ การถอดรหัสโปรไฟล์ 720, 1080 และ UHD
SD (คุณภาพต่ำ) | SD (คุณภาพสูง) | HD 720p | HD 1080p | UHD | |
---|---|---|---|---|---|
ความละเอียดของวิดีโอ | 352 x 288 พิกเซล | 720 x 480 พิกเซล | 1280 x 720 พิกเซล | 1920 x 1080 พิกเซล | 3840 x 2160 พิกเซล |
อัตราเฟรมของวิดีโอ | 30 fps | 30 fps | 30 fps | 30/60 FPS (60 fps ทีวีที่มีการถอดรหัสฮาร์ดแวร์ H.265) | 60 FPS |
อัตราบิตของวิดีโอ | 600 Kbps | 1.6 Mbps | 4 Mbps | 5 Mbps | 20 Mbps |
หากการใช้งานอุปกรณ์อ้างว่ารองรับโปรไฟล์ HDR ผ่านสื่อ API:
- [C-3-1] การใช้งานอุปกรณ์ต้องยอมรับข้อมูลเมตา HDR ที่จำเป็นจาก รวมทั้งรองรับการแยกและเอาต์พุต HDR ที่จำเป็น ข้อมูลเมตาจากบิตสตรีมและ/หรือคอนเทนเนอร์
- [C-3-2] การใช้งานอุปกรณ์ต้องแสดงเนื้อหา HDR อย่างเหมาะสมบน หน้าจออุปกรณ์หรือบนพอร์ตเอาต์พุตวิดีโอมาตรฐาน (เช่น HDMI)
5.3.6 VP8
หากอุปกรณ์รองรับตัวแปลงรหัส VP8 อุปกรณ์ดังกล่าวจะมีลักษณะดังนี้
- [C-1-1] ต้องรองรับโปรไฟล์การถอดรหัส SD ในตารางต่อไปนี้
- ควรใช้ตัวแปลงรหัส VP8 สำหรับฮาร์ดแวร์ที่ตรงตาม ข้อกำหนด
- ควรสนับสนุนโปรไฟล์การถอดรหัส HD ในตารางต่อไปนี้
หากความสูงตามที่รายงานโดยเมธอด Display.getSupportedModes()
มีค่าเท่ากับ
หรือมากกว่าความละเอียดของวิดีโอแล้ว:
- [C-2-1] การใช้งานอุปกรณ์ต้องรองรับโปรไฟล์ 720p ในส่วน ตารางต่อไปนี้
- [C-2-2] การใช้งานอุปกรณ์ต้องรองรับโปรไฟล์ 1080p ในส่วน ตารางต่อไปนี้
SD (คุณภาพต่ำ) | SD (คุณภาพสูง) | HD 720p | HD 1080p | |
---|---|---|---|---|
ความละเอียดของวิดีโอ | 320 x 180 พิกเซล | 640 x 360 พิกเซล | 1280 x 720 พิกเซล | 1920 x 1080 พิกเซล |
อัตราเฟรมของวิดีโอ | 30 fps | 30 fps | 30 FPS (60 FPS ทีวี) | 30 (60 FPSทีวี) |
อัตราบิตของวิดีโอ | 800 Kbps | 2 Mbps | 8 Mbps | 20 Mbps |
5.3.7 VP9
หากอุปกรณ์รองรับตัวแปลงรหัส VP9 อุปกรณ์จะทำงานดังนี้
- [C-1-1] ต้องรองรับโปรไฟล์การถอดรหัสวิดีโอ SD ตามที่ระบุไว้ใน ตารางต่อไปนี้
- ควรสนับสนุนโปรไฟล์การถอดรหัส HD ตามที่ระบุในตารางต่อไปนี้
หากการใช้งานอุปกรณ์รองรับตัวแปลงรหัส VP9 และตัวถอดรหัสฮาร์ดแวร์
- [C-2-1] ต้องสนับสนุนโปรไฟล์การถอดรหัส HD ดังที่ระบุต่อไปนี้
หากความสูงที่เมธอด Display.getSupportedModes()
รายงานคือ
เท่ากับหรือมากกว่าความละเอียดของวิดีโอแล้ว:
- [C-3-1] การใช้งานอุปกรณ์ต้องรองรับ VP9 หรือ H.265 อย่างน้อย 1 รายการ การถอดรหัสของโปรไฟล์ 720, 1080 และ UHD
SD (คุณภาพต่ำ) | SD (คุณภาพสูง) | HD 720p | HD 1080p | UHD | |
---|---|---|---|---|---|
ความละเอียดของวิดีโอ | 320 x 180 พิกเซล | 640 x 360 พิกเซล | 1280 x 720 พิกเซล | 1920 x 1080 พิกเซล | 3840 x 2160 พิกเซล |
อัตราเฟรมของวิดีโอ | 30 fps | 30 fps | 30 fps | 30 fps (60 fpsทีวีที่มีการถอดรหัสฮาร์ดแวร์ VP9) | 60 FPS |
อัตราบิตของวิดีโอ | 600 Kbps | 1.6 Mbps | 4 Mbps | 5 Mbps | 20 Mbps |
หากการใช้อุปกรณ์อ้างว่ารองรับ VP9Profile2
หรือ VP9Profile3
ผ่าน "CodecProfileLevel"
API สื่อ:
- การรองรับรูปแบบ 12 บิตเป็นตัวเลือกที่ไม่บังคับ
หากการใช้งานอุปกรณ์อ้างว่ารองรับโปรไฟล์ HDR (VP9Profile2HDR
VP9Profile2HDR10Plus
, VP9Profile3HDR
, VP9Profile3HDR10Plus
) จนถึง
API สื่อ:
- [C-4-1] การใช้งานอุปกรณ์ต้องยอมรับข้อมูลเมตา HDR ที่จำเป็น
(
KEY_HDR_STATIC_INFO
สำหรับโปรไฟล์ HDR ทั้งหมด "KEY_HDR10_PLUS_INFO" สำหรับโปรไฟล์ HDR10Plus) จากแอปพลิเคชัน นอกจากนี้ ยังต้องรองรับการดึงและเอาต์พุต ข้อมูลเมตา HDR ที่จำเป็นจากบิตสตรีมและ/หรือคอนเทนเนอร์ - [C-4-2] การใช้งานอุปกรณ์ต้องแสดงเนื้อหา HDR อย่างเหมาะสมบน หน้าจออุปกรณ์หรือบนพอร์ตเอาต์พุตวิดีโอมาตรฐาน (เช่น HDMI)
5.3.8 Dolby Vision
หากการใช้งานอุปกรณ์ประกาศการรองรับตัวถอดรหัส Dolby Vision ผ่าน
HDR_TYPE_DOLBY_VISION
ดังนี้
- [C-1-1] ต้องมีอุปกรณ์แยกที่รองรับ Dolby Vision
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
- [C-1-2] ต้องแสดงเนื้อหา Dolby Vision อย่างถูกต้อง ใดก็ได้ในอุปกรณ์ หน้าจอหรือบนจอแสดงผลภายนอกที่ต่ออยู่ ผ่านพอร์ตเอาต์พุตวิดีโอมาตรฐาน (เช่น HDMI)
สิ้นสุดข้อกำหนดใหม่
- [C-1-3] ต้องตั้งค่ารหัสแทร็ก ของเลเยอร์ฐานที่เข้ากันได้แบบย้อนหลัง (หากมี) เพื่อให้เหมือนกับแท็ก รวมรหัสแทร็กของเลเยอร์ Dolby Vision
5.3.9 AV1
หากการติดตั้งใช้งานอุปกรณ์รองรับตัวแปลงรหัส AV1 และทำให้แอปพลิเคชันของบุคคลที่สามใช้งานได้ ตัวแปลงรหัสจะมีลักษณะดังนี้
- [C-1-1] ต้องสนับสนุนโปรไฟล์หลัก ซึ่งรวมถึงเนื้อหาแบบ 8 บิตและ 10 บิต
หากการใช้งานอุปกรณ์รองรับตัวแปลงรหัส AV1 ด้วยฮาร์ดแวร์ Accelerated Decoder ดังนี้
- [C-2-1] ต้องสามารถถอดรหัสโปรไฟล์การถอดรหัสวิดีโอความละเอียดสูง 720p จาก
ตารางด้านล่างเมื่อความสูงที่รายงานโดย
Display.getSupportedModes()
เท่ากับหรือมากกว่า 720p - [C-2-2] ต้องสามารถถอดรหัสโปรไฟล์การถอดรหัสวิดีโอความละเอียดสูง 1080p ได้อย่างน้อย 1 โปรไฟล์
จากตารางด้านล่างเมื่อความสูงที่รายงานโดย
Display.getSupportedModes()
เท่ากับหรือมากกว่า 1080p
SD | HD 720p | HD 1080p | UHD | |
---|---|---|---|---|
ความละเอียดของวิดีโอ | 720 x 480 พิกเซล | 1280 x 720 พิกเซล | 1920 x 1080 พิกเซล | 3840 x 2160 พิกเซล |
อัตราเฟรมของวิดีโอ | 30 fps | 30 fps | 30 fps | 30 fps |
อัตราบิตของวิดีโอ | 5 Mbps | 8 Mbps | 16 Mbps | 50 Mbps |
หากการใช้งานอุปกรณ์รองรับโปรไฟล์ HDR ผ่านทาง Media API ดังนี้
- [C-3-1] ต้องรองรับการดึงและเอาต์พุตข้อมูลเมตา HDR จาก บิตสตรีมและ/หรือคอนเทนเนอร์
- [C-3-2] ต้องแสดงเนื้อหา HDR อย่างถูกต้องบนหน้าจอของอุปกรณ์หรือบน พอร์ตเอาต์พุตวิดีโอมาตรฐาน (เช่น HDMI)
5.4 การบันทึกเสียง
แม้ว่าข้อกำหนดบางส่วนที่ระบุไว้ในส่วนนี้จะแสดงเป็น "ควร" ตั้งแต่ Android 4.3 เป็นต้นมา เราได้วางแผนข้อกำหนดความเข้ากันได้สำหรับเวอร์ชันในอนาคต ให้เปลี่ยนเป็น "ต้อง" อุปกรณ์ Android ที่มีอยู่และอุปกรณ์ใหม่อย่างมาก แนะนำเพื่อให้เป็นไปตามข้อกำหนดเหล่านี้ที่ระบุว่า "ควร" หรือ จะไม่สามารถใช้งานร่วมกับ Android เมื่ออัปเกรดเป็นในอนาคต เวอร์ชัน
5.4.1 การบันทึกเสียงและข้อมูลไมโครโฟนแบบข้อมูลดิบ
การใช้งานอุปกรณ์จะประกาศ android.hardware.microphone
ดังต่อไปนี้
[C-1-1] ต้องอนุญาตให้บันทึกเนื้อหาเสียงดิบสำหรับ สตรีม
AudioRecord
หรือAAudio
INPUT ที่เปิดขึ้น สำเร็จ อย่างน้อยที่สุด ต้องมีการสนับสนุนลักษณะต่อไปนี้:- รูปแบบ: PCM เชิงเส้น 16 บิต
- อัตราการสุ่มตัวอย่าง: 8000, 11025, 16000, 44100, 48000 Hz
- ช่องสัญญาณ: โมโน
- แหล่งที่มาของเสียง:
DEFAULT
,MIC
,CAMCORDER
VOICE_RECOGNITION
VOICE_COMMUNICATION
UNPROCESSED
หรือVOICE_PERFORMANCE
นอกจากนี้ยังมีผลกับค่าที่กำหนดล่วงหน้าซึ่งเทียบเท่ากับอินพุตในAAudio
สำหรับ ตัวอย่างเช่นAAUDIO_INPUT_PRESET_CAMCORDER
ควรอนุญาตให้บันทึกเนื้อหาเสียงดิบที่มีรายการต่อไปนี้ ลักษณะเฉพาะ:
- รูปแบบ: PCM เชิงเส้น 16 บิต และ 24 บิต
- อัตราการสุ่มตัวอย่าง: 8000, 11025, 16000, 22050, 24000, 32000, 44100, 48000 Hz
- ช่องสัญญาณ: กี่ช่องเท่ากับจำนวนไมโครโฟนบน อุปกรณ์
[C-1-2] ต้องจับอัตราการสุ่มตัวอย่างสูงกว่าโดยไม่มีการสุ่มตัวอย่าง
[C-1-3] ต้องใส่ตัวกรองการลบรอยหยักที่เหมาะสมเมื่อ อัตราการสุ่มตัวอย่างที่ระบุข้างต้นจะได้รับการบันทึกด้วยการสุ่มตัวอย่างลดลง
ควรอนุญาตให้มีการบันทึกคุณภาพวิทยุและดีวีดี AM ของเนื้อหาเสียงดิบ หมายถึงลักษณะดังต่อไปนี้:
- รูปแบบ: PCM เชิงเส้น 16 บิต
- อัตราการสุ่มตัวอย่าง: 22050, 48000 Hz
- ช่องสัญญาณ: สเตอริโอ
[C-1-4] ต้องใช้
MicrophoneInfo
API และกรอกข้อมูลอย่างถูกต้องสำหรับไมโครโฟนที่มีในอุปกรณ์ แอปพลิเคชันของบุคคลที่สามเข้าถึงได้ผ่านทางAudioManager.getMicrophones()
API สำหรับ AudioRecord ที่ใช้งานอยู่โดยใช้MediaRecorder.AudioSources DEFAULT
,MIC
,CAMCORDER
,VOICE_RECOGNITION
VOICE_COMMUNICATION
,UNPROCESSED
หรือVOICE_PERFORMANCE
หากการติดตั้งอุปกรณ์อนุญาตให้บันทึกคุณภาพเสียงจากวิทยุและดีวีดี AM ของเสียงดิบ เนื้อหาจะมีลักษณะต่อไปนี้[C-2-1] ต้องจับภาพโดยไม่มีการสุ่มตัวอย่างในอัตราส่วนที่สูงกว่า 16000:22050 หรือ 44100:48000
[C-2-2] ต้องมีตัวกรองขจัดรอยหยักที่เหมาะสมสำหรับการสุ่ม หรือการสุ่มตัวอย่างขั้นต่ำ
5.4.2 จับภาพสำหรับการจดจำเสียง
การใช้งานอุปกรณ์จะประกาศ android.hardware.microphone
ดังต่อไปนี้
- [C-1-1] ต้องจับภาพ
android.media.MediaRecorder.AudioSource.VOICE_RECOGNITION
แหล่งที่มาของเสียงที่ หนึ่งในอัตราการสุ่มตัวอย่าง ได้แก่ 44100 และ 48000 - [C-1-2] ต้องปิดใช้การประมวลผลเสียงการลดเสียงรบกวนโดยค่าเริ่มต้นเมื่อ
กำลังบันทึกสตรีมเสียงจากเสียง
AudioSource.VOICE_RECOGNITION
แหล่งที่มา [C-1-3] โดยค่าเริ่มต้น ต้องปิดใช้การควบคุมค่าเกนอัตโนมัติเมื่อบันทึก สตรีมเสียงจากแหล่งที่มาเสียง
AudioSource.VOICE_RECOGNITION
ควรแสดงลักษณะเฉพาะของแอมพลิจูดแบบราบเทียบกับความถี่โดยประมาณ ในช่วงความถี่กลาง: โดยเฉพาะ ±3dB ตั้งแต่ 100 Hz ถึง 4000 Hz สำหรับแต่ละแบบ และไมโครโฟนทุกตัวที่ใช้ในการบันทึกแหล่งที่มาของเสียงสำหรับการจดจำเสียง
[C-SR-1] ขอแนะนำอย่างยิ่งให้แสดงระดับแอมพลิจูดในที่ต่ำ ช่วงความถี่: โดยเฉพาะตั้งแต่ ±20 dB ตั้งแต่ 30 Hz ถึง 100 Hz เมื่อเทียบกับ ช่วงความถี่กลางของไมโครโฟนแต่ละตัวที่ใช้บันทึกเสียง การจดจำแหล่งที่มาของเสียง
[C-SR-2] ขอแนะนำอย่างยิ่งให้แสดงระดับแอมพลิจูดในระดับสูง ช่วงความถี่: โดยเฉพาะตั้งแต่ ±30 dB ตั้งแต่ 4000 Hz ถึง 22 KHz เมื่อเทียบกับ ช่วงความถี่กลางของไมโครโฟนแต่ละตัวที่ใช้บันทึกเสียง การจดจำแหล่งที่มาของเสียง
ควรตั้งค่าความไวของอินพุตเสียงให้แหล่งสัญญาณเสียงไซนัสอยัล 1000 Hz เล่นที่ระดับความดันเสียง (SPL) 90 dB (วัดถัดจากไมโครโฟน) ให้การตอบสนองที่สมบูรณ์แบบที่ RMS 2500 ภายในช่วง 1770 และ 3530 สำหรับ 16 ตัวอย่างบิต (หรือ -22.35 db ±3dB สเกลเต็มสำหรับจุดลอยตัว/ความแม่นยำคู่ ตัวอย่าง) สำหรับไมโครโฟนทุกตัวที่ใช้บันทึกการจดจำเสียง แหล่งที่มาของเสียง
ควรบันทึกสตรีมเสียงของการจดจำเสียงเพื่อให้แอมพลิจูด PCM ระดับต่างๆ จะติดตามการเปลี่ยนแปลง SPL ของอินพุตแบบเชิงเส้นในช่วงอย่างน้อย 30 dB ตั้งแต่ -18 dB ถึง +12 dB re 90 dB SPL ที่ไมโครโฟน
ควรบันทึกสตรีมเสียงการจดจำเสียงด้วยฮาร์มอนิกทั้งหมด การบิดเบี้ยว (THD) น้อยกว่า 1% สำหรับ 1 kHz ที่ระดับอินพุต SPL 90 dB ที่ ไมโครโฟน
หากการติดตั้งใช้งานอุปกรณ์ประกาศ android.hardware.microphone
และสัญญาณรบกวน
เทคโนโลยีระงับ (การลด) ที่ปรับแต่งสำหรับการจดจำคำพูดจะมีคุณสมบัติดังนี้
- [C-2-1] ต้องอนุญาตให้สามารถควบคุมเอฟเฟกต์เสียงนี้ด้วย
android.media.audiofx.NoiseSuppressor
API - [C-2-2] ต้องระบุเทคโนโลยีการตัดเสียงรบกวนแต่ละเทคโนโลยีแยกกัน
การใช้งานผ่านช่อง
AudioEffect.Descriptor.uuid
5.4.3 จับภาพเพื่อเปลี่ยนเส้นทางการเล่น
ชั้นเรียน android.media.MediaRecorder.AudioSource
ประกอบด้วย REMOTE_SUBMIX
แหล่งที่มาของเสียง
หากการใช้งานอุปกรณ์ประกาศทั้ง android.hardware.audio.output
และ
android.hardware.microphone
กล่าวคือ
[C-1-1] ต้องใช้แหล่งที่มาของเสียง
REMOTE_SUBMIX
อย่างถูกต้องเพื่อให้ เมื่อแอปพลิเคชันใช้android.media.AudioRecord
API เพื่อบันทึกจาก แหล่งที่มาของเสียง จะบันทึกการผสมสตรีมเสียงทั้งหมด ยกเว้นรายการต่อไปนี้AudioManager.STREAM_RING
AudioManager.STREAM_ALARM
AudioManager.STREAM_NOTIFICATION
5.4.4 อุปกรณ์ตัดเสียงก้อง
การใช้งานอุปกรณ์จะประกาศ android.hardware.microphone
ดังต่อไปนี้
- ควรใช้เครื่องตัดเสียงก้องอะคูสติก
เทคโนโลยี (AEC) ที่ปรับแต่งสำหรับการสื่อสารด้วยเสียงและนำมาใช้กับเส้นทางการจับภาพ
เมื่อจับภาพโดยใช้
AudioSource.VOICE_COMMUNICATION
การติดตั้งใช้งานอุปกรณ์จะทำให้มีตัวยกเลิกเสียงสะท้อน
ในการบันทึกเส้นทางเสียงเมื่อ AudioSource.VOICE_COMMUNICATION
ที่เลือกไว้
- [C-SR-1] มีสิทธิ์ STRONGLY_RECOMMENDED เพื่อประกาศสิ่งนี้ผ่าน AcosimpleEchoCanceler เมธอด API AcouralEchoCanceler.isavailable()
- [C-SR-2] เป็น STRONGLY_RECOMMENDED เพื่ออนุญาตให้สามารถใช้เอฟเฟกต์เสียงนี้ได้ ควบคุมได้ด้วย AcobasicEchoCanceler API
- [C-SR-3] คือ STRONGLY_RECOMMENDED เพื่อระบุเทคโนโลยี AEC แต่ละรายการโดยไม่ซ้ำกัน การใช้งานผ่าน AudioEffect.Descriptor.uuid ด้วย
5.4.5 จับภาพพร้อมกัน
หากการติดตั้งใช้งานอุปกรณ์ประกาศ android.hardware.microphone
ก็ต้อง
ใช้การบันทึกพร้อมกันดังที่อธิบายไว้ในเอกสารนี้ ดังนี้
- [C-1-1] ต้องอนุญาตการเข้าถึงไมโครโฟนพร้อมกันโดยการช่วยเหลือพิเศษ
บริการจับภาพที่มี
AudioSource.VOICE_RECOGNITION
และอย่างน้อย 1 รายการ ขณะบันทึกแอปพลิเคชันด้วยAudioSource
- [C-1-2] ต้องอนุญาตการเข้าถึงไมโครโฟนพร้อมกันโดยอุปกรณ์ที่ติดตั้งมาล่วงหน้า
แอปพลิเคชันที่มีบทบาท Assistant และแอปพลิเคชันอย่างน้อย 1 รายการ
การจับภาพที่มี
AudioSource
ใดๆ ยกเว้นAudioSource.VOICE_COMMUNICATION
หรือAudioSource.CAMCORDER
- [C-1-3] ต้องปิดเสียงการบันทึกเสียงสำหรับแอปพลิเคชันอื่นๆ ยกเว้น
บริการการช่วยเหลือพิเศษขณะที่แอปพลิเคชันกำลังจับภาพ
AudioSource.VOICE_COMMUNICATION
หรือAudioSource.CAMCORDER
แต่เมื่อ แอปกำลังบันทึกข้อมูลผ่านAudioSource.VOICE_COMMUNICATION
จากนั้นอีกแอปหนึ่ง สามารถบันทึกเสียงหากเป็นแอปที่ได้รับสิทธิ์ (ติดตั้งไว้ล่วงหน้า) ที่มี สิทธิ์CAPTURE_AUDIO_OUTPUT
- [C-1-4] ในกรณีที่มีแอปพลิเคชันตั้งแต่ 2 แอปพลิเคชันขึ้นไปพร้อมกัน และ ทั้ง 2 แอปไม่มี UI อยู่ด้านบน อันที่เริ่มจับภาพล่าสุด จะรับเสียงได้
5.5 การเล่นเสียง
Android มีการสนับสนุนเพื่ออนุญาตให้แอปเล่นเสียงผ่านเสียง เอาต์พุตของอุปกรณ์ต่อพ่วงตามที่ระบุไว้ในส่วน 7.8.2
5.5.1 การเล่นเสียงดิบ
การใช้งานอุปกรณ์จะประกาศ android.hardware.audio.output
ดังต่อไปนี้
[C-1-1] ต้องอนุญาตการเล่นเนื้อหาเสียงดิบที่มีรายการต่อไปนี้ ลักษณะเฉพาะ:
- รูปแบบต้นฉบับ: PCM เชิงเส้น 16 บิต 8 บิต ทศนิยม
- ช่องสัญญาณ: โมโน สเตอริโอ การกำหนดค่าแบบหลายช่องทางที่ถูกต้อง ได้สูงสุดถึง 8 ช่อง
- อัตราการสุ่มตัวอย่าง (ในรูปแบบ Hz):
- 8000, 11025, 16000, 22050, 24000, 32000, 44100, 48000 ที่แชแนล การกำหนดค่าข้างต้น
- 96000 ในแบบโมโนและสเตอริโอ
5.5.2 เอฟเฟกต์เสียง
Android มี API สำหรับเอฟเฟกต์เสียง สำหรับการใช้งานอุปกรณ์
หากการใช้งานอุปกรณ์ประกาศฟีเจอร์ android.hardware.audio.output
ดังนี้
- [C-1-1] ต้องรองรับ
EFFECT_TYPE_EQUALIZER
และ การติดตั้งใช้งานEFFECT_TYPE_LOUDNESS_ENHANCER
ที่ควบคุมได้ผ่าน คลาสย่อยของ AudioEffectEqualizer
และLoudnessEnhancer
- [C-1-2] ต้องรองรับการใช้งาน Visualizer API ซึ่งควบคุมได้ผ่าน
ชั้นเรียน
Visualizer
- [C-1-3] ต้องรองรับการใช้งาน
EFFECT_TYPE_DYNAMICS_PROCESSING
ควบคุมได้ผ่านคลาสย่อย AudioEffectDynamicsProcessing
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
- [C-1-4] ต้องรองรับเอฟเฟกต์เสียงกับ อินพุตและเอาต์พุตจุดลอยตัวเมื่อผลลัพธ์ ระบบจะส่งผลลัพธ์กลับไปยังไปป์ไลน์เสียงของเฟรมเวิร์ก ซึ่งหมายถึงโดยทั่วไป เอฟเฟ็กต์การแทรกหรือเสริม เช่น อีควอไลเซอร์ ลักษณะการทำงานเทียบเท่ากันอย่างมาก แนะนำให้ใช้เมื่อผลลัพธ์ของเอฟเฟกต์ไม่แสดงด้วยเสียงของเฟรมเวิร์ก ไปป์ไลน์ (เช่น เอฟเฟกต์หลังการประมวลผลหรือเอฟเฟกต์ที่โหลดขึ้น)
สิ้นสุดข้อกำหนดใหม่
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
- [C-1-5] ต้องตรวจสอบว่าเอฟเฟกต์เสียงรองรับช่องสัญญาณหลายช่องได้ถึง จำนวนช่องของเครื่องผสม หรือที่เรียกกันว่า FCC_LIMIT เมื่อมีการส่งคืนผลลัพธ์ไปยังไปป์ไลน์เสียงของเฟรมเวิร์ก ช่วงเวลานี้ หมายถึงเอฟเฟกต์การแทรกหรือส่วนเสริมตามปกติ แต่ไม่รวมเอฟเฟกต์พิเศษต่างๆ เช่น เช่น ดาวน์มิกซ์ เอฟเฟกต์ กระจายเสียง ทำให้จำนวนช่องเปลี่ยนไป ขอแนะนำให้ใช้ลักษณะการทำงานที่เทียบเท่าเมื่อผลลัพธ์ไม่แสดงโดย ไปป์ไลน์เสียงของเฟรมเวิร์ก (เช่น หลังการประมวลผลหรือตัดการทำงาน )
สิ้นสุดข้อกำหนดใหม่
- ควรรองรับ
EFFECT_TYPE_BASS_BOOST
,EFFECT_TYPE_ENV_REVERB
การติดตั้งใช้งานEFFECT_TYPE_PRESET_REVERB
และEFFECT_TYPE_VIRTUALIZER
ควบคุมได้ผ่านชั้นเรียนย่อยAudioEffect
กลุ่มBassBoost
EnvironmentalReverb
,PresetReverb
และVirtualizer
- [C-SR-1] ขอแนะนำอย่างยิ่งให้รองรับเอฟเฟกต์ในจุดลอยตัวและ หลายช่องทาง
5.5.3 ระดับเสียงเอาต์พุตเสียง
การติดตั้งใช้งานอุปกรณ์ในรถยนต์:
- ควรอนุญาตให้ปรับระดับเสียง
สำหรับแต่ละสตรีมเสียงแยกกันโดยใช้ประเภทเนื้อหาหรือการใช้งานตามที่กำหนดไว้
โดย AudioAttributes
และการใช้งานระบบเสียงในรถตามคำจำกัดความสาธารณะใน
android.car.CarAudioManager
5.5.4 การลดเสียง
หากการใช้งานอุปกรณ์รองรับการเล่นเสียงแบบออฟโหลด ระบบจะดำเนินการต่อไปนี้
- [C-SR-1] ขอแนะนำอย่างยิ่งให้ตัดเนื้อหาเสียงที่เล่นโดยไม่มีช่องว่าง ระหว่าง 2 คลิปที่มีรูปแบบเดียวกัน เมื่อระบุโดย API ที่ไม่มีเสียงของแทร็กเสียง และคอนเทนเนอร์สื่อสำหรับ MediaPlayer
5.6 เวลาในการตอบสนองของเสียง
เวลาในการตอบสนองของเสียงคือการหน่วงเวลาที่สัญญาณเสียงส่งผ่านระบบ แอปพลิเคชันหลายคลาสอาศัยเวลาในการตอบสนองสั้นๆ เพื่อให้ได้ผลลัพธ์แบบเรียลไทม์ เอฟเฟกต์เสียง
สำหรับวัตถุประสงค์ของส่วนนี้ ให้ใช้คำจำกัดความต่อไปนี้
- เวลาในการตอบสนองของเอาต์พุต ช่วงเวลาระหว่างที่แอปพลิเคชันเขียนเฟรม ของข้อมูลที่เข้ารหัส PCM และเมื่อมีการแสดงเสียงที่เกี่ยวข้องต่อ ที่ตัวแปรสัญญาณในอุปกรณ์หรือสัญญาณออกจากอุปกรณ์ผ่าน และสังเกตพบภายนอกได้
- เวลาในการตอบสนองเอาต์พุตแบบ Cold เวลาระหว่างการเริ่มต้นสตรีมเอาต์พุตและ เวลานำเสนอของเฟรมแรกตามการประทับเวลา เมื่อเอาต์พุตเสียง ไม่มีการใช้งานระบบและปิดเครื่องก่อนส่งคำขอ
- เวลาในการตอบสนองของเอาต์พุตต่อเนื่อง เวลาในการตอบสนองเอาต์พุตสำหรับเฟรมต่อๆ มา หลังจากที่อุปกรณ์เล่นเสียง
- เวลาในการตอบสนองของอินพุต ช่วงเวลาระหว่างการนำเสนอเสียงโดย สภาพแวดล้อมของอุปกรณ์ที่ตัวแปลงสัญญาณในอุปกรณ์หรือสัญญาณเข้าสู่อุปกรณ์ผ่าน พอร์ตและเมื่อแอปพลิเคชันอ่านเฟรมของข้อมูลที่เข้ารหัส PCM แล้ว
- อินพุตสูญหาย ส่วนแรกของสัญญาณอินพุตที่ใช้งานไม่ได้ หรือ ไม่พร้อมใช้งาน
- เวลาในการตอบสนองแบบ Cold input เวลาระหว่างเริ่มสตรีมและเมื่อ ได้รับเฟรมแรกที่ถูกต้องเมื่อระบบอินพุตเสียงไม่มีการใช้งาน เครื่องไม่ทำงานก่อนร้องขอ
- เวลาในการตอบสนองของอินพุตต่อเนื่อง เวลาในการตอบสนองของอินพุตสำหรับเฟรมต่อๆ มา ขณะที่อุปกรณ์บันทึกเสียง
- เวลาในการตอบสนองไป-กลับอย่างต่อเนื่อง ผลรวมของเวลาในการตอบสนองของอินพุตแบบต่อเนื่องบวก เวลาในการตอบสนองของเอาต์พุตอย่างต่อเนื่องบวกช่วงเวลาบัฟเฟอร์ 1 ช่วง ระยะเวลาบัฟเฟอร์ เวลาที่จะให้แอปประมวลผลสัญญาณ และเวลาเพื่อให้แอปลดระยะ ความแตกต่างระหว่างสตรีมอินพุตและเอาต์พุต
- API คิวบัฟเฟอร์ OpenSL ES PCM ชุดของ PCM OpenSL สเปน API ใน Android NDK
- API เสียงดั้งเดิมของเสียง ชุดของ AAudio API ภายใน Android NDK
- การประทับเวลา คู่ที่ประกอบด้วยตำแหน่งเฟรมสัมพัทธ์ภายใน สตรีมและเวลาโดยประมาณเมื่อเฟรมดังกล่าวเข้าสู่หรือออกจาก ไปป์ไลน์การประมวลผลเสียงบนปลายทางที่เชื่อมโยง ดูเพิ่มเติม AudioTimestamp
- glitch มีการขัดจังหวะชั่วคราวหรือค่าตัวอย่างที่ไม่ถูกต้องในสัญญาณเสียง ซึ่งโดยทั่วไปเกิดจาก การบัฟเฟอร์น้อยสำหรับเอาต์พุต บัฟเฟอร์มากเกินไปสำหรับอินพุต หรือแหล่งที่มาอื่นๆ ของสัญญาณรบกวนดิจิทัลหรือแอนะล็อก
- หมายถึงส่วนเบี่ยงเบนสัมบูรณ์ (MAD) ค่าเฉลี่ยของค่าสัมบูรณ์ของค่า การเบี่ยงเบนจากค่าเฉลี่ยสำหรับชุดค่า
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
เวลาในการตอบสนองแบบแตะเพื่อโทนสี (TTL) ตามที่ CTS Verifier วัดเป็นเวลา ระหว่างการแตะหน้าจอกับเสียงที่สร้างขึ้น ได้ยินเสียงแตะที่ลำโพง ซึ่งจะเป็นค่าเฉลี่ยการวัดมากกว่า 5 รายการโดยใช้ API เสียงดั้งเดิมของเสียงสำหรับเอาต์พุต
เวลาในการตอบสนองไป-กลับ (RTL) ตามที่วัดโดย CTS Verifier คือค่าเฉลี่ย เวลาในการตอบสนองต่อเนื่องจากการวัด 5 ค่า ซึ่งวัดผ่านเส้นทางวนซ้ำที่ฟีด เอาต์พุตกลับไปยังอินพุตโดยใช้ AAudio Native Audio API เส้นทาง Loopback มีดังนี้
- ลำโพง/ไมโครโฟน: ลำโพงที่มาพร้อมไมโครโฟนในตัว
- แอนะล็อก: ช่องเสียบแอนะล็อก 3.5 มม. และอะแดปเตอร์ Loopback
- USB: อะแดปเตอร์แปลงสายจาก USB เป็น 3.5 มม. และอะแดปเตอร์แบบวนกลับ หรือเสียงแบบ USB ของอินเทอร์เฟซและสาย Loopback
FEATURE_AUDIO_PRO ฟีเจอร์
android.hardware.audio.pro
คือ ที่ประกาศMPC ชั้นเรียนประสิทธิภาพของสื่อ
สิ้นสุดข้อกำหนดใหม่
เริ่มข้อกำหนดใหม่สำหรับ 15 คน (เวอร์ชันทดลอง AOSP)
- เวลาในการตอบสนองของการติดตามส่วนหัว เวลา มาจากการเคลื่อนไหวศีรษะที่หน่วยวัดความเฉื่อย (IMU) บันทึกไว้ เข้ากับตัวแปลงสัญญาณหูฟัง" การตรวจจับการเปลี่ยนแปลงของเสียงที่เกิดจาก การเคลื่อนไหวนี้
สิ้นสุดข้อกำหนดใหม่
หากการใช้งานอุปกรณ์ประกาศ android.hardware.audio.output
ต้องเป็นไปตามหรือเกินข้อกำหนดต่อไปนี้
เริ่มข้อกำหนดใหม่ส