کیفیت برنامه اصلی

آخرین به‌روزرسانی: ۱۷ مه ۲۰۲۱

یک راه مفید برای ارزیابی عملکرد اپلیکیشن ، بررسی گردش‌های کاری در اپلیکیشن و ارزیابی روان بودن و ایمنی تجربه کاربری اپلیکیشن است.

این چک لیست مجموعه‌ای از معیارهای اصلی کیفیت و تست‌های مرتبط را تعریف می‌کند تا به شما در ارزیابی کیفیت برنامه‌تان کمک کند. برخی از این معیارها ممکن است به راحتی نادیده گرفته شوند و این تست‌ها به شما کمک می‌کنند تا آنها را در برنامه‌های تست خود لحاظ کنید.

این چک لیست حداقل کیفیتی را که همه برنامه‌ها باید داشته باشند، برجسته می‌کند. آزمایش شما احتمالاً فراتر از آنچه در اینجا توضیح داده شده است، خواهد بود.

هر مورد در چک لیست کیفیت یک شناسه منحصر به فرد دارد که ممکن است هنگام ارتباط با تیم خود از آن استفاده کنید. همچنین می‌توانید نسخه قبلی این دستورالعمل‌ها را مشاهده کنید .

تجربه بصری

برنامه شما باید در صورت لزوم، الگوهای طراحی بصری و تعاملی استاندارد اندروید را برای یک تجربه کاربری منسجم و شهودی ارائه دهد.

مساحت شناسه آزمایش‌ها توضیحات
ناوبری VX-N1 سی آر-۳ این برنامه از پیمایش استاندارد با دکمه برگشت پشتیبانی می‌کند و از هیچ پیام سفارشی «دکمه برگشت» روی صفحه استفاده نمی‌کند.
VX-N2 سی آر-۳ این برنامه از ناوبری حرکتی برای برگشت/رفتن به صفحه اصلی پشتیبانی می‌کند.
VX-N3 سی آر-۱
سی آر-۳
سی آر-۵

برنامه به درستی وضعیت کاربر یا برنامه را حفظ و بازیابی می‌کند.

این برنامه هنگام خروج از پیش‌زمینه، وضعیت کاربر یا برنامه را حفظ می‌کند و از دست رفتن تصادفی داده‌ها به دلیل بازگشت به عقب و سایر تغییرات وضعیت جلوگیری می‌کند.

هنگام بازگشت به پیش‌زمینه، برنامه باید وضعیت حفظ‌شده و هرگونه تراکنش دارای وضعیت مهم که در انتظار بود را بازیابی کند. مثال‌ها عبارتند از: تغییرات در فیلدهای قابل ویرایش، پیشرفت بازی، منوها، ویدیوها و سایر بخش‌های برنامه یا بازی.

  1. وقتی برنامه از طریق تعویض‌کننده برنامه‌های اخیر (Recents app switcher) از سر گرفته می‌شود، برنامه کاربر را دقیقاً به آخرین حالتی که از آن استفاده شده است، برمی‌گرداند.
  2. وقتی برنامه پس از بیدار شدن دستگاه از حالت خواب (قفل شده) از سر گرفته می‌شود، برنامه کاربر را دقیقاً به آخرین حالتی که از آن استفاده شده بود، برمی‌گرداند.
  3. وقتی برنامه از صفحه اصلی یا همه برنامه‌ها دوباره اجرا می‌شود، بسته به اینکه از آخرین باری که استفاده شده چقدر گذشته است، باید یکی از کارهای زیر را انجام دهد:
    • اگر آخرین بار برنامه مدت کوتاهی پیش (چند دقیقه پیش) استفاده شده است، وضعیت برنامه را تا حد امکان به حالت قبلی خود بازگردانید.
    • اگر زمان بیشتری از آخرین استفاده از برنامه گذشته است، سعی کنید برنامه را تا حد امکان به حالت قبلی خود بازگردانید؛ یا آن را از صفحه اصلی یا حالت پیش‌فرض دیگری اجرا کنید.
اعلان‌ها VX-S1 سی آر-۹

اعلان‌ها از دستورالعمل‌های طراحی پیروی می‌کنند. به طور خاص:

  1. اعلان‌ها برای تبلیغات متقابل یا تبلیغ محصول دیگری استفاده نمی‌شوند، زیرا این کار اکیداً توسط فروشگاه Play ممنوع است.
  2. کانال‌های اعلان بر اساس بهترین شیوه‌ها تعریف می‌شوند، نه اینکه همه اعلان‌ها را از یک کانال ارائه دهند.
  3. انتخاب اولویت صحیح اعلان‌ها
  4. در صورت امکان، چندین اعلان در یک گروه اعلان واحد جمع می‌شوند.
  5. در صورت لزوم، برای اعلان‌ها مهلت زمانی تعیین کنید.
  6. اعلان‌ها فقط در صورتی دائمی هستند که مربوط به رویدادهای جاری مانند پخش موسیقی یا تماس تلفنی باشند. برای اطلاعات بیشتر، به بخش «عملکردها» مراجعه کنید.
