โปรดปฏิบัติตามหลักเกณฑ์ด้านคุณภาพของแอปหลัก เพื่อวางรากฐานที่มั่นคงสำหรับแอปคุณภาพ
หลักเกณฑ์นี้กำหนดคุณภาพขั้นต่ำที่แอปทั้งหมดควรมี
คุณภาพแอปแบบปรับอัตโนมัติ
แอป Android ทำงานบนอุปกรณ์หลากหลายประเภท ตั้งแต่โทรศัพท์ขนาดกะทัดรัดไปจนถึงแท็บเล็ต อุปกรณ์พับได้ เดสก์ท็อป จอแสดงผลที่เชื่อมต่อ ระบบสาระบันเทิงในรถยนต์ ทีวี และ XR โหมดการแสดงหน้าต่าง เช่น การแยกหน้าจอและการแสดงหน้าต่างเดสก์ท็อป ช่วยให้แอปทำงานในส่วนของหน้าจอที่ปรับขนาดได้
ปฏิบัติตามหลักเกณฑ์คุณภาพของแอปที่ปรับเปลี่ยนได้ร่วมกับหลักเกณฑ์หลักด้านคุณภาพของแอปเพื่อทำสิ่งต่อไปนี้
- สร้างแอปที่เพิ่มประสิทธิภาพสำหรับอุปกรณ์ทุกรูปแบบและขนาดการแสดงผล
- ทำให้แอปของคุณมีอันดับสูงขึ้นในข้อมูลและผลการค้นหาของ Google Play
- ได้ผู้ใช้ใหม่มากขึ้นและเพิ่มการคงผู้ใช้ไว้
หลักเกณฑ์
หลักเกณฑ์หลักต่อไปนี้จะช่วยให้คุณสร้างแอปพื้นฐานคุณภาพสูงได้
ประสบการณ์ของผู้ใช้
การออกแบบภาพและรูปแบบการโต้ตอบของ Android มาตรฐานจะมอบประสบการณ์ของผู้ใช้ที่สอดคล้องและ ใช้งานง่าย
ใช้คอมโพเนนต์ Material Design เพื่อสร้างอินเทอร์เฟซผู้ใช้ของแอปแทนคอมโพเนนต์แพลตฟอร์ม Android หากเป็นไปได้ Material Design มอบรูปลักษณ์ที่ทันสมัยของ Android พร้อมความสอดคล้องของ UI ใน Android เวอร์ชันต่างๆ
ความสามารถในการใช้งาน
| รหัส | การทดสอบ | คำอธิบาย |
|---|---|---|
| Consistent_UX | T-Consistent_UX, T-SD_Card |
แอปมอบประสบการณ์การใช้งานที่สอดคล้องกันสำหรับ Use Case ของแอปทั้งหมดในทุกรูปแบบ |
| App_Switcher | T-App_Switcher, T-SD_Card |
แอปจะเข้าสู่เบื้องหลังเมื่อโฟกัสเปลี่ยนไปที่แอปอื่น แอปจะกลับสู่เบื้องหน้าเมื่อเปิดใช้งานอีกครั้งจากตัวสลับแอปล่าสุด |
| Sleep_Resume | T-Sleep_Resume, T-SD_Card |
เมื่อแอปเป็นแอปที่ทำงานอยู่เบื้องหน้า แอปจะหยุดชั่วคราวเมื่ออุปกรณ์เข้าสู่โหมดสลีป และจะกลับมาทำงานต่อเมื่ออุปกรณ์กลับมาทำงาน |
| Lock_Resume | T-Lock_Resume, T-SD_Card |
เมื่อแอปเป็นแอปที่ทำงานอยู่เบื้องหน้า แอปจะหยุดชั่วคราวเมื่ออุปกรณ์ล็อกอยู่ และจะกลับมาทำงานต่อเมื่ออุปกรณ์ปลดล็อก |
ส่วนติดต่อผู้ใช้
| รหัส | การทดสอบ | คำอธิบาย |
|---|---|---|
| Display_State_Parity | T-Orientation_Transitions |
การวางแนวการแสดงผลและสถานะการพับจะแสดงฟีเจอร์และการดำเนินการที่เหมือนกันโดยพื้นฐาน และคงความเท่าเทียมกันของฟังก์ชันไว้ |
| Fullscreen_Display | T-Orientation_Transitions |
แอปจะเติมเต็มหน้าต่างแอปในทั้ง 2 แนว และจะไม่แสดงแถบดำด้านข้างเนื่องจากการเปลี่ยนแปลงการกำหนดค่า ซึ่งรวมถึงการพับและกางอุปกรณ์ การเว้นขอบดำเล็กน้อยเพื่อชดเชยความแตกต่างเล็กๆ น้อยๆ ในรูปทรงเรขาคณิตของหน้าจอเป็นสิ่งที่ยอมรับได้ |
| Orientation_Transitions | T-Orientation_Transitions | แอปจัดการการเปลี่ยนผ่านอย่างรวดเร็วระหว่างการวางแนวการแสดงผลและการพับและกางอุปกรณ์โดยไม่มีปัญหาการแสดงผลและไม่สูญเสียสถานะ |
คุณภาพของภาพ
| รหัส | การทดสอบ | คำอธิบาย |
|---|---|---|
| Graphic_Quality | T-Graphic_Quality |
แอปแสดงกราฟิก ข้อความ รูปภาพ และองค์ประกอบ UI อื่นๆ โดยไม่มีการบิดเบือน เบลอ หรือพิกเซลที่สังเกตเห็นได้ชัด
|
| Line_Length | T-Line_Length | แอปช่วยให้ข้อความและบล็อกข้อความอ่านง่ายโดยจำกัดความยาวของบรรทัดไว้ที่ 45-75 อักขระ (รวมช่องว่าง) สำหรับแต่ละภาษาที่แอปนี้รองรับ |
| Theme_Support | T-Theme_Support | เนื้อหาของแอปและเนื้อหาเว็บทั้งหมดที่แอปเข้าถึงได้รองรับทั้งธีมสว่างและธีมมืด |
การนำทาง
| รหัส | การทดสอบ | คำอธิบาย |
|---|---|---|
| Back_Button_Nav | T-Back_Nav | แอปจะรองรับการนำทางด้วยปุ่มย้อนกลับมาตรฐาน และจะไม่ใช้ข้อความแจ้งปุ่มย้อนกลับบนหน้าจอที่กำหนดเอง |
| Back_Gesture_Nav | T-Back_Nav | แอปนี้รองรับการนำทางโดยใช้ท่าทางสัมผัสสำหรับการย้อนกลับและไปที่หน้าจอหลัก |
| State_Preservation | T-State_Preservation, T-Back_Nav |
แอปจะเก็บสถานะผู้ใช้หรือสถานะของแอปไว้เมื่อออกจากเบื้องหน้า และไม่ป้องกันข้อมูลสูญหายโดยไม่ตั้งใจเนื่องจากการนําทางย้อนกลับและการเปลี่ยนแปลงสถานะอื่นๆ เมื่อกลับมาที่เบื้องหน้า แอปจะกู้คืนสถานะที่เก็บไว้และธุรกรรมที่มีสถานะที่รอดำเนินการ ตัวอย่างเช่น การเปลี่ยนแปลงฟิลด์ที่แก้ไขได้ ความคืบหน้าของเกม เมนู วิดีโอ และส่วนอื่นๆ ของแอป
|
การแจ้งเตือน
| รหัส | การทดสอบ | คำอธิบาย |
|---|---|---|
| Notification_Quality | T-Notification_Quality |
การแจ้งเตือนจะให้ข้อมูลที่เกี่ยวข้องกับแอปของคุณ
|
| Conversation_Quality | T-Notification_Quality |
สำหรับแอปรับส่งข้อความ แอปโซเชียล และการสนทนา
|
การช่วยเหลือพิเศษ
| รหัส | การทดสอบ | คำอธิบาย |
|---|---|---|
| Touch_Target_Size | T-Touch_Target_Size | เป้าหมายการสัมผัสมีขนาดอย่างน้อย 48 dp ดูหลักเกณฑ์เลย์เอาต์และการพิมพ์ของ Material Design |
| Visual_Contrast | T-Visual_Contrast |
ข้อความของแอปและเนื้อหาพื้นหน้ามีอัตราส่วนคอนทราสต์ต่อไปนี้กับพื้นหลังของแอป
ดูข้อมูลเพิ่มเติมเกี่ยวกับสีและคอนทราสต์ |
| Content_Description | T-Content_Description | อธิบายองค์ประกอบ UI แต่ละรายการ
ยกเว้น TextView โดยใช้ contentDescription |
ฟังก์ชันการทำงาน
แอปของคุณควรใช้ลักษณะการทำงานต่อไปนี้
เสียง
| รหัส | การทดสอบ | คำอธิบาย |
|---|---|---|
| Audio_Playback_Start | T-Audio_Playback_Start |
เมื่อผู้ใช้เริ่มเล่นเสียง แอปควรทำอย่างใดอย่างหนึ่งต่อไปนี้ภายใน 1 วินาที
|
| Audio_Focus_Request | T-Audio_Focus_Request | แอปควรร้องขอโฟกัสเสียงเมื่อเริ่มเล่นเสียงและละทิ้งโฟกัสเสียงเมื่อหยุดเล่น |
| Audio_Focus_Change | T-Audio_Focus_Change | แอปควรจัดการคำขอโฟกัสเสียงของแอปอื่นๆ ตัวอย่างเช่น แอปอาจลดระดับเสียงการเล่นเมื่อแอปอื่นเล่นคำพูด |
| Audio_Playback_Background | T-Audio_Playback_Background | แอปควรรองรับการเล่นอยู่เบื้องหลัง แอปต้องใช้บริการที่ทำงานอยู่เบื้องหน้าเพื่อป้องกันไม่ให้ระบบหยุดกระบวนการของแอปเมื่อแอปไม่ปรากฏให้เห็นอีกต่อไป นอกจากนี้ แอปต้องแสดงการแจ้งเตือนแบบต่อเนื่องที่ปิดไม่ได้ในแถบสถานะหรือบนหน้าจอล็อกเพื่อแจ้งให้ผู้ใช้ทราบว่าแอปกำลังทำงานอยู่ ผู้ใช้ควรควบคุมการเล่นได้โดยใช้การควบคุมในการแจ้งเตือนหรือหน้าจอล็อก หรือการควบคุมบนอุปกรณ์เสริมที่เชื่อมต่อ |
| Audio_Notification_Style | T-Audio_Notification_Style | เมื่อแอปเล่นเสียงในเบื้องหลัง แอปต้องสร้างการแจ้งเตือนที่จัดรูปแบบด้วย MediaStyle |
| Audio_Playback_Resume | T-Audio_Playback_Resume | หากแอปทำงานในเบื้องหลังและหยุดเสียงชั่วคราว เสียงจะกลับมาเล่นต่อเมื่อแอปกลับมาทำงานในเบื้องหน้า หรือแอปต้องระบุให้ผู้ใช้ทราบว่าการเล่นอยู่ในสถานะหยุดชั่วคราว |
วิดีโอ
| รหัส | การทดสอบ | คำอธิบาย |
|---|---|---|
| Video_PiP | T-Video_PiP | หากแอปเล่นวิดีโอได้ แอปควรรองรับการเล่นแบบภาพซ้อนภาพ |
| Video_Encoding | T-Video_Encoding | หากแอปเข้ารหัสวิดีโอ แอปควรเข้ารหัสโดยใช้มาตรฐานการบีบอัดวิดีโอ HEVC |
| Video_Playback_Background | T-Video_Playback_Background | แอปจะรองรับการเล่นวิดีโอขณะล็อกหน้าจอหรือขณะใช้แอปอื่นเมื่อแอปไม่ใช่แอปที่อยู่ด้านบนสุด ซึ่งรวมถึงเมื่อหน้าต่างแอปมีลักษณะดังนี้
|
การแชร์
| รหัส | การทดสอบ | คำอธิบาย |
|---|---|---|
| System_Sharesheet | T-System_Sharesheet | แอปควรใช้ชีตการแชร์ของ Android เมื่อแชร์เนื้อหา แอปสามารถแนะนำเป้าหมายที่โซลูชันที่กำหนดเองใช้ไม่ได้ |
บริการในเบื้องหลัง
| รหัส | การทดสอบ | คำอธิบาย |
|---|---|---|
| Background_Service_Optimization | T-Background_Service_Optimization |
แอปหลีกเลี่ยงการเรียกใช้บริการในเบื้องหลังเป็นเวลานานโดยไม่จำเป็นเพื่อให้มั่นใจว่าอุปกรณ์ของผู้ใช้จะทำงานได้อย่างราบรื่น หมายเหตุ: ระบบจะใช้ข้อจำกัดต่างๆ กับบริการในเบื้องหลัง ตัวอย่างการใช้บริการในเบื้องหลังที่ไม่ดีมีดังนี้
ดูข้อมูลเพิ่มเติมได้ที่ภาพรวมของงานที่ทำงานเบื้องหลัง |
ประสิทธิภาพและความเสถียร
แอปของคุณควรมีประสิทธิภาพ ความเสถียร ความเข้ากันได้ และการตอบสนองอย่างรวดเร็ว
ประสิทธิภาพ
| รหัส | การทดสอบ | คำอธิบาย |
|---|---|---|
| App_Startup_Time | T-App_Startup_Time | แอปโหลดอย่างรวดเร็วหรือแสดงความคิดเห็นบนหน้าจอต่อผู้ใช้ (ตัวบ่งชี้ความคืบหน้าหรือคิวที่คล้ายกัน) หากแอปใช้เวลานานกว่า 2 วินาทีในการโหลด |
| Rendering_Performance | T-Rendering_Performance | แอปจะแสดงผลเฟรมทุกๆ 16 มิลลิวินาที (หรือน้อยกว่า) เพื่อแสดงอย่างน้อย 60 เฟรมต่อวินาที หากต้องการความช่วยเหลือเกี่ยวกับปัญหาการแสดงผล โปรดดูการแสดงผลช้า |
| StrictMode_Compliance | T-StrictMode_Compliance | เมื่อเปิดใช้ StrictMode (ดูส่วนการทดสอบ StrictMode) จะไม่มีการกะพริบสีแดง (คำเตือนด้านประสิทธิภาพจาก StrictMode) ให้เห็นเมื่อทดสอบแอป |
ความเสถียร
| รหัส | การทดสอบ | คำอธิบาย |
|---|---|---|
| Stability_ANR | T-Stability_ANR | แอปไม่ขัดข้องหรือบล็อกเธรด UI ซึ่งทำให้เกิดข้อผิดพลาด ANR (Android ไม่ตอบสนอง) ใช้รายงานก่อนการเปิดตัวของ Google Play เพื่อระบุปัญหาด้านความเสถียรที่อาจเกิดขึ้น หลังจากการติดตั้งใช้งาน ให้ตรวจสอบหน้า Android Vitals ใน Google Play Console |
SDK
| รหัส | การทดสอบ | คำอธิบาย |
|---|---|---|
| Android_Platform_Compatibility | T-Android_Platform_Compatibility | แอปทํางานบนแพลตฟอร์ม Android เวอร์ชันสาธารณะล่าสุดโดยไม่ขัดข้องหรือส่งผลกระทบอย่างรุนแรงต่อฟังก์ชันการทํางานหลัก |
| Target_SDK_Version | T-Target_SDK_Version | แอปกำหนดเป้าหมายเป็น Android SDK ล่าสุดที่จำเป็นเพื่อให้สอดคล้องกับข้อกำหนดของ Google Play โดยการตั้งค่า targetSdk ในไฟล์ build.gradle ของโมดูลแอป |
| Compile_SDK_Version | T-Target_SDK_Version | แอปสร้างขึ้นด้วย Android SDK ล่าสุดโดยการตั้งค่า compileSdk ในไฟล์ build.gradle ของโมดูลแอป |
| SDK_Maintenance | T-SDK_Maintenance, T-Non_SDK_Interfaces |
SDK ของ Google หรือบุคคลที่สามที่ใช้เป็นเวอร์ชันล่าสุด การปรับปรุง SDK เหล่านี้ที่เกี่ยวข้องกับความเสถียร ความเข้ากันได้ หรือความปลอดภัยควรพร้อมให้บริการแก่ผู้ใช้ในเวลาที่เหมาะสม สำหรับ SDK ของ Google ให้ใช้ SDK ที่ขับเคลื่อนโดยบริการ Google Play เมื่อพร้อมใช้งาน SDK เหล่านี้สามารถใช้งานร่วมกับเวอร์ชันก่อนหน้าได้ รับการอัปเดตอัตโนมัติ ลดขนาดแพ็กเกจแอป และใช้ทรัพยากรในอุปกรณ์ได้อย่างมีประสิทธิภาพ |
| Non_SDK_Interfaces | T-Non_SDK_Interfaces | แอปไม่ได้ใช้อินเทอร์เฟซที่ไม่ใช่ SDK |
| Production_Build_Quality | T-Production_Build_Quality | ไม่มีไลบรารีการแก้ไขข้อบกพร่องรวมอยู่ในแอปเวอร์ชันที่ใช้งานจริง ไลบรารีการแก้ไขข้อบกพร่องที่รวมอยู่ในแอปอาจทำให้เกิดปัญหาด้านประสิทธิภาพและความปลอดภัย |
แบตเตอรี่
| รหัส | การทดสอบ | คำอธิบาย |
|---|---|---|
| Power_Management | T-Power_Management |
แอปสนับสนุนฟีเจอร์การจัดการพลังงาน Doze และสแตนด์บายแอป อย่างเหมาะสม แอปขอรับการยกเว้นการบำรุงรักษาพลังงานได้ ดูการรองรับ Use Case อื่นๆ ในเพิ่มประสิทธิภาพสำหรับ Doze และสแตนด์บายแอป |
ความเป็นส่วนตัวและความปลอดภัย
แอปจัดการข้อมูลผู้ใช้และข้อมูลส่วนบุคคลอย่างปลอดภัย และให้สิทธิ์ในระดับที่เหมาะสม
แอปพลิเคชันที่เผยแพร่ใน Google Play Store ต้องเป็นไปตามนโยบายข้อมูลผู้ใช้ของ Google Play เพื่อปกป้องความเป็นส่วนตัวของผู้ใช้ด้วย
สิทธิ์
| รหัส | การทดสอบ | คำอธิบาย |
|---|---|---|
| Minimize_Permissions | T-Minimize_Permissions | แอปขอเฉพาะสิทธิ์ขั้นต่ำที่จำเป็นต่อการรองรับกรณีการใช้งานปัจจุบัน สำหรับสิทธิ์บางอย่าง เช่น ตำแหน่ง แอปจะใช้ข้อกำหนดหยาบแทนละเอียดหากเป็นไปได้ ดูลดคำขอสิทธิ์ |
| Sensitive_Permissions | T-Sensitive_Permissions |
แอปจะขอสิทธิ์เข้าถึงข้อมูลที่ละเอียดอ่อน (เช่น กลุ่มสิทธิ์การใช้งาน SMS หรือประวัติการโทร หรือตำแหน่ง) หรือบริการที่มีค่าใช้จ่าย (เช่น Dialer หรือ SMS) เฉพาะเมื่อเกี่ยวข้องโดยตรงกับกรณีการใช้งานหลักของแอป ต้องเปิดเผยผลกระทบที่เกี่ยวข้องกับสิทธิ์เหล่านี้อย่างชัดเจนต่อผู้ใช้ วิธีอื่นในการดำเนินการตามกรณีการใช้งานของแอปอาจเป็นไปได้โดยไม่ต้องอาศัยการเข้าถึงข้อมูลที่ละเอียดอ่อน ทั้งนี้ขึ้นอยู่กับวิธีที่แอปใช้สิทธิ์ เช่น แทนที่จะขอสิทธิ์ที่เกี่ยวข้องกับรายชื่อติดต่อของผู้ใช้ ให้ใช้ Intent โดยนัยเพื่อขอสิทธิ์เข้าถึง |
| Runtime_Permissions | T-Runtime_Permissions | แอปจะขอสิทธิ์รันไทม์เมื่อมีการขอฟังก์ชันการทำงาน แทนที่จะขอในระหว่างการเริ่มต้นแอป |
| Permission_Rationale | T-Permission_Rationale | แอปอธิบายอย่างชัดเจนว่าเหตุใดจึงต้องมีสิทธิ์ |
| Graceful_Degradation | T-Graceful_Degradation | แอปจะลดลงอย่างค่อยเป็นค่อยไปเมื่อผู้ใช้ปฏิเสธหรือเพิกถอนสิทธิ์ แอปไม่ควรป้องกันไม่ให้ผู้ใช้เข้าถึงโดยสิ้นเชิง |
ข้อมูลและไฟล์
| รหัส | การทดสอบ | คำอธิบาย |
|---|---|---|
| Sensitive_Data_Storage | T-Sensitive_Data_Storage, T-Sensitive_Data_Handling |
ข้อมูลที่ละเอียดอ่อนทั้งหมดจะจัดเก็บไว้ในที่เก็บข้อมูลภายในของแอป |
| Sensitive_Data_Logging | T-Sensitive_Data_Logging | ระบบจะไม่บันทึกข้อมูลส่วนบุคคลหรือข้อมูลที่ละเอียดอ่อนของผู้ใช้ลงในบันทึกของระบบหรือบันทึกเฉพาะแอป |
| Hardware_IDs | T-Hardware_IDs | แอปไม่ได้ใช้รหัสฮาร์ดแวร์ที่รีเซ็ตไม่ได้ เช่น IMEI เพื่อวัตถุประสงค์ในการระบุตัวตน |
ข้อมูลระบุตัวตน
| รหัส | การทดสอบ | คำอธิบาย |
|---|---|---|
| Autofill_Hints | T-Autofill_Hints | แอปจะให้คำแนะนำในการป้อนข้อความอัตโนมัติสำหรับข้อมูลเข้าสู่ระบบบัญชีและข้อมูลที่ละเอียดอ่อนอื่นๆ เช่น ข้อมูลบัตรเครดิต ที่อยู่จริง และหมายเลขโทรศัพท์ |
| Credential_Manager | T-Credential_Manager | แอปผสานรวม Credential Manager สำหรับ Android เพื่อประสบการณ์การลงชื่อเข้าใช้ที่ราบรื่นซึ่งรวมการรองรับพาสคีย์ ข้อมูลประจำตัวแบบรวม และรหัสผ่านไว้ด้วยกัน |
| Biometric_Authentication | T-Biometric_Authentication | แอปรองรับการตรวจสอบสิทธิ์ด้วยไบโอเมตริกเพื่อปกป้องธุรกรรมทางการเงินหรือข้อมูลที่ละเอียดอ่อน เช่น เอกสารสำคัญของผู้ใช้ |
คอมโพเนนต์ของแอป
| รหัส | การทดสอบ | คำอธิบาย |
|---|---|---|
| Component_Export | T-Component_Export |
แอปจะตั้งค่าแอตทริบิวต์ เฉพาะคอมโพเนนต์ของแอปพลิเคชันที่แชร์ข้อมูลกับแอปอื่นๆ หรือคอมโพเนนต์ที่แอปอื่นๆ ควรเรียกใช้เท่านั้นที่จะส่งออก |
| Component_Permissions | T-Component_Permissions |
เจตนาและการออกอากาศทั้งหมดเป็นไปตามแนวทางปฏิบัติแนะนำ
|
| Component_Protection | T-Component_Protection |
คอมโพเนนต์ทั้งหมดที่แชร์เนื้อหาระหว่างแอปจะใช้ แอปไม่ควรอาศัยการเข้าถึงรายการแพ็กเกจที่ติดตั้ง |
เครือข่าย
| รหัส | การทดสอบ | คำอธิบาย |
|---|---|---|
| Network_Security_Traffic | T-Network_Security_Traffic | ระบบจะส่งการรับส่งข้อมูลเครือข่ายทั้งหมดผ่าน SSL |
| Network_Security_Configuration | T-Network_Security_Configuration | แอปประกาศการกำหนดค่าความปลอดภัยของเครือข่าย |
| Security_Provider_Initialization | T-Security_Provider_Initialization | หากแอปใช้บริการ Google Play ระบบจะเริ่มต้นผู้ให้บริการความปลอดภัยเมื่อแอปพลิเคชันเริ่มต้น |
WebView
| รหัส | การทดสอบ | คำอธิบาย |
|---|---|---|
| WebView_Asset_Loader | T-WebView_Asset_Loader, T-WebView_Navigation |
อย่าใช้ setAllowUniversalAccessFromFileURLs() ในการเข้าถึงเนื้อหาในพื้นที่ แต่ให้ใช้ WebViewAssetLoader แทน |
| WebView_JavaScript | T-WebView_JavaScript, T-WebView_Navigation |
WebView ไม่ใช้ ใน Android 6.0 (API ระดับ 23 ขึ้นไป) ให้ใช้ช่องข้อความ HTML แทน |
การลงมือปฏิบัติ
| รหัส | การทดสอบ | คำอธิบาย |
|---|---|---|
| App_Bundles | T-App_Bundles |
แอปต้องไม่โหลดแบบไดนามิกโค้ดจากภายนอก APK ของแอป ใช้ Android App Bundle ซึ่งมี Play Feature Delivery และ Play Asset Delivery ตั้งแต่เดือนสิงหาคม 2021 เป็นต้นไป แอปใหม่ทั้งหมดใน Google Play Store จะต้องใช้ Android App Bundle |
วิทยาการเข้ารหัสลับ
| รหัส | การทดสอบ | คำอธิบาย |
|---|---|---|
| Cryptographic_Algorithms | T-Cryptographic_Algorithms | แอปใช้อัลกอริทึมการเข้ารหัสและตัวสร้างหมายเลขแบบสุ่มที่รัดกุมซึ่งแพลตฟอร์มมีให้ นอกจากนี้ แอปยังไม่ได้ใช้อัลกอริทึมที่กำหนดเอง |
Google Play
เปิดใช้การเผยแพร่แอปใน Google Play
นโยบาย
| รหัส | การทดสอบ | คำอธิบาย |
|---|---|---|
| Play_Content_Policies | T-Play_Content_Policies | แอปปฏิบัติตามข้อกำหนดของนโยบายเนื้อหาของนักพัฒนาแอป Google Play อย่างเคร่งครัด ไม่ได้นำเสนอเนื้อหาที่ไม่เหมาะสม และไม่ได้ใช้ทรัพย์สินทางปัญญาหรือแบรนด์ของผู้อื่น |
| Play_Content_Rating | T-Play_Content_Policies | แอปได้รับการกำหนดระดับวุฒิภาวะอย่างเหมาะสมตามหลักเกณฑ์การจัดประเภทเนื้อหา |
หน้ารายละเอียดแอป
| รหัส | การทดสอบ | คำอธิบาย |
|---|---|---|
| Play_Feature_Graphic | T-Play_Feature_Graphic, T-Play_Graphic_Assets |
ภาพฟีเจอร์ของแอปเป็นไปตามหลักเกณฑ์ที่ระบุไว้ในบทความสนับสนุนนี้ ตรวจสอบตามรายละเอียดต่อไปนี้
|
| Play_Device_References | T-Play_Graphic_Assets | ภาพหน้าจอและวิดีโอของแอปไม่แสดงหรืออ้างอิงถึงอุปกรณ์ที่ไม่ใช่ Android |
| Play_Misleading_Content | T-Play_Graphic_Assets | ภาพหน้าจอหรือวิดีโอของแอปไม่ได้แสดงเนื้อหาและประสบการณ์การใช้งานของแอปในลักษณะที่ทำให้เข้าใจผิด |
การสนับสนุนผู้ใช้
| รหัส | การทดสอบ | คำอธิบาย |
|---|---|---|
| Play_User_Reviews | T-Play_Content_Policies | เราจะแก้ไขข้อบกพร่องที่ผู้ใช้รายงานเข้ามาบ่อยๆ ในแท็บรีวิวของหน้า Google Play หากสามารถจำลองข้อบกพร่องได้และเกิดขึ้นในอุปกรณ์ต่างๆ จำนวนมาก หากพบข้อบกพร่องในอุปกรณ์เพียงไม่กี่เครื่อง คุณก็ควรแก้ไขข้อบกพร่องนั้นหากอุปกรณ์ดังกล่าวเป็นอุปกรณ์ยอดนิยมหรือเป็นอุปกรณ์ใหม่ |
สภาพแวดล้อมการทดสอบ
ตั้งค่าสภาพแวดล้อมการทดสอบดังนี้
การทดสอบโปรแกรมจำลอง: โปรแกรมจำลอง Android เป็นวิธีที่ยอดเยี่ยมในการทดสอบแอปใน Android เวอร์ชันและความละเอียดหน้าจอต่างๆ ตั้งค่าอุปกรณ์จำลอง (AVD) เพื่อแสดงถึงรูปแบบของอุปกรณ์ที่พบบ่อยที่สุดและ การผสมผสานฮาร์ดแวร์/ซอฟต์แวร์สำหรับฐานผู้ใช้เป้าหมาย ทดสอบ รูปแบบต่างๆ โดยใช้โปรแกรมจำลองต่อไปนี้ (อย่างน้อย)
- อุปกรณ์แบบพับ: พับเข้าขนาด 7.6 นิ้วพร้อมจอแสดงผลด้านนอก (แสดงในส่วนโทรศัพท์ ใน AVD Manager)
- แท็บเล็ต: Pixel C 9.94 นิ้ว (2,560 x 1,800 พิกเซล)
- การทดสอบการแจ้งเตือนของแอปบนอุปกรณ์เคลื่อนที่: จับคู่อุปกรณ์เคลื่อนที่ / โปรแกรมจำลองกับ โปรแกรมจำลอง Wear OS: Wear OS Round 1.84"
อุปกรณ์ฮาร์ดแวร์: สภาพแวดล้อมการทดสอบควรมี อุปกรณ์ฮาร์ดแวร์จริงจำนวนเล็กน้อยซึ่งแสดงถึงฟอร์มแฟกเตอร์หลักและชุดค่าผสมฮาร์ดแวร์/ซอฟต์แวร์ที่พร้อมให้บริการแก่ผู้บริโภค คุณไม่จำเป็นต้องทดสอบในอุปกรณ์ทุกเครื่องที่มีในตลาด มุ่งเน้นที่อุปกรณ์ตัวแทนจำนวนเล็กน้อย แม้จะใช้อุปกรณ์เพียง 1 หรือ 2 เครื่องต่อรูปแบบก็ตาม
ห้องปฏิบัติการทดสอบอุปกรณ์: คุณยังใช้บริการของบุคคลที่สาม เช่น Firebase Test Lab เพื่อทดสอบแอปในอุปกรณ์ที่หลากหลายได้ด้วย
ทดสอบกับ Android เวอร์ชันล่าสุด: นอกเหนือจากการทดสอบ Android เวอร์ชันที่เป็นตัวแทนสําหรับฐานผู้ใช้เป้าหมายแล้ว คุณควร ทดสอบกับ Android เวอร์ชันล่าสุดเสมอเพื่อให้แน่ใจว่า การเปลี่ยนแปลงลักษณะการทํางานล่าสุดจะไม่ส่งผลเสียต่อประสบการณ์ของผู้ใช้ แอป
ดูคำแนะนำเพิ่มเติมเกี่ยวกับการทดสอบ รวมถึงการทดสอบหน่วย การทดสอบการผสานรวม และการทดสอบ UI ได้ที่พื้นฐานของการทดสอบแอป Android
StrictMode
สำหรับการทดสอบประสิทธิภาพ ให้เปิดใช้ StrictMode ในแอป ใช้ StrictMode เพื่อตรวจหาการดำเนินการที่อาจส่งผลต่อประสิทธิภาพ การเข้าถึงเครือข่าย และการอ่านและเขียนไฟล์
มองหาการดำเนินการที่อาจเป็นปัญหาทั้งในเทรดหลักและเทรดอื่นๆ
ตั้งค่านโยบายการตรวจสอบต่อเธรดโดยใช้ StrictMode.ThreadPolicy.Builder และเปิดใช้การตรวจสอบที่รองรับทั้งหมดใน
ThreadPolicy โดยใช้ detectAll()
เปิดใช้การแจ้งเตือนด้วยภาพเกี่ยวกับการละเมิดนโยบายสำหรับ ThreadPolicy โดยใช้
penaltyFlashScreen()
การทดสอบ
การทดสอบคุณภาพหลักของแอปช่วยให้คุณประเมินคุณภาพพื้นฐานของแอปได้ คุณสามารถรวมการทดสอบหรือผสานรวมกลุ่มการทดสอบเข้าด้วยกันในแผนการทดสอบ
ประสบการณ์ของผู้ใช้
ทดสอบเพื่อให้ผู้ใช้ได้รับประสบการณ์ที่สอดคล้องและราบรื่น
ความสามารถในการใช้งาน
| รหัส | ฟีเจอร์ | คำอธิบาย |
|---|---|---|
| T-Consistent_UX | Consistent_UX |
ไปยังส่วนต่างๆ ของแอป ซึ่งรวมถึงหน้าจอ กล่องโต้ตอบ การตั้งค่า และโฟลว์ของผู้ใช้ทั้งหมด โดยทำดังนี้
|
| T-App_Switcher | App_Switcher | จากหน้าจอของแต่ละแอป ให้สลับไปใช้แอปอื่นที่กำลังทำงานอยู่ แล้วกลับมาที่แอปที่อยู่ระหว่างการทดสอบโดยใช้ตัวสลับแอปล่าสุด |
| T-Sleep_Resume | Sleep_Resume | กดปุ่มเปิด/ปิดเพื่อให้อุปกรณ์เข้าสู่โหมดสลีป จากนั้นกดปุ่มเปิด/ปิดอีกครั้งเพื่อปลุกหน้าจอ |
| T-Lock_Resume | Lock_Resume | ตั้งค่าการล็อกหน้าจอในอุปกรณ์ กดปุ่มเปิด/ปิดเพื่อให้อุปกรณ์เข้าสู่โหมดสลีป (ซึ่งจะล็อกอุปกรณ์) จากนั้นกดปุ่มเปิด/ปิดอีกครั้งเพื่อปลุกหน้าจอและปลดล็อกอุปกรณ์ |
การ์ด SD
| รหัส | ฟีเจอร์ | คำอธิบาย |
|---|---|---|
| T-SD_Card | Consistent_UX |
ทำการทดสอบฟังก์ชันหลักโดยติดตั้งแอปในการ์ด SD ของอุปกรณ์ (หากแอปรองรับวิธีการติดตั้งนี้) หากต้องการย้ายแอปไปยังการ์ด SD ให้ดูการตั้งค่าของแอป |
ส่วนติดต่อผู้ใช้
| รหัส | ฟีเจอร์ | คำอธิบาย |
|---|---|---|
| T-Orientation_Transitions | Display_State_Parity, Fullscreen_Display, Orientation_Transitions |
จากหน้าจอแอปแต่ละหน้า ให้หมุนอุปกรณ์ไปมาระหว่างการวางแนวแนวนอนกับแนวตั้ง และสถานะพับกับกางออกอย่างน้อย 3 ครั้ง ตรวจสอบว่าแอปทำสิ่งต่อไปนี้
|
คุณภาพของภาพ
| รหัส | ฟีเจอร์ | คำอธิบาย |
|---|---|---|
| T-Graphic_Quality | Graphic_Quality | ใช้ฟีเจอร์ทั้งหมดของแอป ตรวจสอบว่าภาพทั้งหมด รวมถึงกราฟิก ข้อความ รูปภาพ และองค์ประกอบอื่นๆ ของ UI ไม่มีการบิดเบือน เบลอ หรือเป็นพิกเซล |
| T-Line_Length | Line_Length |
ตรวจสอบบล็อกข้อความทั้งหมดในแอป ยืนยันว่าข้อความและความยาวบรรทัดของบล็อกข้อความจำกัดไว้ที่ 45-75 อักขระ (รวมช่องว่าง) เพื่อให้อ่านง่าย โปรดตรวจสอบสิ่งต่อไปนี้
|
| T-Theme_Support | Theme_Support | ตรวจสอบว่าข้อความทั้งหมดอ่านได้ทั้งในธีมสว่างและธีมมืด ตรวจสอบว่าภาพทั้งหมดมองเห็นได้ชัดเจนและสวยงามทั้งในธีมสว่างและธีมมืด |
การนำทาง
| รหัส | ฟีเจอร์ | คำอธิบาย |
|---|---|---|
| T-Back_Nav | Back_Button_Nav, Back_Gesture_Nav |
ไปยังส่วนต่างๆ ของแอป ซึ่งรวมถึงหน้าจอ กล่องโต้ตอบ การตั้งค่า และโฟลว์ของผู้ใช้ทั้งหมด จากหน้าจอแอปแต่ละหน้า ให้กดปุ่มย้อนกลับหรือใช้ท่าทางสัมผัสการปัดกลับ แอปควรไปยังหน้าจอก่อนหน้าหรือหน้าจอหลัก |
| T-State_Preservation | State_Preservation | จากหน้าจอแอปแต่ละหน้าจอ ให้กดปุ่มหน้าแรกของอุปกรณ์หรือปัดขึ้นในการนำทางด้วยท่าทางสัมผัส จากนั้นเปิดแอปอีกครั้งจากหน้าจอแอปทั้งหมด |
การแจ้งเตือน
| รหัส | ฟีเจอร์ | คำอธิบาย |
|---|---|---|
| T-Notification_Quality | Notification_Quality, Conversation_Quality |
ทริกเกอร์และสังเกตการแจ้งเตือนทุกประเภทที่แอปแสดงได้ในลิ้นชักการแจ้งเตือน ขยายการแจ้งเตือนหากเป็นไปได้ (Android 4.1 ขึ้นไป) แล้วแตะการดำเนินการทั้งหมดที่มี |
การช่วยเหลือพิเศษ
| รหัส | ฟีเจอร์ | คำอธิบาย |
|---|---|---|
| T-Touch_Target_Size | ขนาดเป้าหมายการสัมผัส | ตรวจสอบว่าเป้าหมายการแตะมีขนาดและตำแหน่งที่สอดคล้องกันและเข้าถึงได้สําหรับการกำหนดค่าและขนาดการแสดงผลทั้งหมด ดูข้อมูลเกี่ยวกับการช่วยเหลือพิเศษได้ที่เครื่องตรวจการเข้าถึง |
| T-Visual_Contrast | Visual_Contrast | ตรวจสอบคอนทราสต์ขององค์ประกอบภาพทั้งหมด |
| T-Content_Description | Content_Description | ตรวจสอบว่าองค์ประกอบ UI ทั้งหมดนอกเหนือจาก TextView มีคำอธิบายเนื้อหา |
ฟังก์ชันการทำงาน
ตรวจสอบว่าแอปของคุณมีลักษณะการทำงานต่อไปนี้
เสียง
| รหัส | ฟีเจอร์ | คำอธิบาย |
|---|---|---|
| T-Audio_Playback_Start | Audio_Playback_Start | เริ่มเล่นเสียง ตรวจสอบว่าภายใน 1 วินาที แอปจะเริ่มเล่นเสียงหรือแสดงตัวบ่งชี้ด้วยภาพว่ากำลังเตรียมข้อมูลเสียงสำหรับการเล่น |
| T-Audio_Focus_Request | Audio_Focus_Request | เริ่มเล่นเสียง แอปควรขอโฟกัสเสียง เมื่อการเล่นเสียงหยุดลง แอปควรปล่อยโฟกัสเสียง (ซึ่งจะเกิดขึ้นโดยอัตโนมัติสำหรับแอปที่กำหนดเป้าหมายเป็น Android 12 (API ระดับ 31) ขึ้นไป) |
| T-Audio_Focus_Change | Audio_Focus_Change | เริ่มเล่นเสียง เริ่มเล่นเสียงในแอปอื่น แอปของคุณควรตอบสนองต่อการเปลี่ยนแปลงโฟกัสเสียงและหยุดเล่นเสียงหรือลดระดับเสียงการเล่น |
| T-Audio_Playback_Background | Audio_Playback_Background | เริ่มเล่นเสียง โต้ตอบกับแอปที่ไม่ใช่เสียงอื่นในฐานะแอปที่ทำงานอยู่เบื้องหน้า แอปควรเล่นเสียงต่อไปในเบื้องหลังและควรแสดงการแจ้งเตือนในแถบสถานะ ตรวจสอบว่าคุณจัดการการเล่นได้โดยใช้ตัวควบคุมที่แสดงในการแจ้งเตือน ล็อกหน้าจออุปกรณ์ แอปควรเล่นเสียงต่อในเบื้องหลังและแสดงการแจ้งเตือนในหน้าจอล็อก ตรวจสอบว่าคุณจัดการการเล่นได้โดยใช้ตัวควบคุมที่แสดงในการแจ้งเตือน |
| T-Audio_Notification_Style | Audio_Notification_Style | เริ่มเล่นเสียง โต้ตอบกับแอปที่ไม่ใช่เสียงอื่นในฐานะแอปที่ทำงานอยู่ ตรวจสอบว่าแอปของคุณยังคงเล่นเสียงในเบื้องหลังและได้สร้างการแจ้งเตือนที่มีรูปแบบเป็น MediaStyle ดูการทำงานร่วมกับตัวควบคุมสื่อ |
| T-Audio_Playback_Resume | Audio_Playback_Resume | เริ่มเล่นเสียง โต้ตอบกับแอปอื่นที่ไม่ใช่แอปเสียงในฐานะแอปที่ทำงานอยู่ โต้ตอบกับแอปของคุณเพื่อให้เป็นแอปที่อยู่ด้านบนสุด เสียงควรกลับมาเล่นต่อหรือระดับเสียงควรกลับมาเป็นปกติ ไม่เช่นนั้น แอปควรแจ้งให้ผู้ใช้ทราบว่าระบบหยุดเล่นชั่วคราว |
วิดีโอ
| รหัส | ฟีเจอร์ | คำอธิบาย |
|---|---|---|
| T-Video_PiP | Video_PiP | เปิดใช้งานการเล่นวิดีโอของแอปในโหมดการแสดงภาพซ้อนภาพ |
| T-Video_Encoding | Video_Encoding | ตรวจสอบว่าแอปเข้ารหัสวิดีโอโดยใช้มาตรฐานการบีบอัดวิดีโอ HEVC |
| T-Video_Playback_Background | Video_Playback_Background | เริ่มเล่นวิดีโอ ย่อหน้าต่างแอปให้เล็กสุด แล้วเปิดแอปอื่นเพื่อย้ายหน้าต่างแอปไปไว้ที่พื้นหลัง ในอุปกรณ์ที่ใช้เดสก์ท็อปได้ ให้ย้ายหน้าต่างแอปออกจากเดสก์ท็อปที่มองเห็นได้ ตรวจสอบว่าการเล่นวิดีโอจะดำเนินต่อไปโดยไม่หยุดชะงักในทุกกรณี |
การแชร์
| รหัส | ฟีเจอร์ | คำอธิบาย |
|---|---|---|
| T-System_Sharesheet | System_Sharesheet | สร้าง Intent และเริ่มกิจกรรมโดยการเรียกใช้ startActivity() โดยมี Intent เป็นอาร์กิวเมนต์ ดูที่หัวข้อใช้ชีตการแชร์ของ Android แอปของคุณควรแสดงชีตการแชร์ของ Android |
บริการในเบื้องหลัง
| รหัส | ฟีเจอร์ | คำอธิบาย |
|---|---|---|
| T-Background_Service_Optimization | Background_Service_Optimization | ใช้ฟีเจอร์หลักทั้งหมดของแอป ตรวจสอบว่าไม่มีการเริ่มบริการที่ทำงานอยู่เบื้องหลังเป็นเวลานาน เปลี่ยนไปใช้แอปอื่นเพื่อส่งแอปของคุณไปทำงานที่เบื้องหลัง ไปที่การตั้งค่าและตรวจสอบว่าแอปมีบริการใดที่ทำงานขณะอยู่ในเบื้องหลังหรือไม่ ใน Android 4.0 ขึ้นไป ให้ไปที่หน้าจอแอป แล้วค้นหาแอปในแท็บกำลังทำงาน |
ประสิทธิภาพและความเสถียร
ยืนยันประสิทธิภาพ ความเสถียร และภาพที่คมชัด
ประสิทธิภาพ
| รหัส | ฟีเจอร์ | คำอธิบาย |
|---|---|---|
| T-App_Startup_Time | App_Startup_Time | เริ่มแอป ตรวจสอบว่าแอปโหลดได้อย่างรวดเร็ว หรือแสดงตัวบ่งชี้ความคืบหน้าหรือคิวที่คล้ายกันหากแอปใช้เวลาโหลดนานกว่า 2 วินาที |
| T-Rendering_Performance | Rendering_Performance | ใช้ฟีเจอร์หลักทั้งหมดของแอป ตรวจสอบว่าแอปแสดงผลอย่างน้อย 60 เฟรมต่อวินาที ใช้ตัวเลือกการแสดงผล HWUI ตามโปรไฟล์เพื่อช่วยทดสอบแอป |
| T-StrictMode_Compliance | StrictMode_Compliance |
เปิดใช้ ให้ความสำคัญกับการเก็บขยะและผลกระทบต่อประสบการณ์ของผู้ใช้ |
ความเสถียร
| รหัส | ฟีเจอร์ | คำอธิบาย |
|---|---|---|
| T-Stability_ANR | Stability_ANR | ใช้ฟีเจอร์หลักทั้งหมดของแอป ตรวจสอบว่าแอปไม่ขัดข้องหรือบล็อกเธรด UI ซึ่งทำให้เกิดข้อผิดพลาด ANR (Android ไม่ตอบสนอง) ตรวจสอบรายงานก่อนการเปิดตัวของ Google Play เพื่อระบุปัญหาด้านความเสถียรที่อาจเกิดขึ้น |
SDK
| รหัส | ฟีเจอร์ | คำอธิบาย |
|---|---|---|
| T-Android_Platform_Compatibility | Android_Platform_Compatibility | เรียกใช้แอปในแพลตฟอร์ม Android เวอร์ชันสาธารณะล่าสุด ใช้ฟีเจอร์หลักทั้งหมด ตรวจสอบว่าแอปไม่ขัดข้องและทํางานได้โดยไม่สูญเสียฟังก์ชันหลัก |
| T-Target_SDK_Version | Target_SDK_Version, Compile_SDK_Version |
ตรวจสอบไฟล์ Manifest ของ Android และการกำหนดค่าบิลด์เพื่อให้แน่ใจว่าแอปพลิเคชันสร้างขึ้นเทียบกับ SDK เวอร์ชันล่าสุดที่พร้อมใช้งาน (targetSdk และ compileSdk) |
| T-SDK_Maintenance | SDK_Maintenance | ตรวจสอบไฟล์ build.gradle ของแอปเพื่อดูทรัพยากร Dependency ที่ล้าสมัย |
| T-Non_SDK_Interfaces | Non_SDK_Interfaces | ใช้เครื่องมือ Lint ของ Android Studio เพื่อตรวจหาการใช้อินเทอร์เฟซที่ไม่ได้อยู่ใน SDK ดูวิธีการทดสอบทางเลือกได้ที่ข้อจำกัดเกี่ยวกับอินเทอร์เฟซที่ไม่ใช่ SDK |
| T-Production_Build_Quality | Production_Build_Quality | ตรวจสอบไฟล์ build.gradle ของแอปเพื่อหาไลบรารีการแก้ไขข้อบกพร่องที่รวมไว้ |
แบตเตอรี่
| รหัส | ฟีเจอร์ | คำอธิบาย |
|---|---|---|
| T-Power_Management | Power_Management |
ใช้ฟีเจอร์หลักทั้งหมดของแอปในโหมด Doze และสแตนด์บายแอป ตรวจสอบว่าการปลุก ตัวจับเวลา การแจ้งเตือน และการซิงค์ทำงานอย่างถูกต้องในช่วงเวลาบำรุงรักษาของโหมดพักแอปและเมื่อแอปออกจากโหมดสแตนด์บายของแอป ทดสอบลักษณะการทำงานของ Doze และสแตนด์บายแอปโดยใช้คำสั่ง ADB (ดูข้อกำหนดและหลักเกณฑ์ได้ที่ทดสอบด้วย Doze และสแตนด์บายแอป) หากต้องการวินิจฉัยปัญหาแบตเตอรี่หมดเร็วโดยไม่คาดคิด ให้ใช้โปรไฟล์เลอร์พลังงานของ Android Studio หรือเครื่องมือ Battery Historian ร่วมกับงานที่วางแผนไว้ในเบื้องหลัง |
ความเป็นส่วนตัวและความปลอดภัย
ทดสอบการปกป้องความเป็นส่วนตัวและความปลอดภัยที่ผู้ใช้คาดหวัง
สิทธิ์
| รหัส | ฟีเจอร์ | คำอธิบาย |
|---|---|---|
| T-Minimize_Permissions | Minimize_Permissions | ตรวจสอบสิทธิ์ทั้งหมดที่แอปของคุณต้องใช้ในไฟล์ Manifest, ที่รันไทม์ และในการตั้งค่าแอปในอุปกรณ์ (การตั้งค่า > ข้อมูลแอป) |
| T-Sensitive_Permissions | Sensitive_Permissions | ใช้ฟีเจอร์ใดก็ได้ของแอปที่ขอสิทธิ์ ยืนยันว่าแอปขอสิทธิ์เข้าถึงข้อมูลหรือบริการที่ละเอียดอ่อนเฉพาะกรณีการใช้งานหลักของแอปเท่านั้น ตรวจสอบว่าได้แจ้งให้ผู้ใช้ทราบอย่างชัดเจนถึงผลที่ตามมาของการให้สิทธิ์เข้าถึงข้อมูลและบริการที่ละเอียดอ่อน |
| T-Runtime_Permissions | Runtime_Permissions | ใช้ฟีเจอร์ทั้งหมดของแอปที่ต้องใช้สิทธิ์ ตรวจสอบว่ามีการขอสิทธิ์แบบเลซี่ นั่นคือ ขอเฉพาะเมื่อมีการเข้าถึงฟีเจอร์ ไม่ใช่ระหว่างการเริ่มต้นแอป |
| T-Permission_Rationale | Permission_Rationale | ใช้ฟีเจอร์ทั้งหมดของแอปที่ต้องใช้สิทธิ์ ตรวจสอบว่าแอปอธิบายให้ผู้ใช้ทราบถึงเหตุผลที่ต้องใช้สิทธิ์ |
| T-Graceful_Degradation | Graceful_Degradation | ใช้ฟีเจอร์ทั้งหมดของแอปที่ต้องใช้สิทธิ์ ปฏิเสธหรือเพิกถอนสิทธิ์ ตรวจสอบว่าแอปมี Use Case ทางเลือกและยังคงทำงานได้ |
ข้อมูลและไฟล์
| รหัส | ฟีเจอร์ | คำอธิบาย |
|---|---|---|
| T-Sensitive_Data_Storage | Sensitive_Data_Storage | ตรวจสอบข้อมูลทั้งหมดที่จัดเก็บไว้ในที่เก็บข้อมูลภายใน ตรวจสอบว่าข้อมูลที่จัดเก็บภายนอกไม่ใช่ข้อมูลที่ละเอียดอ่อน |
| T-Sensitive_Data_Handling | Sensitive_Data_Storage | ตรวจสอบวิธีจัดการและประมวลผลข้อมูลที่โหลดจากที่เก็บข้อมูลภายนอก |
| T-Sensitive_Data_Logging | Sensitive_Data_Logging | ใช้ฟีเจอร์หลักทั้งหมดของแอปขณะตรวจสอบบันทึกของอุปกรณ์ ตรวจสอบว่าไม่มีการบันทึกข้อมูลส่วนตัวของผู้ใช้ |
| T-Hardware_IDs | Hardware_IDs | ใช้ฟีเจอร์หลักทั้งหมดของแอป ตรวจสอบว่าแอปไม่ได้ใช้รหัสฮาร์ดแวร์ เช่น IMEI เพื่อวัตถุประสงค์ในการระบุตัวตน |
ข้อมูลระบุตัวตน
| รหัส | ฟีเจอร์ | คำอธิบาย |
|---|---|---|
| T-Autofill_Hints | Autofill_Hints | ใช้ฟีเจอร์ทั้งหมดของแอปที่ต้องมีการป้อนข้อมูลจากผู้ใช้ ตรวจสอบว่าแอปมีคำแนะนำในการป้อนข้อความอัตโนมัติในช่องป้อนข้อมูลสำหรับข้อมูล เช่น ข้อมูลเข้าสู่ระบบของบัญชีและข้อมูลอื่นๆ ที่ละเอียดอ่อน |
| T-Credential_Manager | Credential_Manager | ลงชื่อเข้าใช้แอป ตรวจสอบว่าแอปผสานรวม Credential Manager สำหรับ Android เพื่อประสบการณ์การลงชื่อเข้าใช้ที่รวมการรองรับพาสคีย์ ข้อมูลประจำตัวแบบรวม และรหัสผ่าน |
| T-Biometric_Authentication | Biometric_Authentication | ใช้ฟีเจอร์ทั้งหมดของแอปที่ต้องมีการตรวจสอบสิทธิ์ ตรวจสอบว่าแอปปกป้องธุรกรรมทางการเงินหรือข้อมูลที่ละเอียดอ่อน เช่น เอกสารสำคัญของผู้ใช้ ด้วยการตรวจสอบสิทธิ์ด้วยไบโอเมตริก |
คอมโพเนนต์ของแอป
| รหัส | ฟีเจอร์ | คำอธิบาย |
|---|---|---|
| T-Component_Export | Component_Export | ตรวจสอบคอมโพเนนต์ของแอปพลิเคชันทั้งหมดที่กำหนดไว้ในไฟล์ Android Manifest เพื่อดูสถานะการส่งออกที่เหมาะสม ต้องตั้งค่าพร็อพเพอร์ตี้ที่ส่งออกอย่างชัดเจนสำหรับคอมโพเนนต์ทั้งหมด |
| T-Component_Permissions | Component_Permissions | ตรวจสอบสิทธิ์ทั้งหมดที่แอปของคุณต้องใช้ในไฟล์ Manifest, ที่รันไทม์ และในการตั้งค่าแอปในอุปกรณ์ (การตั้งค่า > ข้อมูลแอป) |
| T-Component_Protection | Component_Protection | ตรวจสอบผู้ให้บริการเนื้อหาทั้งหมดที่กำหนดไว้ในไฟล์ Android Manifest ตรวจสอบว่าผู้ให้บริการแต่ละรายมี protectionLevel ที่เหมาะสม |
เครือข่าย
| รหัส | ฟีเจอร์ | คำอธิบาย |
|---|---|---|
| T-Network_Security_Traffic | Network_Security_Traffic | ประกาศการกำหนดค่าความปลอดภัยของเครือข่ายที่ปิดใช้การเข้าชมแบบข้อความธรรมดา (Cleartext) จากนั้นทดสอบแอป |
| T-Network_Security_Configuration | Network_Security_Configuration | ตรวจสอบการกำหนดค่าความปลอดภัยของเครือข่ายของแอป ตรวจสอบว่าการตรวจสอบ Lint ในการกำหนดค่าไม่ล้มเหลว |
| T-Security_Provider_Initialization | Security_Provider_Initialization | ตรวจสอบว่ามีการเริ่มต้นผู้ให้บริการด้านความปลอดภัยเมื่อแอปพลิเคชันเริ่มต้นสำหรับบริการ Google Play |
WebView
| รหัส | ฟีเจอร์ | คำอธิบาย |
|---|---|---|
| T-WebView_Asset_Loader | WebView_Asset_Loader | ตรวจสอบการกำหนดค่าความปลอดภัยของเครือข่ายของแอป ตรวจสอบว่าการตรวจสอบ Lint ในการกำหนดค่าไม่ล้มเหลว |
| T-WebView_JavaScript | WebView_JavaScript | สําหรับ WebView แต่ละรายการ ให้ไปที่หน้าที่ต้องใช้ JavaScript |
| T-WebView_Navigation | WebView_Asset_Loader, WebView_JavaScript |
ในแต่ละ WebView ให้พยายามไปยังเว็บไซต์และเนื้อหาที่แอปไม่ได้โหลดโดยตรง |
การลงมือปฏิบัติ
| รหัส | ฟีเจอร์ | คำอธิบาย |
|---|---|---|
| T-App_Bundles | App_Bundles | ตรวจสอบว่าแอปใช้ Android App Bundle และไม่ได้โหลดโค้ดแบบไดนามิกจากภายนอก APK ของแอป |
วิทยาการเข้ารหัสลับ
| รหัส | ฟีเจอร์ | คำอธิบาย |
|---|---|---|
| T-Cryptographic_Algorithms | Cryptographic_Algorithms | ตรวจสอบว่าแอปใช้อัลกอริทึมการเข้ารหัสลับและตัวสร้างหมายเลขแบบสุ่มที่รัดกุมซึ่งแพลตฟอร์มจัดหาให้ และตรวจสอบด้วยว่าแอปไม่ได้ใช้อัลกอริทึมที่กำหนดเอง |
Google Play
ตรวจสอบว่าแอปพร้อมใช้งานใน Google Play
นโยบาย
| รหัส | ฟีเจอร์ | คำอธิบาย |
|---|---|---|
| T-Play_Content_Policies | นโยบายเนื้อหาของ Play, การจัดประเภทเนื้อหาของ Play, รีวิวของผู้ใช้ใน Play |
ลงชื่อเข้าใช้ Google Play Console เพื่อตรวจสอบโปรไฟล์นักพัฒนาแอป คำอธิบายแอป ภาพหน้าจอ กราฟิกฟีเจอร์ การจัดประเภทเนื้อหา และความคิดเห็นของผู้ใช้ |
หน้ารายละเอียดแอป
| รหัส | ฟีเจอร์ | คำอธิบาย |
|---|---|---|
| T-Play_Feature_Graphic | Play_Feature_Graphic | ดาวน์โหลดภาพฟีเจอร์และภาพหน้าจอ แล้วลดขนาดให้ตรงกับขนาดการแสดงผลในอุปกรณ์และรูปแบบของอุปกรณ์ที่คุณกำหนดเป้าหมาย |
| T-Play_Graphic_Assets | Play_Feature_Graphic, Play_Device_References, Play_Misleading_Content |
ตรวจสอบชิ้นงานกราฟิก สื่อ ข้อความ ไลบรารีโค้ด และเนื้อหาอื่นๆ ทั้งหมดที่รวมอยู่ในแอปหรือการดาวน์โหลดไฟล์ส่วนขยาย |
เก็บ
หลักเกณฑ์ด้านคุณภาพของแอปหลักฉบับก่อนหน้า