欧美成人午夜免费全部完,亚洲午夜福利精品久久,а√最新版在线天堂,另类亚洲综合区图片小说区,亚洲欧美日韩精品色xxx

Android開發(fā)Manifest.xml配置文件詳解

2015-05-11 11:15:15 1577瀏覽

    AndroidManifest.xml配置文件對(duì)于Android應(yīng)用開發(fā)來說是非常重要的基礎(chǔ)知識(shí),旨在總結(jié)該配置文件中重點(diǎn)的用法,以便日后查閱。下面是一個(gè)標(biāo)準(zhǔn)的AndroidManifest.xml文件樣例。



[html] view plaincopy
01.<?xml version="1.0" encoding="utf-8"?>  
02.  
03.<manifest>  
04.  
05.    <!-- 基本配置 -->  
06.    <uses-permission />  
07.    <permission />  
08.    <permission-tree />  
09.    <permission-group />  
10.    <instrumentation />  
11.    <uses-sdk />  
12.    <uses-configuration />  
13.    <uses-feature />  
14.    <supports-screens />  
15.    <compatible-screens />  
16.    <supports-gl-texture />  
17.      
18.    <!-- 應(yīng)用配置 -->  
19.    <application>  
20.          
21.        <!-- Activity 配置 -->  
22.        <activity>  
23.            <intent-filter>  
24.                <action />  
25.                <category />  
26.                <data />  
27.            </intent-filter>  
28.            <meta-data />  
29.        </activity>  
30.          
31.        <activity-alias>  
32.            <intent-filter> . . . </intent-filter>  
33.            <meta-data />  
34.        </activity-alias>  
35.          
36.        <!-- Service 配置 -->  
37.        <service>  
38.            <intent-filter> . . . </intent-filter>  
39.            <meta-data/>  
40.        </service>  
41.          
42.        <!-- Receiver 配置 -->  
43.        <receiver>  
44.            <intent-filter> . . . </intent-filter>  
45.            <meta-data />  
46.        </receiver>  
47.          
48.        <!-- Provider 配置 -->  
49.        <provider>  
50.            <grant-uri-permission />  
51.            <meta-data />  
52.        </provider>  
53.          
54.        <!-- 所需類庫(kù)配置 -->  
55.        <uses-library />  
56.  
57.    </application>  
58.  
59.</manifest> 
從以上示例代碼中,我們可以看出Android配置文件采用XML作為描述語(yǔ)言,每個(gè)XML標(biāo)簽都不同的含義,大部分的配置參數(shù)都放在標(biāo)簽的屬性中,下面我們便按照以上配置文件樣例中的先后順序來學(xué)習(xí)Android配置文件中主要元素與標(biāo)簽的用法。
<manifest>
AndroidManifest.xml配置文件的根元素,必須包含一個(gè)<application>元素并且指定xlmns:android和package屬性。xlmns:android指定了Android的命名空間,默認(rèn)情況下是“http://schemas.android.com/apk/res/android”;而package是標(biāo)準(zhǔn)的應(yīng)用包名,也是一個(gè)應(yīng)用進(jìn)程的默認(rèn)名稱,以本書微博應(yīng)用實(shí)例中的包名為例,即“com.app.demos”就是一個(gè)標(biāo)準(zhǔn)的Java應(yīng)用包名,我們?yōu)榱吮苊饷臻g的沖突,一般會(huì)以應(yīng)用的域名來作為包名。當(dāng)然還有一些其他常用的屬性需要注意一下,比如android:versionCode是給設(shè)備程序識(shí)別版本用的,必須是一個(gè)整數(shù)值代表app更新過多少次;而android:versionName則是給用戶查看版本用的,需要具備一定的可讀性,比如“1.0.0”這樣的。<manifest>標(biāo)簽語(yǔ)法范例如下。
   為了保證Android應(yīng)用的安全性,應(yīng)用框架制定了比較嚴(yán)格的權(quán)限系統(tǒng),一個(gè)應(yīng)用必須聲明了正確的權(quán)限才可以使用相應(yīng)的功能,例如我們需要讓應(yīng)用能夠訪問網(wǎng)絡(luò)就需要配置“android.permission.INTERNET”,而如果要使用設(shè)備的相機(jī)功能,則需要設(shè)置“android.permission.CAMERA”等。<uses-permission>就是我們最經(jīng)常使用的權(quán)限設(shè)定標(biāo)簽,我們通過設(shè)定android:name屬性來聲明相應(yīng)的權(quán)限名,比如在微博應(yīng)用實(shí)例中,我們就是根據(jù)應(yīng)用的所需功能聲明了對(duì)應(yīng)的權(quán)
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="string"
    android:sharedUserId="string"
    android:sharedUserLabel="string resource" 
    android:versionCode="integer"
    android:versionName="string"
    android:installLocation=["auto" | "internalOnly" | "preferExternal"] >
... ...
</manifest>

<uses-permission>
限,相關(guān)代碼如下。
<manifest ...>
... ...
    <!-- 網(wǎng)絡(luò)相關(guān)功能 -->
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <!-- 讀取電話狀態(tài) -->
    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
    <!-- 通知相關(guān)功能 -->
    <uses-permission android:name="android.permission.VIBRATE" />
... ...
</manifest>

