העדכון האחרון: 20.03.2026
כדי ליצור בסיס מוצק לאפליקציה איכותית, כדאי לפעול לפי ההנחיות העיקריות בנושא איכות האפליקציה.
ההנחיות מגדירות את האיכות המינימלית שכל האפליקציות צריכות לעמוד בה.
איכות אפליקציה דינמית
אפליקציות ל-Android פועלות במגוון רחב של מכשירים – החל מטלפונים קומפקטיים ועד טאבלטים, מכשירים מתקפלים, מחשבים, מסכים מחוברים, מערכות מידע ובידור ברכב, טלוויזיות ומכשירי XR. מצבי חלונות כמו מסך מפוצל וממשק מחשב מאפשרים להריץ אפליקציות בחלקים של המסך שאפשר לשנות את הגודל שלהם.
כדי לעמוד בדרישות של איכות אפליקציה אדפטיבית, צריך לפעול לפי ההנחיות האלה בנוסף להנחיות האיכות הבסיסיות של האפליקציה:
- יצירת אפליקציות שעברו אופטימיזציה לכל גורמי הצורה ולכל גדלי המסך
- שיפור הדירוג של האפליקציות ברשימות ובחיפוש ב-Google Play
- איך מושכים יותר משתמשים ומשפרים את שימור המשתמשים
הנחיות
ההנחיות הבסיסיות הבאות יעזרו לכם לפתח אפליקציה בסיסית ואיכותית.
חוויית משתמש
האפליקציה צריכה לספק עיצוב חזותי ודפוסי אינטראקציה סטנדרטיים של Android, כדי להבטיח חוויית משתמש עקבית ואינטואיטיבית.
כדאי להשתמש ברכיבי Material Design כדי ליצור את ממשק המשתמש של האפליקציה במקום ברכיבי פלטפורמת Android, איפה שאפשר. Material Design מספק מראה ותחושה מודרניים של Android, וגם עקביות בממשק המשתמש בכל גרסאות Android.
| מזהה | בדיקות | תיאור |
|---|---|---|
| נוחות השימוש | ||
| נוחות השימוש:UX | T-Usability:Core, T-SD-Card |
האפליקציה מספקת חוויית משתמש עקבית לכל התרחישים לדוגמה של השימוש באפליקציה בכל גורמי הצורה. |
| נוחות השימוש:Switcher | T-Usability:Switcher, T-SD-Card |
האפליקציה עוברת לרקע כשהמיקוד עובר לאפליקציה אחרת. האפליקציה חוזרת לחזית כשהיא מופעלת מחדש ממחליף האפליקציות האחרונות. |
| נוחות השימוש:שינה | T-Usability:Sleep, T-SD-Card |
כשהאפליקציה היא אפליקציה שפועלת בחזית, היא מושהית כשהמכשיר עובר למצב שינה ומופעלת מחדש כשהמכשיר יוצא ממצב שינה. |
| נוחות השימוש:נעילה | T-Usability:Lock, T-SD-Card |
כשהאפליקציה פועלת בחזית, היא מושהית כשהמכשיר נעול ומופעלת מחדש כשהמכשיר לא נעול. |
| ממשק משתמש | ||
| ממשק משתמש:שוויון | T-UI:Transitions |
ההגדרות של כיווני התצוגה ומצבי הקיפול חושפות למעשה את אותן תכונות ופעולות, ושומרות על שוויון פונקציונלי. |
| ממשק משתמש:מסך מלא | T-UI:Transitions |
האפליקציה ממלאת את חלון האפליקציה בשני הכיוונים ולא מופיעה בפורמט letterbox בגלל שינויים בהגדרות, כולל קיפול ופתיחה של המכשיר. מותר להשתמש בפורמט letterbox כדי לפצות על שינויים קלים בגיאומטריית המסך. |
| ממשק משתמש:מעברים | T-UI:Transitions | האפליקציה מטפלת במעברים מהירים בין כיווני התצוגה ובין קיפול המכשיר לפתיחתו, בלי בעיות בעיבוד התצוגה ובלי לאבד את המצב. |
| איכות חזותית | ||
| ויזואלי:רשת המדיה | T-Visual:Display |
האפליקציה מציגה גרפיקה, טקסט, תמונות ואלמנטים אחרים בממשק המשתמש ללא עיוות, טשטוש או פיקסול בולטים.
|
| ויזואלי:קריאוּת | T-Visual:Readability | האפליקציה מגבילה את אורך השורה ל-45 עד 75 תווים (כולל רווחים) בכל אחת מהשפות הנתמכות באפליקציה, כדי להבטיח שהטקסט ובלוקי הטקסט יהיו קריאים. |
| רכיבים חזותיים:עיצובים | T-Visual:Themes | התוכן של האפליקציה וכל תוכן האינטרנט שאליו יש לאפליקציה גישה תומכים גם במצב בהיר וגם במצב כהה. |
| ניווט | ||
| ניווט:כפתור חזרה | T-Nav:Back | האפליקציה תומכת בניווט באמצעות הכפתור "הקודם" רגיל ולא נעשה בה שימוש בהנחיות מותאמות אישית של הכפתור "הקודם" במסך. |
| ניווט:תנועת חזרה | T-Nav:Back | האפליקציה תומכת בניווט באמצעות תנועות כדי לחזור אחורה ולעבור למסך הבית. |
| Nav:State | T-Nav:State, T-Nav:Back |
האפליקציה שומרת את מצב המשתמש או האפליקציה כשהיא לא בחזית ומונעת אובדן נתונים מקרי בגלל ניווט חזרה ושינויים אחרים במצב שלה. כשחוזרים לחזית, האפליקציה משחזרת את המצב שנשמר ואת כל העסקאות התלויות שכוללות שמירת מצב. לדוגמה, שינויים בשדות שאפשר לערוך, בהתקדמות במשחק, בתפריטים, בסרטונים ובקטעים אחרים באפליקציה.
|
| התראות | ||
| התראה:מידע | T-Notify:Info |
התראות מספקות מידע רלוונטי שקשור לאפליקציה.
|
| התראה:העברת הודעות | T-Notify:Info |
באפליקציות לשליחת הודעות, באפליקציות חברתיות ובשיחות:
|
| נגישות | ||
| גישה:יעדים | T-Access:Targets | משטחי המגע הם לפחות 48 dp. אפשר לעיין בהנחיות של Material Design בנושא פריסה וטיפוגרפיה. |
| נגישות:ניגודיות | T-Access:Contrast |
הטקסט באפליקציה והתוכן בחזית שומרים על יחסי הניגודיות הבאים עם הרקע של האפליקציה:
|
| גישה:תיאור | T-Access:Description | תיאור של כל רכיב בממשק המשתמש, למעט TextView, באמצעות contentDescription. |
הפונקציונליות
האפליקציה שלך צריכה להטמיע את ההתנהגות הפונקציונלית הבאה.
| מזהה | בדיקות | תיאור |
|---|---|---|
| אודיו | ||
| אודיו:Init | T-Audio:Init |
כשהמשתמש מפעיל השמעה של אודיו, האפליקציה צריכה לבצע אחת מהפעולות הבאות תוך שנייה אחת:
|
| אודיו:מיקוד | T-Audio:Focus | האפליקציה צריכה לבקש מיקוד אודיו כשהפעלת האודיו מתחילה, ולבטל את מיקוד האודיו כשההפעלה מסתיימת. |
| אודיו:הפרעה | T-Audio:Interrupt | האפליקציה צריכה לטפל בבקשות של אפליקציות אחרות להתמקדות באודיו. לדוגמה, אפליקציה עשויה להנמיך את עוצמת הקול של ההפעלה כשבאפליקציה אחרת מושמע דיבור. |
| אודיו:רקע | T-Audio:Background | האפליקציה צריכה לתמוך בהפעלה ברקע. |
| אודיו:התראה | T-Audio:Notification | כשהאפליקציה מפעילה אודיו ברקע, היא צריכה ליצור התראה עם סגנון MediaStyle. |
| אודיו:המשך | T-Audio:Resume | אם האפליקציה פועלת ברקע וההפעלה של האודיו מושהית, ההפעלה של האודיו צריכה להתחדש כשהאפליקציה חוזרת לחזית, או שהאפליקציה צריכה לציין למשתמש שההפעלה מושהית. |
| וידאו | ||
| סרטון:תמונה בתוך תמונה | T-Video:PiP | אם האפליקציה מפעילה סרטונים, היא צריכה לתמוך בהפעלה של תמונה בתוך תמונה. |
| סרטון:קידוד | T-Video:Encoding | אם האפליקציה מקודדת סרטון, היא צריכה לעשות זאת באמצעות תקן הדחיסה של סרטוני HEVC. |
| שיתוף | ||
| שיתוף:Sheet | T-Sharing:Sheet | האפליקציה צריכה להשתמש בקובץ לשיתוף ב-Android כשמשתפים תוכן. האפליקציה יכולה להציע יעדים שלא זמינים לפתרונות מותאמים אישית. |
| שירותים ברקע | ||
| רקע:שירותים | T-Background:Services |
האפליקציה לא מפעילה שירותים ברקע למשך זמן ארוך מדי ללא צורך, כדי להבטיח שהמכשיר של המשתמש יפעל בצורה חלקה. הערה: המערכת מטילה הגבלות שונות על שירותים שפועלים ברקע. אלה כמה דוגמאות לשימוש לא טוב בשירותים שפועלים ברקע:
מידע נוסף מופיע במאמר סקירה כללית על משימות ברקע. |
ביצועים ויציבות
האפליקציה צריכה לספק ביצועים אופטימליים, יציבות, תאימות ורספונסיביות.
| מזהה | בדיקות | תיאור |
|---|---|---|
| ביצועים | ||
| ביצועים:הפעלה | T-Performance:Startup | האפליקציה נטענת במהירות או מספקת למשתמש משוב במסך (אינדיקטור התקדמות או רמז דומה) אם טעינת האפליקציה נמשכת יותר משתי שניות. |
| ביצועים:FPS | T-Performance:FPS | האפליקציה מעבדת פריימים כל 16 מילישניות (או פחות) כדי להציג לפחות 60 פריימים בשנייה. לקבלת עזרה בפתרון בעיות שקשורות לרינדור, אפשר לעיין במאמר בנושא רינדור איטי. |
| ביצועים:מחמירה | T-Performance:Strict | אם האפשרות StrictMode מופעלת (ראו את הקטע בנושא בדיקות StrictMode), לא יוצגו הבהובים אדומים (אזהרות ביצועים מ-StrictMode) במהלך בדיקת האפליקציה. |
| יציבות | ||
| יציבות:ANR | T-Stability:ANR | האפליקציה לא קורסת או חוסמת את שרשור ה-UI וגורמת לשגיאות ANR (האפליקציה לא מגיבה ב-Android). כדאי להשתמש בדוח טרום-השקה של Google Play כדי לזהות בעיות פוטנציאליות ביציבות. אחרי הפריסה, עוקבים אחרי הדף Android Vitals ב-Google Play Console. |
| SDK | ||
| SDK:Platform | T-SDK:Platform | האפליקציה פועלת בגרסה הציבורית האחרונה של פלטפורמת Android בלי לקרוס או להשפיע באופן משמעותי על הפונקציונליות העיקרית. |
| SDK:Target | T-SDK:Latest | האפליקציה מטרגטת את הגרסה האחרונה של Android SDK שנדרשת כדי לעמוד בדרישות של Google Play. לשם כך, צריך להגדיר את הערך targetSdk בקובץ build.gradle של מודול האפליקציה. |
| SDK:Compile | T-SDK:Latest | האפליקציה נוצרה באמצעות Android SDK העדכני ביותר על ידי הגדרת הערך compileSdk בקובץ build.gradle של מודול האפליקציה. |
| SDK:3P | T-SDK:3P, T-SDK:Non |
כל ערכות ה-SDK של Google או של צד שלישי שבהן נעשה שימוש מעודכנות. כל שיפור בערכות ה-SDK האלה שקשור ליציבות, לתאימות או לאבטחה צריך להיות זמין למשתמשים בהקדם האפשרי. במקרה של ערכות SDK של Google, מומלץ להשתמש בערכות SDK שמבוססות על Google Play Services כשהן זמינות. ערכות ה-SDK האלה תואמות לאחור, מקבלות עדכונים אוטומטיים, מקטינות את גודל חבילת האפליקציה ומאפשרות שימוש יעיל במשאבים במכשיר. |
| SDK:Non | T-SDK:Non | האפליקציה לא משתמשת בממשקים שאינם SDK. |
| SDK:Debug | T-SDK:Debug | לא נכללות ספריות ניפוי באגים באפליקציית הייצור. ספריות ניפוי באגים שנכללות באפליקציה עלולות לגרום לבעיות בביצועים ובאבטחה. |
| סוללה | ||
| סוללה:ניהול | T-Battery:Manage |
האפליקציה תומכת כראוי בתכונות לניהול צריכת חשמל נמנום ואפליקציה במצב המתנה. אפליקציות יכולות לבקש פטור מתחזוקת צריכת החשמל. אפשר לעיין בקטע תמיכה בתרחישי שימוש אחרים במאמר אופטימיזציה לשימוש בנמנום ואפליקציה במצב המתנה. |
פרטיות ואבטחה
האפליקציה מטפלת בנתוני משתמשים ובמידע אישי באופן בטוח ומספקת רמות הרשאה מתאימות.
אפליקציות שמתפרסמות בחנות Google Play חייבות גם לעמוד בדרישות המדיניות של Google Play בנושא נתוני משתמשים כדי להגן על פרטיות המשתמשים.
| מזהה | בדיקות | תיאור |
|---|---|---|
| הרשאות | ||
| הרשאות:Min | T-Permissions:Min | האפליקציה מבקשת רק את ההרשאות המינימליות שדרושות כדי לתמוך בתרחיש השימוש הנוכחי. לגבי הרשאות מסוימות, כמו מיקום, האפליקציה משתמשת במפרט גס במקום במפרט מדויק אם אפשר. איך מצמצמים את מספר הבקשות להרשאות |
| הרשאות:רגישות | T-Permissions:Sensitive |
האפליקציה מבקשת הרשאה לגשת למידע אישי רגיש (כמו קבוצות הרשאות של יומן שיחות או SMS או מיקום) או לשירותים שעולים כסף (כמו חייגן או SMS) רק אם יש קשר ישיר לתרחישי השימוש העיקריים של האפליקציה. צריך להציג למשתמשים גילוי נאות במקום בולט לגבי ההשלכות שקשורות להרשאות האלה. בהתאם לאופן השימוש של האפליקציה בהרשאות, יכול להיות שאפשר לממש את תרחיש השימוש של האפליקציה בדרך חלופית בלי להסתמך על גישה למידע רגיש. לדוגמה, במקום לבקש הרשאות שקשורות לאנשי הקשר של המשתמש, אפשר להשתמש באובייקט Intent מרומז כדי לבקש גישה. |
| הרשאות:זמן ריצה | T-Permissions:Runtime | האפליקציה מבקשת הרשאות בזמן ריצה כשהמשתמש מבקש להשתמש בפונקציונליות מסוימת, ולא במהלך הפעלת האפליקציה. |
| הרשאות:הסבר | T-Permissions:Explain | האפליקציה מסבירה בצורה ברורה למה נדרשות הרשאות. |
| הרשאות:הורדה | T-Permissions:Degrade | האפליקציה מבצעת נסיגה הדרגתית כשמשתמשים דוחים או מבטלים הרשאה. האפליקציה לא אמורה למנוע מהמשתמשים גישה לחלוטין. |
| נתונים וקבצים | ||
| נתונים:רגישים | T-Data:Sensitive, T-Data:Handling |
כל הנתונים הרגישים מאוחסנים באחסון הפנימי של האפליקציה. |
| נתונים:יומן | T-Data:Log | לא מתבצע רישום ביומן של נתונים אישיים או רגישים של משתמשים ביומן המערכת או ביומן ספציפי לאפליקציה. |
| נתונים:מזהים | T-Data:IDs | האפליקציה לא משתמשת במזהי חומרה שלא ניתן לאפס, כמו IMEI, למטרות זיהוי. |
| זהות | ||
| זהות:רמזים | T-Identity:Hints | האפליקציה מספקת הצעות למילוי אוטומטי של פרטי כניסה לחשבון ומידע רגיש אחר, כמו פרטי כרטיס אשראי, כתובת ומספר טלפון. |
| זהות:CredMan | T-Identity:CredMan | האפליקציה משלבת את Credential Manager ל-Android כדי ליצור חוויית כניסה חלקה שמאחדת את התמיכה במפתחות גישה, בזהות מאוחדת ובסיסמאות. |
| זהות:ביוגרפיה | T-Identity:Bio | האפליקציה תומכת באימות ביומטרי כדי להגן על טרנזקציות פיננסיות או על מידע רגיש, כמו מסמכים חשובים של המשתמש. |
| רכיבים של אפליקציה | ||
| רכיבים:ייצוא | T-Components:Export |
האפליקציה מגדירה את המאפיין רק רכיבי אפליקציה שמשתפים נתונים עם אפליקציות אחרות או רכיבים שצריכים להיות מופעלים על ידי אפליקציות אחרות מיוצאים. |
| רכיבים:הרשאות | T-Components:Permissions |
כל הכוונות והשידורים פועלים לפי השיטות המומלצות:
|
| רכיבים:הגנה | T-Components:Protection |
כל הרכיבים שמשתפים תוכן בין אפליקציות משתמשים ב- אפליקציות לא צריכות להסתמך על גישה לרשימה של חבילות מותקנות. |
| רשתות | ||
| רשת:תנועה | T-Network:Traffic | כל התעבורה ברשת נשלחת באמצעות SSL. |
| רשת:הגדרה | T-Network:Config | האפליקציה מצהירה על תצורה של אבטחת רשת. |
| רשת:Play | T-Network:Play | אם האפליקציה משתמשת ב-Google Play Services, ספק האבטחה מאותחל בהפעלת האפליקציה. |
| רכיבי WebView | ||
| WebViews:Config | T-WebViews:Config, T-WebViews:Nav |
אל תשתמשו ב-setAllowUniversalAccessFromFileURLs() כדי לגשת לתוכן מקומי. במקום זאת, צריך להשתמש ב-WebViewAssetLoader. |
| WebViews:JavaScript | T-WebViews:JavaScript, T-WebViews:Nav |
תצוגות אינטרנט לא משתמשות ב- ב-Android 6.0 (רמת API 23 ומעלה), צריך להשתמש במקום זאת בערוצי הודעות HTML. |
| ביצוע | ||
| ביצוע:חבילות | T-Execution:Bundles |
האפליקציה לא טוענת באופן דינמי קוד ממקור חיצוני לחבילת ה-APK של האפליקציה. משתמשים ב-קובץ Android App Bundle, שכוללים את הפצת פיצ'רים ב-Play ו-Play Asset Delivery. החל מאוגוסט 2021, חובה להשתמש ב-Android App Bundle בכל האפליקציות החדשות בחנות Google Play. |
| קריפטוגרפיה | ||
| קריפטו:אלגוריתמים | T-Crypto:Algorithms | האפליקציה משתמשת באלגוריתמים קריפטוגרפיים חזקים ובמחולל מספרים אקראיים שסופקו על ידי הפלטפורמה. בנוסף, האפליקציה לא מטמיעה אלגוריתמים בהתאמה אישית. |
Google Play
הפעלת האפשרות לפרסם את האפליקציה ב-Google Play.
| מזהה | בדיקות | תיאור |
|---|---|---|
| מדיניות | ||
| Play:Policies | T-Play:Policies | האפליקציה עומדת בדרישות של מדיניות Google Play בנושא תוכן למפתחים, לא מציעה תוכן בלתי הולם ולא משתמשת בקניין רוחני או במותג של אחרים. |
| Play:Maturity | T-Play:Policies | רמת הבגרות של האפליקציה מוגדרת בצורה מתאימה על סמך ההנחיות לסיווג תוכן. |
| דף פרטי האפליקציה | ||
| Play:Graphics | T-Play:Graphics, T-Play:Assets |
הגרפיקה של פריט באפליקציה עומדת בהנחיות שמפורטות במאמר התמיכה הזה. מוודאים שהתנאים הבאים מתקיימים:
|
| Play:NonAndroid | T-Play:Assets | צילומי המסך והסרטונים של האפליקציה לא מציגים מכשירים שאין בהם מערכת Android ולא מפנים אליהם. |
| Play:Misleading | T-Play:Assets | צילומי המסך או הסרטונים של האפליקציה לא מציגים את התוכן ואת חוויית השימוש באפליקציה בצורה מטעה. |
| תמיכה למשתמשים | ||
| Play:Bugs | T-Play:Policies | אנחנו מטפלים בבאגים נפוצים שמשתמשים מדווחים עליהם בכרטיסייה ביקורות בדף של האפליקציה ב-Google Play, אם אפשר לשחזר את הבאגים והם מתרחשים במכשירים שונים רבים. אם באג מתרחש רק בכמה מכשירים, עדיין כדאי לטפל בו אם המכשירים האלה פופולריים במיוחד או חדשים. |
סביבת בדיקה
מגדירים סביבת בדיקה באופן הבא:
בדיקה באמצעות אמולטור: אמולטור Android הוא דרך מצוינת לבדוק את האפליקציה בגרסאות שונות של Android וברזולוציות מסך שונות. כדאי להגדיר מכשירים מדומיים (AVD) כדי לייצג את גורמי הצורה הנפוצים ביותר ואת השילובים של חומרה/תוכנה עבור בסיס המשתמשים שלכם. כדאי לבדוק מגוון של גורמי צורה באמצעות האמולטורים הבאים (לפחות):
- טלפונים מתקפלים: מסך פנימי בגודל 7.6 אינץ' עם מסך חיצוני (מופיע בקטע 'טלפונים' בכלי AVD Manager)
- טאבלט: Pixel C 9.94" (2,560px x 1,800px)
- בדיקת התראות באפליקציה לנייד: התאמה של מכשיר נייד או אמולטור לאמולטור Wear OS: Wear OS Round 1.84"
מכשירי חומרה: סביבת הבדיקה צריכה לכלול מספר קטן של מכשירי חומרה בפועל שמייצגים את גורמי הצורה העיקריים ואת השילובים של חומרה ותוכנה שזמינים לצרכנים. לא צריך לבדוק את האפליקציה בכל מכשיר שקיים בשוק. מומלץ להתמקד במספר קטן של מכשירים מייצגים, ואפילו להשתמש במכשיר אחד או שניים לכל גורם צורה.
מעבדות לבדיקת מכשירים: אפשר גם להשתמש בשירותים של צד שלישי, כמו Firebase Test Lab, כדי לבדוק את האפליקציה במגוון רחב של מכשירים.
בדיקה עם גרסת Android העדכנית ביותר: בנוסף לבדיקה של גרסאות מייצגות של Android עבור בסיס המשתמשים לטירגוט, תמיד כדאי לבדוק את הגרסה העדכנית ביותר של Android כדי לוודא שהשינויים האחרונים בהתנהגות לא משפיעים לרעה על חוויית המשתמש באפליקציה.
לקבלת הנחיות נוספות לגבי בדיקות, כולל בדיקות יחידה, בדיקות שילוב ובדיקות ממשק משתמש, אפשר לעיין במאמר יסודות הבדיקה של אפליקציות ל-Android.
StrictMode
כדי לבדוק את הביצועים, מפעילים את StrictMode באפליקציה. משתמשים ב-StrictMode כדי לזהות פעולות שעלולות להשפיע על הביצועים, על גישות לרשת ועל קריאות וכתיבות של קבצים. מחפשים פעולות שעלולות להיות בעייתיות גם בשרשור הראשי וגם בשרשורים אחרים.
מגדירים מדיניות ניטור לכל שרשור באמצעות StrictMode.ThreadPolicy.Builder ומפעילים את כל אפשרויות הניטור הנתמכות ב-ThreadPolicy באמצעות detectAll().
הפעלת התראה חזותית על הפרות מדיניות עבור ThreadPolicy באמצעות penaltyFlashScreen().
בדיקות
הבדיקות הבסיסיות של איכות האפליקציה עוזרות לכם להעריך את האיכות הבסיסית של האפליקציה. אתם יכולים לשלב בין הבדיקות או לשלב קבוצות של בדיקות בתוכנית הבדיקה שלכם.
חוויית משתמש
| מזהה | תכונה | תיאור |
|---|---|---|
| נוחות השימוש | ||
| T-Usability:Core | נוחות שימוש:חוויית משתמש |
עוברים לכל החלקים באפליקציה – כל המסכים, תיבות הדו-שיח, ההגדרות וכל תהליכי המשתמש. מבצעים את הפעולות הבאות:
|
| T-Usability:Switcher | נוחות השימוש:מחליף האפליקציות | מכל מסך של אפליקציה, עוברים לאפליקציה אחרת שפועלת, ואז חוזרים לאפליקציה שנבדקת באמצעות הממשק למעבר בין אפליקציות האחרונות. |
| T-Usability:Sleep | נוחות השימוש:שינה | לוחצים על לחצן ההפעלה כדי להעביר את המכשיר למצב שינה, ואז לוחצים שוב על לחצן ההפעלה כדי להוציא את המסך ממצב שינה. |
| T-Usability:Lock | נוחות שימוש:נעילה | מגדירים נעילת מסך במכשיר. לוחצים על לחצן ההפעלה כדי להעביר את המכשיר למצב שינה (שגורם לנעילת המכשיר). אחר כך לוחצים שוב על כפתור ההפעלה כדי להוציא את המסך ממצב שינה ולבטל את נעילת המכשיר. |
| כרטיס SD | ||
| T-SD-Card | נוחות שימוש:חוויית משתמש |
ביצוע בדיקות של הפונקציונליות העיקרית כשהאפליקציה מותקנת בכרטיס SD של המכשיר (אם האפליקציה תומכת בשיטת ההתקנה הזו). כדי להעביר את האפליקציה לכרטיס SD, צריך לעיין בהגדרות האפליקציה. |
| ממשק משתמש | ||
| T-UI:Transitions | UI:Parity, UI:Fullscreen, UI:Transitions |
בכל מסך של האפליקציה, מסובבים את המכשיר בין כיוון אופקי לכיוון אנכי, ובין מצב מקופל למצב פתוח, לפחות שלוש פעמים. מוודאים שהאפליקציה מבצעת את הפעולות הבאות:
|
| איכות חזותית | ||
| T-Visual:Display | Visual:Display | משתמשים בכל התכונות של האפליקציה. מוודאים שכל הרכיבים החזותיים, כולל גרפיקה, טקסט, תמונות ורכיבים אחרים בממשק המשתמש, לא מעוותים, לא מטושטשים ולא מפוקסלים. |
| T-Visual:Readability | חזותי:קריאות |
בודקים את כל בלוקי הטקסט באפליקציה. מוודאים שאורך השורה של הטקסט ושל בלוק הטקסט מוגבל ל-45 עד 75 תווים (כולל רווחים) כדי שהטקסט יהיה קריא. מוודאים את הפרטים הבאים:
|
| T-Visual:Themes | חזותי:עיצובים | מוודאים שכל הטקסט קריא בעיצוב בהיר ובעיצוב כהה. מוודאים שכל הרכיבים החזותיים נראים בבירור ונעימים לעין גם במצב בהיר וגם במצב כהה. |
| ניווט | ||
| T-Nav:Back | Nav:BackButton, Nav:BackGesture |
עוברים לכל החלקים באפליקציה – כל המסכים, תיבות הדו-שיח, ההגדרות וכל תהליכי המשתמש. בכל מסך של אפליקציה, לוחצים על הלחצן הקודם או משתמשים בתנועת ההחלקה 'חזרה'. האפליקציה אמורה לנווט למסך הקודם או למסך הבית. |
| T-Nav:State | Nav:State | מכל מסך אפליקציה, לוחצים על מקש הבית במכשיר או מחליקים למעלה בניווט באמצעות מחוות, ואז מפעילים מחדש את האפליקציה מהמסך כל האפליקציות. |
| התראות | ||
| T-Notify:Info | התראה:מידע, התראה:העברת הודעות |
מפעילים את כל סוגי ההתראות שהאפליקציה יכולה להציג ומסתכלים על מגירת ההתראות. מרחיבים את ההתראות כשזה רלוונטי (Android 4.1 ואילך), ומקישים על כל הפעולות הזמינות. |
| נגישות | ||
| T-Access:Targets | גישה:טירגוטים | מוודאים שמשטחי המגע שומרים על גודל ומיקום עקביים ונגישים בכל הגדלים והתצורות של המסך. מידע על נגישות זמין במאמר בנושא Accessibility Scanner. |
| T-Access:Contrast | גישה:ניגודיות | בודקים את הניגודיות של כל הרכיבים החזותיים. |
| T-Access:Description | Access:Description | מוודאים שלכל הרכיבים בממשק המשתמש, מלבד TextView, יש תיאורי תוכן. |
הפונקציונליות
| מזהה | תכונה | תיאור |
|---|---|---|
| אודיו | ||
| T-Audio:Init | Audio:Init | מתחילים את הפעלת האודיו. מוודאים שבתוך שנייה אחת האפליקציה מתחילה להפעיל את האודיו או מספקת אינדיקטור ויזואלי לכך שנתוני האודיו מוכנים להפעלה. |
| T-Audio:Focus | אודיו:מיקוד | מתחילים את הפעלת האודיו. האפליקציה צריכה לבקש הרשאת אודיו. כשמפסיקים את השמעת האודיו, האפליקציה צריכה לוותר על מיקוד האודיו (זה קורה באופן אוטומטי באפליקציות שמטרגטות Android 12 (רמת API 31) ומעלה). |
| T-Audio:Interrupt | אודיו:הפרעה | מתחילים את הפעלת האודיו. מתחילים להפעיל אודיו באפליקציה אחרת. האפליקציה שלכם צריכה להגיב לשינוי בהרשאת האודיו ולהפסיק את הפעלת האודיו או להנמיך את עוצמת הקול של האודיו. |
| T-Audio:Background | אודיו:רקע | מתחילים את הפעלת האודיו. מבצעים אינטראקציה עם אפליקציה אחרת שלא קשורה לאודיו כאפליקציה שפועלת בחזית. האפליקציה אמורה להמשיך להפעיל אודיו ברקע. |
| T-Audio:Notification | אודיו:התראה | מתחילים את הפעלת האודיו. מבצעים אינטראקציה עם אפליקציה אחרת שלא קשורה לאודיו כאפליקציה שפועלת בחזית. מוודאים שהאפליקציה ממשיכה להפעיל אודיו ברקע ושיצרה התראה עם סגנון MediaStyle. מידע נוסף על שימוש בממשק השליטה במדיה |
| T-Audio:Resume | אודיו:הפעלה מחדש | מתחילים את הפעלת האודיו. ליצור אינטראקציה עם אפליקציה אחרת שאינה אפליקציית אודיו כאפליקציה שפועלת בחזית. ליצור אינטראקציה עם האפליקציה שלכם כדי להפוך אותה לאפליקציה העליונה. האודיו אמור להמשיך לפעול או שהווליום אמור לחזור לרמה הקודמת. אחרת, האפליקציה צריכה לציין למשתמש שההפעלה מושהית. |
| T-Video:PiP | סרטון:תמונה בתוך תמונה | הפעלת הפעלת סרטונים באפליקציה במצב תמונה בתוך תמונה. |
| T-Video:Encoding | Video:Encoding | מוודאים שהאפליקציה מקודדת את הסרטון באמצעות תקן הדחיסה של סרטוני HEVC. |
| שיתוף | ||
| T-Sharing:Sheet | שיתוף:Sheet | יוצרים כוונה ומתחילים פעילות על ידי קריאה ל-startActivity() עם הכוונה כארגומנט. איך משתמשים בקובץ לשיתוף ב-Android האפליקציה צריכה להציג את הקובץ לשיתוף ב-Android. |
| שירותים ברקע | ||
| T-Background:Services | רקע:שירותים | משתמשים בכל התכונות העיקריות של האפליקציה. מוודאים שלא מופעלים שירותים ברקע שפועלים לזמן רב. עוברים לאפליקציה אחרת כדי להעביר את האפליקציה לרקע. עוברים אל הגדרות ובודקים אם יש באפליקציה שירותים שפועלים ברקע. ב-Android מגרסה 4.0 ואילך, עוברים למסך Apps (אפליקציות) ומחפשים את האפליקציה בכרטיסייה Running (פועלות). |
ביצועים ויציבות
| מזהה | תכונה | תיאור |
|---|---|---|
| ביצועים | ||
| T-Performance:Startup | ביצועים:הפעלה | מפעילים את האפליקציה. מוודאים שהאפליקציה נטענת במהירות או שמסופק בה אינדיקטור התקדמות או רמז דומה אם טעינת האפליקציה נמשכת יותר משתי שניות. |
| T-Performance:FPS | ביצועים:FPS | להשתמש בכל התכונות העיקריות של האפליקציה. לוודא שהאפליקציה מעבדת לפחות 60 פריימים לשנייה. אפשר להשתמש באפשרות עיבוד פרופיל ב-HWUI כדי לבדוק את האפליקציה. |
| T-Performance:Strict | ביצועים:מדויקים |
מפעילים את חשוב לשים לב במיוחד ל-garbage collection ולהשפעה שלו על חוויית המשתמש. |
| יציבות | ||
| T-Stability:ANR | יציבות:ANR | משתמשים בכל התכונות העיקריות של האפליקציה. מוודאים שהאפליקציה לא קורסת או חוסמת את שרשור ה-UI וגורמת לשגיאות ANR (האפליקציה לא מגיבה) ב-Android. כדאי לעיין בדוח טרום-השקה ב-Google Play כדי לזהות בעיות יציבות פוטנציאליות. |
| SDK | ||
| T-SDK:Platform | SDK:Platform | להפעיל את האפליקציה בגרסה הציבורית האחרונה של פלטפורמת Android. שימוש בכל התכונות העיקריות. מוודאים שהאפליקציה לא קורסת ופועלת בלי לפגוע בפונקציונליות העיקרית שלה. |
| T-SDK:Latest | SDK:Target, SDK:Compile |
בודקים את קובץ המניפסט של Android ואת הגדרות ה-build כדי לוודא שהאפליקציה נוצרה על בסיס הגרסה העדכנית ביותר של ה-SDK (targetSdk ו-compileSdk). |
| T-SDK:3P | SDK:3P | בודקים אם יש תלויות לא מעודכנות בקובץ build.gradle של האפליקציה. |
| T-SDK:Non | SDK:Non | כדי לזהות שימוש בממשק שאינו SDK, אפשר להשתמש בכלי ה-lint של Android Studio. לשיטות בדיקה חלופיות, אפשר לעיין במאמר בנושא הגבלות על ממשקים שאינם SDK. |
| T-SDK:Debug | SDK:Debug | בודקים אם קיימות ספריות ניפוי באגים בקובץ build.gradle של האפליקציה. |
| סוללה | ||
| T-Battery:Manage | סוללה:ניהול |
שימוש בכל התכונות העיקריות של האפליקציה במצבי נמנום ואפליקציה במצב המתנה. צריך לוודא שהתראות, טיימרים, התראות וסנכרונים פועלים כמו שצריך בחלון התחזוקה של מצב נמנום, וכשהאפליקציה יוצאת ממצב אפליקציה במצב המתנה. בודקים את ההתנהגות של נמנום ושל אפליקציה במצב המתנה באמצעות פקודות adb (הדרישות וההנחיות מפורטות במאמר בדיקה באמצעות נמנום ו-אפליקציה במצב המתנה). כדי לאבחן התרוקנות סוללה לא צפויה, אפשר להשתמש בכלי Power Profiler של Android Studio או בכלי Battery Historian בשילוב עם עבודה מתוכננת ברקע. |
פרטיות ואבטחה
| מזהה | תכונה | תיאור |
|---|---|---|
| הרשאות | ||
| T-Permissions:Min | הרשאות:מינימום | בודקים את כל ההרשאות שהאפליקציה דורשת, בקובץ המניפסט, בזמן הריצה ובהגדרות האפליקציה במכשיר (הגדרות > פרטי האפליקציה). |
| T-Permissions:Sensitive | הרשאות:רגישות | משתמשים בתכונות של האפליקציה שמבקשות הרשאות. מוודאים שהאפליקציה מבקשת הרשאה לגשת למידע אישי רגיש או לשירותים רק בתרחישי שימוש מרכזיים באפליקציה. מוודאים שההשלכות של מתן הרשאה למידע אישי רגיש ולשירותים רגישים מוסברות למשתמש בצורה ברורה. |
| T-Permissions:Runtime | הרשאות:זמן ריצה | משתמשים בכל התכונות באפליקציה שדורשות הרשאות. מוודאים שההרשאות מתבקשות בצורה עצלה, כלומר רק כשניגשים לתכונות, ולא במהלך הפעלת האפליקציה. |
| T-Permissions:Explain | הרשאות:הסבר | משתמשים בכל התכונות באפליקציה שדורשות הרשאות. מוודאים שהאפליקציה מסבירה למשתמש למה נדרשות ההרשאות. |
| T-Permissions:Degrade | הרשאות:הורדה | משתמשים בכל התכונות באפליקציה שדורשות הרשאות. דוחים או מבטלים את ההרשאות. מוודאים שהאפליקציה מספקת תרחיש שימוש חלופי וממשיכה לפעול. |
| נתונים וקבצים | ||
| T-Data:Sensitive | Data:Sensitive | בודקים את כל הנתונים שמאוחסנים באחסון הפנימי. מוודאים שהנתונים שמאוחסנים מחוץ לארגון לא מכילים מידע אישי רגיש. |
| T-Data:Handling | Data:Sensitive | בודקים איך המערכת מטפלת בנתונים שנטענים מאחסון חיצוני ומעבדת אותם. |
| T-Data:Log | נתונים:יומן | משתמשים בכל התכונות העיקריות של האפליקציה תוך כדי מעקב אחרי קובץ יומן במכשיר. מוודאים שלא מתבצע רישום ביומן של מידע פרטי על המשתמשים. |
| T-Data:IDs | נתונים:מזהים | שימוש בכל התכונות העיקריות של האפליקציה. מוודאים שהאפליקציה לא משתמשת במזהי חומרה כמו IMEI למטרות זיהוי. |
| זהות | ||
| T-Identity:Hints | Identity:Hints | שימוש בכל התכונות של האפליקציה שדורשות קלט של משתמשים. מוודאים שהאפליקציה מספקת רמזים למילוי אוטומטי של שדות קלט לנתונים כמו פרטי כניסה לחשבון ומידע רגיש אחר. |
| T-Identity:CredMan | Identity:CredMan | נכנסים לאפליקציה ומוודאים שהיא משתמשת ב-Credential Manager for Android כדי לאפשר כניסה באמצעות מפתחות גישה, זהות מאוחדת וסיסמאות. |
| T-Identity:Bio | זהות:מידע ביוגרפי | להשתמש בכל התכונות של האפליקציה שדורשות אימות. צריך לוודא שהאפליקציה מגנה על טרנזקציות פיננסיות או על מידע רגיש, כמו מסמכים חשובים של משתמשים, באמצעות אימות ביומטרי. |
| רכיבים של אפליקציה | ||
| T-Components:Export | רכיבים:ייצוא | בודקים את כל רכיבי האפליקציה שמוגדרים בקובץ המניפסט של Android כדי לוודא שהם מוגדרים למצב הייצוא המתאים. צריך להגדיר במפורש את המאפיין exported לכל הרכיבים. |
| T-Components:Permissions | רכיבים:הרשאות | צריך לבדוק את כל ההרשאות שהאפליקציה דורשת בקובץ המניפסט, בזמן הריצה ובהגדרות האפליקציה במכשיר (הגדרות > פרטי האפליקציה). |
| רכיבי T:הגנה | רכיבים:הגנה | בודקים את כל ספקי התוכן שמוגדרים בקובץ המניפסט של Android. מוודאים שלכל ספק יש protectionLevel מתאים. |
| רשתות | ||
| T-Network:Traffic | רשת:תנועה | מצהירים על תצורה של אבטחת רשת שמשביתה תנועה שאינה מוצפנת, ואז בודקים את האפליקציה. |
| T-Network:Config | Network:Config | בודקים את הגדרות אבטחת הרשת של האפליקציה. מוודאים שכל בדיקות ה-lint בהגדרה עוברות בהצלחה. |
| T-Network:Play | רשת:Play | מוודאים שספק האבטחה מאותחל בהפעלת האפליקציה בשירותי Google Play. |
| רכיבי WebView | ||
| T-WebViews:Config | WebViews:Config | בודקים את הגדרות אבטחת הרשת של האפליקציה. מוודאים שכל בדיקות ה-lint בהגדרה עוברות בהצלחה. |
| T-WebViews:JavaScript | WebViews:JavaScript | לכל WebView, עוברים לדף שנדרש בו JavaScript. |
| T-WebViews:Nav | WebViews:Config, WebViews:JavaScript |
בכל WebView, מנסים לנווט לאתרים ולתוכן שלא נטענים ישירות על ידי האפליקציה. |
| ביצוע | ||
| T-Execution:Bundles | ביצוע:חבילות | מוודאים שהאפליקציה משתמשת בקובצי Android App Bundle ולא טוענת קוד באופן דינמי מחוץ ל-APK של האפליקציה. |
| קריפטוגרפיה | ||
| T-Crypto:Algorithms | Crypto:Algorithms | צריך לוודא שהאפליקציה משתמשת באלגוריתמים קריפטוגרפיים חזקים ובמחולל מספרים אקראיים שסופקו על ידי הפלטפורמה. חשוב גם לוודא שהאפליקציה לא מטמיעה אלגוריתמים בהתאמה אישית. |
Google Play
| מזהה | תכונה | תיאור |
|---|---|---|
| מדיניות | ||
| T-Play:Policies | Play:Policies, Play:Maturity, Play:Bugs |
נכנסים אל Google Play Console כדי לבדוק את פרופיל המפתח, תיאור האפליקציה, צילומי המסך, גרפיקה של פריט, סיווג התוכן ומשוב המשתמשים. |
| דף פרטי האפליקציה | ||
| T-Play:Graphics | Play:Graphics | מורידים את הגרפיקה של פריט ואת צילומי המסך, ומקטינים אותם כך שיתאימו לגדלי המסכים במכשירים ובגורמי הצורה שמטרגטים. |
| T-Play:Assets | Play:Graphics, Play:NonAndroid, Play:Misleading |
בודקים את כל הנכסים הגרפיים, המדיה, הטקסט, ספריות הקוד ותכנים אחרים שנכללים בחבילת האפליקציה או בהורדה של קובץ ההרחבה. |
העברה לארכיון
גרסאות קודמות של הנחיות האיכות העיקריות לאפליקציות: