מודל הצגת האפליקציות של Google Play משתמש בקובצי Android App Bundle כדי ליצור ולהציג קובצי APK שעברו אופטימיזציה לכל תצורת מכשיר של משתמש, כך שהמשתמשים מורידים רק את הקוד והמשאבים שהם צריכים כדי להפעיל את האפליקציה.
Play Feature Delivery משתמש ביכולות מתקדמות של חבילות App Bundle, ומאפשר להעביר תכונות מסוימות של האפליקציה לפי תנאי או להוריד אותן לפי דרישה. כדי לעשות את זה, קודם צריך להפריד את התכונות האלה מאפליקציית הבסיס למודולים של תכונות.
הגדרת build של מודול תכונות
כשיוצרים מודול תכונות חדש באמצעות Android Studio, סביבת הפיתוח המשולבת (IDE) מחילה את פלאגין Gradle הבא על הקובץ build.gradle
של המודול.
// The following applies the dynamic-feature plugin to your feature module.
// The plugin includes the Gradle tasks and properties required to configure and build
// an app bundle that includes your feature module.
plugins {
id 'com.android.dynamic-feature'
}
רבים מהמאפיינים שזמינים לתוסף האפליקציה הרגיל זמינים גם למודול התכונות. בקטעים הבאים מוסבר אילו מאפיינים צריך לכלול בהגדרת ה-build של מודול התכונה, ואילו מאפיינים אסור לכלול.
מה לא לכלול בהגדרות ה-build של מודול התכונות
מכיוון שכל מודול תכונות תלוי במודול הבסיס, הוא גם יורש הגדרות מסוימות. לכן, צריך להשמיט את השורות הבאות בקובץ build.gradle
של מודול התכונות:
- הגדרות חתימה: קובצי App Bundle נחתמים באמצעות הגדרות חתימה שאתם מציינים במודול הבסיס.
- המאפיין
minifyEnabled
: אפשר להפעיל את תהליך הכיווץ של הקוד לכל פרויקט האפליקציה רק מתוך הגדרות ה-build של מודול הבסיס. לכן, צריך להשמיט את המאפיין הזה ממודולים של תכונות. עם זאת, אפשר לציין כללי ProGuard נוספים לכל מודול תכונות. -
versionCode
ו-versionName
: כשיוצרים חבילת אפליקציות, Gradle משתמש בפרטי גרסת האפליקציה שמסופקים על ידי מודול הבסיס. צריך להשמיט את המאפיינים האלה מקובץbuild.gradle
של מודול התכונות.
יצירת קשר עם מודול הבסיס
כש-Android Studio יוצר מודול תכונות, הוא מוסיף את המאפיין android.dynamicFeatures
לקובץ build.gradle
של מודול הבסיס, וכך הופך את מודול התכונות לגלוי למודול הבסיס, כמו שמוצג בהמשך:
// In the base module’s build.gradle file.
android {
...
// Specifies feature modules that have a dependency on
// this base module.
dynamicFeatures = [":dynamic_feature", ":dynamic_feature2"]
}
בנוסף, Android Studio כולל את מודול הבסיס כתלות של מודול התכונה, כפי שמוצג בהמשך:
// In the feature module’s build.gradle file:
...
dependencies {
...
// Declares a dependency on the base module, ':app'.
implementation project(':app')
}
ציון כללי ProGuard נוספים
למרות שרק הגדרת ה-build של מודול הבסיס עשויה לאפשר כיווץ קוד בפרויקט האפליקציה, אתם יכולים לספק כללי ProGuard מותאמים אישית לכל מודול תכונות באמצעות המאפיין proguardFiles
, כמו בדוגמה שלמטה.
android.buildTypes {
release {
// You must use the following property to specify additional ProGuard
// rules for feature modules.
proguardFiles 'proguard-rules-dynamic-features.pro'
}
}
הערה: כללי ProGuard האלה משולבים עם כללים ממודולים אחרים (כולל מודול הבסיס) בזמן הבנייה. לכן, למרות שכל מודול של תכונה עשוי לציין קבוצה חדשה של כללים, הכללים האלה חלים על כל המודולים בפרויקט האפליקציה.
פריסת האפליקציה
במהלך פיתוח האפליקציה עם תמיכה במודולים של תכונות, אפשר לפרוס את האפליקציה למכשיר מחובר כמו שפורסים בדרך כלל, על ידי בחירה באפשרות Run > Run (הפעלה > הפעלה) מסרגל התפריטים (או על ידי לחיצה על Run (הפעלה) בסרגל הכלים).
אם פרויקט האפליקציה כולל מודול תכונות אחד או יותר, אפשר לבחור אילו תכונות לכלול כשפורסים את האפליקציה. כדי לעשות זאת, צריך לשנות את ההגדרה הקיימת להרצה/ניפוי באגים באופן הבא:
- בסרגל התפריטים, בוחרים באפשרות Run > Edit Configurations (הפעלה > עריכת הגדרות).
- בחלונית הימנית של תיבת הדו-שיח Run/Debug Configurations (הגדרות הרצה/ניפוי באגים), בוחרים את ההגדרה הרצויה של Android App (אפליקציית Android).
- בכרטיסייה כללי, בקטע תכונות דינמיות לפריסה, מסמנים את התיבה לצד כל מודול תכונות שרוצים לכלול כשפורסים את האפליקציה.
- לוחצים על אישור.
כברירת מחדל, Android Studio לא פורס את האפליקציה באמצעות קובצי App Bundle. במקום זאת, סביבת הפיתוח המשולבת (IDE) יוצרת ומתקינה במכשיר חבילות APK שעברו אופטימיזציה למהירות פריסה, ולא לגודל ה-APK. כדי להגדיר את Android Studio כך שיבצע build ויפרוס קובצי APK וחוויות מיידיות מתוך חבילת אפליקציה, צריך לשנות את הגדרות ההרצה או הניפוי באגים.
שימוש במודולים של פיצ'רים להפצה מותאמת אישית
יתרון ייחודי של מודולי תכונות הוא היכולת להתאים אישית את האופן והזמן שבהם תכונות שונות של האפליקציה מורדות למכשירים עם Android בגרסה 5.0 (רמת API 21) ומעלה. לדוגמה, כדי לצמצם את גודל ההורדה הראשוני של האפליקציה, אפשר להגדיר פיצ'רים מסוימים כך שההורדה שלהם תהיה על פי דרישה, או רק במכשירים שתומכים ביכולות מסוימות, כמו היכולת לצלם תמונות או תמיכה בתכונות של מציאות רבודה.
אמנם אתם מקבלים הורדות שעברו אופטימיזציה גבוהה כברירת מחדל כשאתם מעלים את האפליקציה כ-App Bundle, אבל כדי להשתמש באפשרויות מתקדמות יותר של אספקת תכונות שניתנות להתאמה אישית, צריך לבצע הגדרה נוספת ולחלק את התכונות של האפליקציה למודולים באמצעות מודולים של תכונות. כלומר, מודולים של תכונות מספקים את אבני הבניין ליצירת תכונות מודולריות שאפשר להגדיר כך שכל אחת מהן תורד לפי הצורך.
לדוגמה, אפליקציה שמאפשרת למשתמשים לקנות ולמכור מוצרים בזירת מסחר אונליין. אפשר להפוך כל אחת מהפונקציות הבאות של האפליקציה למודול תכונות נפרד:
- התחברות לחשבון ויצירת חשבון
- עיון ב-Marketplace
- העלאת פריט למכירה
- עיבוד תשלומים
בטבלה הבאה מפורטות אפשרויות המסירה השונות שנתמכות במודולים של תכונות, ומוסבר איך אפשר להשתמש בהן כדי לבצע אופטימיזציה של גודל ההורדה הראשוני של אפליקציית השוק לדוגמה.
אפשרות משלוח | התנהגות | תרחיש שימוש לדוגמה | תחילת העבודה |
---|---|---|---|
העברה בזמן ההתקנה | מודולים של תכונות שלא מגדירים אף אחת מאפשרויות המסירה
שמתוארות למעלה יורדו בזמן התקנת האפליקציה, כברירת מחדל. התנהגות כזו חשובה כי היא מאפשרת לכם לאמץ אפשרויות מתקדמות של משלוח בהדרגה. לדוגמה, אפשר להפיק תועלת מהפיכת התכונות של האפליקציה למודולריות ולהפעיל את האפשרות 'הורדה לפי דרישה' רק אחרי שמטמיעים באופן מלא את ההורדות לפי דרישה באמצעות ספריית Play Feature Delivery.
בנוסף, האפליקציה יכולה לבקש להסיר תכונות בשלב מאוחר יותר. לכן, אם אתם צריכים תכונות מסוימות בזמן התקנת האפליקציה, אבל לא אחרי כן, אתם יכולים לצמצם את גודל ההתקנה על ידי בקשה להסיר את התכונה מהמכשיר. |
אם באפליקציה יש פעילויות הדרכה מסוימות, כמו מדריך אינטראקטיבי
לרכישה ולמכירה של פריטים בשוק, אפשר לכלול את התכונה הזו
כברירת מחדל בהתקנת האפליקציה.
עם זאת, כדי להקטין את גודל האפליקציה אחרי ההתקנה, האפליקציה יכולה לבקש למחוק את התכונה אחרי שהמשתמש סיים את ההדרכה. |
הפיכת האפליקציה למודולרית באמצעות מודולים של תכונות שלא מוגדרות להם אפשרויות מתקדמות של הצגה.
כדי ללמוד איך להקטין את נפח האפליקציה המותקנת על ידי הסרת מודולים מסוימים של תכונות שהמשתמש כבר לא צריך, אפשר לקרוא את המאמר בנושא ניהול מודולים מותקנים. |
משלוח על פי דרישה | ההרשאה מאפשרת לאפליקציה לבקש ולהוריד מודולים של תכונות לפי הצורך. | אם רק 20% מהמשתמשים באפליקציית השוק מפרסמים פריטים למכירה, כדאי להפוך את הפונקציונליות של צילום תמונות, כולל תיאור הפריט ופרסום הפריט למכירה, לזמינה להורדה לפי דרישה. כך תוכלו לצמצם את גודל ההורדה הראשוני עבור רוב המשתמשים. כלומר, אתם יכולים להגדיר את מודול התכונות של פונקציית המכירה באפליקציה כך שהוא יורד רק כשמשתמש מביע עניין בהעלאת פריטים למכירה ב-Marketplace.
בנוסף, אם המשתמש לא מוכר יותר פריטים אחרי תקופה מסוימת, האפליקציה יכולה להקטין את הגודל שלה במכשיר על ידי בקשה להסיר את התכונה. |
יוצרים מודול תכונה ומגדירים העברה לפי דרישה. לאחר מכן, האפליקציה יכולה להשתמש בספריית העברת התכונות ב-Play כדי לבקש להוריד את המודול לפי דרישה. |
הצגה מותנית | מאפשר לציין דרישות מסוימות לגבי מכשיר המשתמש, כמו תכונות חומרה, אזור ושפה ורמת API מינימלית, כדי לקבוע אם תכונה מודולרית תורד בזמן התקנת האפליקציה. | אם לאפליקציית השוק יש פוטנציאל להגיע לקהל בינלאומי, יכול להיות שתצטרכו לתמוך באמצעי תשלום פופולריים רק באזורים מסוימים או בקרב קהלים מקומיים מסוימים. כדי לצמצם את גודל ההורדה הראשוני של האפליקציה, אפשר ליצור מודולים נפרדים של תכונות לעיבוד סוגים מסוימים של אמצעי תשלום, ולהגדיר שהם יותקנו באופן מותנה במכשיר של המשתמש בהתאם ללוקאל הרשום שלו. | יוצרים מודול של תכונות ומגדירים הפצה מותנית. |
משלוח מיידי | Google Play ללא התקנה
מאפשר למשתמשים ליצור אינטראקציה עם האפליקציה שלכם בלי להתקין אותה
במכשיר שלהם. במקום זאת, הם יכולים להתנסות באפליקציה באמצעות הלחצן 'רוצה לנסות?' בחנות Google Play או באמצעות כתובת URL שאתם יוצרים. הצורה הזו של הצגת תוכן מקלה עליכם להגביר את המעורבות באפליקציה שלכם.
בעזרת מסירה מיידית, אתם יכולים להשתמש ב-Google Play ללא התקנה כדי לאפשר למשתמשים ליהנות באופן מיידי מתכונות מסוימות באפליקציה שלכם בלי להתקין אותה. |
אפשר לשקול משחק שכולל את כמה הרמות הראשונות של המשחק במודול תכונות קל משקל. אפשר להפעיל את המודול הזה באופן מיידי כדי שהמשתמשים יוכלו לנסות את המשחק באופן מיידי באמצעות קישור לכתובת URL או לחצן 'לניסיון', בלי להתקין את האפליקציה. | יוצרים מודול של תכונות ומגדירים
הורדה מיידית. לאחר מכן, האפליקציה יכולה להשתמש בספריית העברת התכונות ב-Play כדי לבקש להוריד את המודול לפי דרישה.
חשוב לזכור: חלוקת התכונות של האפליקציה למודולים היא רק הצעד הראשון. כדי לתמוך ב-Google Play Instant, גודל ההורדה של מודול הבסיס של האפליקציה ותכונה מסוימת שמופעלת באפליקציה ללא התקנה צריך לעמוד במגבלות גודל מחמירות. מידע נוסף זמין במאמר איך מקטינים את הגודל של אפליקציה או משחק כדי לאפשר חוויות מיידיות. |
יצירת URI למשאב
אם רוצים לגשת למשאב שמאוחסן במודול תכונות באמצעות URI, כך יוצרים URI של משאב במודול תכונות באמצעות Uri.Builder()
:
Kotlin
val uri = Uri.Builder() .scheme(ContentResolver.SCHEME_ANDROID_RESOURCE) .authority(context.getPackageName()) // Look up the resources in the application with its splits loaded .appendPath(resources.getResourceTypeName(resId)) .appendPath(String.format("%s:%s", resources.getResourcePackageName(resId), // Look up the dynamic resource in the split namespace. resources.getResourceEntryName(resId) )) .build()
Java
String uri = Uri.Builder() .scheme(ContentResolver.SCHEME_ANDROID_RESOURCE) .authority(context.getPackageName()) // Look up the resources in the application with its splits loaded .appendPath(resources.getResourceTypeName(resId)) .appendPath(String.format("%s:%s", resources.getResourcePackageName(resId), // Look up the dynamic resource in the split namespace. resources.getResourceEntryName(resId) )) .build().toString();
כל חלק בנתיב למשאב נוצר בזמן הריצה, כדי להבטיח שמרחב השמות הנכון ייווצר אחרי טעינת קובצי ה-APK המפוצלים.
כדוגמה לאופן שבו נוצר ה-URI, נניח שיש לכם אפליקציה ומודולים של תכונות עם השמות הבאים:
- שם החבילה של האפליקציה:
com.example.my_app_package
- שם חבילת המשאבים של התכונה:
com.example.my_app_package.my_dynamic_feature
אם resId
בקטע הקוד שלמעלה מתייחס למשאב של קובץ גולמי בשם my_video במודול התכונה, אז הקוד resId
שלמעלה יפיק את הפלט הבא:Uri.Builder()
android.resource://com.example.my_app_package/raw/com.example.my_app_package.my_dynamic_feature:my_video
אחרי כן, האפליקציה יכולה להשתמש ב-URI הזה כדי לגשת למשאב של מודול התכונות.
כדי לאמת את הנתיבים ב-URI, אפשר להשתמש בכלי לניתוח קובצי APK כדי לבדוק את ה-APK של מודול התכונות ולקבוע את שם החבילה:

