日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
專家專欄:AndroidManifest.xml文件詳解

【獨(dú)家特稿】本文為安全專家李洋的最新一篇專欄文章《androidmanifest.xml文件詳解》。AndroidManifest.xml是一個(gè)跟安全相關(guān)的配置文件,該配置文件是Android安全保障的一個(gè)不可忽視的方面,本文對(duì)AndroidManifest文件進(jìn)行詳細(xì)介紹。

鳳翔網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),鳳翔網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為鳳翔超過千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站建設(shè)要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的鳳翔做網(wǎng)站的公司定做!

以下為全部?jī)?nèi)容:

了解AndroidManifest.xml文件的主要用途

AndroidManifest.xml主要包含以下功能:

  1. 說明application的java 數(shù)據(jù)包,數(shù)據(jù)包名是application的唯一標(biāo)識(shí);
  2. 描述application的component;
  3. 說明application的component運(yùn)行在哪個(gè)process下;
  4. 聲明application所必須具備的權(quán)限,用以訪問受保護(hù)的部分API,以及與其他application的交互;
  5. 聲明application其他的必備權(quán)限,用以component之間的交互;
  6. 列舉application運(yùn)行時(shí)需要的環(huán)境配置信息,這些聲明信息只在程序開發(fā)和測(cè)試時(shí)存在,發(fā)布前將被刪除;
  7. 聲明application所需要的AndroidAPI的最低版本級(jí)別,例如1.0,1.1,1.5等;
  8. 列舉application所需要鏈接的庫;

熟悉AndroidManifest.xml文件的結(jié)構(gòu)及元素

AndroidManifest.xml文件的結(jié)構(gòu)、元素,以及元素的屬性,可以在AndroidSDK文檔中查看詳細(xì)說明。而在看這些眾多的元素以及元素的屬性前,需要先了解一下這些元素在命名、結(jié)構(gòu)等方面的規(guī)則:

  1. 元素:在所有的元素中只有是必需的,且只能出現(xiàn)一次。如果一個(gè)元素包含有其他子元素,必須通過子元素的屬性來設(shè)置其值。處于同一層次的元素,這些元素的說明是沒有順序的。
  2. 屬性:按照常理,所有的屬性都是可選的,但是有些屬性是必須設(shè)置的。那些真正可選的屬性,即使不存在,其也有默認(rèn)的數(shù)值項(xiàng)說明。除了根元素的屬性,所有其他元素屬性的名字都是以android:前綴的;
  3. 定義類名:所有的元素名都對(duì)應(yīng)其在SDK中的類名,如果你自己定義類名,必須包含類的數(shù)據(jù)包名,如果類與application處于同一數(shù)據(jù)包中,可以直接簡(jiǎn)寫為“.”;
  4. 多數(shù)值項(xiàng):如果某個(gè)元素有超過一個(gè)數(shù)值,這個(gè)元素必須通過重復(fù)的方式來說明其某個(gè)屬性具有多個(gè)數(shù)值項(xiàng),且不能將多個(gè)數(shù)值項(xiàng)一次性說明在一個(gè)屬性中;
  5. 資源項(xiàng)說明:當(dāng)需要引用某個(gè)資源時(shí),其采用如下格式:@[package:]type:name。例如
  6. 字符串值:類似于其他語言,如果字符中包含有字符“\”,則必須使用轉(zhuǎn)義字符“\\”;

下面結(jié)合cookie實(shí)例中的AndroidManifest.xml文件來說明一下,原XML文件如下:

 
 
 
  1.  
  2. package=”moandroid.cookie” 
  3. android:versionCode=”1″ 
  4. android:versionName=”1.0″> 
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  

除了頭部的XML信息說明外,首先是manifest項(xiàng)(也就是根節(jié)點(diǎn)),其屬性包括:schemas URL地址、包名(moandroid.cookie),以及程序的版本說明。其次是manifest的子節(jié)點(diǎn)application,其屬性包括:程序圖標(biāo)、程序名稱。前面帶有@表示引用資源,例如:@drawable/icon表示引用的是drawable資源中的icon,可以在其源工程的res/drawable中找到。然后就是application的子節(jié)點(diǎn)activity,其屬性包括:activity的名稱、activity的標(biāo)簽名,其子節(jié)點(diǎn)intent-filter則是對(duì)activity的說明。