VX-S2 سی آر-۹

برای برنامه‌های پیام‌رسان، شبکه‌های اجتماعی و مکالمات:

  1. از اعلان‌های MessagingStyle برای مکالمات استفاده کنید.
  2. از اقدام پاسخ مستقیم پشتیبانی کنید.
  3. از میانبرهای مکالمه پشتیبانی کنید و بهترین شیوه‌ها را برای کسب بهترین رتبه‌بندی اشتراک‌گذاری مستقیم پیاده‌سازی کنید.
  4. حباب‌های پشتیبانی.
رابط کاربری و گرافیک VX-U1 سی آر-۵

این برنامه از جهت‌گیری‌های افقی و عمودی و حالت‌های دستگاه تا شده و باز شده پشتیبانی می‌کند.

جهت‌ها و حالت‌های تاشدگی اساساً ویژگی‌ها و عملکردهای یکسانی را نشان می‌دهند و برابری عملکردی را حفظ می‌کنند.

VX-U2 سی آر-۵

برنامه پنجره برنامه را در هر دو جهت پر می‌کند و به دلیل تغییرات پیکربندی، از جمله تاشو و باز شدن دستگاه، کادربندی نشده است.

استفاده از حروف بزرگ کوچک برای جبران تغییرات کوچک در هندسه صفحه نمایش قابل قبول است.

VX-U3 سی آر-۵ این برنامه به درستی انتقال سریع بین جهت‌های نمایشگر و باز و بسته شدن دستگاه را بدون مشکل رندر نمایشگر و بدون از دست دادن حالت، مدیریت می‌کند.
کیفیت بصری VX-V1 CR-همه

این برنامه گرافیک، متن، تصاویر و سایر عناصر رابط کاربری را بدون اعوجاج، تاری یا پیکسل‌بندی قابل توجه نمایش می‌دهد.

  1. برنامه باید در صورت امکان از drawable های برداری (vector drawables) استفاده کند.
  2. این برنامه گرافیک با کیفیت بالا را برای همه اندازه‌های صفحه نمایش و فرم فکتورهای مورد نظر ارائه می‌دهد.
  3. هیچ گونه لبه‌دار شدن (Aliasing) در لبه‌های منوها، دکمه‌ها و سایر عناصر رابط کاربری قابل مشاهده نیست.
VX-V2 CR-همه

این برنامه متن و بلوک‌های متنی را به شیوه‌ای قابل قبول برای هر یک از زبان‌های پشتیبانی‌شده توسط برنامه نمایش می‌دهد.

  1. ترکیب‌بندی در تمام فرم‌فکتورهای پشتیبانی‌شده قابل قبول است.
  2. هیچ حرف یا کلمه بریده شده ای قابل مشاهده نیست.
  3. هیچ نوع چیدمان نامناسب کلمات درون دکمه‌ها یا آیکون‌ها دیده نمی‌شود.
  4. فاصله کافی بین متن و عناصر اطراف وجود دارد.
VX-V3 CR-همه محتوای برنامه و تمام محتوای وب که توسط برنامه به آنها ارجاع داده می‌شود، از تم تیره پشتیبانی می‌کنند.
دسترسی‌پذیری VX-A1 CR-همه

اهداف لمسی باید حداقل اندازه ۴۸dp داشته باشند. اطلاعات بیشتر .

VX-A2 CR-همه

متن و محتوای پیش‌زمینه برنامه باید نسبت کنتراست رنگی کافی با پس‌زمینه خود داشته باشند:

  • ۳.۰:۱ برای متن/گرافیک‌های بزرگ
  • ۴.۵:۱ برای متن کوچک (متن کوچکتر از ۱۸pt، یا اگر متن پررنگ و کوچکتر از ۱۴pt باشد)

درباره رنگ و کنتراست بیشتر بدانید.

VX-A3 CR-همه هر عنصر رابط کاربری ، به جز TextView ، را با استفاده از contentDescription توصیف کنید.

عملکرد

برنامه شما باید رفتار عملکردی مورد انتظار را پیاده‌سازی کند.

مساحت شناسه آزمایش‌ها توضیحات
صوتی FN-A1 سی آر-۱
سی آر-۸
پخش صدا زمانی از سر گرفته می‌شود که برنامه به پیش‌زمینه بازگردد، یا به کاربر اطلاع دهد که پخش در حالت مکث قرار دارد.
FN-A2 سی آر-۱
سی آر-۲
سی آر-۸
اگر پخش صدا یک ویژگی اصلی است، برنامه باید از پخش در پس‌زمینه پشتیبانی کند.
FN-A3 سی آر-۰