שיקולים לגבי מודולים של תכונות
מודולים של תכונות מאפשרים לשפר את מהירות הבנייה ואת מהירות הפיתוח, ולהתאים אישית את המסירה של התכונות באפליקציה כדי להקטין את גודל האפליקציה. עם זאת, יש כמה מגבלות ומקרים מיוחדים שכדאי לזכור כשמשתמשים במודולים של תכונות:
- התקנה של 50 מודולים של תכונות או יותר במכשיר יחיד, באמצעות מסירה מותנית או לפי דרישה, עלולה לגרום לבעיות בביצועים. מודולים בזמן ההתקנה שלא מוגדרים כמודולים שאפשר להסיר נכללים אוטומטית במודול הבסיסי, ונספרים רק כמודול תכונה אחד בכל מכשיר.
- מומלץ להגביל את מספר המודולים שמוגדרים כניתנים להסרה לאספקה בזמן ההתקנה ל-10 או פחות. אחרת, יכול להיות שזמן ההורדה וההתקנה של האפליקציה יתארך.
- רק מכשירים עם Android בגרסה 5.0 (רמת API 21) ומעלה תומכים בהורדה ובהתקנה של תכונות לפי דרישה. כדי להפוך את התכונה לזמינה בגרסאות קודמות של Android, מפעילים את האפשרות מיזוג כשיוצרים מודול תכונות.
- מפעילים את SplitCompat כדי שהאפליקציה תוכל לגשת למודולים של תכונות שהורדו ומועברים על פי דרישה.
- במודולים של תכונות לא צריך לציין פעילויות במניפסט עם הערך
true
שלandroid:exported
. הסיבה לכך היא שאין ערובה לכך שהמכשיר הוריד את מודול התכונות כשניסו להפעיל את הפעילות מאפליקציה אחרת. בנוסף, האפליקציה צריכה לוודא שתכונה מסוימת הורדה לפני שהיא מנסה לגשת לקוד ולמשאבים שלה. מידע נוסף זמין במאמר בנושא ניהול מודולים מותקנים. - כדי להשתמש ב-Play Feature Delivery, צריך לפרסם את האפליקציה באמצעות קובץ Android App Bundle. לכן, חשוב שתכירו את הבעיות הידועות שקשורות לקובצי Android App Bundle.
מסמך עזר בנושא מניפסט של מודול תכונות
כשיוצרים מודול תכונות חדש באמצעות Android Studio, סביבת הפיתוח המשולבת (IDE) כוללת את רוב מאפייני המניפסט שהמודול צריך כדי להתנהג כמו מודול תכונות. בנוסף, חלק מהמאפיינים מוזרקים על ידי מערכת הבנייה בזמן ההידור, כך שלא צריך לציין או לשנות אותם בעצמכם. בטבלה הבאה מתוארים מאפייני המניפסט שחשובים למודולים של תכונות.
מאפיין | תיאור |
---|---|
<manifest | זוהי אבן בניין
<manifest> טיפוסית. |
xmlns:dist="http://schemas.android.com/apk/distribution" | מציין dist: מרחב שמות חדש של XML שמתואר בהמשך. |
split="split_name" |
כש-Android Studio יוצר את חבילת האפליקציות, הוא כולל את המאפיין הזה בשבילכם. לכן, אין לכלול את המאפיין הזה או לשנות אותו בעצמכם.
השם של המודול, שהאפליקציה מציינת כשמבקשים מודול על פי דרישה באמצעות ספריית Play Feature Delivery. איך Gradle קובע את הערך של המאפיין הזה: כברירת מחדל, כשיוצרים מודול תכונות באמצעות Android Studio, סביבת הפיתוח המשולבת (IDE) משתמשת במה שמציינים כשם המודול כדי לזהות את המודול כפרויקט משנה של Gradle ב קובץ ההגדרות של Gradle.
כשיוצרים את קובץ ה-App Bundle, מערכת Gradle משתמשת ברכיב האחרון של נתיב הפרויקט המשני כדי להוסיף את מאפיין המניפסט הזה למניפסט של המודול. לדוגמה, אם יוצרים מודול תכונות חדש בספרייה |
android:isFeatureSplit="true | false"> |
כש-Android Studio יוצר את חבילת ה-App Bundle, הוא כולל את המאפיין הזה בשבילכם. לכן, לא כדאי לכלול את המאפיין הזה או לשנות אותו באופן ידני.
מציין שהמודול הזה הוא מודול תכונות.
במניפסטים של מודול הבסיס ובקובצי ה-APK של ההגדרות, המאפיין הזה מושמט או מוגדר לערך |
<dist:module | המאפיינים האלה קובעים איך המודול נארז ומופץ כקובצי APK. |
dist:instant="true | false" |
מציין אם המודול צריך להיות זמין דרך Google Play ללא התקנה כחוויה מיידית.
אם האפליקציה כוללת מודול תכונות אחד או יותר שאפשר להפעיל ללא התקנה, צריך להפעיל ללא התקנה גם את מודול הבסיס. כשמשתמשים ב-Android Studio בגרסה 3.5 ואילך, סביבת הפיתוח המשולבת (IDE) עושה את זה בשבילכם כשיוצרים מודול תכונות עם הפעלה מיידית. אי אפשר להגדיר את רכיב ה-XML הזה לערך |
dist:title="@string/feature_name"> |
מציינת כותרת של המודול שמוצגת למשתמש. לדוגמה, יכול להיות שהשם הזה יוצג במכשיר כשמבקשים אישור להורדה.
צריך לכלול את משאב המחרוזת של הכותרת הזו בקובץ |
<dist:fusing dist:include="true | false" /> |
ההגדרה קובעת אם לכלול את המודול בקובצי APK מרובים שמטרגטים מכשירים עם Android מגרסה 4.4 (API level 20) ומטה.
בנוסף, כשמשתמשים ב-
|
<dist:delivery> | האפשרות הזו כוללת אפשרויות להתאמה אישית של מסירת מודולים, כמו שמוצג בהמשך. חשוב לזכור שכל מודול תכונות צריך להגדיר רק סוג אחד של אפשרויות משלוח מותאמות אישית. |
<dist:install-time> |
מציין שהמודול צריך להיות זמין בזמן ההתקנה. זוהי התנהגות ברירת המחדל של מודולים של תכונות שלא מציינים סוג אחר של אפשרות הצגה בהתאמה אישית.
מידע נוסף על הורדות בזמן ההתקנה זמין במאמר בנושא הגדרת מסירה בזמן ההתקנה. בצומת הזה אפשר גם לציין תנאים שמגבילים את המודול למכשירים שעומדים בדרישות מסוימות, כמו תכונות המכשיר, המדינה של המשתמש או רמת API מינימלית. מידע נוסף על הגדרת משלוח מותנה |
<dist:removable dist:value="true | false" /> |
אם לא מגדירים את האפשרות הזו או מגדירים אותה לערך כשהערך של ברירת המחדל היא הערה: התכונה הזו זמינה רק כשמשתמשים בתוסף Android Gradle מגרסה 4.2 ואילך, או כשמשתמשים ב-bundletool מגרסה 1.0 משורת הפקודה. |
</dist:install-time> | |
<dist:on-demand /> |
המדיניות מציינת שהמודול צריך להיות זמין להורדה על פי דרישה. כלומר, המודול לא זמין בזמן ההתקנה, אבל האפליקציה יכולה לבקש להוריד אותו מאוחר יותר.
מידע נוסף על הורדות על פי דרישה זמין במאמר בנושא הגדרת משלוח על פי דרישה. |
</dist:delivery> | |
</dist:module> | |
<application
android:hasCode="true | false"> ... </application> |
אם מודול התכונות לא יוצר קובצי DEX – כלומר, הוא לא מכיל קוד שעובר הידור לפורמט קובץ DEX – צריך לבצע את הפעולות הבאות (אחרת, יכול להיות שתקבלו שגיאות בזמן הריצה):
|
... </manifest> |
מקורות מידע נוספים
כדי לקבל מידע נוסף על השימוש במודולים של תכונות, אפשר לעיין במקורות המידע הבאים.
פוסטים בבלוג
- תכונות חדשות שיעזרו לכם לפתח את העסק שלכם ב-Google Play, להשיק אותו ולהרחיב אותו
- העדכונים האחרונים של Android App Bundle, כולל API של שפות נוספות
- Patchwork Plaid — A modularization story
סרטונים
- התאמה אישית של תהליך המסירה באמצעות App Bundle ושיתוף קל של גרסאות build לבדיקה
- כלים חדשים לאופטימיזציה של גודל האפליקציה ולהגדלת מספר ההתקנות ב-Google Play
תנאים והגבלות ובטיחות נתונים
הגישה לספריית Play Feature Delivery או השימוש בה מבטאים את הסכמתכם לתנאים ולהגבלות של ערכת פיתוח התוכנה Play Core. כדי לקבל גישה לספרייה, עליך לקרוא ולהבין את כל התנאים וההגבלות ותנאי המדיניות החלים.
אבטחת נתונים
ספריות Play Core הן ממשק זמן הריצה של האפליקציה עם חנות Google Play. לכן, כשמשתמשים ב-Play Core באפליקציה, חנות Play מפעילה תהליכים משלה, כולל טיפול בנתונים בהתאם לתנאים ולהגבלות של Google Play. בהמשך מוסבר איך ספריות הליבה של Google Play מטפלות בנתונים כדי לעבד בקשות ספציפיות מהאפליקציה.
Additional languages API
נתונים שנאספים על השימוש | רשימת השפות המותקנות |
מטרת איסוף הנתונים | הנתונים שנאספים משמשים להצגת גרסאות שונות של האפליקציה בשפות שונות ולשמירה על השפות המותקנות אחרי עדכון האפליקציה. |
הצפנת נתונים | הנתונים מוצפנים. |
שיתוף נתונים | הנתונים לא מועברים לצדדים שלישיים. |
מחיקת נתונים | הנתונים נמחקים אחרי תקופת שמירה קבועה. |
הפצת פיצ'רים ב-Play
נתונים שנאספים על השימוש |
מטא-נתונים של המכשיר גרסת האפליקציה |
מטרת איסוף הנתונים | הנתונים שנאספים משמשים להצגת המודול הנכון במכשיר ולשמירה של המודולים המותקנים אחרי עדכון, גיבוי ושחזור. |
הצפנת נתונים | הנתונים מוצפנים. |
שיתוף נתונים | הנתונים לא מועברים לצדדים שלישיים. |
מחיקת נתונים | הנתונים נמחקים אחרי תקופת שמירה קבועה. |
אנחנו משתדלים להתנהל בשקיפות רבה ככל האפשר, אבל רק אתם אחראים להחליט איך לענות על השאלות בטופס אבטחת הנתונים של Google Play בנוגע לאיסוף הנתונים של משתמשי הקצה, לשיתוף הנתונים האלה ולנוהלי האבטחה באפליקציה.