android開發學習筆記(一)-Manifest文件

一:概述java

全部的app都要在根目錄下AndroidManifest.xml文件,這個文件顯示了app告訴android系統的基本信息。在app代碼運行以前,android系統從這個文件獲取基本信息android

功能:app

  1. 給app的java包起名做爲這個app的惟一標識符
  2. 聲明app中要使用的組件
  3. 決定哪些進程持有app組件
  4. 肯定app須要的用戶權限
  5. 它聲明應用程序必須擁有哪些權限以訪問API的被保護部分以及與其它應用程序交互
  6. 它聲明應用程序必須擁有哪些權限以訪問API的被保護部分以及與其它應用程序交互
  7. 聲明app須要的最低級別
  8. 聲明app須要連接的API函數庫(除了android API框架)

二:Manifest文件的結構框架

 

 1 <?xml version="1.0" encoding="utf-8"?>
 2 
 3 <manifest>
 4 
 5     <uses-permission />
 6     <permission />
 7     <permission-tree />
 8     <permission-group />
 9     <instrumentation />
10     <uses-sdk />
11     <uses-configuration />  
12     <uses-feature />  
13     <supports-screens />  
14     <compatible-screens />  
15     <supports-gl-texture />  
16 
17     <application>
18 
19         <activity>
20             <intent-filter>
21                 <action />
22                 <category />
23                 <data />
24             </intent-filter>
25             <meta-data />
26         </activity>
27 
28         <activity-alias>
29             <intent-filter> . . . </intent-filter>
30             <meta-data />
31         </activity-alias>
32 
33         <service>
34             <intent-filter> . . . </intent-filter>
35             <meta-data/>
36         </service>
37 
38         <receiver>
39             <intent-filter> . . . </intent-filter>
40             <meta-data />
41         </receiver>
42 
43         <provider>
44             <grant-uri-permission />
45             <meta-data />
46             <path-permission />
47         </provider>
48 
49         <uses-library />
50 
51     </application>
52 
53 </manifest>

三:Manifest文件慣例ide

element:函數

每個Manifest文件都必需要出現一次<manifest>和<application>元素,其餘元素根據功能須要決定出現一次、屢次或一次也不出現。spa

全部值經過屬性來設置,不會做爲元素內的字符數據。code

同一級別的元素是亂序排列的。( <activity-alias> 元素是個例外,它必須跟在它所引用的<activity> 後面。)xml

Attribute:
對象

正式意義上來講,每一個元素的屬性都是可選擇的,可是在完成某個功能的前提下,某些元素的屬性值必需要說明的,使用文檔做爲指引。對於真正可選的屬性,它會說起一個默認值或講述在規範缺乏的時候發生什麼。

除了根元素<manifest>的屬性值外,其餘全部屬性值都必須之前綴android:開始,由於前綴是通常性概念,因此當經過名稱引用屬性時文檔一般會忽略它

Declaring class names

 一些元素至關於java對象,包括<application>以及四大組件<activity>、<service>、<receiver>、<provider>

若是你想定義一個組件類的子類時,這個子類的聲明經過name屬性,name屬性包括了完整包名

1 <manifest . . . >
2     <application . . . >
3         <service android:name="com.example.project.SecretService" . . . >
4             . . .
5         </service>
6         . . .
7     </application>
8 </manifest>

 

 可是,做爲簡寫。若是字符串的第一個字符是".",字符串將被添加到app的包名的尾部

1 <manifest package="com.example.project" . . . >
2     <application . . . >
3         <service android:name=".SecretService" . . . >
4             . . .
5         </service>
6         . . .
7     </application>
8 </manifest>

當啓動一個組件時,android建立一個子類的對象,若是子類未指定,它會建立一個基類

Multiple values

若是指定的值多於一個,一般要將元素重複再指定值,而不是在一個元素單元內列出多個值

<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>

Resource values:

 一些資源有顯示給用戶的值,例如,activity的一個label或者icon,這個屬性值應該被本地化,所以被設置成來自同一個資源或主題。

資源值用如下格式來表達

 1 @[package:]type:name 

package:當資源在app的同一個包裏時,package值可缺省

type:資源的類型,例如string、drawable

name:是一種用來指定特殊資源的名字。

 1 <activity android:icon="@drawable/smallPic" . . . > 

主題值用如下格式表達

 1 ?[package:]type:name 

String values

屬性值爲字符串時,表示轉義字符要加"\\"。例如,'\\n'用做回車或'\\uxxxx'用做一個Unicode字符。

相關文章
相關標籤/搜索