وقتی کاربر پخش صدا را آغاز می‌کند، برنامه باید یکی از موارد زیر را ظرف یک ثانیه انجام دهد:

  1. پخش صدا را شروع کنید.
  2. یک نشانگر بصری ارائه دهید که نشان دهد داده‌های صوتی در حال آماده‌سازی هستند.
FN-A4 سی آر-۰ برنامه باید هنگام شروع پخش صدا، درخواست فوکوس صوتی کند و هنگام توقف پخش، فوکوس صوتی را رها کند.
FN-A5 سی آر-۰ این برنامه باید درخواست‌های سایر برنامه‌ها برای فوکوس صوتی را مدیریت کند . برای مثال، یک برنامه ممکن است هنگام پخش گفتار توسط برنامه دیگر، صدای پخش را کاهش دهد.
رسانه FN-M1 سی آر-۰
سی آر-۶
سی آر-۸
اگر برنامه در پس‌زمینه صدا پخش می‌کند، باید یک اعلان (Notification) با استایل MediaStyle ایجاد کند.
FN-M2 سی آر-۰ اگر برنامه ویدیو پخش می‌کند، باید از پخش تصویر در تصویر پشتیبانی کند.
FN-M3 سی آر-۰ اگر برنامه ویدیو را رمزگذاری می‌کند، باید این کار را با استفاده از استاندارد فشرده‌سازی ویدیوی HEVC انجام دهد.
اشتراک‌گذاری FN-S1 سی آر-۰ این برنامه باید هنگام اشتراک‌گذاری محتوا از برگه اشتراک‌گذاری اندروید استفاده کند. این برگه می‌تواند اهدافی را پیشنهاد دهد که برای راه‌حل‌های سفارشی در دسترس نیستند.
خدمات پس زمینه FN-B1 سی آر-۶ این برنامه از اجرای سرویس‌های غیرضروری و طولانی در پس‌زمینه جلوگیری می‌کند. برای اطمینان از عملکرد روان دستگاه کاربر، سیستم محدودیت‌های مختلفی را برای سرویس‌های پس‌زمینه اعمال می‌کند. موارد زیر، کاربردهای خوبی برای سرویس‌های پس‌زمینه محسوب نمی‌شوند:
  • حفظ اتصال شبکه برای اعلان‌ها
  • حفظ اتصال بلوتوث
  • روشن نگه داشتن GPS

یاد بگیرید که چگونه راه حل مناسب برای کار خود را انتخاب کنید .

عملکرد و پایداری

برنامه شما باید عملکرد، پایداری، سازگاری و پاسخگویی مورد انتظار کاربران را ارائه دهد.

مساحت شناسه آزمایش‌ها توضیحات
پایداری PS-S1 CR-همه
SD-1
این برنامه باعث خرابی یا مسدود شدن رابط کاربری نمی‌شود که باعث خطاهای ANR (Android Not Responding) شود. از گزارش پیش از راه‌اندازی Google Play برای شناسایی مشکلات احتمالی پایداری استفاده کنید. پس از استقرار، به صفحه Android Vitals در کنسول توسعه‌دهندگان Google Play توجه کنید.
عملکرد PS-P1 CR-همه
SD-1
اگر بارگذاری برنامه بیش از دو ثانیه طول بکشد، برنامه به سرعت بارگیری می‌شود یا بازخوردی روی صفحه به کاربر ارائه می‌دهد (یک نشانگر پیشرفت یا نشانه مشابه).
PS-P2 CR-همه
SD-1
برنامه‌ها باید هر ۱۶ میلی‌ثانیه فریم‌ها را رندر کنند تا به ۶۰ فریم در ثانیه برسند. توسعه‌دهندگان می‌توانند از گزینه رندر Profile HWUI در آزمایش استفاده کنند. در صورت وجود مشکل، ابزارهایی برای کمک به تشخیص رندر کند در دسترس هستند.
PS-P3 پی ام-۱ با فعال بودن StrictMode (به بخش تست StrictMode در زیر مراجعه کنید)، هیچ چشمک قرمزی (هشدار عملکرد از StrictMode) هنگام آزمایش برنامه قابل مشاهده نیست. هرگونه چشمک قرمزی نشان‌دهنده‌ی رفتارهای نامناسب در رابطه با ذخیره‌سازی، دسترسی به شبکه یا نشت حافظه است.
SDK PS-T1 سی آر-۰ این برنامه روی آخرین نسخه عمومی پلتفرم اندروید اجرا می‌شود، بدون اینکه از کار بیفتد یا تأثیر شدیدی بر عملکردهای اصلی داشته باشد.
PS-T2 اس پی-۱ این برنامه با تنظیم مقدار targetSdk آخرین SDK اندروید مورد نیاز برای هماهنگی با الزامات گوگل پلی را هدف قرار می‌دهد .
PS-T3 اس پی-۱ این برنامه با آخرین نسخه Android SDK و با تنظیم مقدار compileSdk ساخته شده است.
PS-T4 SP-2
SP-3
هرگونه SDK گوگل یا شخص ثالث مورد استفاده، به‌روز هستند . هرگونه بهبود در این SDKها، مانند پایداری، سازگاری یا امنیت، باید به موقع در دسترس کاربران قرار گیرد.

