คุณภาพแอปหลัก

อัปเดตล่าสุดเมื่อ 17 พฤษภาคม 2021

วิธีที่มีประโยชน์ในการประเมินความเป็นเลิศของแอปคือการเดิน ผ่านเวิร์กโฟลว์ในแอป และประเมินความราบรื่นและความปลอดภัย ประสบการณ์การใช้งานแอป

รายการตรวจสอบนี้จะระบุชุดเกณฑ์ด้านคุณภาพหลักและการทดสอบที่เกี่ยวข้องเพื่อช่วยคุณประเมิน คุณภาพแอปของคุณ เกณฑ์เหล่านี้บางข้ออาจผิดพลาดได้ง่าย และการทดสอบช่วยให้คุณจำได้ เพื่อรวมไว้ในแผนทดสอบ

รายการตรวจสอบจะไฮไลต์คุณภาพขั้นต่ำที่แอปทั้งหมดควรมีคุณสมบัติตรงตามหลักเกณฑ์ การทดสอบของคุณมีแนวโน้ม ทำได้มากกว่าที่อธิบายไว้ที่นี่

แต่ละรายการในรายการตรวจสอบคุณภาพจะมีรหัสที่ไม่ซ้ำกัน ซึ่งอาจเป็นประโยชน์ในการใช้เมื่อคุณ สื่อสารกับทีมของคุณ คุณยังสามารถดู ของหลักเกณฑ์เหล่านี้

ประสบการณ์การรับชม

แอปของคุณควรมีดีไซน์มาตรฐานของ Android และรูปแบบการโต้ตอบตามความเหมาะสม เพื่อให้มีความสม่ำเสมอและเข้าใจง่าย ประสบการณ์ของผู้ใช้

พื้นที่ รหัส การทดสอบ คำอธิบาย
การไปยังรายการต่างๆ VX-N1 CR-3 แอปรองรับการนำทางด้วยปุ่มย้อนกลับแบบมาตรฐานและไม่ได้ใช้ประโยชน์จาก "ปุ่มย้อนกลับ" ที่กำหนดเองใดๆ บนหน้าจอ
VX-N2 CR-3 แอปรองรับการนำทางด้วยท่าทางสัมผัสสำหรับการย้อนกลับ / ไปที่หน้าจอหลัก
VX-N3 CR-1
CR-3
CR-5

แอปจะเก็บรักษาและคืนค่าสถานะผู้ใช้หรือแอปอย่างถูกต้อง

แอปจะเก็บสถานะผู้ใช้หรือแอปไว้เมื่อออกจากเบื้องหน้า และป้องกันข้อมูลสูญหายโดยไม่ตั้งใจเนื่องจากการนําทางย้อนกลับและการเปลี่ยนแปลงสถานะอื่นๆ

เมื่อกลับไปที่เบื้องหน้า แอปควรคืนค่าสถานะที่สงวนไว้และธุรกรรมที่เก็บสถานะที่สำคัญทั้งหมดซึ่งรอดำเนินการอยู่ ตัวอย่างเช่น การเปลี่ยนแปลงช่องที่แก้ไขได้ ความคืบหน้าของเกม เมนู วิดีโอ และส่วนอื่นๆ ของแอปหรือเกม

  1. เมื่อแอปกลับมาทำงานอีกครั้งจากตัวสลับแอปล่าสุด แอปจะกลับสู่สถานะที่ใช้งานครั้งล่าสุด
  2. เมื่อแอปทำงานต่อหลังจากที่อุปกรณ์ออกจากสถานะสลีป (ล็อก) แอปจะกลับสู่สถานะที่ใช้งานครั้งล่าสุด
  3. เมื่อเปิดแอปอีกครั้งจาก "หน้าแรก" หรือ "แอปทั้งหมด" ควรทำอย่างใดอย่างหนึ่งต่อไปนี้โดยขึ้นอยู่กับระยะเวลาที่ใช้งานครั้งล่าสุด
    • หากใช้งานแอปครั้งล่าสุดเป็นระยะเวลาสั้นๆ (นาที) ให้คืนค่าสถานะของแอปให้ใกล้เคียงที่สุดกับสถานะก่อนหน้า
    • หากเวลาผ่านไปนานนับตั้งแต่ที่มีการใช้งานแอปครั้งล่าสุด ให้พยายามคืนค่าแอปให้ใกล้เคียงสถานะก่อนหน้านี้มากที่สุด หรือเริ่มใช้งานจากหน้าจอหลักหรือสถานะเริ่มต้นอื่นๆ
การแจ้งเตือน VX-S1 CR-9

การแจ้งเตือนจะเป็นไปตามหลักเกณฑ์การออกแบบ โดยเฉพาะอย่างยิ่ง:

  1. เราจะไม่ใช้การแจ้งเตือนสำหรับการโปรโมตข้ามแพลตฟอร์มหรือการโฆษณาผลิตภัณฑ์อื่น เนื่องจาก Play Store เป็นข้อห้ามโดยเด็ดขาด
  2. ช่องทางการแจ้งเตือนกำหนดตามแนวทางปฏิบัติแนะนำแทนที่จะแสดงการแจ้งเตือนทั้งหมดจากช่องเดียว
  3. เลือก ลำดับความสำคัญของการแจ้งเตือนที่ถูกต้อง
  4. การแจ้งเตือนหลายรายการจะซ้อนกันอยู่ในกลุ่มการแจ้งเตือนเดียวเมื่อเป็นไปได้
  5. กำหนดระยะหมดเวลาสำหรับการแจ้งเตือนตามความเหมาะสม
  6. การแจ้งเตือนจะยังคงอยู่เฉพาะเมื่อเกี่ยวข้องกับกิจกรรมที่กำลังดำเนินอยู่ เช่น การเล่นเพลงหรือการโทรศัพท์ สำหรับข้อมูลเพิ่มเติม โปรดดู ส่วนฟังก์ชัน
