- תחביר:
<application android:allowTaskReparenting=["true" | "false"] android:allowBackup=["true" | "false"] android:allowClearUserData=["true" | "false"] android:allowCrossUidActivitySwitchFromBelow=["true" | "false"] android:allowNativeHeapPointerTagging=["true" | "false"] android:appCategory=["accessibility" | "audio" | "game" | "image" | "maps" | "news" | "productivity" | "social" | "video"] android:backupAgent="string" android:backupInForeground=["true" | "false"] android:banner="drawable resource" android:dataExtractionRules="string resource" android:debuggable=["true" | "false"] android:description="string resource" android:enabled=["true" | "false"] android:enabledOnBackInvokedCallback=["true" | "false"] android:extractNativeLibs=["true" | "false"] android:fullBackupContent="string" android:fullBackupOnly=["true" | "false"] android:gwpAsanMode=["always" | "never"] android:hasCode=["true" | "false"] android:hasFragileUserData=["true" | "false"] android:hardwareAccelerated=["true" | "false"] android:icon="drawable resource" android:isGame=["true" | "false"] android:isMonitoringTool=["parental_control" | "enterprise_management" | "other"] android:killAfterRestore=["true" | "false"] android:largeHeap=["true" | "false"] android:label="string resource" android:logo="drawable resource" android:manageSpaceActivity="string" android:name="string" android:networkSecurityConfig="xml resource" android:permission="string" android:persistent=["true" | "false"] android:process="string" android:restoreAnyVersion=["true" | "false"] android:requestLegacyExternalStorage=["true" | "false"] android:requiredAccountType="string" android:resizeableActivity=["true" | "false"] android:restrictedAccountType="string" android:supportsRtl=["true" | "false"] android:taskAffinity="string" android:testOnly=["true" | "false"] android:theme="resource or theme" android:uiOptions=["none" | "splitActionBarWhenNarrow"] android:usesCleartextTraffic=["true" | "false"] android:vmSafeMode=["true" | "false"] > . . . </application>
- נכללים ב:
<manifest>
- יכול להכיל:
<activity>
<activity-alias>
<meta-data>
<service>
<receiver>
<profileable>
<provider>
<uses-library>
<uses-native-library>
- description:
ההצהרה של האפליקציה. הרכיב הזה מכיל רכיבי משנה שמצהירים על כל אחד מרכיבי האפליקציה, ויש לו מאפיינים שיכולים להשפיע על כל הרכיבים.
למאפיינים רבים מהם, כמו
icon
,label
,permission
,process
,taskAffinity
ו-allowTaskReparenting
, מוגדרים ערכים שמוגדרים כברירת מחדל למאפיינים התואמים של רכיבי הרכיבים. אחרים, כמוdebuggable
,enabled
,description
ו-allowClearUserData
, מגדירים ערכים לאפליקציה כולה ולא משתנים על ידי הרכיבים.- מאפיינים
android:allowTaskReparenting
- האם פעילויות שהאפליקציה מגדירה יכולות לעבור מהמשימה שהפעילה אותן למשימה שיש להן קשר אליה בפעם הבאה שהמשימה הזו תוצג בחזית. הערך הוא
"true"
אם הם יכולים לזוז, ו-"false"
אם הם חייבים להישאר במשימה שבה הם התחילו. ערך ברירת המחדל הוא"false"
.לרכיב
<activity>
יש מאפייןallowTaskReparenting
משלו שיכול לשנות את הערך שהוגדר כאן. android:allowBackup
האם לאפשר לאפליקציה להשתתף בתשתית הגיבוי והשחזור. אם המאפיין הזה מוגדר לערך
"false"
, אף פעם לא מתבצע גיבוי או שחזור של האפליקציה, גם לא על ידי גיבוי מלא של המערכת, שבמקרה אחר גורם לכל נתוני האפליקציה להישמר באמצעותadb
. ערך ברירת המחדל של המאפיין הזה הוא"true"
.הערה: באפליקציות שמטרגטות ל-Android 12 (רמת API 31) ואילך, ההתנהגות הזו משתנה. במכשירים של יצרני מכשירים מסוימים, אי אפשר להשבית את ההעברה של קבצים מהאפליקציה ממכשיר למכשיר.
עם זאת, אפשר להשבית את הגיבוי והשחזור של קבצים באפליקציה שמבוססים על ענן על ידי הגדרת הערך
"false"
למאפיין הזה, גם אם האפליקציה מטרגטת ל-Android 12 (רמת API 31) ואילך.מידע נוסף זמין בקטע גיבוי ושחזור בדף, שבו מתוארים שינויים בהתנהגות של אפליקציות שמטרגטות את Android 12 (רמת API 31) ואילך.
android:allowClearUserData
האם לאפשר לאפליקציה לאפס את נתוני המשתמש. הנתונים האלה כוללים דגלים, כמו העובדה שהמשתמש ראה טיפים מבוא, וגם הגדרות והעדפות שהמשתמש יכול להתאים אישית. ערך ברירת המחדל של המאפיין הזה הוא
"true"
.הערה: רק אפליקציות שנכללות בתמונת המערכת יכולות להצהיר על המאפיין הזה באופן מפורש. אפליקציות של צד שלישי לא יכולות לכלול את המאפיין הזה בקובצי המניפסט שלהן.
מידע נוסף זמין במאמר סקירה כללית על גיבוי נתונים.
android:allowCrossUidActivitySwitchFromBelow
האפשרות הזו קובעת אם הפעילויות שמופיעות מתחת לפעילות הזו במשימה יכולות גם להפעיל פעילויות אחרות או לסיים את המשימה.
החל מרמה
Build.VERSION_CODES.VANILLA_ICE_CREAM
של Target SDK, יכול להיות שאפליקציות לא יוכלו להתחיל פעילויות חדשות או לסיים את המשימות שלהן, אלא אם הפעילות העליונה של המשימה הזו שייכת לאותו מזהה משתמש (UID) מטעמי אבטחה.הגדרת הדגל הזה ל-
true
תאפשר לאפליקציה שמפעילה את הפעילות להתעלם מההגבלה אם הפעילות הזו נמצאת בראש הרשימה. אפליקציות שתואמות למזהה הפעילות הזו תמיד פטורות.מידע נוסף זמין במאמר הפעלות של פעילות מאובטחת ברקע.
android:allowNativeHeapPointerTagging
האם האפליקציה מפעילה את התכונה 'תיוג של מצביע אשפה'. ערך ברירת המחדל של המאפיין הזה הוא
"true"
.הערה: השבתת התכונה הזו לא פותרת את הבעיה הבסיסית בקוד. יכול להיות שמכשירי חומרה עתידיים לא יתמכו בתג המניפסט הזה.
מידע נוסף זמין במאמר הפניות מתויגות.
android:appCategory
הצהרה על הקטגוריה של האפליקציה הזו. הקטגוריות משמשות לקבץ כמה אפליקציות יחד לקבוצות בעלות משמעות, למשל כאשר מסכם את השימוש בסוללה, ברשת או בדיסק. כדאי להגדיר את הערך הזה רק לאפליקציות שמתאימות לאחת מהקטגוריות הספציפיות.
הערך חייב להיות אחד מהערכים הקבועים הבאים.
ערך תיאור accessibility
אפליקציות שהן בעיקר אפליקציות נגישות, כמו קוראי מסך. audio
אפליקציות שפועלות בעיקר עם אודיו או מוזיקה, כמו נגני מוזיקה. game
אפליקציות שהן בעיקר משחקים. image
אפליקציות שעובדות בעיקר עם תמונות, כמו אפליקציות מצלמה או גלריה. maps
אפליקציות שמהוות בעיקר אפליקציות מפות, כמו אפליקציות ניווט. news
אפליקציות שהן בעיקר אפליקציות חדשות, כמו אפליקציות של עיתונים, מגזינים או ספורט. productivity
אפליקציות שמשמשות בעיקר לשיפור הפרודוקטיביות, כמו אחסון בענן או אפליקציות למקום העבודה. social
אפליקציות שהן בעיקר אפליקציות חברתיות, כמו אפליקציות להעברת הודעות, תקשורת, אימייל או רשתות חברתיות. video
אפליקציות שפועלות בעיקר עם סרטונים או סרטים, כמו אפליקציות וידאו בסטרימינג. android:backupAgent
- השם של המחלקה שמטמיעה את סוכן הגיבוי של האפליקציה, תת-מחלקה של
BackupAgent
. ערך המאפיין הוא שם מחלקה מלא, למשל"com.example.project.MyBackupAgent"
. עם זאת, כקיצור דרך, אם התו הראשון בשם הוא נקודה, למשל".MyBackupAgent"
, הוא מצורף לשם החבילה שצוין ברכיב<manifest>
.אין ברירת מחדל. השם צריך להיות ספציפי.
android:backupInForeground
- מציין שאפשר לבצע באפליקציה הזו פעולות של גיבוי אוטומטי גם אם היא נמצאת במצב שדומה למצב חזית. המערכת משביתה אפליקציה במהלך פעולת הגיבוי האוטומטי, לכן צריך להשתמש במאפיין הזה בזהירות. הגדרת הדגל הזה לערך
"true"
עשויה להשפיע על התנהגות האפליקציה בזמן שהיא פעילה.ערך ברירת המחדל הוא
"false"
, כלומר מערכת ההפעלה נמנעת מגיבוי של האפליקציה בזמן שהיא פועלת בחזית, למשל אפליקציית מוזיקה שמפעילה מוזיקה באופן פעיל באמצעות שירות במצבstartForeground()
. android:banner
- משאב שניתן לשרטוט שמספק באנר גרפי מורחב לפריט המשויך. משתמשים בתג
<application>
כדי לספק באנר ברירת מחדל לכל הפעילויות באפליקציה, או בתג<activity>
כדי לספק באנר לפעילות ספציפית.המערכת משתמשת בבאנר כדי לייצג אפליקציה במסך הבית של Android TV. לכן, צריך לציין את הערך הזה רק לאפליקציות עם פעילות שמטפלת בכוונה
CATEGORY_LEANBACK_LAUNCHER
.המאפיין הזה מוגדר כהפניה למשאב drawable שמכיל את התמונה, לדוגמה
"@drawable/banner"
. אין באנר ברירת מחדל.מידע נוסף זמין במאמר הצגת באנר במסך הבית.
android:dataExtractionRules
אפליקציות יכולות להגדיר את המאפיין הזה למשאב XML שבו הן מציינות את הכללים שקובעים אילו קבצים וספריות אפשר להעתיק מהמכשיר במסגרת פעולות גיבוי או העברה.
מידע על הפורמט של קובץ ה-XML זמין במאמר גיבוי ושחזור.
android:debuggable
- אם אפשר לנפות באגים באפליקציה, גם כשהיא פועלת במכשיר במצב משתמש. הערך הוא
"true"
אם אפשר, ו-"false"
אם לא. ערך ברירת המחדל הוא"false"
. android:description
- טקסט על האפליקציה שגלוי למשתמשים, ארוך יותר ותיאורי יותר מתווית האפליקציה. הערך מוגדר כהפניה למשאב מחרוזת. בניגוד לתווית, הוא לא יכול להיות מחרוזת גולמית. אין ערך ברירת מחדל.
android:enabled
- האם מערכת Android יכולה ליצור רכיבים של האפליקציה. הערך הוא
"true"
אם אפשר, ו-"false"
אם לא. אם הערך הוא"true"
, המאפייןenabled
של כל רכיב קובע אם הרכיב הזה מופעל. אם הערך הוא"false"
, הוא מבטל את הערכים הספציפיים לרכיבים וכל הרכיבים מושבתים.ערך ברירת המחדל הוא
"true"
. android:enableOnBackInvokedCallback
- הדגל הזה מאפשר לבטל את ההסכמה לשימוש באנימציות מערכת חזויות ברמת האפליקציה.
ההגדרה
android:enableOnBackInvokedCallback=false
משביתה את האנימציות החזויות של החזרה אחורה ברמת הפעילות או ברמת האפליקציה, בהתאם למיקום שבו מגדירים את התג, ומורה למערכת להתעלם מקריאות ל-API של פלטפורמתOnBackInvokedCallback
. android:extractNativeLibs
- המאפיין הזה מציין אם מנהל החבילות מחלץ ספריות מקומיות מ-APK למערכת הקבצים. אם הערך מוגדר כ-
"false"
, הספריות המקומיות מאוחסנות ב-APK ללא דחיסה. יכול להיות שחבילת ה-APK תהיה גדולה יותר, אבל האפליקציה תיטען מהר יותר כי הספריות נטענות ישירות מה-APK בזמן הריצה.ערך ברירת המחדל של
extractNativeLibs
תלוי ב-minSdkVersion
ובגרסת AGP שבה אתם משתמשים. ברוב המקרים, התנהגות ברירת המחדל היא ככל הנראה מה שאתם רוצים, ואין צורך להגדיר את המאפיין הזה באופן מפורש. android:fullBackupContent
- המאפיין הזה מפנה לקובץ XML שמכיל כללי גיבוי מלאים לגיבוי אוטומטי.
הכללים האלה קובעים אילו קבצים יגובו. למידע נוסף, ראו תחביר ההגדרה של XML לגיבוי האוטומטי.
המאפיין הזה הוא אופציונלי. אם לא מציינים את האפשרות הזו, כברירת מחדל, הגיבוי האוטומטי כולל את רוב הקבצים של האפליקציה. מידע נוסף זמין במאמר קבצים שמגובים.
android:fullBackupOnly
- המאפיין הזה מציין אם להשתמש בגיבוי אוטומטי במכשירים שבהם הוא זמין. אם הערך מוגדר כ-
"true"
, האפליקציה מבצעת גיבוי אוטומטי כשהיא מותקנת במכשיר עם Android בגרסה 6.0 ואילך (רמת API 23). במכשירים ישנים יותר, האפליקציה מתעלמת מהמאפיין הזה ומבצעת גיבויים של מפתחות/ערכים.ערך ברירת המחדל הוא
"false"
. android:gwpAsanMode
- המאפיין הזה מציין אם להשתמש ב-GWP-ASan, תכונה של מנהל זיכרון נייטיב שעוזרת למצוא באגים מסוג use-after-free ו-heap-buffer-overflow.
ערך ברירת המחדל הוא
"never"
. android:hasCode
- האם האפליקציה מכילה קוד DEX – כלומר קוד שמשתמש בשפת התכנות Kotlin או Java.
הערך הוא
"true"
אם כן ו-"false"
אם לא. כשהערך הוא"false"
, המערכת לא מנסה לטעון קוד של אפליקציה בזמן ההפעלה של הרכיבים. ערך ברירת המחדל הוא"true"
.אם האפליקציה כוללת קוד מקורי (C/C++), אבל לא קוד DEX, צריך להגדיר את הערך הזה כ-
"false"
. אם הערך מוגדר ל-"true"
כשקובץ ה-APK לא מכיל קוד DEX, יכול להיות שהאפליקציה לא תיטען.המאפיין הזה צריך להביא בחשבון קוד שכלול באפליקציה באמצעות יחסי תלות. אם האפליקציה תלויה ב-AAR שמשתמש בקוד Java/Kotlin, או ישירות ב-JAR, הערך של
app:hasCode
חייב להיות"true"
או להימחק, כי זו ברירת המחדל.לדוגמה, יכול להיות שהאפליקציה תתמוך בהעברת תכונות של Play ותכלול מודולים של תכונות שלא יוצרים קובצי DEX, שהם קוד בייט שעובר אופטימיזציה לפלטפורמת Android. אם כן, צריך להגדיר את המאפיין הזה ל-
"false"
בקובץ המניפסט של המודול כדי למנוע שגיאות זמן ריצה. android:hasFragileUserData
- האם להציג למשתמש בקשה לשמור את נתוני האפליקציה כשהמשתמש מנתק את האפליקציה. ערך ברירת המחדל הוא
"false"
. android:hardwareAccelerated
- האם עיבוד מואץ של חומרה מופעל לכל הפעילויות והתצוגות באפליקציה הזו. הערך הוא
"true"
אם התכונה מופעלת ו-"false"
אם היא לא מופעלת. ערך ברירת המחדל הוא"true"
אם מגדירים אתminSdkVersion
או אתtargetSdkVersion
לערך"14"
ומעלה. אחרת, הערך הוא"false"
.החל מ-Android 3.0 (רמת API 11), עיבוד גרפי של OpenGL שמואץ בחומרה זמין לאפליקציות כדי לשפר את הביצועים של פעולות גרפיקה דו-ממדיות נפוצות רבות. כשמפעילים את המרת הפורמט המואצת בחומרה, רוב הפעולות ב-Canvas, Paint, Xfermode, ColorFilter, Shader ו-Camera מואצות.
התוצאה היא אנימציות חלקות יותר, גלילה חלקה יותר ותגובה מהירה יותר באופן כללי, גם באפליקציות שלא משתמשות באופן מפורש בספריות OpenGL של המסגרת.
לא כל הפעולות של OpenGL 2D מואצות. אם מפעילים את המרת הפורמט המואצת בחומרה, צריך לבדוק את האפליקציה כדי לוודא שהיא יכולה להשתמש במרת הפורמט ללא שגיאות.
מידע נוסף זמין במדריך האצת חומרה.
android:icon
- סמל של האפליקציה כולה וסמל ברירת המחדל של כל אחד מהרכיבים של האפליקציה. אפשר לעיין במאפייני
icon
הנפרדים של הרכיבים<activity>
,<activity-alias>
,<service>
,<receiver>
ו-<provider>
.המאפיין הזה מוגדר כהפניה למשאב שאפשר לצייר שמכיל את התמונה, כמו
"@drawable/icon"
. אין סמל ברירת מחדל. android:isGame
- האם האפליקציה היא משחק. יכול להיות שהמערכת תקבץ יחד אפליקציות שמסווגות בתור משחקים או תציג אותן בנפרד מאפליקציות אחרות. ערך ברירת המחדל הוא
"false"
. android:isMonitoringTool
סימן שמציין שהאפליקציה הזו מיועדת למעקב אחרי אנשים אחרים.
הערה: אם האפליקציה מצהירה על המאפיין הזה במניפסט שלה, המפתח צריך לפעול בהתאם למדיניות בנושא תוכנות מעקב כדי לפרסם את האפליקציה ב-Google Play.
אין ערך ברירת מחדל. המפתח צריך לציין אחד מהערכים הבאים:
ערך תיאור "parental_control"
האפליקציה מיועדת לבקרת הורים ומיועדת במיוחד להורים שרוצים לשמור על הבטיחות של הילדים שלהם. "enterprise_management"
האפליקציה מיועדת לארגונים שרוצים לנהל מכשירים שחולקו לעובדים ולעקוב אחריהם. "other"
האפליקציה מיועדת לתרחיש לדוגמה שלא צוין בטבלה הזו. android:killAfterRestore
האם האפליקציה תסתיים אחרי שההגדרות שלה ישוחזרו במהלך פעולת שחזור מלאה של המערכת. פעולות שחזור של חבילה אחת אף פעם לא גורמות להשבתת האפליקציה. בדרך כלל, פעולות שחזור מלאות של המערכת מתבצעות רק פעם אחת, כשמגדירים את הטלפון בפעם הראשונה. בדרך כלל אין צורך להשתמש במאפיין הזה באפליקציות של צד שלישי.
ברירת המחדל היא
"true"
, כלומר אחרי שהאפליקציה מסיימת לעבד את הנתונים שלה במהלך שחזור מלא של המערכת, היא מסתיימת.android:largeHeap
האם התהליכים של האפליקציה נוצרים עם אשכול Dalvik גדול. המדיניות הזו חלה על כל התהליכים שנוצרו לאפליקציה. הוא חל רק על האפליקציה הראשונה שנטענת בתהליך. אם אתם משתמשים במזהה משתמש משותף כדי לאפשר לכמה אפליקציות להשתמש בתהליך, הן צריכות להשתמש באפשרות הזו באופן עקבי כדי למנוע תוצאות בלתי צפויות.
רוב האפליקציות לא זקוקות לכך, ובמקום זאת מתמקדות בהפחתת השימוש הכולל בזיכרון כדי לשפר את הביצועים. הפעלת האפשרות הזו לא מבטיחה גם עלייה קבועה בנפח הזיכרון הזמין, כי במכשירים מסוימים יש מגבלה על נפח הזיכרון הכולל שזמין.
כדי לשלוח שאילתה לגבי נפח הזיכרון הזמין בזמן הריצה, משתמשים בשיטות
getMemoryClass()
אוgetLargeMemoryClass()
.android:label
- תווית שקריאה למשתמש לאפליקציה כולה ותווית ברירת מחדל לכל אחד מרכיבי האפליקציה. אפשר לעיין במאפייני
label
הנפרדים של הרכיבים<activity>
,<activity-alias>
,<service>
,<receiver>
ו-<provider>
.התווית מוגדרת כהפניה למשאב מחרוזת, כדי שאפשר יהיה לבצע לה לוקליזציה כמו למחרוזות אחרות בממשק המשתמש. עם זאת, כדי להקל על הפיתוח של האפליקציה, אפשר להגדיר אותו גם כמחרוזת גולמית.
android:logo
- לוגו של האפליקציה כולה ולוגו ברירת המחדל לפעילויות.
המאפיין הזה מוגדר כהפניה למשאב שאפשר לצייר שמכיל את התמונה, כמו
"@drawable/logo"
. אין לוגו שמוגדר כברירת מחדל. android:manageSpaceActivity
- השם המלא של תת-הסוג
Activity
שהמערכת מפעילה כדי לאפשר למשתמשים לנהל את הזיכרון שהאפליקציה תופסת במכשיר. הפעילות מוצהרת גם באמצעות אלמנט<activity>
. android:name
- השם המלא של מחלקת המשנה
Application
שהוטמעה באפליקציה. כשמתחילים את תהליך הבקשה, היצירה של הכיתה הזו מתבצעת לפני היצירה של כל אחד מהרכיבים של האפליקציה.אפשר להשתמש גם בסוגי משנה. ברוב האפליקציות אין צורך באחד. אם אין תת-סוג, מערכת Android משתמשת במכונה של סוג הבסיס
Application
. android:networkSecurityConfig
השם של קובץ ה-XML שמכיל את הגדרת האבטחה ברשת של האפליקציה. הערך הוא הפניה לקובץ המשאב של ה-XML שמכיל את ההגדרה.
המאפיין הזה נוסף ברמת API 24.
android:permission
- השם של ההרשאה שנדרשת ללקוחות כדי לבצע אינטראקציה עם האפליקציה. המאפיין הזה הוא דרך נוחה להגדיר הרשאה שחלה על כל הרכיבים של האפליקציה. אפשר לשנות את הערך שלו על ידי הגדרת המאפיינים
permission
של הרכיבים השונים.מידע נוסף על הרשאות זמין בקטע הרשאות בסקירה הכללית על מניפסט האפליקציה ובטיפים לאבטחה.
android:persistent
- האם האפליקציה תמשיך לפעול כל הזמן. הערך הוא
"true"
אם כן, ו-"false"
אם לא. ערך ברירת המחדל הוא"false"
. בדרך כלל אפליקציות לא מגדירות את הדגל הזה. מצב העמידה מיועד רק לאפליקציות מערכת מסוימות. android:process
- השם של תהליך שבו פועלים כל הרכיבים של האפליקציה.
כל רכיב יכול לשנות את ברירת המחדל הזו על ידי הגדרת מאפיין
process
משלו.כברירת מחדל, Android יוצרת תהליך לאפליקציה כשצריך להריץ את הרכיב הראשון שלה. לאחר מכן, כל הרכיבים פועלים בתהליך הזה. שם תהליך ברירת המחדל תואם לשם החבילה שהוגדר על ידי הרכיב
<manifest>
.הגדרת המאפיין הזה לשם תהליך ששותף עם אפליקציה אחרת מאפשרת להריץ רכיבים של שתי האפליקציות באותו תהליך, אבל רק אם לשתי האפליקציות יש גם מזהה משתמש משותף והן חתומות על ידי אותו אישור.
אם השם שהוקצה למאפיין הזה מתחיל בנקודתיים (
:
), תהליך חדש, פרטי לאפליקציה, נוצר לפי הצורך. אם שם התהליך מתחיל באות קטנה, נוצר תהליך גלובלי בשם הזה. אפשר לשתף תהליך גלובלי עם אפליקציות אחרות, וכך לצמצם את השימוש במשאבים. android:restoreAnyVersion
- מציין שהאפליקציה מוכנה לנסות לשחזר כל קבוצת נתונים שגובו, גם אם הגיבוי נשמר בגרסה חדשה יותר של האפליקציה מזו שמותקנת כרגע במכשיר. הגדרת המאפיין הזה לערך
"true"
מאפשרת למנהל הגיבויים לנסות לבצע שחזור גם אם אי-התאמה בגרסאות מציינת שהנתונים לא תואמים. חשוב להשתמש באפשרות הזו בזהירות!ערך ברירת המחדל של המאפיין הזה הוא
"false"
. android:requestLegacyExternalStorage
-
האם האפליקציה רוצה לבטל את ההסכמה לנפח אחסון ייעודי לאפליקציות.
הערה: בהתאם לשינויים שקשורים למדיניות או לתאימות של האפליקציה, יכול להיות שהמערכת לא תעבד את בקשת הביטול הזו.
android:requiredAccountType
- הגדרת סוג החשבון הנדרש לאפליקציה כדי לפעול.
אם האפליקציה שלכם דורשת
Account
, הערך של המאפיין הזה חייב להתאים לסוג האימות של החשבון שבו האפליקציה משתמשת, כפי שמוגדר ב-AuthenticatorDescription
, למשל"com.google"
.ערך ברירת המחדל הוא null, והוא מציין שהאפליקציה יכולה לפעול ללא חשבונות.
מכיוון שפרופילים מוגבלים לא יכולים להוסיף חשבונות, ציון המאפיין הזה גורם לאפליקציה להיות לא זמינה מפרופיל מוגבל, אלא אם מגדירים גם את
android:restrictedAccountType
עם אותו ערך.זהירות: אם נתוני החשבון עלולים לחשוף מידע אישי מזהה, חשוב להצהיר על המאפיין הזה ולהשאיר את
android:restrictedAccountType
null, כדי שפרופילים מוגבלים לא יוכלו להשתמש באפליקציה כדי לגשת למידע אישי ששייך למשתמש הבעלים.המאפיין הזה נוסף ברמת API 18.
android:resizeableActivity
-
ההגדרה קובעת אם האפליקציה תומכת במצב חלונות מרובים. אפשר להגדיר את המאפיין הזה ברכיב
<activity>
או ברכיב<application>
.אם תגדירו את המאפיין הזה לערך
"true"
, המשתמש יוכל להפעיל את הפעילות במצבים של מסך מפוצל וצורה חופשית. אם מגדירים את המאפיין לערך"false"
, אי אפשר לבדוק את האפליקציה או לבצע אופטימיזציה שלה לסביבה עם כמה חלונות. המערכת עדיין יכולה להעביר את הפעילות למצב ריבוי חלונות עם החלת מצב תאימות.הגדרת המאפיין הזה ל-
"true"
לא מבטיחה שאין אפליקציות אחרות במצב 'חלונות מרובים' שגלויות במסך, כמו 'תמונה בתוך תמונה', או במסכים אחרים. לכן, הגדרת הדגל הזה לא אומרת שלאפליקציה יש גישה בלעדית למשאב.באפליקציות שמטרגטות ל-API ברמה 24 ואילך, ברירת המחדל היא
"true"
.אם האפליקציה שלכם מטרגטת רמת API 31 ואילך, המאפיין הזה פועל באופן שונה במסכים קטנים וגדולים:
- מסכים גדולים (sw >= 600dp): כל האפליקציות תומכות במצב 'ריבוי חלונות'. המאפיין מציין אם אפשר לשנות את הגודל של האפליקציה, ולא אם האפליקציה תומכת במצב של חלונות מרובים. אם הערך הוא
resizeableActivity="false"
, האפליקציה מועברת למצב תאימות לפי הצורך כדי להתאים למאפייני התצוגה. - מסכים קטנים (sw < 600dp): אם
resizeableActivity="true"
והרוחב המינימלי והגובה המינימלי של הפעילות הראשית עומדים בדרישות של חלונות מרובים, האפליקציה תומכת במצב חלונות מרובים. אם הערך הואresizeableActivity="false"
, האפליקציה לא תומכת במצב של חלונות מרובים, ללא קשר לרוחב ולגובה המינימליים של הפעילות.
הערה: יצרני המכשירים יכולים לשנות את ההתנהגות של API ברמה 31.
המאפיין הזה נוסף ברמת API 24.
הערה: הערך של פעילות הבסיס של המשימה חל על כל הפעילויות הנוספות שמופעלות במשימה. כלומר, אם אפשר לשנות את הגודל של פעילות הבסיס של המשימה, המערכת מתייחסת לכל הפעילויות האחרות במשימה כאל פעילויות שניתן לשנות את הגודל שלהן. אם אי אפשר לשנות את הגודל של פעילות הבסיס, אי אפשר לשנות את הגודל של הפעילויות האחרות במשימה.
- מסכים גדולים (sw >= 600dp): כל האפליקציות תומכות במצב 'ריבוי חלונות'. המאפיין מציין אם אפשר לשנות את הגודל של האפליקציה, ולא אם האפליקציה תומכת במצב של חלונות מרובים. אם הערך הוא
android:restrictedAccountType
- מציין את סוג החשבון שנדרש לאפליקציה הזו, ומציין שפרופילים מוגבלים יכולים לגשת לחשבונות כאלה ששייכים למשתמש הבעלים. אם האפליקציה שלכם דורשת
Account
ופרופילים מוגבלים יכולים לגשת לחשבונות של המשתמש הראשי, הערך של המאפיין הזה צריך להתאים לסוג מאמת החשבון שבו האפליקציה משתמשת, כפי שמוגדר ב-AuthenticatorDescription
, למשל"com.google"
.ערך ברירת המחדל הוא null, והוא מציין שהאפליקציה יכולה לפעול בלי חשבונות.
זהירות: ציון המאפיין הזה מאפשר לפרופילים מוגבלים להשתמש באפליקציה עם חשבונות ששייכים למשתמש הבעלים, וכך עלול להיחשף מידע אישי מזהה. אם החשבון עלול לחשוף פרטים אישיים, אל תשתמשו במאפיין הזה. במקום זאת, צריך להצהיר על המאפיין
android:requiredAccountType
כדי שהאפליקציה לא תהיה זמינה לפרופילים מוגבלים.המאפיין הזה נוסף ברמת API 18.
android:supportsRtl
הצהרה על כך שהאפליקציה תומכת בפריסות מימין לשמאל (RTL).
אם הערך של המאפיין הזה מוגדר כ-
"true"
והערך שלtargetSdkVersion
מוגדר כ-17 או יותר, המערכת מפעילה ממשקי API שונים ל-RTL ומשתמשת בהם כדי שהאפליקציה תוכל להציג פריסות RTL. אם הערך של המאפיין הזה מוגדר כ-"false"
או אם הערך שלtargetSdkVersion
מוגדר כ-16 או פחות, ממשקי ה-API ל-RTL מתעלמים או שאין להם השפעה, והאפליקציה פועלת באותו אופן ללא קשר לכיוון הפריסה שמשויך לבחירת האזור של המשתמש. כלומר, הפריסות תמיד מוצגות מימין לשמאל.ערך ברירת המחדל של המאפיין הזה הוא
"false"
.המאפיין הזה נוסף ברמת API 17.
android:taskAffinity
- שם של שיוך שחלה על כל הפעילויות באפליקציה, מלבד אלה שהגדירו שיוך שונה באמצעות המאפיינים שלהן
taskAffinity
. מידע נוסף זמין במאפיין הזה.כברירת מחדל, לכל הפעילויות באפליקציה יש את אותו שיוך. השם של ההתאמה הוא זהה לשם החבילה שהוגדר על ידי הרכיב
<manifest>
. android:testOnly
- הערך הזה מציין אם הבקשה מיועדת למטרות בדיקה בלבד. לדוגמה, יכול להיות שהיא חושפת פונקציונליות או נתונים מחוץ לעצמה שיכולים לגרום לחולשת אבטחה, אבל הם שימושיים לצורכי בדיקה. אפשר להתקין קובצי APK כאלה רק דרך
adb
. אי אפשר לפרסם אותו ב-Google Play.Android Studio מוסיף את המאפיין הזה באופן אוטומטי כשלוחצים על הפעלה .
android:theme
- הפניה למשאב סגנון שמגדיר עיצוב ברירת מחדל לכל הפעילויות באפליקציה. אפשר לשנות את ברירת המחדל של פעילויות ספציפיות על ידי הגדרת מאפייני
theme
משלהם. מידע נוסף זמין במאמר סגנונות ועיצובים. android:uiOptions
- אפשרויות נוספות לממשק המשתמש של פעילות. הערך צריך להיות אחד מהערכים הבאים:
ערך תיאור "none"
אין אפשרויות נוספות לממשק המשתמש. זוהי ברירת המחדל. "splitActionBarWhenNarrow"
הוספת סרגל בחלק התחתון של המסך כדי להציג פריטים של פעולות בסרגל האפליקציות, שנקרא גם סרגל הפעולות, כשאין מספיק מקום אופקי, למשל במצב לאורך במכשיר נייד. במקום מספר קטן של פעולות שיופיעו בסרגל האפליקציות בחלק העליון של המסך, סרגל האפליקציות יתחלק לקטע הניווט העליון ולסרגל התחתון של פעולות. כך יש מספיק מקום לפריטי הפעולה ולרכיבי הניווט והכותרת בחלק העליון. הפריטים בתפריט לא מחולקים בין שתי השורות. הם תמיד מופיעים יחד. מידע נוסף על סרגל האפליקציות זמין במאמר הוספת סרגל האפליקציות.
המאפיין הזה נוסף ברמת API 14.
android:usesCleartextTraffic
- הערך הזה מציין אם האפליקציה מתכוונת להשתמש בתנועה ברשת בפורמט טקסט ללא הצפנה, כמו HTTP ללא הצפנה.
ערך ברירת המחדל לאפליקציות שמטרגטות ל-API ברמה 27 ומטה הוא
"true"
. ברירת המחדל של אפליקציות שמטרגטות לרמת API 28 ומעלה היא"false"
.כשהמאפיין מוגדר כ-
"false"
, רכיבי הפלטפורמה, למשל, HTTP ו-FTP, DownloadManager
ו-MediaPlayer
, דוחים את הבקשות של האפליקציה להשתמש בתנועה בטקסט ללא הצפנה.מומלץ מאוד שגם ספריות של צד שלישי יפעלו בהתאם להגדרה הזו. הסיבה העיקרית להימנעות מתעבורת נתונים בטקסט ללא הצפנה היא חוסר הסודיות, האותנטיות וההגנה מפני פגיעה. תוקף ברשת יכול לצותת לנתונים המועברים וגם לשנות אותם בלי שיזהו אותו.
אנחנו עושים כמיטב יכולתנו כדי לפעול בהתאם לדגל הזה, אבל לא ניתן למנוע את כל תעבורת הנתונים בטקסט ללא הצפנה מאפליקציות ל-Android, בגלל רמת הגישה שהן מקבלות. לדוגמה, אין לצפות ש-
Socket
API יתייחס לדגל הזה, כי הוא לא יכול לקבוע אם התנועה שלו היא בטקסט ללא הצפנה.עם זאת, רוב התנועה ברשת מאפליקציות מטופלת על ידי רכיבים וסטאקים ברמה גבוהה יותר של הרשת, שיכולים לכבד את הדגל הזה על ידי קריאה שלו מ-
ApplicationInfo.flags
או מ-NetworkSecurityPolicy.isCleartextTrafficPermitted()
.הערה:
WebView
מתייחס למאפיין הזה באפליקציות שמטרגטות לרמת API 26 ואילך.במהלך פיתוח האפליקציה, אפשר להשתמש ב-StrictMode כדי לזהות תנועה בטקסט ללא הצפנה מהאפליקציה. למידע נוסף, ראו
StrictMode.VmPolicy.Builder.detectCleartextNetwork()
.המאפיין הזה נוסף ברמת API 23.
הדגל הזה מתעלם מ-Android 7.0 (רמת API 24) ואילך אם יש הגדרה של אבטחת הרשת ב-Android.
android:vmSafeMode
- הערך הזה מציין אם האפליקציה רוצה שהמכונה הווירטואלית (VM) תפעל במצב בטוח. ערך ברירת המחדל הוא
"false"
.המאפיין הזה נוסף ברמת API 8, כאשר ערך של
"true"
השבית את המהדר של Dalvik בזמן אמת (JIT).המאפיין הזה הותאם ברמת API 22, שבה ערך
"true"
השבית את המהדר של ART מראש (AOT).
החל מגרסה AGP 4.2.0, האפשרות DSL
useLegacyPackaging
מחליפה את מאפיין המניפסטextractNativeLibs
. כדי להגדיר את אופן הדחיסה של ספריות מקוריות, משתמשים ב-useLegacyPackaging
בקובץbuild.gradle
של האפליקציה במקום ב-extractNativeLibs
בקובץ המניפסט. מידע נוסף זמין בהערות הגרסה שימוש ב-DSL כדי לארוז ספריות מורחבות מקומיות.- הופיע לראשונה:
- רמת API 1
- מידע נוסף:
<activity>
<service>
<receiver>
<provider>
דוגמאות התוכן והקוד שבדף הזה כפופות לרישיונות המפורטים בקטע רישיון לתוכן. Java ו-OpenJDK הם סימנים מסחריים או סימנים מסחריים רשומים של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2025-01-23 (שעון UTC).
[[["התוכן קל להבנה","easyToUnderstand","thumb-up"],["התוכן עזר לי לפתור בעיה","solvedMyProblem","thumb-up"],["סיבה אחרת","otherUp","thumb-up"]],[["חסרים לי מידע או פרטים","missingTheInformationINeed","thumb-down"],["התוכן מורכב מדי או עם יותר מדי שלבים","tooComplicatedTooManySteps","thumb-down"],["התוכן לא עדכני","outOfDate","thumb-down"],["בעיה בתרגום","translationIssue","thumb-down"],["בעיה בדוגמאות/בקוד","samplesCodeIssue","thumb-down"],["סיבה אחרת","otherDown","thumb-down"]],["עדכון אחרון: 2025-01-23 (שעון UTC)."],[],[]]