برای SDK های گوگل، در صورت موجود بودن، استفاده از SDK های ارائه شده توسط خدمات گوگل پلی را در نظر بگیرید. این SDK ها با نسخه های قبلی سازگار هستند، به صورت خودکار بروزرسانی می شوند، اندازه بسته برنامه شما را کاهش می دهند و از منابع دستگاه به طور کارآمد استفاده می کنند.

توسعه‌دهنده مسئول کل کدبیس برنامه، شامل هرگونه SDK شخص ثالث مورد استفاده، است.

PS-T5 SP-3 این برنامه از رابط‌های غیر SDK استفاده نمی‌کند.
PS-T6 SP-2 هیچ کتابخانه اشکال‌زدایی در برنامه اصلی گنجانده نشده است. این می‌تواند باعث مشکلات عملکردی و همچنین امنیتی شود.
باتری PS-B1 بی ای-۱ این برنامه به درستی از ویژگی‌های مدیریت انرژی که در اندروید ۶.۰ معرفی شده‌اند (Doze و App Standby) پشتیبانی می‌کند. در مواردی که عملکرد اصلی توسط مدیریت انرژی مختل شود، فقط برنامه‌های واجد شرایط می‌توانند درخواست معافیت کنند. برای سایر موارد استفاده در Doze و App Standby به پشتیبانی مراجعه کنید.

در طول توسعه، توسعه‌دهندگان می‌توانند با استفاده از این دستورات ADB، رفتار برنامه در حالت آماده به کار و حالت خواب (doze) را آزمایش کنند.

از نظر مصرف باتری، توسعه‌دهندگان می‌توانند از ابزار پروفایل مصرف باتری اندروید استودیو یا ابزار Battery Historian ، همراه با کار برنامه‌ریزی‌شده در پس‌زمینه، برای تشخیص مصرف غیرمنتظره باتری استفاده کنند.

حریم خصوصی و امنیت

برنامه شما باید با سطح دسترسی مناسب، داده‌های کاربر و اطلاعات شخصی را به طور ایمن مدیریت کند.

علاوه بر این چک لیست، برنامه‌های منتشر شده در فروشگاه گوگل پلی نیز باید از سیاست‌های داده کاربر برای محافظت از حریم خصوصی کاربران پیروی کنند.

مساحت شناسه آزمایش‌ها توضیحات
مجوزها SC-P1 SC-4 این برنامه فقط حداقل تعداد مجوزهایی را که برای پشتیبانی از مورد استفاده فعلی خود نیاز دارد، درخواست می‌کند. برای برخی از مجوزها مانند موقعیت مکانی، در صورت امکان از موقعیت مکانی درشت به جای موقعیت مکانی ریز استفاده کنید.
SC-P2

برنامه فقط زمانی درخواست دسترسی به داده‌های حساس (مانند پیامک، گزارش تماس یا موقعیت مکانی ) یا خدماتی که هزینه دارند (مانند شماره‌گیر یا پیامک) را دارد که مستقیماً به موارد استفاده اصلی برنامه مربوط باشند. پیامدهای مربوط به این مجوزها باید به طور برجسته برای کاربر افشا شود.

بسته به نحوه‌ی استفاده از مجوزها، ممکن است روش جایگزینی برای انجام موارد استفاده‌ی برنامه‌ی شما بدون نیاز به دسترسی به اطلاعات حساس وجود داشته باشد. برای مثال، به جای درخواست مجوزهای مربوط به مخاطبین کاربر، ممکن است درخواست دسترسی با استفاده از یک intent ضمنی مناسب‌تر باشد.

SC-P3 سی آر-۰ برنامه مجوزهای زمان اجرا را در متن درخواست می‌کند، زمانی که عملکرد درخواست می‌شود، نه در ابتدای راه‌اندازی برنامه.
SC-P4 سی آر-۰

برنامه به وضوح بیان می‌کند که چرا به مجوزهای خاصی نیاز دارد یا از روند پیشنهادی برای توضیح دلیل نیاز به مجوز پیروی می‌کند.

