page.title=應用程å¼å®£ç¤ºèªªæ˜Ž @jd:body <div id="qv-wrapper"> <div id="qv"> <h2>本文件內容</h2> <ol> <li><a href="#filestruct">宣示說明檔案çµæ§‹</a></li> <li><a href="#filec">檔案轉æ›</a> <li><a href="#filef">檔案功能</a> <ol> <li><a href="#ifs">æ„圖篩é¸å™¨</a></li> <li><a href="#iconlabel">圖示和標籤</a></li> <li><a href="#perms">權é™</a></li> <li><a href="#libs">程å¼åº«</a></li> </ol></li> </ol> </div> </div> <p> æ¯å€‹æ‡‰ç”¨ç¨‹å¼çš„æ ¹ç›®éŒ„éƒ½å¿…é ˆåŒ…å« AndroidManifest.xml 檔案 (å稱è¦ä¸€å—ä¸å·®)。 <span itemprop="description">宣示說明檔案å¯å‘ Android 系統顯示應用程å¼çš„基本資訊,也就是系統在執行該應用程å¼çš„任何程å¼ç¢¼ä¹‹å‰å¿…é ˆå…·å‚™çš„è³‡è¨Šã€‚ </span> 宣示說明å¯åŸ·è¡Œä¸‹åˆ—動作: </p> <ul> <li>為應用程å¼çš„ Java å°è£å‘½å。 å°è£å稱å¯ç•¶æˆæ‡‰ç”¨ç¨‹å¼çš„唯一è˜åˆ¥ç¢¼ä½¿ç”¨ã€‚</li> <li>æ述應用程å¼çš„元件 — 組æˆæ‡‰ç”¨ç¨‹å¼çš„ Activityã€æœå‹™ã€å»£æ’接收器和內容供應程å¼ã€‚ 為實作æ¯å€‹å…ƒä»¶çš„類別命å以åŠç™¼ä½ˆé¡žåˆ¥çš„功能 (例如,類別å¯è™•ç†çš„ {@link android.content.Intent Intent} 訊æ¯)。 這些宣告å¯è®“ Android 系統çžè§£å…ƒä»¶ç‚ºä½•ä»¥åŠå¯åœ¨å“ªäº›æƒ…æ³ä¸‹å•Ÿå‹•ã€‚ </li> <li>決定代管應用程å¼å…ƒä»¶çš„程åºã€‚</li> <li>宣告應用程å¼å¿…é ˆæ“有哪些權é™ï¼Œæ‰èƒ½å˜å– API å—ä¿è·çš„部分以åŠèˆ‡å…¶ä»–應用程å¼äº’動。 </li> <li>宣示說明亦å¯å®£å‘Šå…¶ä»–é …ç›®å¿…é ˆæ“有哪些權é™ï¼Œæ‰èƒ½èˆ‡æ‡‰ç”¨ç¨‹å¼çš„元件互動。 </li> <li>列出å¯åœ¨æ‡‰ç”¨ç¨‹å¼åŸ·è¡Œæ™‚æ供分æžå’Œå…¶ä»–資訊的 {@link android.app.Instrumentation} 類別。 åªæœ‰åœ¨æ‡‰ç”¨ç¨‹å¼é–‹ç™¼åŠæ¸¬è©¦å®Œæˆçš„情æ³ä¸‹ï¼Œå®£ç¤ºèªªæ˜Žä¸æ‰æœƒé¡¯ç¤ºé€™äº›å®£å‘Šï¼›é€™äº›å®£å‘Šæœƒåœ¨æ‡‰ç”¨ç¨‹å¼ç™¼ä½ˆä¹‹å‰ç§»é™¤ã€‚ </li> <li>宣告應用程å¼è¦æ±‚的最低 Android API 級別。 </li> <li>列出應用程å¼å¿…é ˆé€£çµçš„程å¼åº«ã€‚</li> </ul> <h2 id="filestruct">宣示說明檔案çµæ§‹</h2> <p> 下圖顯示宣示說明檔案的一般çµæ§‹å’Œå¯ç´å…¥å…¶ä¸çš„å…ƒç´ ã€‚ æ¯å€‹å…ƒç´ 和其所有屬性都會完全記錄在個別檔案ä¸ã€‚ 如è¦æŸ¥çœ‹ä»»ä¸€å…ƒç´ 的詳細資訊,åªè¦æŒ‰ä¸€ä¸‹åœ–表ä¸çš„å…ƒç´ å稱ã€åœ–表後方按å—æ¯é †åºåˆ—å‡ºçš„å…ƒç´ æ¸…å–®ï¼Œæˆ–åœ¨ä»–è™•æåŠçš„ä»»ä½•å…ƒç´ å稱。 </p> <pre> <?xml version="1.0" encoding="utf-8"?> <a href="{@docRoot}guide/topics/manifest/manifest-element.html"><manifest></a> <a href="{@docRoot}guide/topics/manifest/uses-permission-element.html"><uses-permission /></a> <a href="{@docRoot}guide/topics/manifest/permission-element.html"><permission /></a> <a href="{@docRoot}guide/topics/manifest/permission-tree-element.html"><permission-tree /></a> <a href="{@docRoot}guide/topics/manifest/permission-group-element.html"><permission-group /></a> <a href="{@docRoot}guide/topics/manifest/instrumentation-element.html"><instrumentation /></a> <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html"><uses-sdk /></a> <a href="{@docRoot}guide/topics/manifest/uses-configuration-element.html"><uses-configuration /></a> <!-- ##api level 3## --> <a href="{@docRoot}guide/topics/manifest/uses-feature-element.html"><uses-feature /></a> <!-- ##api level 4## --> <a href="{@docRoot}guide/topics/manifest/supports-screens-element.html"><supports-screens /></a> <!-- ##api level 4## --> <a href="{@docRoot}guide/topics/manifest/compatible-screens-element.html"><compatible-screens /></a> <!-- ##api level 9## --> <a href="{@docRoot}guide/topics/manifest/supports-gl-texture-element.html"><supports-gl-texture /></a> <!-- ##api level 11## --> <a href="{@docRoot}guide/topics/manifest/application-element.html"><application></a> <a href="{@docRoot}guide/topics/manifest/activity-element.html"><activity></a> <a href="{@docRoot}guide/topics/manifest/intent-filter-element.html"><intent-filter></a> <a href="{@docRoot}guide/topics/manifest/action-element.html"><action /></a> <a href="{@docRoot}guide/topics/manifest/category-element.html"><category /></a> <a href="{@docRoot}guide/topics/manifest/data-element.html"><data /></a> <a href="{@docRoot}guide/topics/manifest/intent-filter-element.html"></intent-filter></a> <a href="{@docRoot}guide/topics/manifest/meta-data-element.html"><meta-data /></a> <a href="{@docRoot}guide/topics/manifest/activity-element.html"></activity></a> <a href="{@docRoot}guide/topics/manifest/activity-alias-element.html"><activity-alias></a> <a href="{@docRoot}guide/topics/manifest/intent-filter-element.html"><intent-filter></a> . . . <a href="{@docRoot}guide/topics/manifest/intent-filter-element.html"></intent-filter></a> <a href="{@docRoot}guide/topics/manifest/meta-data-element.html"><meta-data /></a> <a href="{@docRoot}guide/topics/manifest/activity-alias-element.html"></activity-alias></a> <a href="{@docRoot}guide/topics/manifest/service-element.html"><service></a> <a href="{@docRoot}guide/topics/manifest/intent-filter-element.html"><intent-filter></a> . . . <a href="{@docRoot}guide/topics/manifest/intent-filter-element.html"></intent-filter></a> <a href="{@docRoot}guide/topics/manifest/meta-data-element.html"><meta-data/></a> <a href="{@docRoot}guide/topics/manifest/service-element.html"></service></a> <a href="{@docRoot}guide/topics/manifest/receiver-element.html"><receiver></a> <a href="{@docRoot}guide/topics/manifest/intent-filter-element.html"><intent-filter></a> . . . <a href="{@docRoot}guide/topics/manifest/intent-filter-element.html"></intent-filter></a> <a href="{@docRoot}guide/topics/manifest/meta-data-element.html"><meta-data /></a> <a href="{@docRoot}guide/topics/manifest/receiver-element.html"></receiver></a> <a href="{@docRoot}guide/topics/manifest/provider-element.html"><provider></a> <a href="{@docRoot}guide/topics/manifest/grant-uri-permission-element.html"><grant-uri-permission /></a> <a href="{@docRoot}guide/topics/manifest/meta-data-element.html"><meta-data /></a> <a href="{@docRoot}guide/topics/manifest/path-permission-element.html"><path-permission /></a> <a href="{@docRoot}guide/topics/manifest/provider-element.html"></provider></a> <a href="{@docRoot}guide/topics/manifest/uses-library-element.html"><uses-library /></a> <a href="{@docRoot}guide/topics/manifest/application-element.html"></application></a> <a href="{@docRoot}guide/topics/manifest/manifest-element.html"></manifest></a> </pre> <p> 下方按å—æ¯é †åºåˆ—出å¯å‡ºç¾åœ¨å®£ç¤ºèªªæ˜Žæª”案ä¸çš„æ‰€æœ‰å…ƒç´ ã€‚ åªæœ‰é€™äº›æ‰æ˜¯ç¬¦åˆè³‡æ ¼çš„å…ƒç´ ï¼Œæ‚¨ç„¡æ³•æ–°å¢žè‡ªå·±çš„å…ƒç´ æˆ–å±¬æ€§ã€‚ </p> <p style="margin-left: 2em"> <code><a href="{@docRoot}guide/topics/manifest/action-element.html"><action></a></code> <br/><code><a href="{@docRoot}guide/topics/manifest/activity-element.html"><activity></a></code> <br/><code><a href="{@docRoot}guide/topics/manifest/activity-alias-element.html"><activity-alias></a></code> <br/><code><a href="{@docRoot}guide/topics/manifest/application-element.html"><application></a></code> <br/><code><a href="{@docRoot}guide/topics/manifest/category-element.html"><category></a></code> <br/><code><a href="{@docRoot}guide/topics/manifest/data-element.html"><data></a></code> <br/><code><a href="{@docRoot}guide/topics/manifest/grant-uri-permission-element.html"><grant-uri-permission></a></code> <br/><code><a href="{@docRoot}guide/topics/manifest/instrumentation-element.html"><instrumentation></a></code> <br/><code><a href="{@docRoot}guide/topics/manifest/intent-filter-element.html"><intent-filter></a></code> <br/><code><a href="{@docRoot}guide/topics/manifest/manifest-element.html"><manifest></a></code> <br/><code><a href="{@docRoot}guide/topics/manifest/meta-data-element.html"><meta-data></a></code> <br/><code><a href="{@docRoot}guide/topics/manifest/permission-element.html"><permission></a></code> <br/><code><a href="{@docRoot}guide/topics/manifest/permission-group-element.html"><permission-group></a></code> <br/><code><a href="{@docRoot}guide/topics/manifest/permission-tree-element.html"><permission-tree></a></code> <br/><code><a href="{@docRoot}guide/topics/manifest/provider-element.html"><provider></a></code> <br/><code><a href="{@docRoot}guide/topics/manifest/receiver-element.html"><receiver></a></code> <br/><code><a href="{@docRoot}guide/topics/manifest/service-element.html"><service></a></code> <br/><code><a href="{@docRoot}guide/topics/manifest/supports-screens-element.html"><supports-screens></a></code> <!-- ##api level 4## --> <br/><code><a href="{@docRoot}guide/topics/manifest/uses-configuration-element.html"><uses-configuration></a></code> <!-- ##api level 3## --> <br/><code><a href="{@docRoot}guide/topics/manifest/uses-feature-element.html"><uses-feature></a></code> <!-- ##api level 4## --> <br/><code><a href="{@docRoot}guide/topics/manifest/uses-library-element.html"><uses-library></a></code> <br/><code><a href="{@docRoot}guide/topics/manifest/uses-permission-element.html"><uses-permission></a></code> <br/><code><a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html"><uses-sdk></a></code> </p> <h2 id="filec">檔案轉æ›</h2> <p> æŸäº›è½‰æ›å’Œè¦å‰‡é€šå¸¸é©ç”¨æ–¼å®£ç¤ºèªªæ˜Žä¸çš„æ‰€æœ‰å…ƒç´ èˆ‡å±¬æ€§ï¼š </p> <dl> <dt><b>å…ƒç´ </b></dt> <dd>åªæœ‰ <code><a href="{@docRoot}guide/topics/manifest/manifest-element.html"><manifest></a></code> 與 <code><a href="{@docRoot}guide/topics/manifest/application-element.html"><application></a></code> 是必è¦å…ƒç´ ï¼Œå‹™å¿…é¡¯ç¤ºå…©è€…ä¸”é€™äº›å…ƒç´ åªèƒ½å‡ºç¾ä¸€æ¬¡ã€‚ é›–ç„¶æ‚¨è‡³å°‘å¿…é ˆé¡¯ç¤ºç•¶ä¸çš„ä¸€äº›å…ƒç´ ï¼Œæ‰èƒ½å®Œæˆæœ‰æ„義的作æ¥ï¼Œä½†å¤§éƒ¨åˆ†å…¶ä»–å…ƒç´ å¯ä»¥å‡ºç¾æ•¸æ¬¡æˆ–完全ä¸å‡ºç¾ã€‚ <p> 如果å¯ä»¥çš„è©±ï¼Œå…ƒç´ é‚„å¯ä»¥åŒ…å«å…¶ä»–å…ƒç´ ã€‚æ‰€æœ‰å€¼ä¸¦éžç•¶æˆå…ƒç´ 內的å—元資料使用,而是é€éŽå±¬æ€§è¨å®šã€‚ </p> <p> 系統通常ä¸æœƒå°‡ä½æ–¼ç›¸åŒå±¤ç´šçš„å…ƒç´ æŽ’åºã€‚例如, <code><a href="{@docRoot}guide/topics/manifest/activity-element.html"><activity></a></code>〠<code><a href="{@docRoot}guide/topics/manifest/provider-element.html"><provider></a></code> å’Œ <code><a href="{@docRoot}guide/topics/manifest/service-element.html"><service></a></code> å…ƒç´ èƒ½ä»¥ä»»ä½•é †åºæŽ’列組åˆã€‚ ( <code><a href="{@docRoot}guide/topics/manifest/activity-alias-element.html"><activity-alias></a></code> å…ƒç´ æ˜¯é€™é …è¦å‰‡çš„例外狀æ³ï¼š 由於它是 <code><a href="{@docRoot}guide/topics/manifest/activity-element.html"><activity></a></code> 的別åï¼Œå› æ¤å¿…é ˆè·Ÿåœ¨è©²å…ƒç´ çš„å¾Œé¢)。 </p></dd> <dt><b>屬性</b></dt> <dd>å½¢å¼ä¸Šè€Œè¨€ï¼Œæ‰€æœ‰å±¬æ€§å‡ç‚ºé¸ç”¨æ€§è³ªã€‚ä¸éŽï¼Œæ‚¨å¿…é ˆç‚ºå…ƒç´ æŒ‡å®šæŸäº›å±¬æ€§ï¼Œæ‰èƒ½é”到其目的。 請使用本文件當æˆåƒè€ƒæŒ‡å—。 真æ£çš„é¸ç”¨å±¬æ€§æœƒæåŠåœ¨ç¼ºå°‘è¦æ ¼æ™‚è¦ä½¿ç”¨çš„é è¨å€¼æˆ–狀態。 <p>除了 <code><a href="{@docRoot}guide/topics/manifest/manifest-element.html"><manifest></a></code> æ ¹å…ƒç´ çš„æŸäº›å±¬æ€§ä»¥å¤–,所有屬性å稱都是以å‰ç½®è©ž {@code android:}為開é ,例如 {@code android:alwaysRetainTaskState}。 由於å‰ç½®è©žæ˜¯é€šç”¨çš„ï¼Œå› æ¤æŒ‰å稱åƒç…§å±¬æ€§æ™‚ï¼Œæ–‡ä»¶é€šå¸¸æœƒåŠ ä»¥çœç•¥ã€‚ </p></dd> <dt><b>宣告類別å稱</b></dt> <dd>è¨±å¤šå…ƒç´ éƒ½æœƒå°æ‡‰åˆ° Java 物件,包括應用程å¼æœ¬èº«çš„å…ƒç´ ( <code><a href="{@docRoot}guide/topics/manifest/application-element.html"><application></a></code> å…ƒç´ ) 與其主è¦å…ƒä»¶ï¼šActivity (<code><a href="{@docRoot}guide/topics/manifest/activity-element.html"><activity></a></code>)ã€æœå‹™ (<code><a href="{@docRoot}guide/topics/manifest/service-element.html"><service></a></code>)ã€å»£æ’接收器 (<code><a href="{@docRoot}guide/topics/manifest/receiver-element.html"><receiver></a></code>) 以åŠå…§å®¹ä¾›æ‡‰ç¨‹å¼ (<code><a href="{@docRoot}guide/topics/manifest/provider-element.html"><provider></a></code>)。 <p> 如果您一如往常定義元件類別 ({@link android.app.Activity}ã€{@link android.app.Service}〠{@link android.content.BroadcastReceiver} åŠ {@link android.content.ContentProvider}) 般定義å類別,就會é€éŽ {@code name} 屬性宣告å類別。 該åç¨±å¿…é ˆåŒ…å«å®Œæ•´çš„å°è£æŒ‡å®šå稱。 例如,{@link android.app.Service} å類別å¯èƒ½æœƒä»¥ä¸‹åˆ—æ ¼å¼å®£å‘Šï¼š </p> <pre><manifest . . . > <application . . . > <service android:name="com.example.project.SecretService" . . . > . . . </service> . . . </application> </manifest></pre> <p> ä¸éŽï¼ŒæŽ¡ç”¨é€Ÿè¨˜æ³•æ™‚,如果å—串的第一個å—元是å¥é»žï¼Œå°±æœƒå°‡å—ä¸²é™„åŠ åˆ°æ‡‰ç”¨ç¨‹å¼çš„å°è£å稱 (如åŒç”± <code><a href="{@docRoot}guide/topics/manifest/manifest-element.html"><manifest></a></code> å…ƒç´ çš„ <code><a href="{@docRoot}guide/topics/manifest/manifest-element.html#package">package</a></code> 屬性指定)。 下列的指派çµæžœæœƒå’Œä¸Šè¿°ç›¸åŒï¼š </p> <pre><manifest package="com.example.project" . . . > <application . . . > <service android:name=".SecretService" . . . > . . . </service> . . . </application> </manifest></pre> <p> 啟動元件時,Android 會建立具åå類別的執行個體。如果未指定å類別,就會建立基本類別的執行個體。 </p></dd> <dt><b>多個值</b></dt> <dd>如果å¯ä»¥æŒ‡å®šå¤šå€‹å€¼ï¼Œè©²å…ƒç´ 幾乎會一直é‡è¤‡ï¼Œè€Œä¸æ˜¯åœ¨å–®ä¸€å…ƒç´ 內列出多個值。 例如,æ„圖篩é¸å™¨èƒ½åˆ—出數種動作: <pre><intent-filter . . . > <action android:name="android.intent.action.EDIT" /> <action android:name="android.intent.action.INSERT" /> <action android:name="android.intent.action.DELETE" /> . . . </intent-filter></pre></dd> <dt><b>資æºå€¼</b></dt> <dd>有些屬性的值å¯ä»¥ä¾›ä½¿ç”¨è€…查看 — 例如 Activity 的標籤和圖示。 æ‚¨å¿…é ˆå°‡é€™äº›å±¬æ€§çš„å€¼æœ¬åœ°åŒ–ï¼Œä»¥ä¾¿å¾žè³‡æºæˆ–主題è¨å®šé€™äº›å€¼ã€‚ 資æºå€¼æ˜¯æŽ¡ç”¨ä¸‹åˆ—æ ¼å¼è¡¨ç¤ºï¼š </p> <p style="margin-left: 2em">{@code @[<i>package</i>:]<i>type</i>:<i>name</i>}</p> <p> å…¶ä¸çš„<i>package</i> å稱å¯ä»¥çœç•¥ (如果資æºæ‰€åœ¨çš„å°è£å’Œæ‡‰ç”¨ç¨‹å¼ç›¸åŒçš„話), <i>type</i> 是指資æºé¡žåž‹ — 例如「å—串ã€æˆ–「å¯ç¹ªé …目〠— 而 <i>name</i> 則是å¯è˜åˆ¥ç‰¹å®šè³‡æºçš„å稱。範例: </p> <pre><activity android:icon="@drawable/smallPic" . . . ></pre> <p> 主題ä¸çš„值會以類似的方å¼è¡¨ç¤ºï¼Œä½†å—首會是 '{@code ?}',而ä¸æ˜¯ '{@code @}': </p> <p style="margin-left: 2em">{@code ?[<i>package</i>:]<i>type</i>:<i>name</i>} </p></dd> <dt><b>å—串值</b></dt> <dd>如果屬性值為å—ä¸²ï¼Œå¿…é ˆä½¿ç”¨é›™å斜線 ('{@code \\}')來溢出å—元,例如 '{@code \\n}'表示æ›è¡Œå—元,或 '{@code \\uxxxx}' 表示 Unicode å—元。 </dd> </dl> <h2 id="filef">檔案功能</h2> <p> 下列å„節說明如何在宣示說明檔案ä¸åæ˜ éƒ¨åˆ† Android 功能。 </p> <h3 id="ifs">æ„圖篩é¸å™¨</h3> <p> 應用程å¼çš„æ ¸å¿ƒå…ƒä»¶ (å³æ‡‰ç”¨ç¨‹å¼çš„ Activityã€æœå‹™å’Œå»£æ’接收器) 是由 <i>æ„圖</i>啟動。æ„åœ–æ˜¯ä¸€çµ„è³‡è¨Šçµ„åˆ ({@link android.content.Intent} 物件),用於說明è¦æŽ¡å–的動作 — 包括執行ä¾æ“šçš„資料ã€æ‡‰åŸ·è¡Œå‹•ä½œçš„元件類別,以åŠå…¶ä»–相關的指示。 Android 會找出é©ç•¶çš„元件來回應æ„圖ã€è¦–需è¦å•Ÿå‹•å…ƒä»¶çš„新執行個體,以åŠå°‡æ„圖物件傳é€çµ¦å®ƒã€‚ </p> <p> 元件會通知其功能 (元件å¯å›žæ‡‰çš„æ„圖類型),而通知途徑是 <i>æ„圖篩é¸å™¨</i>。由於 Android ç³»çµ±å¿…é ˆå…ˆçžè§£å…ƒä»¶èƒ½å¤ 處ç†å“ªäº›æ„圖,æ‰èƒ½å•Ÿå‹•è©²å…ƒä»¶ï¼Œå› æ¤æ„圖篩é¸å™¨åœ¨å®£ç¤ºèªªæ˜Žä¸æœƒæŒ‡å®šç‚º <code><a href="{@docRoot}guide/topics/manifest/intent-filter-element.html"><intent-filter></a></code> å…ƒç´ ã€‚ 元件å¯åŒ…å«çš„篩é¸å™¨æ•¸ç›®ä¸æ‹˜ï¼Œæ¯å€‹ç¯©é¸å™¨æ述的功能å„ä¸ç›¸åŒã€‚ </p> <p> 明確命å目標元件的æ„圖會啟動該元件,而ä¸å¿…使用篩é¸å™¨ã€‚ 但未指定目標å稱的æ„圖,åªæœ‰åœ¨å…¶é€šéŽå…¶ä¸ä¸€å€‹å…ƒä»¶çš„篩é¸å™¨å¾Œï¼Œæ‰èƒ½å•Ÿå‹•å…ƒä»¶ã€‚ </p> <p> 如è¦çžè§£æ„圖物件測試æ„圖篩é¸å™¨çš„æ–¹å¼ï¼Œè«‹åƒé–±<a href="{@docRoot}guide/components/intents-filters.html">æ„圖和æ„圖篩é¸å™¨</a>。 </p> <h3 id="iconlabel">圖示和標籤</h3> <p> è¨±å¤šå…ƒç´ éƒ½æœ‰å¯ä¾›å°åž‹åœ–示與文å—標籤使用的 {@code icon} å’Œ {@code label} 屬性,而使用者å¯çœ‹åˆ°é€™äº›åœ–示和標籤。 æœ‰äº›å…ƒç´ é‚„åŒ…å«å¯ä¾›è¼ƒé•·èªªæ˜Žæ–‡å—使用的 {@code description} 屬性,這個說明文å—亦å¯é¡¯ç¤ºåœ¨èž¢å¹•ä¸Šã€‚ 例如,å‡è¨ <code><a href="{@docRoot}guide/topics/manifest/permission-element.html"><permission></a></code> å…ƒç´ å«æœ‰ä¸Šè¿°ä¸‰ç¨®å±¬æ€§ï¼Œç•¶ç³»çµ±è©¢å•ä½¿ç”¨è€…是å¦å°‡æ¬Šé™æŽˆäºˆç™¼å‡ºè¦æ±‚的應用程å¼æ™‚,å¯ä»¥å°‡ä»£è¡¨æ¬Šé™çš„圖示ã€è©²æ¬Šé™çš„å稱以åŠæ‰€éœ€çš„æ述全都å‘使用者顯示。 </p> <p> 在å„種情æ³ä¸‹ï¼Œå…ƒä»¶ä¸è¨å®šçš„圖示和標籤會æˆç‚ºæ‰€æœ‰å®¹å™¨ä¸‹å±¤å…ƒç´ çš„é è¨ {@code icon} 與 {@code label} è¨å®šå› æ¤ï¼Œ <code><a href="{@docRoot}guide/topics/manifest/application-element.html"><application></a></code> å…ƒç´ ä¸è¨å®šçš„圖示和標籤會是應用程å¼å„元件的é è¨åœ–示和標籤。 åŒæ¨£åœ°ï¼Œç‚ºå…ƒä»¶ (例如 <code><a href="{@docRoot}guide/topics/manifest/activity-element.html"><activity></a></code> å…ƒç´ ) è¨å®šçš„圖示和標籤會是元件的 <code><a href="{@docRoot}guide/topics/manifest/intent-filter-element.html"><intent-filter></a></code> å…ƒç´ é è¨å€¼ã€‚ 如果 <code><a href="{@docRoot}guide/topics/manifest/application-element.html"><application></a></code> å…ƒç´ è¨æœ‰ä¸€å€‹æ¨™ç±¤ï¼Œä½† Activity 與其æ„圖篩é¸å™¨ä¸¦æœªè¨å®šè©²æ¨™ç±¤ï¼Œç³»çµ±æœƒå°‡æ‡‰ç”¨ç¨‹å¼æ¨™ç±¤è¦–為 Activity å’Œæ„圖篩é¸å™¨çš„標籤。 </p> <p> æ¯ç•¶åŸ·è¡Œç¯©é¸å™¨é€šå‘Šçš„功能,è¦å‘使用者顯示元件時,就會將為æ„圖篩é¸å™¨è¨å®šçš„圖示和標籤用來代表元件。 ä¾‹å¦‚ï¼ŒåŒ…å« "{@code android.intent.action.MAIN}" 與 "{@code android.intent.category.LAUNCHER}" è¨å®šçš„篩é¸å™¨æœƒå°‡æŸ Activity 宣告為啟動應用程å¼çš„ Activity,也就是應顯示在應用程å¼å•Ÿå‹•å™¨ä¸çš„ Activity。 å› æ¤ï¼Œé¡¯ç¤ºåœ¨å•Ÿå‹•å™¨ä¸çš„會是篩é¸å™¨ä¸è¨å®šçš„圖示和標籤。 </p> <h3 id="perms">權é™</h3> <p> 單一 <i>權é™</i> æ˜¯æŒ‡ä¸€é …é™åˆ¶ï¼Œå¯é™åˆ¶æŸéƒ¨åˆ†ç¨‹å¼ç¢¼æˆ–è£ç½®ä¸Šè³‡æ–™çš„å˜å–權。 ç³»çµ±æœƒå¼·åˆ¶å¯¦æ–½é€™é …é™åˆ¶ï¼Œä»¥ä¿è·æœƒé到誤用而æ‰æ›²æˆ–æ害使用者體驗的é‡è¦è³‡æ–™èˆ‡ç¨‹å¼ç¢¼ã€‚ </p> <p> å„é …æ¬Šé™éƒ½æ˜¯ç”¨ä¸é‡è¤‡çš„æ¨™ç±¤åŠ ä»¥è¾¨è˜ã€‚該標籤通常會指出å—到é™åˆ¶çš„動作。 例如,以下是 Android 定義的一些權é™ï¼š </p> <p style="margin-left: 2em">{@code android.permission.CALL_EMERGENCY_NUMBERS} <br/>{@code android.permission.READ_OWNER_DATA} <br/>{@code android.permission.SET_WALLPAPER} <br/>{@code android.permission.DEVICE_POWER}</p> <p> 單一功能最多åªèƒ½åˆ©ç”¨ä¸€é …權é™ä¾†åŠ 以ä¿è·ã€‚ </p> <p> 如果應用程å¼éœ€è¦å˜å–å—權é™ä¿è·çš„åŠŸèƒ½ï¼Œå®ƒå¿…é ˆåœ¨å®£ç¤ºèªªæ˜Žä¸åˆ©ç”¨ <code><a href="{@docRoot}guide/topics/manifest/uses-permission-element.html"><uses-permission></a></code> å…ƒç´ ä¾†å®£å‘Šå…¶éœ€è¦è©²é …權é™ã€‚ 接著,è¦åœ¨è£ç½®ä¸Šå®‰è£è©²æ‡‰ç”¨ç¨‹å¼æ™‚,安è£ç¨‹å¼æœƒæª¢æŸ¥ç°½ç½²è©²æ‡‰ç”¨ç¨‹å¼æ†‘è‰çš„æŽˆæ¬Šå–®ä½ (在æŸäº›æƒ…æ³ä¸‹é‚„會詢å•ä½¿ç”¨è€…),然後決定是å¦æŽˆäºˆè¦æ±‚的權é™ã€‚ 如果授予權é™ï¼Œè©²æ‡‰ç”¨ç¨‹å¼å°±èƒ½å¤ 使用å—ä¿è·çš„功能。 如果ä¸æŽˆäºˆæ¬Šé™ï¼Œå˜å–相關功能的嘗試就會失敗,但使用者ä¸æœƒæ”¶åˆ°ä»»ä½•é€šçŸ¥ã€‚ </p> <p> 應用程å¼ä¹Ÿèƒ½åˆ©ç”¨æ¬Šé™ä¾†ä¿è·è‡ªå·±çš„元件 (Activityã€æœå‹™ã€å»£æ’接收器和內容供應程å¼)。 它能使用 Android å®šç¾©çš„ä»»ä½•æ¬Šé™ (列於 {@link android.Manifest.permission android.Manifest.permission}) 或其他應用程å¼å®£å‘Šçš„任何權é™ã€‚ æ¤å¤–,應用程å¼ä¹Ÿèƒ½è‡ªè¡Œå®šç¾©æ¬Šé™ã€‚新的權é™æ˜¯ä»¥ <code><a href="{@docRoot}guide/topics/manifest/permission-element.html"><permission></a></code> å…ƒç´ å®£å‘Šã€‚ 例如,您å¯ä»¥åˆ©ç”¨ä¸‹åˆ—權é™ä¿è· Activity: </p> <pre> <manifest . . . > <permission android:name="com.example.project.DEBIT_ACCT" . . . /> <uses-permission android:name="com.example.project.DEBIT_ACCT" /> . . . <application . . .> <activity android:name="com.example.project.FreneticActivity" android:permission="com.example.project.DEBIT_ACCT" . . . > . . . </activity> </application> </manifest> </pre> <p> 請注æ„,在本範例ä¸ï¼Œä¸åªä»¥ <code><a href="{@docRoot}guide/topics/manifest/permission-element.html"><permission></a></code> å…ƒç´ å®£å‘Š {@code DEBIT_ACCT} 權é™ï¼Œé‚„使用 <code><a href="{@docRoot}guide/topics/manifest/uses-permission-element.html"><uses-permission></a></code> å…ƒç´ ä¾†è¦æ±‚使用æ¤æ¬Šé™ã€‚ å³ä½¿ä¿è·æ˜¯ç”±æ‡‰ç”¨ç¨‹å¼æœ¬èº«å¼·åˆ¶æ–½è¡Œï¼Œé‚„æ˜¯å¿…é ˆè¦æ±‚使用該權é™ï¼Œæ‡‰ç”¨ç¨‹å¼çš„其他元件æ‰èƒ½å•Ÿå‹•å—ä¿è·çš„ Activity。 </p> <p> 在相åŒçš„範例ä¸ï¼Œå¦‚æžœ {@code permission} 屬性è¨å®šç‚ºåœ¨åˆ¥è™•å®£å‘Šçš„æ¬Šé™ (例如 {@code android.permission.CALL_EMERGENCY_NUMBERS}),就ä¸å¿…å†æ¬¡ä½¿ç”¨ <code><a href="{@docRoot}guide/topics/manifest/permission-element.html"><permission></a></code> å…ƒç´ ä¾†å®£å‘Šã€‚ ä¸éŽï¼Œé‚„æ˜¯å¿…é ˆåˆ©ç”¨ <code><a href="{@docRoot}guide/topics/manifest/uses-permission-element.html"><uses-permission></a></code> 來è¦æ±‚使用。 </p> <p> <code><a href="{@docRoot}guide/topics/manifest/permission-tree-element.html"><permission-tree></a></code> å…ƒç´ å¯ç‚ºç¨‹å¼ç¢¼å°‡å®šç¾©çš„一組權é™å®£å‘Šå‘½å空間。 æ¤å¤–, <code><a href="{@docRoot}guide/topics/manifest/permission-group-element.html"><permission-group></a></code> å¯ç‚ºä¸€çµ„權é™å®šç¾©æ¨™ç±¤ (以 <code><a href="{@docRoot}guide/topics/manifest/permission-element.html"><permission></a></code> å…ƒç´ åœ¨å®£ç¤ºèªªæ˜Žä¸å®£å‘Šçš„權é™æˆ–在別處宣告的權é™)。 它åªæœƒå½±éŸ¿åœ¨å‘使用者呈ç¾æ¬Šé™æ™‚的分組方å¼ã€‚ <code><a href="{@docRoot}guide/topics/manifest/permission-group-element.html"><permission-group></a></code> å…ƒç´ ä¸æœƒæŒ‡å®šå„權é™æ‰€å±¬çš„群組,åªæœƒæŒ‡å®šç¾¤çµ„çš„å稱。 åªè¦å°‡ç¾¤çµ„å稱指派給 <code><a href="{@docRoot}guide/topics/manifest/permission-element.html"><permission></a></code> å…ƒç´ <code><a href="{@docRoot}guide/topics/manifest/permission-element.html#pgroup">permissionGroup</a></code> 的屬性,就能將權é™æ”¾å…¥ç¾¤çµ„ä¸ã€‚ </p> <h3 id="libs">程å¼åº«</h3> <p> æ¯æ¬¾æ‡‰ç”¨ç¨‹å¼éƒ½æœƒèˆ‡é è¨çš„ Android 程å¼åº«é€£çµï¼Œè©²ç¨‹å¼åº«ä¸åŒ…å«çš„基本å°è£å¯ç”¨æ–¼å»ºç½®æ‡‰ç”¨ç¨‹å¼ (使用 Activityã€Serviceã€Intentã€Viewã€Buttonã€Applicationã€ContentProvider ç‰ä¸€èˆ¬é¡žåˆ¥)。 </p> <p> ä¸éŽï¼Œæœ‰äº›å°è£æ˜¯å˜æ”¾åœ¨å…¶å°ˆå±¬çš„程å¼åº«ä¸ã€‚如果您的應用程å¼ä½¿ç”¨ä¾†è‡ªé€™é¡žå°è£çš„程å¼ç¢¼ï¼Œæ‚¨å¿…é ˆæ˜Žç¢ºè¦æ±‚與其建立連çµã€‚ å®£ç¤ºèªªæ˜Žå¿…é ˆåŒ…å«å€‹åˆ¥çš„ <code><a href="{@docRoot}guide/topics/manifest/uses-library-element.html"><uses-library></a></code> å…ƒç´ ï¼Œæ‰èƒ½å‘½åå„個程å¼åº«ã€‚ (您å¯ä»¥åœ¨å°è£çš„說明文件ä¸æ‰¾åˆ°ç¨‹å¼åº«å稱)。 </p>