- תחביר:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="string" android:sharedUserId="string" android:sharedUserLabel="string resource" android:sharedUserMaxSdkVersion="integer" android:versionCode="integer" android:versionName="string" android:installLocation=["auto" | "internalOnly" | "preferExternal"] > ... </manifest>
- נכללים ב:
- none
- חייב לכלול:
<application>
- יכול להכיל:
<attribution>
<compatible-screens>
<instrumentation>
<permission>
<permission-group>
<permission-tree>
<queries>
<supports-gl-texture>
<supports-screens>
<uses-configuration>
<uses-feature>
<uses-permission>
<uses-permission-sdk-23>
<uses-sdk>
- description:
- רכיב הבסיס של קובץ
AndroidManifest.xml
. הוא חייב להכיל רכיב<application>
ולציין את המאפייניםxmlns:android
ו-package
. - מאפיינים:
-
xmlns:android
- הגדרת מרחב השמות של Android. המאפיין הזה תמיד מוגדר ל-
"http://schemas.android.com/apk/res/android"
. package
- הערך של המאפיין
package
בקובץ המניפסט של ה-APK מייצג את מזהה האפליקציה הייחודי של האפליקציה שלכם. הפורמט שלו הוא שם חבילת Java מלא לאפליקציית Android. השם יכול להכיל אותיות גדולות או קטנות, מספרים וקווים תחתונים ('_'). עם זאת, חלקים ספציפיים בשם החבילה יכולים להתחיל רק באותיות.חשוב לא לשנות את הערך של
package
, כי הפעולה הזו יוצרת למעשה אפליקציה חדשה. משתמשים בגרסה הקודמת של האפליקציה לא מקבלים עדכון ולא יכולים להעביר את הנתונים שלהם בין הגרסה הישנה לחדשה.במערכת ה-build שמבוססת על Gradle, החל מ-AGP 7.3, לא מגדירים את הערך
package
ישירות בקובץ המניפסט של המקור. למידע נוסף, ראו הגדרת מזהה האפליקציה. android:sharedUserId
-
הקבוע הזה הוצא משימוש החל מרמת API 29.
מזהי משתמשים משותפים גורמים להתנהגות לא ניתנת-לחיזוי במנהל החבילות. לכן, מומלץ מאוד לא להשתמש בהם, ויכול להיות שהם יוסרו בגרסה עתידית של Android. במקום זאת, כדאי להשתמש במנגנוני תקשורת מתאימים, כמו ספקי שירותים ותוכן, כדי לאפשר יכולת פעולה הדדית בין רכיבים משותפים. לא ניתן להסיר את הערך הזה מאפליקציות קיימות, כי אי אפשר לעבור ממזהה משתמש משותף. באפליקציות האלה, מוסיפים את הערךandroid:sharedUserMaxSdkVersion="32"
כדי להימנע משימוש במזהה משתמש משותף בהתקנות של משתמשים חדשים.השם של מזהה משתמש ב-Linux ששותף עם אפליקציות אחרות. כברירת מחדל, מערכת Android מקצה לכל אפליקציה מזהה משתמש ייחודי משלה. עם זאת, אם המאפיין הזה מוגדר לאותו ערך בשתי אפליקציות או יותר, לכל האפליקציות יהיה אותו מזהה, בתנאי שקבוצות האישורים שלהן זהות. אפליקציות עם אותו מזהה משתמש יכולות לגשת לנתונים של האפליקציות האחרות, ואם רוצים, גם לפעול באותו תהליך.
android:targetSandboxVersion
-
ארגז החול של היעד שבו האפליקציה הזו תשתמש. ככל שמספר הגרסה של ארגז החול גבוה יותר, כך רמת האבטחה גבוהה יותר.
ערך ברירת המחדל שלו הוא
1
, אבל אפשר גם להגדיר אותו כ-2
. הגדרת המאפיין הזה ל-2
מעבירה את האפליקציה לארגז חול אחר של SELinux.ההגבלות הבאות חלות על ארגז חול ברמה 2:
- ערך ברירת המחדל של
usesCleartextTraffic
בהגדרות של אבטחת הרשת הוא false. - אסור לשתף את מזהה המשתמש.
באפליקציות Android Instant שמטרגטות את Android מגרסה 8.0 (רמת API 26) ואילך, הערך של המאפיין הזה מוגדר ל-
2
. אפשר להגדיר את רמת ארגז החול בגרסה המותקנת של האפליקציה לרמה1
פחות מגבילה. עם זאת, אם תעשו זאת, נתוני האפליקציה לא יישמרו מהאפליקציה המיידית לגרסה המותקנת של האפליקציה. כדי שהנתונים יישמרו מהאפליקציה המיידית לגרסה המותקנת, צריך להגדיר את ערך ארגז החול של האפליקציה המותקנת כ-2
.אחרי שמתקינים אפליקציה, אפשר לעדכן את ערך היעד שלה בסביבת החול רק לערך גבוה יותר. כדי לשדרג לאחור את הערך של תיבת החול של היעד, צריך להסיר את האפליקציה ולהחליף אותה בגרסה שהמניפסט שלה מכיל ערך נמוך יותר למאפיין הזה.
- ערך ברירת המחדל של
android:sharedUserLabel
-
הקבוע הזה הוצא משימוש החל מרמת API 29.
מזהי משתמשים משותפים גורמים להתנהגות לא ניתנת-לחיזוי במנהל החבילות. לכן, מומלץ מאוד לא להשתמש בהם, ויכול להיות שהם יוסרו בגרסה עתידית של Android. במקום זאת, כדאי להשתמש במנגנוני תקשורת מתאימים, כמו ספקי שירותים ותוכן, כדי לאפשר יכולת פעולה הדדית בין רכיבים משותפים. לא ניתן להסיר את הערך הזה מאפליקציות קיימות, כי אי אפשר להעביר מזהה משתמש משותף.תווית שקריאה למשתמש עבור מזהה המשתמש המשותף. התווית מוגדרת כהפניה למשאב מחרוזת. לא ניתן להשתמש במחרוזת גולמית.
המאפיין הזה הוצג ברמת API 3. המאפיין הזה רלוונטי רק אם גם המאפיין
sharedUserId
מוגדר. android:sharedUserMaxSdkVersion
-
מזהי משתמשים משותפים גורמים להתנהגות לא ודאית במנהל החבילות. לכן, מומלץ מאוד לא להשתמש בהם, ויכול להיות שהם יוסרו בגרסה עתידית של Android. במקום זאת, כדאי להשתמש במנגנוני תקשורת מתאימים, כמו ספקי שירותים ותוכן, כדי לאפשר יכולת פעולה הדדית בין רכיבים משותפים.
גרסת ה-SDK המקסימלית שבה המערכת עדיין משתמשת ב-
android:sharedUserId
. אם האפליקציה הותקנה לאחרונה במכשיר שבו פועלת גרסה של SDK גבוהה מהערך שצוין, האפליקציה תפעל כאילו אף פעם לא הגדרתם אתandroid:sharedUserId
.המאפיין הזה הוצג ברמת API 33. המאפיין הזה רלוונטי רק אם גם המאפיין
sharedUserId
מוגדר. android:versionCode
- מספר גרסה פנימי. המספר הזה משמש רק כדי לקבוע אם גרסה אחת עדכנית יותר מגרסה אחרת, כאשר מספרים גבוהים יותר מציינים גרסאות עדכניות יותר. זה לא מספר הגרסה שמוצג למשתמשים, שמוגדר על ידי המאפיין
versionName
.הערך מוגדר כמספר שלם חיובי שגדול מ-0. אפשר להגדיר אותו כרצונכם, כל עוד לכל גרסה עוקבת יש מספר גבוה יותר. לדוגמה, הוא יכול להיות מספר build, או שאפשר לתרגם מספר גרסה בפורמט x.y למספר שלם על ידי קידוד של x ו-y בנפרד ב-16 הביטים התחתונים והעליונים. לחלופין, אפשר להגדיל את המספר באחד בכל פעם שמתפרסמת גרסה חדשה.
android:versionName
- מספר הגרסה שמוצג למשתמשים. המאפיין הזה מוגדר כמחרוזת גולמית או כהפניה למשאב מחרוזת. המחרוזת לא משמשת למטרה אחרת מלבד להצגה למשתמשים. המאפיין
versionCode
מכיל את מספר הגרסה המשמעותי שמשמש באופן פנימי. android:installLocation
- מיקום ברירת המחדל להתקנת האפליקציה. אפשר להשתמש במחרוזות של מילות המפתח הבאות:
ערך תיאור "internalOnly"
האפליקציה מותקנת באחסון הפנימי של המכשיר בלבד. אם ההגדרה הזו מוגדרת, האפליקציה לעולם לא תותקן באחסון חיצוני, כמו כרטיס SD. אם נפח האחסון הפנימי מלא, המערכת לא מתקינה את האפליקציה. זוהי התנהגות ברירת המחדל אם לא מגדירים את android:installLocation
."auto"
אפשר להתקין את האפליקציה באחסון חיצוני, אבל כברירת מחדל המערכת מתקינה אותה באחסון הפנימי. אם האחסון הפנימי מלא, המערכת מתקינה אותו באחסון החיצוני. אחרי ההתקנה, המשתמש יכול להעביר את האפליקציה לאחסון פנימי או חיצוני דרך הגדרות המערכת. "preferExternal"
האפליקציה מעדיפה להתקין את עצמה באחסון חיצוני. אין ערובה שהמערכת תעבד את הבקשה הזו. יכול להיות שהאפליקציה תותקן באחסון הפנימי אם המדיה החיצונית לא זמינה או מלאה. אחרי ההתקנה, המשתמש יכול להעביר את האפליקציה לאחסון פנימי או חיצוני דרך הגדרות המערכת. הערה: כברירת מחדל, האפליקציה מותקנת באחסון הפנימי ולא ניתן להתקין אותה באחסון חיצוני, אלא אם מגדירים את המאפיין הזה כ-
"auto"
או כ-"preferExternal"
.כשאפליקציה מותקנת באחסון חיצוני:
- קובץ ה-APK נשמר באחסון החיצוני, אבל נתוני האפליקציה, כמו מסדי נתונים, עדיין נשמרים בזיכרון הפנימי של המכשיר.
- הקונטיינר שבו נשמר קובץ ה-APK מוצפן באמצעות מפתח שמאפשר לאפליקציה לפעול רק במכשיר שבו היא הותקנה. המשתמש לא יכול להעביר את כרטיס ה-SD למכשיר אחר ולהשתמש באפליקציות שמותקנות בכרטיס. אפשר להשתמש בכמה כרטיסי SD באותו מכשיר.
- אפשר להעביר את האפליקציה לאחסון הפנימי לפי בקשת המשתמש.
המשתמש יכול גם לבקש להעביר אפליקציה מהאחסון הפנימי לאחסון החיצוני. עם זאת, המערכת לא מאפשרת למשתמש להעביר את האפליקציה לאחסון חיצוני אם המאפיין הזה מוגדר כ-
"internalOnly"
, שהיא הגדרת ברירת המחדל.למידע נוסף על השימוש במאפיין הזה, כולל הסבר על שמירה על תאימות לאחור, ראו מיקום התקנת האפליקציה.
הושק ברמה: API 8.
- הופיע לראשונה:
- רמת API 1 לכל המאפיינים, אלא אם צוין אחרת בתיאור המאפיין.
- מידע נוסף:
-
<application>
<manifest>
דוגמאות התוכן והקוד שבדף הזה כפופות לרישיונות המפורטים בקטע רישיון לתוכן. Java ו-OpenJDK הם סימנים מסחריים או סימנים מסחריים רשומים של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2025-05-12 (שעון 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-05-12 (שעון UTC)."],[],[]]