VX-S2 CR-9

สำหรับแอปรับส่งข้อความ แอปโซเชียล และการสนทนา ให้ทำดังนี้

  1. ใช้การแจ้งเตือนของ MessagingStyle สำหรับการสนทนา
  2. รองรับการตอบโดยตรง
  3. สนับสนุนทางลัดการสนทนา และใช้แนวทางปฏิบัติแนะนำเพื่อให้ได้อันดับการแชร์โดยตรงที่ดีที่สุด
  4. สนับสนุน ลูกโป่ง
UI และกราฟิก VX-U1 CR-5

แอปรองรับการวางแนวตั้งและแนวนอน ตลอดจนอุปกรณ์ที่พับและกางออก รัฐ

โดยพื้นฐานแล้ว การวางแนวและสถานะการพับจะแสดงคุณลักษณะและการทำงานที่เหมือนกัน และช่วยรักษาไว้ ความเท่าเทียมกันของฟังก์ชันการทำงาน

VX-U2 CR-5

แอปแสดงเต็มหน้าต่างแอปทั้ง 2 ด้านและไม่มีแถบดำด้านบน-ล่างของภาพเนื่องจาก การเปลี่ยนแปลงการกำหนดค่า ซึ่งรวมถึงการพับและกางออกของอุปกรณ์

สามารถใช้แถบดำด้านบน-ล่างของภาพเพื่อชดเชยเรขาคณิตบนหน้าจอเล็กๆ น้อยๆ ได้

VX-U3 CR-5 แอปจัดการการเปลี่ยนอย่างรวดเร็วระหว่างการวางแนวจอแสดงผลและการพับอุปกรณ์ได้อย่างถูกต้อง สามารถกางออกได้โดยไม่มีปัญหาการแสดงภาพ และไม่สูญเสียสถานะ
คุณภาพของภาพ VX-V1 CR ทั้งหมด

แอปแสดงกราฟิก ข้อความ รูปภาพ และองค์ประกอบ UI อื่นๆ โดยไม่ทำให้บิดเบี้ยว เบลอ หรือแตกเป็นพิกเซลอย่างชัดเจน

  1. แอปควรใช้ เวกเตอร์ที่ถอนออกได้ หากทำได้
  2. แอปนี้มอบกราฟิกคุณภาพสูงสำหรับขนาดหน้าจอและรูปแบบอุปกรณ์ที่ตรงเป้าหมายทั้งหมด
  3. โดยมองไม่เห็นชื่อแทนที่ขอบของเมนู ปุ่ม และองค์ประกอบ UI อื่นๆ
VX-V2 CR ทั้งหมด

แอปจะแสดงบล็อคข้อความและข้อความในลักษณะที่เป็นที่ยอมรับได้สำหรับภาษาที่สนับสนุนของแอปแต่ละภาษา

  1. การจัดองค์ประกอบสามารถยอมรับได้ในรูปแบบของอุปกรณ์ที่รองรับทั้งหมด
  2. โดยจะไม่มีตัวอักษรหรือคำที่ตัดออก
  3. ไม่เห็นการตัดคำที่ไม่เหมาะสมภายในปุ่มหรือไอคอน
  4. มีระยะห่างระหว่างข้อความและองค์ประกอบโดยรอบที่เพียงพอ
VX-V3 CR ทั้งหมด เนื้อหาของแอปและเนื้อหาเว็บทั้งหมดที่แอปอ้างถึงจะรองรับธีมมืด
การช่วยเหลือพิเศษ VX-A1 CR ทั้งหมด

เป้าหมายการสัมผัสควรมีขนาดอย่างน้อย 48dp ดูข้อมูลเพิ่มเติม

VX-A2 CR ทั้งหมด

ข้อความและเนื้อหาเบื้องหน้าของแอปควรมีอัตราส่วนคอนทราสต์ของสีสูงพอ เบื้องหลัง

  • 3.0:1 สำหรับข้อความ / กราฟิกขนาดใหญ่
  • 4.5:1 สำหรับข้อความขนาดเล็ก (ข้อความขนาดเล็กกว่า 18pt หรือหากข้อความเป็นตัวหนาและเล็กกว่า 14pt)

ดูข้อมูลเพิ่มเติมเกี่ยวกับสีและคอนทราสต์

VX-A3 CR ทั้งหมด อธิบายองค์ประกอบ UI แต่ละรายการ ยกเว้น TextView ซึ่งใช้ contentDescription

ฟังก์ชันการทำงาน

แอปของคุณควรใช้ลักษณะการทำงานที่คาดหวัง

พื้นที่ รหัส การทดสอบ คำอธิบาย
เสียง FN-A1 CR-1
CR-8
เสียงจะเล่นต่อเมื่อแอปกลับไปที่พื้นหน้า หรือแจ้งให้ผู้ใช้ทราบว่าการเล่นอยู่ในสถานะหยุดชั่วคราว
FN-A2 CR-1
CR-2
CR-8
หากการเล่นเสียงเป็นฟีเจอร์หลัก แอปก็ควรรองรับการเล่นขณะล็อกหน้าจอหรือขณะใช้แอปอื่น
FN-A3 CR-0

เมื่อผู้ใช้เริ่มเล่นเสียง แอปควรทำสิ่งใดสิ่งหนึ่งต่อไปนี้ภายใน 1 วินาที

  1. เริ่มเล่นเสียง
  2. ระบุตัวบ่งชี้ที่เป็นภาพว่ากำลังจัดเตรียมข้อมูลเสียง