SC-P5 سی آر-۰ وقتی کاربران مجوزی را رد یا لغو می‌کنند، برنامه باید به طور مناسب تنزل یابد . برنامه نباید به طور کلی مانع دسترسی کاربر به برنامه شود.
داده‌ها و فایل‌ها SC-DF1 SC-1 تمام داده‌های حساس در حافظه داخلی برنامه ذخیره می‌شوند.
SC-DF2 SC-10 هیچ داده شخصی یا حساسی از کاربر در لاگ سیستم یا لاگ مخصوص برنامه ثبت نمی‌شود.
SC-DF3 این برنامه از هیچ شناسه سخت‌افزاری غیرقابل تنظیم مجدد ، مانند IMEI، برای اهداف شناسایی استفاده نمی‌کند.
هویت SC-ID1 سی آر-۰ این برنامه نکاتی را برای تکمیل خودکار اطلاعات حساب و سایر اطلاعات حساس مانند اطلاعات کارت اعتباری، آدرس فیزیکی و شماره تلفن ارائه می‌دهد.
SC-ID2 سی آر-۰ مدیریت اعتبارنامه برای اندروید را برای یک تجربه ورود به سیستم یکپارچه ادغام کنید که پشتیبانی از کلیدهای عبور، هویت یکپارچه و رمزهای عبور سنتی را یکپارچه می‌کند.
SC-ID3 سی آر-۰ این برنامه از احراز هویت بیومتریک برای محافظت از تراکنش‌های مالی یا اطلاعات حساس، مانند اسناد مهم کاربر، پشتیبانی می‌کند.
اجزای برنامه SC-AC1 SC-5

این برنامه، ویژگی android:exported به صراحت برای همه فعالیت‌ها ، سرویس‌ها ، گیرنده‌های پخش و به ویژه ارائه دهندگان محتوا تنظیم می‌کند.

فقط اجزای برنامه‌ای که داده‌ها را با برنامه‌های دیگر به اشتراک می‌گذارند ، یا اجزایی که باید توسط برنامه‌های دیگر فراخوانی شوند ، صادر می‌شوند.

SC-AC2 سی آر-۰
SC-4

همه اهداف و پخش‌ها از بهترین شیوه‌ها پیروی می‌کنند:

  1. اگر برنامه‌ی مقصد به خوبی تعریف شده باشد، از intent های صریح استفاده کنید .
  2. از Intents برای تعویق مجوزها به برنامه‌ی دیگری که از قبل آن مجوز را دارد، استفاده کنید.
  3. داده‌ها را به طور ایمن در بین برنامه‌ها به اشتراک بگذارید .
  4. اینتنت‌هایی که حاوی بار مفید (payload) هستند ، قبل از استفاده تأیید می‌شوند.
  5. اگر نیاز دارید یک Intent را به برنامه دیگری ارسال کنید، به طوری که برنامه گیرنده بتواند آن را فراخوانی کرده و انتظار یک فراخوانی برگشتی در برنامه فراخوانی کننده را داشته باشد، Intent تو در تو را در extras قرار ندهید. از PendingIntent استفاده کنید.
  6. هنگام تنظیم PendingIntents خود، در صورت لزوم، به صراحت پرچم تغییرناپذیر (immutable flag) را تنظیم کنید.
SC-AC3 SC-3 تمام کامپوننت‌هایی که محتوا را بین برنامه‌های شما به اشتراک می‌گذارند، android:protectionLevel="signature" برای مجوزهای سفارشی استفاده می‌کنند. این شامل فعالیت‌ها ، سرویس‌ها ، گیرنده‌های پخش و به ویژه ارائه دهندگان محتوا می‌شود.

برنامه‌ها نباید به دسترسی به لیستی از بسته‌های نصب‌شده متکی باشند. این دسترسی از اندروید ۱۱ محدود شده است.

شبکه‌سازی SC-N1 SC-9 تمام ترافیک شبکه از طریق SSL ارسال می‌شود.
SC-N2 SC-6 این برنامه پیکربندی امنیت شبکه را اعلام می‌کند.
SC-N3 اگر برنامه از سرویس‌های گوگل پلی استفاده کند، ارائه‌دهنده امنیت در هنگام راه‌اندازی برنامه مقداردهی اولیه می‌شود .
وب ویوها SC-W1 SC-6 برای دسترسی به محتوای محلی از تابع setAllowUniversalAccessFromFileURLs() استفاده نکنید. در عوض، از WebViewAssetLoader استفاده کنید.
SC-W2 SC-7 WebViewها نباید از addJavaScriptInterface() با محتوای غیرقابل اعتماد استفاده کنند .

در اندروید ۶.۰ و بالاتر، به جای آن از کانال‌های پیام HTML استفاده کنید.

اعدام SC-E1 این برنامه به صورت پویا کدی را از خارج از APK برنامه بارگذاری نمی‌کند. توسعه‌دهندگان باید از Android App Bundles استفاده کنند که شامل Play Feature Delivery و Play Asset Delivery می‌شود.

از آگوست ۲۰۲۱، استفاده از بسته‌های نرم‌افزاری اندروید برای همه برنامه‌های جدید در فروشگاه گوگل پلی الزامی است.

