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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Android 基础 一 AndroidManifest.xml

發布時間:2023/11/27 生活经验 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android 基础 一 AndroidManifest.xml 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、概述

  AndroidManifest.xml是Android應用的入口文件,它描述了package中暴露的組件(activities, services, 等等),他們各自的實現類,各種能被處理的數據和啟動位置。 除了能聲明程序中的Activities, ContentProviders, Services, 和Intent Receivers,還能指定permissions和instrumentation(安全控制和測試)。

二、結構

<?xmlversion="1.0"encoding="utf-8"?>
<manifest> <uses-sdk/> <uses-configuration/> <uses-feature/>  <uses-permission/><permission/><permission-tree/><permission-group/><instrumentation/> <supports-screens/><application> <activity> <intent-filter><action/>
        <data /> 
                  
            <type/>
                 <schema/> 
                 <authority/>
                 <path/> 
               
        <category/>
           </intent-filter> </activity><activity-alias> <intent-filter></intent-filter> <meta-data/> </activity-alias> <service> <intent-filter></intent-filter> <meta-data/> </service><receiver><intent-filter></intent-filter> <meta-data/> </receiver> <provider> <grant-uri-permission/><meta-data/> </provider> <uses-library/> </application>  </manifest>

  清單由一個根manifest標簽構成,該標簽帶有一個設置項目包的package屬性。它通常包含一個xmlns:android屬性來提供文件內使用的某些系統屬性。下面的XML代碼段展示了一個典型的聲明節點:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.example.mypackage"android:sharedUserId="string" <!-- android.uid.system -->android:sharedUserLabel="string resource"android:versionCode="integer"android:versionName="string"android:installLocation=["auto" | "internalOnly" | "preferExternal"] > 
<!-- preferExternal 優先考慮將apk安裝到SD卡,選擇auto會根據存儲空間自己去適應,選擇internalOnly是指必須安裝到內部才能運行。-->
</manifest>

?

  <manifest>中包含了包名如 package="cn.androidlover.demo" 、軟件的版本號 android:versionCode="1" 以及 android:versionName="1.0"的屬性,manifest標簽還包含了一些節點(node),它們定義了應用程序組件、安全設置和組成應用程序的測試類。下面列出了一些常用的manifest節點標簽,并用一些XML代碼段說明了它們是如何使用的。

2.1 application

  一個清單只能包含一個application節點。它使用各種屬性來指定應用程序的各種元數據(包括標題、圖標和主題)。它還可以作為一個包含了活動、服務、內容提供器和廣播接收器標簽的容器,用來指定應用程序組件。

<application android:allowClearUserData=["true" | "false"] 是否自行清除數據,默認為trueandroid:allowTaskReparenting=["true" | "false"] 是否允許Activity更換從屬的任務android:debuggable=["true" | "false"] 設備是否可被調試android:description="string resource" android:enabled=["true" | "false"] android:hasCode=["true" | "false"] android:icon="drawable resource" android:label="string resource" android:manageSpaceActivity="string" android:name="string" android:permission="string" android:persistent=["true" | "false"] android:process="string" android:taskAffinity="string" 擁有相同的affinity的Activity理論上屬于相同的Taskandroid:theme="resource or theme" > . . . 
</application>

?

2.2 activity

  應用程序顯示的每一個Activity都要求有一個activity標簽,并使用android:name屬性來指定類的名稱。這必須包含核心的啟動Activity和

其他所有可以顯示的屏幕或者對話框。啟動任何一個沒有在清單中定義的Activity時都會拋出一個運行時異常。每一個Activity節點都允許使

用intent-filter子標簽來指定哪個Intent啟動該活動。

<activity  
  android:name=".MyActivity"
  android:label
="@string/app_name">   
  <intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
  </intent-filter>
</
activity>
<activity android:allowTaskReparenting=["true" | "false"] 是否保留最后的狀態不變android:alwaysRetainTaskState=["true" | "false"]android:clearTaskOnLaunch=["true" | "false"] ActivityB被ActivityA觸發,返回后重新啟動ActivityA是否顯示ActivityBandroid:configChanges=["mcc", "mnc", "locale","touchscreen", "keyboard", "keyboardHidden","navigation", "orientation", "screenLayout","fontScale", "uiMode"]android:enabled=["true" | "false"]android:excludeFromRecents=["true" | "false"]android:exported=["true" | "false"]android:finishOnTaskLaunch=["true" | "false"]android:icon="drawable resource"android:label="string resource"android:launchMode=["multiple" | "singleTop" |"singleTask" | "singleInstance"]android:multiprocess=["true" | "false"]android:name="string"android:noHistory=["true" | "false"]  android:permission="string"android:process="string"android:screenOrientation=["unspecified" | "user" | "behind" |"landscape" | "portrait" |"sensor" | "nosensor"]android:stateNotNeeded=["true" | "false"]android:taskAffinity="string"android:theme="resource or theme"android:windowSoftInputMode=["stateUnspecified","stateUnchanged", "stateHidden","stateAlwaysHidden", "stateVisible","stateAlwaysVisible", "adjustUnspecified","adjustResize", "adjustPan"] >   
</activity>