FN-A4 CR-0 แอปควรขอโฟกัสเสียงเมื่อเสียงเริ่มเล่น และยกเลิกการโฟกัสเสียงเมื่อหยุดเล่น
FN-A5 CR-0 แอปควรจัดการคำขอการโฟกัสเสียงของแอปอื่นๆ เช่น แอปอาจลดระดับเสียงเมื่อแอปอื่นเล่นเสียง
สื่อ FN-M1 CR-0
CR-6
CR-8
หากแอปเล่นเสียงในเบื้องหลัง จะต้องสร้างการแจ้งเตือนสไตล์ด้วย MediaStyle
FN-M2 CR-0 หากแอปเล่นวิดีโอ แอปควรรองรับการเล่นแบบการแสดงภาพซ้อนภาพ
FN-M3 CR-0 หากแอปเข้ารหัสวิดีโอ ควรดำเนินการโดยใช้มาตรฐานการบีบอัดวิดีโอ HEVC
การแชร์ FN-S1 CR-0 แอปควรใช้ Sharesheet ของ Android เมื่อแชร์เนื้อหา ช่วยแนะนำเป้าหมายที่ใช้ไม่ได้กับโซลูชันที่กำหนดเอง
บริการที่ทำงานอยู่เบื้องหลัง FN-B1 CR-6 แอปหลีกเลี่ยงการเรียกใช้บริการแบบยาวโดยไม่จำเป็นในเบื้องหลัง ระบบจะรวมข้อจำกัดเกี่ยวกับบริการในเบื้องหลังหลายอย่างไว้เพื่อให้อุปกรณ์ของผู้ใช้ทำงานได้อย่างราบรื่น กรณีต่อไปนี้ไม่ถือว่าเป็นการใช้บริการในเบื้องหลังอย่างถูกต้อง
  • การรักษาการเชื่อมต่อเครือข่ายสำหรับการแจ้งเตือน
  • กำลังรักษาการเชื่อมต่อบลูทูธ
  • เปิด GPS ไว้เสมอ

ดูวิธีเลือกโซลูชันที่เหมาะกับงาน

ประสิทธิภาพและความเสถียร

แอปควรให้ประสิทธิภาพ ความเสถียร ความเข้ากันได้ และ การตอบสนองที่จำเป็นสำหรับผู้ใช้