رمزنگاری SC-C1 این برنامه از الگوریتم‌های رمزنگاری قوی و ارائه شده توسط پلتفرم و یک مولد اعداد تصادفی استفاده می‌کند . همچنین، این برنامه الگوریتم‌های سفارشی را پیاده‌سازی نمی‌کند.

گوگل پلی

مطمئن شوید که برنامه‌های شما قابلیت انتشار در گوگل پلی را دارند.

مساحت شناسه آزمایش‌ها توضیحات
سیاست‌ها GP-P1 همه پزشکان عمومی این برنامه کاملاً به شرایط خط‌مشی محتوای توسعه‌دهندگان گوگل پلی پایبند است و محتوای نامناسب ارائه نمی‌دهد، از مالکیت معنوی یا برند دیگران استفاده نمی‌کند و غیره.
GP-P2 جی پی-۱ سطح بلوغ برنامه به طور مناسب و بر اساس دستورالعمل‌های رتبه‌بندی محتوا تنظیم شده است.
صفحه جزئیات برنامه جی پی-دی۱ جی پی-۱
جی پی-۲

نمودار ویژگی‌های برنامه از دستورالعمل‌های ذکر شده در این مقاله پشتیبانی پیروی می‌کند. مطمئن شوید که:

  1. فهرست برنامه‌ها شامل یک گرافیک با کیفیت بالا از ویژگی‌ها است.
  2. گرافیک ویژگی شامل تصاویر دستگاه، اسکرین‌شات‌ها یا متن‌های کوچکی که هنگام کوچک شدن و نمایش در کوچکترین اندازه صفحه نمایش مورد نظر برنامه شما، ناخوانا می‌شوند، نمی‌شود.
  3. گرافیک این ویژگی شباهتی به یک تبلیغ ندارد.
جی پی-دی۲ جی پی-۱ تصاویر و ویدیوهای برنامه، دستگاه‌های غیراندرویدی را نشان نمی‌دهند یا به آنها اشاره نمی‌کنند.
جی پی-دی۳ جی پی-۱ اسکرین‌شات‌ها یا ویدیوهای برنامه، محتوا و تجربه برنامه شما را به شیوه‌ای گمراه‌کننده نشان نمی‌دهند.
پشتیبانی کاربر GP-X1 جی پی-۱ اشکالات رایج گزارش‌شده توسط کاربران در برگه «بررسی‌ها» در صفحه Google Play در صورتی مورد بررسی قرار می‌گیرند که قابل تکرار باشند و در دستگاه‌های مختلف زیادی رخ دهند. اگر اشکالی فقط در چند دستگاه رخ می‌دهد، اگر آن دستگاه‌ها به‌طور خاص محبوب یا جدید باشند، همچنان باید آن را برطرف کنید.

راه‌اندازی یک محیط آزمایشی

برای ایجاد یک محیط آزمایشی برای این چک لیست، موارد زیر را توصیه می‌کنیم:

  • تمرکز بر تست شبیه‌ساز - شبیه‌ساز اندروید روشی عالی برای تست برنامه شما تحت نسخه‌های مختلف اندروید و وضوح صفحه نمایش است. شما باید دستگاه‌های شبیه‌سازی شده (AVD) را طوری تنظیم کنید که رایج‌ترین فرم فاکتورها و ترکیب‌های سخت‌افزار/نرم‌افزار را برای پایگاه کاربر هدف شما نشان دهند. علاوه بر آزمایش برای تلفن‌ها، توصیه می‌کنیم حداقل با استفاده از شبیه‌سازهای زیر، سایر فرم فاکتورها را نیز آزمایش کنید:
    • گوشی‌های تاشو - 7.6 اینچی تاشو با نمایشگر بیرونی (این مورد در بخش تلفن‌ها در AVD Manager فهرست شده است).
    • تبلت - پیکسل سی ۹.۹۴ اینچ (۲۵۶۰ پیکسل در ۱۸۰۰ پیکسل).
    • برای آزمایش اعلان‌های اپلیکیشن موبایل، یک دستگاه/شبیه‌ساز موبایل را با شبیه‌ساز Wear OS جفت کنید - Wear OS Round 1.84".
  • دستگاه‌های سخت‌افزاری - محیط آزمایش شما باید شامل تعداد کمی از دستگاه‌های سخت‌افزاری واقعی باشد که نمایانگر فاکتورهای شکل کلیدی و ترکیب‌های سخت‌افزار/نرم‌افزار موجود در حال حاضر برای مصرف‌کنندگان هستند. لازم نیست روی هر دستگاهی که در بازار موجود است آزمایش کنید - بلکه باید روی تعداد کمی از دستگاه‌های نماینده تمرکز کنید، حتی با استفاده از یک یا دو دستگاه در هر فاکتور شکل.
  • آزمایشگاه‌های تست دستگاه - شما همچنین می‌توانید از سرویس‌های شخص ثالث مانند Firebase Test Lab برای آزمایش برنامه خود در طیف وسیع‌تری از دستگاه‌ها استفاده کنید.
  • با آخرین نسخه اندروید تست کنید - علاوه بر تست نسخه‌های نماینده اندروید برای پایگاه کاربری هدف خود، همیشه باید با آخرین نسخه اندروید (در حال حاضر اندروید ۱۴) تست کنید. این تضمین می‌کند که آخرین تغییرات رفتاری، تأثیر منفی بر تجربه کاربری شما نداشته باشد.