?

2.3 provider

  provider標簽用來說明應用程序中的每一個內容提供器。內容提供器是用來管理數據庫訪問以及程序內和程序間共享的。

<provider android:authorities="list" android:enabled=["true" | "false"] android:exported=["true" | "false"] android:grantUriPermissions=["true" | "false"] android:icon="drawable resource" android:initOrder="integer" android:label="string resource" android:multiprocess=["true" | "false"] android:name="string" android:permission="string" android:process="string" android:readPermission="string" android:syncable=["true" | "false"] android:writePermission="string" > 
</provider>

?

2.4 receiver

  通過添加receiver標簽,可以注冊一個廣播接收器(Broadcast Receiver),而不用事先啟動應用程序。廣播接收器就像全局事件監聽器一樣,一旦注冊了之后,無論何時,只要與它相匹配的intent被應用程序廣播出來,它就會立即執行。通過在聲明中注冊一個廣播接收器,可以使這個進程實現完全自動化。如果一個匹配的Intent被廣播了,則應用程序就會自動啟動,并且你注冊的廣播接收器也會開始運行。

<receiver android:enabled=["true" | "false"] android:exported=["true" | "false"] android:icon="drawable resource" android:label="string resource"            android:name="string" android:permission="string" android:process="string" > 
</receiver>

?

2.5 service

  Service作為Android四大組件之一,在每一個應用程序中都扮演著非常重要的角色。它主要用于在后臺處理一些耗時的邏輯,或者去執行某些需要長期運行的任務。

<service android:enabled=["true" | "false"] android:exported[="true" | "false"] android:icon="drawable resource" android:label="string resource" android:name="string" android:permission="string" android:process="string" > 
</service>

?

2.6 uses-permission

  作為安全模型的一部分,uses-permission標簽聲明了那些由你定義的權限,而這些權限是應用程序正常執行所必需的。在安裝程序的時候,你設定的所有權限將會告訴給用戶,由他們來決定同意與否。對很多本地Android服務來說,權限都是必需的,特別是那些需要付費或者有安全問題的服務(例如,撥號、接收SMS或者使用基于位置的服務)。如下所示,第三方應用程序,包括你自己的應用程序,也可以在提供對共享的程序組件進行訪問之前指定權限。

<uses-permission android:name="android.permission.ACCESS_LOCATION"> </uses-permission>

2.7 permission

  在可以限制訪問某個應用程序組件之前,需要在清單中定義一個permission。可以使用permission標簽來創建這些權限定義。然后,應用程序組件就可以通過添加android:permission屬性來要求這些權限。再后,其他的應用程序就需要在它們的清單中包含uses-permission標簽(并且通過授權),之后才能使用這些受保護的組件。

  在uses-permission標簽內,可以詳細指定允許的訪問權限的級別(normal、dangerous、signature、signatureOrSystem)、一個 label屬性和一個外部資源,這個外部資源應該包含了對授予這種權限的風險的描述。

<permission          
  android:name="com.liujc.DETONATE_DEVICE" android:protectionLevel="dangerous" android:label="Self Destruct" android:description="@string/detonate_description"> </permission>

2.8? instrumentation

  instrumentation類提供一個框架,用來在應用程序運行時在活動或者服務上運行測試。它們提供了一些方法來監控應用程序及其與系統資源的交互。對于為自己的應用程序所創建的每一個測試類,都需要創建一個新的節點。

<instrumentation  
  android:label="My Test"
  android:name
=".MyTestClass"
  android:targetPackage="com.liujc.test">
</
instrumentation>

?2.9 uses-feature

  Android Market會根據uses-feature過濾所有你設備不支持的應用。通過使用<uses-feature>元素,一個應用可以指定它所支持的硬件型號,舉個例子,有些設備不支持多點觸控或者OpenGL ES 2.0,那么過濾器就會過濾需要這些硬件支持(多點觸控或者OpenGL ES 2.0)的應用,用戶就不會在android market上看到這些應用。

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

  name屬性指定了應用的特征,required屬性告訴過濾器我們是否在任何情況下必須要需要這個設備的支持,或者僅僅只是“nice to have”。最后一個屬性是可選擇的,只是用在需要指定一個OpenGL ES版本的時候。

  接下來的幾個硬件特征對于游戲開發是非常有用的。

  android.hardware.touchscreen.multitouch:它要求設備有一個多點觸控的屏幕以支持基本的多點觸控交互,就如收縮(放大)圖像比例。這些類型的屏幕跟蹤多個手指的能力都有所不同,所以你必須確保這個屏幕的性能是能夠支持的游戲進行。

  android.hardware.touchscreen.multitouch.distinct: 這是一個多點觸控的兄弟屬性,它要求提設備供完整的多點觸控功能。我們將會在接下來的章節片段中看到多點觸控。現在只要記住在當你的游戲需要一個支持多點觸控的屏幕的時候,我們可以使用 <uses-feature>元素來剔除所有不支持多點觸控的設備,就像下面這樣:

<uses-feature 
  android:name="android.hardware.touchscreen.multitouch"
  android:required
="true"/>

  如果你的游戲需要更強大的圖形處理能力,我們可以指定OpenGL ES 2.0,然后我們的游戲只會被支持OpenGL ES 2.0的設備所看見。注意,這里一般不使用OPenGL ES 2.0, 我們只是過濾那些不能提供足夠圖形處理能力的設備。下面顯示了我們怎么去實現它。

<uses-feature android:glEsVersion="0x00020000" required="true"/>

?2.10 intent-filter?

<intent-filter  android:icon="drawable resource"android:label="string resource"android:priority="integer" ><action /><category /><data /></intent-filter> 

參考文章:https://blog.csdn.net/u012486840/article/details/52468931

轉載于:https://www.cnblogs.com/qiangge-python/p/9762777.html

總結

以上是生活随笔為你收集整理的Android 基础 一 AndroidManifest.xml的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 天堂一级片 | 亚洲欧美国产日韩精品 | 天天操夜夜欢 | 日本欧美久久久 | 国内av网站 | 国产三级网站 | 337p亚洲精品色噜噜狠狠 | 欧美在线免费视频 | 天天干干天天 | 污污内射在线观看一区二区少妇 | 日本成人片在线 | 好吊操精品视频 | 一边摸上面一边摸下面 | 成人免费大全 | 密臀av在线播放 | 日韩爱爱视频 | 黄瓜视频在线观看 | 痴女扩张宫交脱垂重口小说 | 亚洲欧美日韩图片 | 久久精品视 | 一卡二卡精品 | 成人精品久久久 | 少妇肥臀大白屁股高清 | 国产一区欧美日韩 | av在线网站观看 | 超碰97在线看 | 天天做天天爱夜夜爽 | 精品中文在线 | 色老妹| 国产剧情在线一区 | 久久99久久99精品蜜柚传媒 | 91成人午夜| 在线中文视频 | 日韩中文字幕视频在线 | 寡妇高潮一级视频免费看 | 国产淫片av片久久久久久 | 一级在线观看 | 密臀av一区二区 | 美国做爰xxxⅹ性视频 | 青青免费视频 | 男人操女人逼逼视频 | 欧美成人国产va精品日本一级 | 免费精品 | 91精品91 | 欧美午夜精品一区二区三区电影 | 性欧美video另类hd尤物 | 亚洲www在线观看 | 欧美色图小说 | 91丝袜呻吟高潮美腿白嫩在线观看 | 日本黄色小片 | 日本欧美久久久 | 亚洲男人天堂2019 | 日本www视频在线观看 | 亚洲乱码国产乱码精品 | 黄色日皮视频 | 亚洲在线一区二区 | 国产视频网站在线观看 | 69影院少妇在线观看 | 日韩一区二区不卡视频 | 午夜视频网站在线观看 | av尤物在线 | 中文字幕在线观看网 | 粉嫩av网| 天天想你在线观看完整版高清 | 在线欧美激情 | 日本视频免费在线播放 | 青青操久久| 毛片毛片毛片毛片毛片毛片 | 免费视频网站www | 国产亚洲精品久久 | 免费无码不卡视频在线观看 | 在线观看日本中文字幕 | 337p日本欧洲亚洲大胆张筱雨 | 欧美cccc极品丰满hd | 草久久久久 | 天天干天天干天天 | 青青草综合在线 | 逼特逼视频在线观看 | 国产一二三在线视频 | jizz性欧美17| 男女曰逼视频 | 国产美女无遮挡网站 | 91蜜桃网| 涩漫天堂 | 日韩黄色三级视频 | 蜜桃臀aⅴ精品一区二区三区 | 国产日本欧美在线观看 | 国产精品 欧美精品 | 都市激情校园春色亚洲 | 少妇高潮久久久 | 污视频免费在线观看 | 波多野结衣高清电影 | 午夜一区二区三区 | 欧美午夜在线 | 国产伦精品一区二区三 | 浴室里强摁做开腿呻吟男男 | 另类男人与善交video | www.com久久 | 亚洲免费观看视频 |