พื้นที่ รหัส การทดสอบ คำอธิบาย
ความเสถียร PS-S1 CR-all
SD-1
แอปไม่ขัดข้อง หรือ บล็อกชุดข้อความ UI ที่ทำให้เกิด ANR (Android ไม่ใช่ การตอบกลับ") ใช้ Google รายงานก่อนการเปิดตัวของ Play เพื่อระบุปัญหาที่อาจเกิดขึ้นกับความเสถียร หลังจากทำให้ใช้งานได้แล้ว ให้ชำระเงิน ไปที่หน้า Android Vitals ในแดชบอร์ด Play Developer Console
ประสิทธิภาพ PS-P1 CR-all
SD-1
แอปโหลดได้เร็วหรือแสดงความคิดเห็นบนหน้าจอแก่ผู้ใช้ (สัญญาณบอกสถานะความคืบหน้าหรือสัญลักษณ์ที่คล้ายกัน) ในกรณีที่แอปใช้เวลาโหลดนานกว่า 2 วินาที
PS-P2 CR-all
SD-1
แอปควรแสดงผลเฟรมทุกๆ 16 มิลลิวินาทีเพื่อให้ได้ 60 เฟรมต่อวินาที นักพัฒนาแอปสามารถใช้ตัวเลือกการแสดงผล HWUI ในโปรไฟล์ในการทดสอบ หากมีปัญหา คุณสามารถใช้เครื่องมือเพื่อช่วยวินิจฉัยการแสดงผลช้า
PS-P3 PM-1 เมื่อเปิดใช้ StrictMode (ดูการทดสอบ StrictMode ด้านล่าง) ระบบจะไม่แสดงแฟลชสีแดง (คำเตือนด้านประสิทธิภาพจาก StrictMode) เมื่อทดสอบแอป ไฟกะพริบสีแดงบ่งบอกถึงลักษณะการทำงานที่ไม่ถูกต้องเกี่ยวกับพื้นที่เก็บข้อมูล การเข้าถึงเครือข่าย หรือการรั่วไหลของหน่วยความจำ
SDK PS-T1 CR-0 แอปทำงานบนแพลตฟอร์ม Android เวอร์ชันล่าสุดที่เผยแพร่ต่อสาธารณะโดยไม่เกิดข้อขัดข้องหรือส่งผลกระทบต่อฟังก์ชันหลักอย่างมาก
PS-T2 SP-1 แอปกำหนดเป้าหมาย Android SDK ล่าสุดที่จำเป็นเพื่อให้สอดคล้องกับข้อกำหนดของ Google Play โดยการตั้งค่า targetSdk
PS-T3 SP-1 แอปนี้สร้างด้วย Android SDK ล่าสุดโดยตั้งค่า compileSdk
PS-T4 SP-2
SP-3
SDK ของ Google หรือบุคคลที่สามที่ใช้เป็นเวอร์ชันล่าสุด การปรับปรุง SDK เหล่านี้ เช่น ความเสถียร ความเข้ากันได้ หรือการรักษาความปลอดภัยควรพร้อมใช้งานสำหรับผู้ใช้อย่างทันท่วงที

สำหรับ Google SDK ให้พิจารณาใช้ SDK ที่ขับเคลื่อนโดยบริการ Google Play เมื่อมีให้ใช้งาน SDK เหล่านี้รองรับการใช้งานแบบย้อนหลัง รับการอัปเดตอัตโนมัติ ลดขนาดแพ็กเกจแอป และใช้งานทรัพยากรในอุปกรณ์ได้อย่างมีประสิทธิภาพ

นักพัฒนาแอปมีหน้าที่รับผิดชอบต่อฐานของโค้ดทั้งแอป รวมถึง SDK ของบุคคลที่สามที่ใช้

PS-T5 SP-3 แอปไม่ได้ใช้อินเทอร์เฟซที่ไม่ใช่ SDK
PS-T6 SP-2 ไม่มีไลบรารีการแก้ไขข้อบกพร่องรวมอยู่ในแอปเวอร์ชันที่ใช้งานจริง ซึ่งอาจทำให้เกิดปัญหาด้านประสิทธิภาพและด้านความปลอดภัยด้วย
แบตเตอรี่ PS-B1 BA-1 แอปรองรับฟีเจอร์การจัดการพลังงานที่เปิดตัวใน Android 6.0 (Doze และ App Standby) อย่างเหมาะสม ในกรณีที่ฟังก์ชันหลักหยุดชะงักเนื่องจากการจัดการพลังงาน จะมีเพียงแอปที่เข้าเกณฑ์เท่านั้นที่ขอการยกเว้นได้ ดูการสนับสนุนสำหรับกรณีการใช้งานอื่นๆ ใน Doze และสแตนด์บายแอป

ในระหว่างการพัฒนา นักพัฒนาแอปสามารถทดสอบลักษณะการทำงานของแอปสแตนด์บายและ Doze โดยใช้คำสั่ง ADB เหล่านี้ได้

ในแง่ของการใช้งานแบตเตอรี่ นักพัฒนาแอปสามารถใช้เครื่องมือสร้างโปรไฟล์พลังงานของ Android Studio หรือเครื่องมือประวัติศาสตร์แบตเตอรี่ร่วมกับการทำงานในเบื้องหลังที่วางแผนไว้เพื่อวินิจฉัยการใช้งานแบตเตอรี่ที่ไม่คาดคิด

ความเป็นส่วนตัวและความปลอดภัย

แอปของคุณควรจัดการข้อมูลผู้ใช้และข้อมูลส่วนบุคคลอย่างปลอดภัย โดยให้สิทธิ์ในระดับที่เหมาะสม

นอกเหนือจากรายการตรวจสอบนี้ แอปพลิเคชันที่เผยแพร่บน Google Play พื้นที่เก็บต้องเป็นไปตามข้อมูลผู้ใช้ นโยบายเพื่อปกป้องผู้ใช้ ความเป็นส่วนตัว

พื้นที่ รหัส การทดสอบ คำอธิบาย
สิทธิ์ SC-P1 SC-4 แอปจะขอเฉพาะจำนวนสิทธิ์ขั้นต่ำสัมบูรณ์ที่จำเป็นต่อการรองรับกรณีการใช้งานของแอปในขณะนี้ สำหรับสิทธิ์บางอย่าง เช่น ตำแหน่ง ให้ใช้ตำแหน่งคร่าวๆ แทนตำแหน่งอย่างละเอียด หากเป็นไปได้
SC-P2

แอปขอสิทธิ์ในการเข้าถึงข้อมูลที่ละเอียดอ่อน (เช่น SMS, บันทึกการโทร หรือ สถานที่ตั้ง) หรือบริการที่มีค่าใช้จ่าย (เช่น โปรแกรมโทรศัพท์หรือ SMS) เฉพาะในกรณีที่เกี่ยวข้องโดยตรงกับบริการหลัก ใช้งานแอปต่างๆ ได้ คุณควรเปิดเผยผลกระทบที่เกี่ยวข้องกับสิทธิ์เหล่านี้ให้ผู้ใช้ทราบอย่างชัดเจน

อาจมี ทางเลือกอื่น เพื่อดำเนินการตาม Use Case ของแอปโดยไม่ต้องพึ่งการเข้าถึงข้อมูลที่ละเอียดอ่อน ตัวอย่างเช่น แทนที่จะแสดง การขอสิทธิ์ที่เกี่ยวข้องกับรายชื่อติดต่อของผู้ใช้ การขอสิทธิ์เข้าถึงอาจเหมาะสมกว่า โดยการใช้เจตนาโดยนัย

SC-P3 CR-0 แอปจะขอสิทธิ์รันไทม์ในบริบทเมื่อมีการขอฟังก์ชันการทำงาน แทนที่จะขอสิทธิ์ล่วงหน้าในระหว่างการเริ่มต้นแอป
SC-P4 CR-0

แอปอธิบายอย่างชัดเจนถึงเหตุผลที่ต้องใช้สิทธิ์บางอย่างหรือทำตามขั้นตอนที่แนะนำเพื่อ อธิบายเหตุผลที่ต้องการสิทธิ์

SC-P5 CR-0 แอปควรลดระดับอย่างมีชั้นเชิงเมื่อ ผู้ใช้ปฏิเสธหรือเพิกถอนสิทธิ์ แอปไม่ควรป้องกันไม่ให้ผู้ใช้เข้าถึงแอปโดยสิ้นเชิง
ข้อมูลและ ไฟล์ SC-DF1 SC-1 ข้อมูลที่ละเอียดอ่อนทั้งหมดจะเก็บไว้ในที่จัดเก็บข้อมูลภายในของแอป
SC-DF2 SC-10 จะไม่มีการบันทึกข้อมูลส่วนบุคคลหรือข้อมูลที่ละเอียดอ่อนของผู้ใช้ในบันทึกของระบบหรือบันทึกเฉพาะแอป
SC-DF3 แอปไม่ได้ใช้รหัสฮาร์ดแวร์ที่รีเซ็ตไม่ได้ เช่น IMEI เพื่อวัตถุประสงค์ในการระบุตัวตน
ข้อมูลระบุตัวตน รหัส SC1 CR-0 แอปมีคำแนะนำในการป้อนข้อมูลเข้าสู่ระบบของบัญชีและข้อมูลที่ละเอียดอ่อนอื่นๆ โดยอัตโนมัติ เช่น ข้อมูลบัตรเครดิต ที่อยู่จริง และหมายเลขโทรศัพท์
รหัส SC2 CR-0 ผสานรวมเครื่องมือจัดการข้อมูลเข้าสู่ระบบสำหรับ Android สำหรับ ประสบการณ์การลงชื่อเข้าใช้ที่ราบรื่นซึ่งรวมการสนับสนุนพาสคีย์ ข้อมูลประจำตัวแบบรวมศูนย์ และ รหัสผ่านปกติทั่วไป
รหัส SC3 CR-0 แอปรองรับการตรวจสอบสิทธิ์ด้วยข้อมูลไบโอเมตริกเพื่อปกป้องธุรกรรมทางการเงินหรือข้อมูลที่ละเอียดอ่อน เช่น เอกสารที่สำคัญของผู้ใช้
คอมโพเนนต์ของแอป SC-AC1 SC-5

แอปจะตั้งค่าแอตทริบิวต์ android:exported อย่างชัดเจนสำหรับกิจกรรม บริการ เครื่องรับสัญญาณประกาศ และโดยเฉพาะอย่างยิ่งผู้ให้บริการเนื้อหา

ระบบจะส่งออกเฉพาะคอมโพเนนต์แอปพลิเคชันที่แชร์ข้อมูลกับแอปอื่นๆ หรือคอมโพเนนต์ที่แอปอื่นๆ ควรเรียกใช้เท่านั้น

SC-AC2 CR-0
SC-4

ความตั้งใจและการออกอากาศทั้งหมดเป็นไปตามแนวทางปฏิบัติแนะนำ ดังนี้

  1. ใช้ Intent แบบเจาะจง หากแอปพลิเคชันปลายทางมีการกำหนดไว้อย่างชัดเจน
  2. ใช้ Intent เพื่อเลื่อนสิทธิ์ในแอปอื่นที่มีสิทธิ์อยู่แล้ว
  3. แชร์ข้อมูลอย่างปลอดภัยระหว่างแอป
  4. Intent ที่มีเพย์โหลดได้รับการยืนยันก่อนใช้งาน
  5. หากคุณจำเป็นต้องส่ง Intent ไปยังแอปอื่น เพื่อให้แอปที่เป็นผู้รับสามารถเรียกใช้และคาดว่าจะได้รับ Callback ในแอปการโทร อย่ารวม Intent ที่ฝังไว้ในแอปเพิ่มเติม ใช้ PendingIntent
  6. เมื่อตั้งค่า PendingIntent ให้ตั้งค่าแฟล็กที่เปลี่ยนแปลงไม่ได้อย่างชัดเจน (หากมี)
SC-AC3 SC-3 คอมโพเนนต์ทั้งหมดที่แชร์เนื้อหาระหว่างแอปจะใช้ android:protectionLevel="signature" สำหรับสิทธิ์ที่กำหนดเอง ซึ่งรวมถึงกิจกรรม บริการ เครื่องรับสัญญาณประกาศ และโดยเฉพาะอย่างยิ่งผู้ให้บริการเนื้อหา

แอปไม่ควรพึ่งพาการเข้าถึงรายการแพ็กเกจที่ติดตั้งไว้ การเข้าถึงถูกจำกัดตั้งแต่ Android 11 เป็นต้นไป

เครือข่าย SC-N1 SC-9 การจราจรของข้อมูลในเครือข่ายทั้งหมดจะส่งผ่าน SSL
SC-N2 SC-6 แอปพลิเคชันจะประกาศการกำหนดค่าความปลอดภัยของเครือข่าย
SC-N3 หากแอปพลิเคชันใช้บริการ Google Play ผู้ให้บริการการรักษาความปลอดภัยจะเริ่มต้นเมื่อแอปพลิเคชันเริ่มต้น
WebView SC-W1 SC-6 ห้ามใช้ setAllowUniversalAccessFromFileURLs() เพื่อเข้าถึงเนื้อหาในเครื่อง แต่ให้ใช้ WebViewAssetLoader แทน
SC-W2 SC-7 WebView ไม่ควรใช้ addJavaScriptInterface() กับเนื้อหาที่ไม่น่าเชื่อถือ

ใน Android 6.0 ขึ้นไป ให้ใช้แชแนลข้อความ HTML แทน

การลงมือปฏิบัติ SC-E1 แอปไม่ได้โหลดโค้ดแบบไดนามิกจากภายนอก APK ของแอป นักพัฒนาแอปควรใช้ Android App Bundle ซึ่งรวมถึงการนำส่งฟีเจอร์ Play และการนำส่งเนื้อหา Play

ตั้งแต่เดือนสิงหาคม 2021 เป็นต้นไป แอปใหม่ทั้งหมดใน Google จะต้องใช้ Android App Bundle Play Store

วิทยาการเข้ารหัสลับ SC-C แอปนี้ใช้อัลกอริทึมการเข้ารหัสที่มีประสิทธิภาพที่แพลตฟอร์มมีให้และโปรแกรมสร้างหมายเลขสุ่ม และแอปไม่ได้ติดตั้งใช้งานอัลกอริทึมที่กำหนดเองด้วย

Google Play

ตรวจสอบว่าแอปของคุณเผยแพร่ใน Google Play ได้

พื้นที่ รหัส การทดสอบ คำอธิบาย
นโยบาย GP-P1 GP ทั้งหมด แอปปฏิบัติตามข้อกำหนดของนโยบายเนื้อหาสำหรับนักพัฒนาซอฟต์แวร์ Google Play อย่างเคร่งครัดและไม่นำเสนอเนื้อหาที่ไม่เหมาะสม ไม่ใช้ทรัพย์สินทางปัญญาหรือแบรนด์ของผู้อื่น และอื่นๆ
GP-P2 GP-1 ระดับวุฒิภาวะของผู้ใช้แอปได้รับการตั้งค่าอย่างเหมาะสมตามหลักเกณฑ์การจัดประเภทเนื้อหา
หน้ารายละเอียดแอป GP-D1 GP-1
GP-2

กราฟิกเด่นของแอปเป็นไปตามหลักเกณฑ์ที่ระบุไว้ใน บทความสนับสนุน ตรวจสอบว่าเป็นไปตามนี้

  1. ข้อมูลแอปมีกราฟิกเด่นคุณภาพสูง
  2. กราฟิกเด่นไม่มีรูปภาพของอุปกรณ์ ภาพหน้าจอ หรือข้อความขนาดเล็กที่จะอ่านไม่ออกเมื่อลดขนาดลงและแสดงบนขนาดหน้าจอที่เล็กที่สุดที่แอปของคุณกำหนดเป้าหมาย
  3. กราฟิกเด่นไม่เหมือนกับโฆษณา
GP-D2 GP-1 ภาพหน้าจอและวิดีโอของแอปจะไม่แสดงหรืออ้างอิงถึงอุปกรณ์ที่ไม่ใช่ Android
GP-D3 GP-1 ภาพหน้าจอหรือวิดีโอของแอปไม่ได้แสดงเนื้อหาและประสบการณ์ของแอปในลักษณะที่ทำให้เข้าใจผิด
การสนับสนุนผู้ใช้ GP-X1 GP-1 ข้อบกพร่องทั่วไปที่ผู้ใช้รายงานในแท็บรีวิวของหน้า Google Play จะได้รับการแก้ไขหากทำให้เกิดซ้ำได้และเกิดขึ้นในอุปกรณ์ที่แตกต่างกันจำนวนมาก หากข้อบกพร่องเกิดขึ้นในอุปกรณ์เพียงไม่กี่เครื่อง คุณควรแก้ไขข้อบกพร่องดังกล่าวหากอุปกรณ์ดังกล่าวได้รับความนิยมหรืออุปกรณ์ใหม่เป็นพิเศษ

การตั้งค่าสภาพแวดล้อมการทดสอบ

เราขอแนะนำสิ่งต่อไปนี้สำหรับการตั้งค่าสภาพแวดล้อมการทดสอบสำหรับรายการตรวจสอบนี้

  • เน้นการทดสอบโปรแกรมจำลอง - Android Emulator เป็นวิธีที่ยอดเยี่ยมในการทดสอบแอปภายใต้เวอร์ชัน Android และความละเอียดหน้าจอต่างๆ คุณควรตั้งค่าอุปกรณ์จำลอง (AVD) เพื่อแสดงรูปแบบของอุปกรณ์และชุดฮาร์ดแวร์/ซอฟต์แวร์ที่พบบ่อยที่สุดสำหรับฐานผู้ใช้เป้าหมาย นอกจากการทดสอบโทรศัพท์แล้ว เราขอแนะนำให้คุณทดสอบอุปกรณ์รูปแบบอื่นๆ โดยใช้โปรแกรมจำลองต่อไปนี้เป็นอย่างน้อย
    • อุปกรณ์แบบพับได้ - หน้าจอขนาด 7.6 นิ้วพร้อมจอแสดงผลด้านนอก (แสดงอยู่ใต้โทรศัพท์ใน AVD Manager)
    • แท็บเล็ต - Pixel C ขนาด 9.94 นิ้ว (2,560 x 1,800 พิกเซล)
    • สำหรับการทดสอบการแจ้งเตือนของแอปบนอุปกรณ์เคลื่อนที่ ให้จับคู่อุปกรณ์เคลื่อนที่ / โปรแกรมจำลองกับโปรแกรมจำลอง Wear OS รอบที่ 1.84 ของ Wear OS
  • อุปกรณ์ฮาร์ดแวร์ - สภาพแวดล้อมการทดสอบของคุณควรมีอุปกรณ์ฮาร์ดแวร์จริงจำนวนน้อยที่แสดงถึงรูปแบบของอุปกรณ์ที่สำคัญ และชุดฮาร์ดแวร์/ซอฟต์แวร์ที่ผู้บริโภคสามารถใช้งานได้ในปัจจุบัน คุณไม่จำเป็นต้องทดสอบบนอุปกรณ์ทุกเครื่องที่มีอยู่ในตลาด แต่ควรมุ่งเน้นไปที่อุปกรณ์ตัวอย่างเพียงไม่กี่เครื่อง แม้จะใช้อุปกรณ์ 1 หรือ 2 เครื่องต่อรูปแบบของอุปกรณ์ก็ตาม
  • ห้องทดลองการทดสอบอุปกรณ์ - คุณยังใช้บริการของบุคคลที่สาม เช่น Firebase Test Lab เพื่อทดสอบแอปในอุปกรณ์ที่หลากหลายได้ด้วย
  • ทดสอบด้วย Android เวอร์ชันล่าสุด - นอกเหนือจากการทดสอบเวอร์ชัน Android ที่เป็นตัวแทนสำหรับฐานผู้ใช้เป้าหมายแล้ว คุณควรทดสอบกับ Android เวอร์ชันล่าสุดเสมอ (ปัจจุบันคือ Android 14) วิธีนี้ช่วยให้มั่นใจได้ว่าการเปลี่ยนแปลงลักษณะการทำงานล่าสุดจะไม่ส่งผลเสียต่อประสบการณ์ของผู้ใช้

ดูคำแนะนำที่ครอบคลุมยิ่งขึ้นเกี่ยวกับการทดสอบ ซึ่งรวมถึงการทดสอบหน่วย การทดสอบการผสานรวม และการทดสอบ UI โปรดดูพื้นฐานการทดสอบ Android

ขั้นตอนการทดสอบ

ขั้นตอนการทดสอบเหล่านี้จะช่วยให้คุณค้นพบปัญหาด้านคุณภาพประเภทต่างๆ ใน แอปของคุณ คุณสามารถรวมการทดสอบหรือผสานรวมกลุ่มการทดสอบเข้าด้วยกันใน แผนการทดสอบของคุณเอง ดูข้อมูลอ้างอิงที่เกี่ยวข้องในส่วนด้านบน ด้วยขั้นตอนการทดสอบเหล่านี้

ประเภท ทดสอบ คำอธิบาย
ชุดโปรแกรมหลัก CR-0

ไปยังทุกส่วนของแอป ไม่ว่าจะเป็นหน้าจอ กล่องโต้ตอบ การตั้งค่า และขั้นตอนการดำเนินการของผู้ใช้ทั้งหมด

  1. หากแอปพลิเคชันอนุญาตให้แก้ไขหรือสร้างเนื้อหา เล่นเกม หรือเล่นสื่อ โปรดทดสอบขั้นตอนเหล่านั้น
  2. ขณะทดสอบแอป ให้มีการรบกวนจากแอปอื่นๆ ด้วย เช่น การรับการแจ้งเตือนหรือการโทร และใช้การเปลี่ยนแปลงชั่วคราวกับแอตทริบิวต์ของอุปกรณ์ เช่น การเชื่อมต่อเครือข่าย ฟังก์ชันแบตเตอรี่ ความพร้อมใช้งานของ GPS และโหลดของระบบ
  3. ป้อนและทดสอบขั้นตอนการซื้อในแอปทั้งหมด
CR-1 จากหน้าจอแอปแต่ละหน้า กดปุ่มหน้าแรกของอุปกรณ์หรือปัดขึ้นในการนำทางด้วยท่าทางสัมผัส จากนั้นเปิดแอปอีกครั้งจากหน้าจอแอปทั้งหมด
CR-2 จากหน้าจอแอปแต่ละหน้า ให้สลับไปยังแอปอื่นที่ทำงานอยู่ แล้วกลับไปยังแอปที่กำลังทดสอบโดยใช้ตัวสลับแอปล่าสุด
CR-3 จากหน้าจอแอปแต่ละรายการ (และกล่องโต้ตอบ) ให้กดปุ่ม "กลับ" หรือใช้ท่าทางสัมผัสการปัดกลับ
CR-5 จากหน้าจอแอปแต่ละหน้า ให้หมุนอุปกรณ์ไปมาระหว่างแนวนอนและแนวตั้ง รวมถึงสถานะพับและกางออกอย่างน้อย 3 ครั้ง
CR-6 เปลี่ยนไปใช้แอปอื่นเพื่อส่งแอปทดสอบไปทำงานในเบื้องหลัง ไปที่การตั้งค่าและตรวจสอบว่าแอปทดสอบมีบริการทำงานอยู่ในเบื้องหลังหรือไม่ ใน Android 4.0 ขึ้นไป ให้ไปที่หน้าจอแอปและค้นหาแอปใน "กำลังทำงาน"
CR-7 กดปุ่มเปิด/ปิดเพื่อทำให้อุปกรณ์เข้าสู่โหมดสลีป จากนั้นกดปุ่มเปิด/ปิดอีกครั้งเพื่อปลุกหน้าจอ
CR-8 ตั้งค่าการล็อกหน้าจอในอุปกรณ์ กดปุ่มเปิด/ปิดเพื่อให้อุปกรณ์เข้าสู่โหมดสลีป (ซึ่งจะล็อกอุปกรณ์) จากนั้นกดปุ่มเปิด/ปิดอีกครั้งเพื่อปลุกหน้าจอและปลดล็อกอุปกรณ์
CR-9 เรียกใช้และสังเกตการแจ้งเตือนทุกประเภทที่แอปสามารถแสดงได้ในลิ้นชักการแจ้งเตือน ขยายการแจ้งเตือน (หากมี) (Android 4.1 และสูงกว่า) แล้วแตะการดำเนินการที่ใช้ได้ทั้งหมด
CR-10 ดูการสนับสนุนสำหรับ Use Case อื่นๆ ใน Doze และสแตนด์บายแอป
ติดตั้งในการ์ด SD SD-1 ทำซ้ำ Core Suite กับแอปที่ติดตั้งในการ์ด SD ของอุปกรณ์ (หากแอปรองรับวิธีการติดตั้งนี้)

หากต้องการย้ายแอปไปยังการ์ด SD คุณสามารถใช้การตั้งค่า > ข้อมูลแอป > ย้ายไปยังการ์ด SD

ประสิทธิภาพและความเสถียร SP-1 ตรวจสอบไฟล์ Manifest ของ Android และการกำหนดค่าบิลด์เพื่อให้แน่ใจว่าแอปพลิเคชันสร้างขึ้นโดยใช้ SDK ล่าสุดที่พร้อมใช้งาน (targetSdk และ compileSdk)
SP-2 ตรวจสอบไฟล์ build.gradle เพื่อหาทรัพยากร Dependency ที่ล้าสมัย
SP-3 ใช้เครื่องมือ Lint ของ Android Studio เพื่อตรวจหาการใช้อินเทอร์เฟซที่ไม่ใช่ SDK วิธีการทดสอบแบบอื่นๆ ก็มีเช่นกัน
การตรวจสอบประสิทธิภาพ PM 1 ทําซ้ำ Core Suite ที่เปิดใช้การทำโปรไฟล์ StrictMode

ใส่ใจเป็นพิเศษกับการเก็บขยะและผลกระทบต่อประสบการณ์ของผู้ใช้

แบตเตอรี่ BA-1 ทำซ้ำ Core Suite ในรอบ Doze และสแตนด์บายแอป

ให้ความสำคัญกับการปลุก ตัวจับเวลา การแจ้งเตือน การซิงค์ และอื่นๆ โปรดดูข้อกำหนดและหลักเกณฑ์ได้ที่การทดสอบด้วย Doze และสแตนด์บายแอป

ความปลอดภัย SC-1 ตรวจสอบข้อมูลทั้งหมดที่จัดเก็บไว้ในที่จัดเก็บข้อมูลภายนอก
SC-2 ตรวจสอบวิธีจัดการและประมวลผลข้อมูลที่โหลดจากที่จัดเก็บข้อมูลภายนอก
SC-3 ตรวจสอบผู้ให้บริการเนื้อหาทั้งหมดที่กำหนดไว้ในไฟล์ Manifest ของ Android ตรวจสอบว่าผู้ให้บริการแต่ละรายมีprotectionLevelที่เหมาะสม
SC-4 ตรวจสอบสิทธิ์ทั้งหมดที่แอปต้องการในไฟล์ Manifest, ขณะรันไทม์ และในหน้าจอการตั้งค่าแอป (การตั้งค่า > ข้อมูลแอป) ในอุปกรณ์
SC-5 ตรวจสอบคอมโพเนนต์แอปพลิเคชันทั้งหมดที่กำหนดไว้ในไฟล์ Manifest ของ Android เพื่อดูสถานะการส่งออกที่เหมาะสม ต้องตั้งค่าคุณสมบัติที่ส่งออกอย่างชัดเจนสำหรับคอมโพเนนต์ทั้งหมด
SC-6 ตรวจสอบการกำหนดค่าความปลอดภัยของเครือข่ายของแอป เพื่อให้แน่ใจว่าไม่มีการตรวจสอบ Lint ในการกำหนดค่าล้มเหลว
SC-7 สำหรับ WebView แต่ละรายการ ให้ไปที่หน้าที่ต้องใช้ JavaScript
SC-8 ใน WebView แต่ละรายการ ให้ลองไปที่เว็บไซต์และเนื้อหาที่แอปไม่ได้โหลดโดยตรง
SC-9 ประกาศการกำหนดค่าความปลอดภัยของเครือข่ายที่ปิดใช้การรับส่งข้อมูลข้อความธรรมดา จากนั้นทดสอบแอป
SC-10 เรียกใช้แอปพลิเคชันและใช้ฟังก์ชันหลักทั้งหมด พร้อมกับสังเกตบันทึกของอุปกรณ์ ไม่ควรบันทึกข้อมูลส่วนตัวของผู้ใช้
Google Play GP-1 ลงชื่อเข้าใช้ Google Play Developer Console เพื่อตรวจสอบโปรไฟล์นักพัฒนาซอฟต์แวร์ คำอธิบายแอป ภาพหน้าจอ กราฟิกเด่น การให้คะแนนเนื้อหา และความคิดเห็นของผู้ใช้
GP-2 ดาวน์โหลดกราฟิกเด่นและภาพหน้าจอ แล้วปรับขนาดลงเพื่อให้ตรงกับขนาดการแสดงผลในอุปกรณ์และรูปแบบของอุปกรณ์ที่คุณกำหนดเป้าหมาย
GP-3 ตรวจสอบเนื้อหากราฟิก สื่อ ข้อความ ไลบรารีโค้ด และเนื้อหาอื่นๆ ทั้งหมดที่รวมอยู่ในแอปหรือการดาวน์โหลดไฟล์สำหรับขยาย

การทดสอบด้วย StrictMode

สำหรับการทดสอบประสิทธิภาพ เราขอแนะนำให้เปิดใช้ StrictMode ใน เพื่อใช้ติดตามการดำเนินการที่อาจส่งผลต่อประสิทธิภาพ การเข้าถึงเครือข่าย และไฟล์ อ่าน/เขียน และอื่นๆ มองหาการดำเนินการที่อาจเป็นปัญหาทั้งในเทรดหลักและใน ชุดข้อความอื่นๆ

คุณตั้งค่านโยบายการตรวจสอบแบบต่อชุดข้อความได้โดยใช้ StrictMode.ThreadPolicy.Builder และเปิดใช้การตรวจสอบที่รองรับทั้งหมดใน ThreadPolicyกำลังใช้ detectAll()

อย่าลืมเปิดใช้การแจ้งเตือนด้วยภาพเกี่ยวกับการละเมิดนโยบายใน ThreadPolicyกำลังใช้ penaltyFlashScreen()