برای راهنمایی جامع‌تر در مورد تست، از جمله تست واحد، تست ادغام و تست رابط کاربری، اصول تست اندروید را بررسی کنید.

مراحل آزمایش

این رویه‌های تست به شما کمک می‌کنند انواع مختلف مشکلات کیفی را در برنامه خود کشف کنید. می‌توانید تست‌ها را ترکیب کنید یا گروه‌هایی از تست‌ها را در طرح‌های تست خود ادغام کنید. برای منابعی که معیارها را با این رویه‌های تست مرتبط می‌کنند، به بخش‌های بالا مراجعه کنید.

نوع تست توضیحات
سوئیت اصلی سی آر-۰

به تمام قسمت‌های برنامه بروید - تمام صفحه‌ها، پنجره‌های گفتگو، تنظیمات و تمام جریان‌های کاربری.

  1. اگر برنامه امکان ویرایش یا ایجاد محتوا، بازی یا پخش رسانه را فراهم می‌کند، حتماً آن جریان‌ها را آزمایش کنید.
  2. هنگام آزمایش برنامه، وقفه‌هایی از برنامه‌های دیگر، مانند دریافت اعلان یا تماس تلفنی، ایجاد کنید؛ و تغییرات گذرا را در ویژگی‌های دستگاه، مانند اتصال به شبکه، عملکرد باتری، در دسترس بودن GPS و بار سیستم اعمال کنید.
  3. تمام جریان‌های خرید درون‌برنامه‌ای را وارد و آزمایش کنید
سی آر-۱ از صفحه هر برنامه، کلید Home دستگاه را فشار دهید یا در پیمایش اشاره‌ای، انگشت خود را به بالا بکشید، سپس برنامه را از صفحه «همه برنامه‌ها» دوباره اجرا کنید.
سی آر-۲ از صفحه هر برنامه، به برنامه در حال اجرا دیگری بروید و سپس با استفاده از کلید تعویض برنامه‌های اخیر، به برنامه تحت آزمایش برگردید.
سی آر-۳ از هر صفحه برنامه (و پنجره‌های محاوره‌ای)، دکمه برگشت را فشار دهید یا از حرکت کشیدن به عقب استفاده کنید.
سی آر-۵ از هر صفحه برنامه، دستگاه را حداقل سه بار بین حالت‌های افقی و عمودی و حالت‌های تا شده و باز شده بچرخانید.
سی آر-۶ برای ارسال برنامه آزمایشی به پس‌زمینه، به برنامه دیگری بروید. به تنظیمات بروید و بررسی کنید که آیا برنامه آزمایشی در پس‌زمینه سرویسی در حال اجرا دارد یا خیر. در اندروید ۴.۰ و بالاتر، به صفحه برنامه‌ها بروید و برنامه را در تب «در حال اجرا» پیدا کنید.
سی آر-۷ دکمه پاور را فشار دهید تا دستگاه به حالت خواب برود، سپس دوباره دکمه پاور را فشار دهید تا صفحه نمایش بیدار شود.
سی آر-۸ قفل صفحه نمایش را روی دستگاه تنظیم کنید. دکمه روشن/خاموش را فشار دهید تا دستگاه به حالت خواب برود (که دستگاه را قفل می‌کند). سپس، دوباره دکمه روشن/خاموش را فشار دهید تا صفحه نمایش بیدار شود و قفل دستگاه باز شود.
سی آر-۹ در کشوی اعلان‌ها، انواع اعلان‌هایی را که برنامه می‌تواند نمایش دهد، فعال و مشاهده کنید. در صورت لزوم، اعلان‌ها را گسترش دهید (اندروید ۴.۱ و بالاتر) و روی همه اقدامات موجود ضربه بزنید.
سی آر-۱۰ پشتیبانی از سایر موارد استفاده در Doze و App Standby را بررسی کنید.
نصب روی کارت SD SD-1 مراحل Core Suite را با نصب برنامه روی کارت SD دستگاه تکرار کنید (اگر برنامه از این روش نصب پشتیبانی می‌کند).

برای انتقال برنامه به کارت SD، می‌توانید از تنظیمات > اطلاعات برنامه > انتقال به کارت SD استفاده کنید.