而在intent-filter中,actionandroid:name=”android.intent.action.MAIN”和categoryandroid:name=”android.intent.category.LAUNCHER”用以說明程序啟動(dòng)時(shí)的入口activity是哪個(gè)。如果這兩個(gè)屬性值中分別含有MAIN和LAUNCHER,則說明它就是啟動(dòng)程序時(shí)的入口活動(dòng)。uses-sdkandroid:minSdkVersion=”3″說明程序使用的Android SDK的最低版本,其中1表示Android1.0,2表示Android 1.1,而3則表示Android1.5。

如何進(jìn)行應(yīng)用程序權(quán)限申請(qǐng)

如下所示,文中黑體標(biāo)記的部分為應(yīng)用程序權(quán)限申請(qǐng)內(nèi)容:

 
 
 
  1.  
  2.      package="cn.com.fetion.android" 
  3.      android:versionCode="1" 
  4.      android:versionName="1.0.0"> 
  5.     
  6.        
  7.                   android:label="@string/app_name"> 
  8.              
  9.                  
  10.                  
  11.              
  12.          
  13.     
  14.    
  15.  

如上述文件描述中加下劃線的斜體部分,該文件的作用是說明該軟件需要發(fā)送短信的功能。

Android定義了百余種permission,可供開發(fā)人員使用,具體詳見網(wǎng)址。

自定義權(quán)限

在文件中,用戶還可以自定義權(quán)限。permission就是自定義權(quán)限的聲明,可以用來限制app中特殊組件,特性與app內(nèi)部或者和其他app之間訪問。寫了一個(gè)引用自定義權(quán)限的例子,在安裝app的時(shí)候,提示權(quán)限:

定義權(quán)限如下:

 
 
 
  1.     android:description=”@string/test”  
  2.     android:name=”com.example.project.TEST”  
  3.     android:protectionLevel=”normal”  
  4.     android:icon=”@drawable/ic_launcher”> 

聲明的含義如下;

  • android:label:權(quán)限名字,顯示給用戶的,值可是一個(gè)string數(shù)據(jù),例如這里的“自定義權(quán)限”。
  • android:description:比label更長(zhǎng)的對(duì)權(quán)限的描述。值是通過resource文件中獲取的,不能直接寫string值,例如這里的”@string/test”。
  • android:name:權(quán)限名字,如果其他app引用該權(quán)限需要填寫這個(gè)名字。
  • android:protectionLevel:權(quán)限級(jí)別,分為4個(gè)級(jí)別:
    • normal:低風(fēng)險(xiǎn)權(quán)限,在安裝的時(shí)候,系統(tǒng)會(huì)自動(dòng)授予權(quán)限給application。
    • dangerous:高風(fēng)險(xiǎn)權(quán)限,系統(tǒng)不會(huì)自動(dòng)授予權(quán)限給app,在用到的時(shí)候,會(huì)給用戶提示。
    • signature:簽名權(quán)限,在其他app引用聲明的權(quán)限的時(shí)候,需要保證兩個(gè)app的簽名一致。這樣系統(tǒng)就會(huì)自動(dòng)授予權(quán)限給第三方app,而不提示給用戶。
    • signatureOrSystem:這個(gè)權(quán)限是引用該權(quán)限的app需要有和系統(tǒng)同樣的簽名才能授予的權(quán)限,一般不推薦使用。

 【.com獨(dú)家特稿,非經(jīng)授權(quán)謝絕轉(zhuǎn)載,合作媒體轉(zhuǎn)載請(qǐng)注明原文作者及出處!】


文章題目:專家專欄:AndroidManifest.xml文件詳解
文章來源:http://www.dlmjj.cn/article/djgiedg.html