日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android manifest简介

發布時間:2025/4/5 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android manifest简介 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
每個Android項目都包含一個Manifest文件(Android Manifest.xml),它存儲在項目層次中的最頂層。Manifest可以定義應用程序及其組件和需求的結構和元數據。它包含了組成應用程序的每一個Activity,Service,Content Provider和Broadcast Receiver的節點,并使用Intent Filter和權限來確定這些組件之間以及這些組件和其他應用程序是如何交互的。

Manifest文件還可以指定應用程序的元數據(如它的圖標,版本號或者主題)以及額外的頂層節點,這些節點可用來指定必需的安全權限和單元測試,以及定義硬件,屏幕和平臺支持要求。Manifest文件由一個根manifest標簽構成,該標簽帶有一個被設為項目包的package屬性。它通常包含一個xmlns:android屬性來提供文件內使用的某些屬性。使用versionCode屬性可將當前的應用程序版本定義為一個整數,每次版本迭代時,這個數字都會增加。使用versionName可以定義一個顯示給用戶的公共版本號。通過使用installLocation屬性,還可以指定是否允許(或者首選)將應用程序安裝到外部存儲器(通常是SD卡)而不是內部存儲器上。為此,可以將其值指定為preferExternal或outo,使用前者時,只要有可能就會把應用程序安裝到外部存儲器上,后者則要求系統決定。如果不指定installLocation屬性,應用程序將安裝到內部存儲器,而用戶將無法把應用程序移動到外部存儲器。內部存儲器的容量一般是有限的,所以最好是只要有可能,就把應用程序安裝到外部存儲器。

應用程序Manifest文件詳解

下面的XML代碼段展示了一個典型的Manifest節點:


<manifest xmlns:android="http://schemas.android.com/apk/res/android"
??????????? package="com.paad.myapp"
??????????? android:versionCode="1"
??????????? android:versionName="0.9 Beta"
??????????? android:installLocation="preferExternal">
??????????? [... manifest nodes ... ]
</manifest>
manifest標簽包含了一些節點(node),它們定義了組成應用程序的應用程序組件,安全設置,測試類和需求。下面列出了一些manifest子節點標簽,并用一些XML代碼段說明了它們是如何使用的。

uses-sdk:這個節點用于定義要想正確地運行應用程序,設備上必須具有的最低和最高SDK版本,以及為應用程序設計的目標SDK,這分別通過使用 minSDKVersion,maxSDKVersion和targetSDKVersion屬性設置。最低SDK版本指定了包含應用程序中使用的API的最低SDK版本。如果沒有指定最低SDK版本,其默認值為1,在這種情況下,如果應用程序試圖調用不可用的API,那么就會失敗。最高SDK版本用于定義想要支持的最高SDK版本。在Android Market上列出的對運行更高平臺版本的設備可用的應用程序中,你的應用程序不會顯示。最好不要設置最高SDK版本,除非你知道應用程序在更新的平臺版本上肯定不能正確工作。目標SDK版本屬性用于指定你在開發和測試應用程序時使用的平臺。設置目標SDK版本會告訴系統不需要為支持該版本而進行任何前向和后向兼容性更改。為了利用最新的平臺UI改進,當確認應用程序在最新的平臺版本上的表現符合預期后,即使應用程序中沒有使用任何新的API,也應該將其目標SDK設為最新的平臺版本,這被認為是一種最佳實踐。通常,沒有必要指定最高SDK版本,也很少有人支持那么做。最高SDK版本用于定義想要支持的最高SDK版本。在運行更高平臺版本的設備的Android Play Store上,你的應用程序不會顯示。運行的平臺版本高于Android 2.0.1(API level 6)的設備在安裝時將忽略任何最高SDK值。

?
1
<uses-sdk android:minSdkVersion="6" android:targetSdkVersion"15"/>
注:支持的SDK版本不等同于平臺版本,也不能從平臺版本導出。例如,Android平臺的版本4.0支持SDK版本14。要想找出與每個平臺對應的SDK版本,可以使用這個表:http://developer.android.com/guide/appendix/api-levels.html。

uses-configuration:使用uses-configuration節點可以指定應用程序支持的每個輸入機制的組合。一般不需要包含這個節點,不過對于需要特殊輸入控制的游戲來說,它是很有用的,可以指定以下輸入設備的任意組合 :

- reqFiveWayNav:如果要求輸入設備能夠向上,向下,向左和向右導航,并且能夠單擊當前的選項,那么需要將這個屬性指定為true。這包括跟蹤球和D-pad。

- reqHardKeyboard:如果應用程序需要硬件鍵盤,則將此屬性指定為true。

- reqKeyboardType:用于將鍵盤類型指定為nokeys,qwerty,twelveley或undefined中的一種。

- reqNavigation:將屬性值指定為nonav,dpad,trackball,wheel或undefined其中之一,作為必需的導航設備。

- reqTouchScreen:選擇notouch,stylus,finger或undefined其中之一,以指定必需的觸摸屏輸入。

可以指定多個支持的配置,例如,指定設備具有觸摸屏,跟蹤球以及一個QUERTY或12鍵硬件鍵盤,如下所示:

?
1
2
3
4
5
6
7
8
<uses-configuration android:reqTouchScreen="finger"
??????????????? android:reqNavigation="trackball"
??????????????? android:reqHardKeyboard="true"
??????????????? android:reqKeyboardType="qwerty"/>
<uses-configuration android:reqTouchScreen="finger"
??????????????? android:reqNavigation="trackball"
??????????????? android:reqHardKeyboard="true"
??????????????? android:reqKeyboardType="twelvekey"/>
注意:在指定必需的配置時,如果設備不具有任意一種指定配置,則應用程序將不會安裝在該設備上。