<permission>
   權(quán)限聲明標(biāo)簽,定義了供給<uses-permission>使用的具體權(quán)限,通常情況下我們不需要為自己的應(yīng)用程序聲明某個(gè)權(quán)限,除非需要給其他應(yīng)用程序提供可調(diào)用的代碼或者數(shù)據(jù),這個(gè)時(shí)候你才需要使用<permission>標(biāo)簽。該標(biāo)簽中提供了android:name權(quán)限名標(biāo)簽,權(quán)限圖標(biāo)android:icon以及權(quán)限描述android:description等屬性,另外還可以和<permission-group>以及<permission-tree>配合使用來構(gòu)造更有層次的、更有針對(duì)性權(quán)限系統(tǒng)。<permission>標(biāo)簽語(yǔ)法范例如下。

<permission android:description="string resource"
    android:icon="drawable resource"
    android:label="string resource"
    android:name="string"
    android:permissionGroup="string"
    android:protectionLevel=["normal" | "dangerous" | "signature" | "signatureOrSystem"] />

<instrumentation>
   用于聲明Instrumentation測(cè)試類來監(jiān)控Android應(yīng)用的行為并應(yīng)用到相關(guān)的功能測(cè)試中,其中比較重要的屬性有:測(cè)試功能開關(guān)android:functionalTest,profiling調(diào)試功能開關(guān)android:handleProfiling,測(cè)試用例目標(biāo)對(duì)象android:targetPackage等。另外,我們需要注意的是Instrumentation對(duì)象是在應(yīng)用程序的組件之前被實(shí)例化的,這點(diǎn)在組織測(cè)試邏輯的時(shí)候需要被考慮到。<instrumentation>標(biāo)簽語(yǔ)法范例如下。
  用于指定Android應(yīng)用中所需要使用的SDK的版本,比如我們的應(yīng)用必須運(yùn)行于Android 2.0以上版本的系統(tǒng)SDK之上,那么就需要指定應(yīng)用支持最小的SDK版本數(shù)為5;當(dāng)然,每個(gè)SDK版本都會(huì)有指定的整數(shù)值與之對(duì)應(yīng),比如我們最常用的Android 2.2.x的版本數(shù)是8。當(dāng)然,除了可以指定最低版本之外,<uses-sdk>標(biāo)簽還可以指定最高版本和目標(biāo)版本,語(yǔ)法范例如下。
<uses-sdk android:minSdkVersion

<instrumentation android:functionalTest=["true" | "false"]
    android:handleProfiling=["true" | "false"]
    android:icon="drawable resource"
    android:label="string resource"
    android:name="string"
    android:targetPackage="string" />

<uses-sdk>
="integer" 
    android:targetSdkVersion="integer"
    android:maxSdkVersion="integer" />
<uses-configuration>與<uses-feature>
   這兩個(gè)標(biāo)簽都是用于描述應(yīng)用所需要的硬件和軟件特性,以便防止應(yīng)用在沒有這些特性的設(shè)備上安裝。<uses-configuration>標(biāo)簽中,比如有些設(shè)備帶有D-pad或者Trackball這些特殊硬件,那么android:reqFiveWayNav屬性就需要設(shè)置為true;而如果有一些設(shè)備帶有硬件鍵盤,android:reqHardKeyboard也需要被設(shè)置為true。另外,如果設(shè)備需要支持藍(lán)牙,我們可以使用<uses-feature android:name="android.hardware.bluetooth" />來支持這個(gè)功能。這兩個(gè)標(biāo)簽主要用于支持一些特殊的設(shè)備中的應(yīng)用,兩個(gè)標(biāo)簽的語(yǔ)法范例分別如下。

<uses-configuration android:reqFiveWayNav=["true" | "false"] 
    android:reqHardKeyboard=["true" | "false"]
    android:reqKeyboardType=["undefined" | "nokeys" | "qwerty" | "twelvekey"]
    android:reqNavigation=["undefined" | "nonav" | "dpad" | "trackball" | "wheel"]
    android:reqTouchScreen=["undefined" | "notouch" | "stylus" | "finger"] />

<uses-feature android:name="string"
    android:required=["true" | "false"]
    android:glEsVersion="integer" />

<uses-library>
         用于指定Android應(yīng)用可使用的用戶庫(kù),除了系統(tǒng)自帶的android.app、android.content、android.view和android.widget這些默認(rèn)類庫(kù)之外,有些應(yīng)用可能還需要一些其他的Java類庫(kù)作為支持,這種情況下我們就可以使用<uses-library>標(biāo)簽讓ClassLoader加載其類庫(kù)供Android應(yīng)用運(yùn)行時(shí)用。<uses-library>標(biāo)簽的用法很簡(jiǎn)單,以下是語(yǔ)法范例。

<uses-library android:name="string"
    android:required=["true" | "false"] />
   AndroidManifest.xml應(yīng)用程序,對(duì)Android開發(fā)者來說簡(jiǎn)單易學(xué)。

標(biāo)簽:

熱門專區(qū)

暫無熱門資訊

課程推薦

微信
微博
15311698296

全國(guó)免費(fèi)咨詢熱線

郵箱:codingke@1000phone.com

官方群:148715490

北京千鋒互聯(lián)科技有限公司版權(quán)所有   北京市海淀區(qū)寶盛北里西區(qū)28號(hào)中關(guān)村智誠(chéng)科創(chuàng)大廈4層
京ICP備2021002079號(hào)-2   Copyright ? 2017 - 2022
返回頂部 返回頂部