عملکرد و پایداری اس پی-۱ فایل مانیفست اندروید و پیکربندی ساخت را بررسی کنید تا مطمئن شوید که برنامه با آخرین SDK موجود ( targetSdk و compileSdk ) ساخته شده است.
SP-2 فایل build.gradle را برای هرگونه وابستگی قدیمی بررسی کنید.
SP-3 از ابزار lint اندروید استودیو برای تشخیص استفاده از رابط کاربری غیر SDK استفاده کنید. روش‌های تست جایگزین دیگری نیز وجود دارد.
نظارت بر عملکرد پی ام-۱ مجموعه اصلی را با فعال کردن پروفایل StrictMode تکرار کنید.

به جمع‌آوری زباله و تأثیر آن بر تجربه کاربری توجه ویژه‌ای داشته باشید.

باتری بی ای-۱ Core Suite را در چرخه‌های Doze و App Standby تکرار کنید.

به هشدارها، تایمرها، اعلان‌ها، همگام‌سازی‌ها و غیره توجه ویژه داشته باشید. برای الزامات و دستورالعمل‌ها، به بخش «آزمایش با Doze و App Standby» مراجعه کنید.

امنیت SC-1 تمام داده‌های ذخیره شده در حافظه خارجی را بررسی کنید.
SC-2 نحوه مدیریت و پردازش داده‌هایی که از حافظه خارجی بارگذاری می‌شوند را بررسی کنید.
SC-3 تمام ارائه دهندگان محتوای تعریف شده در فایل مانیفست اندروید را بررسی کنید. مطمئن شوید که هر ارائه دهنده دارای protectionLevel مناسب است.
SC-4 تمام مجوزهایی که برنامه شما نیاز دارد را در فایل مانیفست، در زمان اجرا و در صفحه تنظیمات برنامه (تنظیمات > اطلاعات برنامه) روی دستگاه بررسی کنید.
SC-5 تمام کامپوننت‌های برنامه که در فایل مانیفست اندروید تعریف شده‌اند را برای وضعیت خروجی مناسب بررسی کنید. ویژگی خروجی باید برای همه کامپوننت‌ها به طور صریح تنظیم شود.
SC-6 پیکربندی امنیت شبکه برنامه را بررسی کنید و مطمئن شوید که هیچ بررسی Lint در پیکربندی با شکست مواجه نمی‌شود.
SC-7 برای هر WebView، به صفحه‌ای بروید که به جاوا اسکریپت نیاز دارد.
SC-8 در هر WebView، سعی کنید به سایت‌ها و محتوایی بروید که مستقیماً توسط برنامه شما بارگذاری نمی‌شوند.
SC-9 یک پیکربندی امنیت شبکه تعریف کنید که ترافیک cleartext را غیرفعال کند ، سپس برنامه را آزمایش کنید.
SC-10 برنامه را اجرا کنید و تمام عملکردهای اصلی را اعمال کنید، در عین حال گزارش دستگاه را مشاهده کنید . هیچ اطلاعات خصوصی کاربر نباید ثبت شود.
گوگل پلی جی پی-۱ برای بررسی پروفایل توسعه‌دهنده، توضیحات برنامه، اسکرین‌شات‌ها، گرافیک ویژگی‌ها، رتبه‌بندی محتوا و بازخورد کاربران، وارد کنسول توسعه‌دهندگان گوگل پلی شوید.
جی پی-۲ گرافیک و اسکرین‌شات‌های ویژگی خود را دانلود کنید و مقیاس آنها را کوچک کنید تا با اندازه صفحه نمایش در دستگاه‌ها و فرم‌فکتورهایی که هدف قرار می‌دهید، مطابقت داشته باشند.
جی پی-۳ تمام منابع گرافیکی، رسانه، متن، کتابخانه‌های کد و سایر محتوایی که در برنامه یا فایل توسعه‌ی دانلود شده وجود دارد را بررسی کنید.

تست با StrictMode

برای آزمایش عملکرد، توصیه می‌کنیم StrictMode در برنامه خود فعال کنید و از آن برای شناسایی عملیاتی که می‌توانند بر عملکرد، دسترسی‌های شبکه، خواندن/نوشتن فایل و غیره تأثیر بگذارند، استفاده کنید. به دنبال عملیات بالقوه مشکل‌ساز هم در نخ اصلی و هم در نخ‌های دیگر باشید.

شما می‌توانید با استفاده از StrictMode.ThreadPolicy.Builder یک سیاست نظارت بر هر رشته تنظیم کنید و با استفاده از detectAll() تمام نظارت‌های پشتیبانی‌شده را در ThreadPolicy فعال کنید.

مطمئن شوید که اعلان بصری نقض خط‌مشی را برای ThreadPolicy با استفاده از penaltyFlashScreen() فعال کرده‌اید.