uses-feature:Android可以在各種各樣的硬件平臺上運行。可以使用多個uses-feature節點來指定應用程序需要的每個硬件功能。這可以避免將應用程序安裝到不包含必要的硬件功能(例如NFC硬件)的設備上。如下所示:

?
1
<uses-feature android:name="android.hardware.nfc"/>
??????? 可以要求支持兼容設備上可選的任意硬件。目前,可選的硬件功能包括:

??????? - 音頻:用于要求低延遲音頻管道的應用程序。

??????? - 藍牙:用于需要藍牙傳輸的應用程序。

??????? - 攝像頭:用于要求有攝像頭的應用程序。

??????? - 位置:用于需要基于位置的服務的應用程序,還可以顯式指定要求網絡或GPS支持。

??????? - 麥克風:用于需要音頻輸入的應用程序。

??????? - NFC:要求NFC(近場通信)支持。

??????? - 傳感器:指定對任何潛在可用的硬件傳感器的要求。

??????? - 電話服務:指定需要一般性的電話服務,或者特定的無線發送方式(GSM或CDMA)。

??????? - 觸摸屏:指定應用程序需要的觸摸屏類型。

??????? - USB:用于需要支持USB host或accessory模式的應用程序。

??????? - WI-FI:用于需要支持WIFI網絡的應用程序。

??? 隨著支持Android的平臺種類不斷增加,可選硬件的種類也將增加。以下網址給出了uses-feature硬件的完整列表:http://developer.android.com/guide/topics/manifest/uses-feature-element.html#features-reference。

為了確保兼容性,對權限的需求暗含著對相應功能的需求。具體來說,對藍牙,攝像頭,位置服務,音頻錄制和Wi-Fi要求? 的訪問權限以及與電話服務相關的權限都暗含著要有相應的硬件。通過添加一個required屬性并把它設為false,可以覆蓋這些暗含的需求。例如,一個備忘應用程序可以支持語音備忘:

?
1
2
<uses-feature android:name="android.hardware.microphone"
??????????? android:required="false" />
攝像頭硬件還代表著一種特殊的情況。當出于兼容性原因,要求有攝像頭的使用權限時,或者添加了一個需要攝像頭的使用權限的uses-feature節點時,暗含的要求就是攝像頭要支持自動聚焦功能。在合適的地方可以把它指定為可選項:

?
1
2
3
<uses-feature android:name="android.hardware.camera"/>
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false"/>
<uses-feature android:name="android.hardware.camera.flash" android:required="false"/>
也可以使用uses-feature節點指定應用程序所需的OppenGL的最低版本。只需要使用glEsVersion屬性,將OpenGL ES版本指定為一個整數即可。高16位代表主版本號,低16位代表次版本號,所以版本1.1可以表示為:

?
1
<uses-ffeature android:glEsVersion="0x00010001" />

總結

以上是生活随笔為你收集整理的android manifest简介的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 中文字幕高清在线播放 | 日韩激情片 | 国产一级二级三级在线 | 欧美精品二区三区 | 国产精品69久久久 | 91人妻一区二区三区蜜臀 | 日韩日b| 国产乱子一区二区 | 在线观看不卡av | 中文av字幕| 国产精品丝袜在线 | 国产精品一区二区6 | 国产视频黄色 | 精品香蕉一区二区三区 | 影音先锋中文字幕在线播放 | av片免费在线播放 | 色哟哟视频在线观看 | 激情五月综合色婷婷一区二区 | 中文av资源| 亚洲一区二区高清视频 | 伦理片波多野结衣 | 一区二区av| 中文字幕在线日韩 | 日韩免费观看一区二区三区 | 色婷婷久久综合 | 精品无码国产一区二区三区51安 | 性欧美18一19性猛交 | 99999精品视频 | 91区 | 天堂av电影在线观看 | 伊人久久中文 | 中文字幕韩日 | 色噜噜在线播放 | 人人干人人草 | 久久久久久久久久国产 | 91看黄 | 亚洲啪av永久无码精品放毛片 | 免费看a级黄色片 | 精品小视频 | 国产高清视频在线免费观看 | 五月天丁香在线 | 黄色av免费网站 | 给我看高清的视频在线观看 | 久久久久久国产 | 欧美xo影院 | 日韩 欧美 亚洲 国产 | 日韩性插| 狂野欧美性猛交免费视频 | 免费在线观看不卡av | 久久精品66 | 秋霞欧洲 | 成人在线免费高清视频 | 激情小说激情视频 | 欧美三级不卡 | 美女在线不卡 | 色老板av| 永久久久久久久 | 亚洲一级在线观看 | 国产色在线视频 | 69av国产| 成人免费在线小视频 | 在线观看免费国产 | 少妇网站在线观看 | 97福利| 一个人在线观看www软件 | 久久久久亚洲AV成人无码国产 | 欧美亚洲成人网 | 色哟哟入口 | 天堂8av| 精品人妻一区二区三区蜜桃 | 国产黄色www | 看污网站 | 欧美一区亚洲一区 | 色一情一乱一伦 | 邻居少妇张开腿让我爽了在线观看 | 野花成人免费视频 | www.奇米.com| 午夜影院91 | 麻豆亚洲av成人无码久久精品 | 欧美爱爱视频 | 2024av视频| 夜夜cao| 麻豆亚洲 | 亚洲国产黄色片 | 亚洲天堂最新 | 日本va在线观看 | 欧美一区二区三区爽爽爽 | 日本二区在线观看 | 亚洲欧美在线成人 | 小妹色播| 成人免费黄色大片 | 丰满少妇在线观看资源站 | 亚洲另类xxxx | 亚洲熟女www一区二区三区 | 视色影院| av在线一 | 久久91亚洲| 国产夫妇交换聚会群4p | 国产精品国产三级国产aⅴ浪潮 |