免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
Unity與Android

說(shuō)明:

在Unity開(kāi)發(fā)移動(dòng)平臺(tái)相關(guān)應(yīng)用程序時(shí),難免會(huì)涉及到一些必要的插件(如:社會(huì)化分享插件ShareSDK、Umeng;增強(qiáng)現(xiàn)實(shí)開(kāi)發(fā)Vufoia;掃描二維碼插件等一些列),每一種插件分開(kāi)使用時(shí)特別好用,無(wú)需特殊配置,使用Example案例就能快速上手使用。然后,當(dāng)有時(shí)同時(shí)需要多個(gè)插件同時(shí)使用時(shí),由于每個(gè)插件都包含有自身的Androidmanifest.xml文件,必然會(huì)出現(xiàn)的問(wèn)題就是后面導(dǎo)入到Unity工程的Androidmanifest.xml文件會(huì)自動(dòng)重命名為Androidmanifest 1.xml,Androidmanifest 2.xml。。。由于同一個(gè)Android程序中,僅能識(shí)別一個(gè)“Androidmanifest”文件,后面導(dǎo)入并重命名的Androidmanifest.xml文件將無(wú)法識(shí)別到,也就導(dǎo)致了很多開(kāi)發(fā)者在使用多個(gè)插件時(shí)只有一個(gè)插件功能可使用的情況。

掌握必要的Androidmanifest.xml內(nèi)容:

Androidmanifest.xml介紹:

AndroidManifest.xml文件是Android系統(tǒng)重要文件,主要涉及到權(quán)限申請(qǐng)及定義配置文件,通過(guò)它可以向系統(tǒng)預(yù)先定義和申請(qǐng)應(yīng)用程序運(yùn)行所需要的權(quán)限。

Androidmanifest.xml的主要用途:

AndroidManifest.xml主要包含以下功能:
  • 描述應(yīng)用程序的相關(guān)信息——包名、命名空間、版本號(hào)、名稱等
  • 聲明應(yīng)用程序所必須具備的權(quán)限——如獲取相機(jī)權(quán)限、WiFi權(quán)限等
  • 聲明程序的入口
  • 指定應(yīng)用程序所使用的SDK版本
  • 指定應(yīng)用程序會(huì)使用到的庫(kù)文件
  • 設(shè)定應(yīng)用程序的硬件或一些屬性——屏幕大小、是否支持旋轉(zhuǎn)屏幕等

Androidmanifest.xml的詳解:

Androidmanifest.xml的結(jié)構(gòu)

  1. <pre name="code" class="html"><?xmlversionxmlversion="1.0"encoding="utf-8"?>  
  2.   
  3.     <!-- 基本配置 -->    
  4. <manifest  
  5.         android:versionName="1.0"   
  6.         android:versionCode="1"   
  7.         package="com.unity3d.player"   
  8.         xmlns:android="http://schemas.android.com/apk/res/android">  
  9.     <!-- 應(yīng)用程序配置 -->    
  10.     <application>  
  11.         <!-- 活動(dòng)項(xiàng) -->    
  12.        <activity>  
  13.            <intent-filter>  
  14.                <action/>  
  15.                <category/>  
  16.            </intent-filter>  
  17.       </activity>  
  18.       <!-- 后端活動(dòng)項(xiàng) -->    
  19.        <service>  
  20.            <intent-filter></intent-filter>  
  21.            <meta-data/>  
  22.        </service>  
  23.        <!--發(fā)送廣播-->  
  24.        <receiver>  
  25.            <intent-filter></intent-filter>  
  26.            <meta-data/>  
  27.        </receiver>  
  28.         <!--使用的庫(kù)文件-->  
  29.        <uses-library/>  
  30.     </application>  
  31.       
  32.     <!--權(quán)限配置-->  
  33.     <uses-permission/>  
  34.     <permission/>  
  35.   
  36.     <!--用于監(jiān)控-->  
  37.     <instrumentation/>  
  38.     <!--SDK版本-->  
  39.     <uses-sdk/>  
  40.     <!---軟硬件描述-->  
  41.     <uses-configuration/>   
  42.     <uses-feature/>   
  43.     <!--屏幕設(shè)置-->  
  44.     <supports-screens/>  
  45. </manifest>  

Androidmanifest.xml的結(jié)構(gòu)——(<Manifest>):(屬性)

  1. <manifest  xmlns:android="http://schemas.android.com/apk/res/android"  
  2.           package="com.Bruce.Xu.test"  
  3.           android:sharedUserId="string"  
  4.           android:sharedUserLabel="string resource"  
  5.           android:versionCode="integer"  
  6.           android:versionName="string"  
  7.           android:installLocation=["auto" | "internalOnly" | "preferExternal"] >  
  8. </manifest>  
  • xmlns:android——定義android命名空間,一般為http://schemas.android.com/apk/res/android,這樣使得Android中各種標(biāo)準(zhǔn)屬性能在文件中使用,提供了大部分元素中的數(shù)據(jù)。
  • package——指定本應(yīng)用內(nèi)java主程序包的包名,它也是一個(gè)應(yīng)用進(jìn)程的默認(rèn)名稱
  • sharedUserId——表明數(shù)據(jù)權(quán)限,因?yàn)槟J(rèn)情況下,Android給每個(gè)APK分配一個(gè)唯一的UserID,所以是默認(rèn)禁止不同APK訪問(wèn)共享數(shù)據(jù)的。若要共享數(shù)據(jù),第一可以采用Share Preference方法,第二種就可以采用sharedUserId了,將不同APK的sharedUserId都設(shè)為一樣,則這些APK之間就可以互相共享數(shù)據(jù)了。
  • sharedUserLabel——一個(gè)共享的用戶名,它只有在設(shè)置了sharedUserId屬性的前提下才會(huì)有意義
  • versionCode——是給設(shè)備程序識(shí)別版本(升級(jí))用的必須是一個(gè)interger值代表app更新過(guò)多少次
  • versionName——顯示出來(lái)的版本名稱
  • installLocation——安裝參數(shù),installLocation有三個(gè)值:internalOnly、auto、preferExternal
  • 選擇preferExternal,系統(tǒng)會(huì)優(yōu)先考慮將APK安裝到SD卡上(當(dāng)然最終用戶可以選擇為內(nèi)部ROM存儲(chǔ)上,如果SD存儲(chǔ)已滿,也會(huì)安裝到內(nèi)部存儲(chǔ)上)
  • 選擇auto,系統(tǒng)將會(huì)根據(jù)存儲(chǔ)空間自己去適應(yīng)
  • 選擇internalOnly是指必須安裝到內(nèi)部才能運(yùn)行

Androidmanifest.xml的結(jié)構(gòu)——(<Application>):屬性

一個(gè)AndroidManifest.xml中必須含有一個(gè)Application標(biāo)簽,這個(gè)標(biāo)簽聲明了每一個(gè)應(yīng)用程序的組件及其屬性(如icon,label,permission等)
  1. <application  android:allowClearUserData=["true" | "false"]  
  2.              android:allowTaskReparenting=["true" | "false"]  
  3.              android:backupAgent="string"  
  4.              android:debuggable=["true" | "false"]  
  5.              android:description="string resource"  
  6.              android:enabled=["true" | "false"]  
  7.              android:hasCode=["true" | "false"]  
  8.              android:icon="drawable resource"  
  9.              android:killAfterRestore=["true" | "false"]  
  10.              android:label="string resource"  
  11.              android:manageSpaceActivity="string"  
  12.              android:name="string"  
  13.              android:permission="string"  
  14.              android:persistent=["true" | "false"]  
  15.              android:process="string"  
  16.              android:restoreAnyVersion=["true" | "false"]  
  17.              android:taskAffinity="string"  
  18.              android:theme="resource or theme" >  
  19. </application>  
  • android:allowClearUserData('true' or 'false')——用戶是否能選擇自行清除數(shù)據(jù),默認(rèn)為true,程序管理器包含一個(gè)選擇允許用戶清除數(shù)據(jù)。當(dāng)為true時(shí),用戶可自己清理用戶數(shù)據(jù),反之亦然
  • android:allowTaskReparenting('true' or 'false')——是否允許activity更換從屬的任務(wù),比如從短信息任務(wù)切換到瀏覽器任務(wù)
  • android:backupAgent——這也是Android2.2中的一個(gè)新特性,設(shè)置該APP的備份,屬性值應(yīng)該是一個(gè)完整的類名,如com.project.TestCase,此屬性并沒(méi)有默認(rèn)值,并且類名必須得指定(就是個(gè)備份工具,將數(shù)據(jù)備份到云端的操作)


  • android:debuggable——這個(gè)從字面上就可以看出是什么作用的,當(dāng)設(shè)置為true時(shí),表明該APP在手機(jī)上可以被調(diào)試。默認(rèn)為false,在false的情況下調(diào)試該APP,就會(huì)報(bào)以下錯(cuò)誤:


  • android:description/android:label——此兩個(gè)屬性都是為許可提供的,均為字符串資源,當(dāng)用戶去看許可列表(android:label)或者某個(gè)許可的詳細(xì)信息(android:description)時(shí),這些字符串資源就可以顯示給用戶。label應(yīng)當(dāng)盡量簡(jiǎn)短,之需要告知用戶該許可是在保護(hù)什么功能就行。而description可以用于具體描述獲取該許可的程序可以做哪些事情,實(shí)際上讓用戶可以知道如果他們同意程序獲取該權(quán)限的話,該程序可以做什么。我們通常用兩句話來(lái)描述許可,第一句描述該許可,第二句警告用戶如果批準(zhǔn)該權(quán)限會(huì)可能有什么不好的事情發(fā)生


  • android:enabled——Android系統(tǒng)是否能夠?qū)嵗搼?yīng)用程序的組件,如果為true,每個(gè)組件的enabled屬性決定那個(gè)組件是否可以被 enabled。如果為false,它覆蓋組件指定的值;所有組件都是disabled。


  • android:hasCode('true' or 'false')——表示此APP是否包含任何的代碼,默認(rèn)為true,若為false,則系統(tǒng)在運(yùn)行組件時(shí),不會(huì)去嘗試加載任何的APP代碼
  • 一個(gè)應(yīng)用程序自身不會(huì)含有任何的代碼,除非內(nèi)置組件類,比如Activity類,此類使用了AliasActivity類,當(dāng)然這是個(gè)罕見(jiàn)的現(xiàn)象
  • (在Android2.3可以用標(biāo)準(zhǔn)C來(lái)開(kāi)發(fā)應(yīng)用程序,可在androidManifest.xml中將此屬性設(shè)置為false,因?yàn)檫@個(gè)APP本身已經(jīng)不含有任何的JAVA代碼了)


  • android:icon——這個(gè)很簡(jiǎn)單,就是聲明整個(gè)APP的圖標(biāo),圖片一般都放在drawable文件夾下


  • android:name——為應(yīng)用程序所實(shí)現(xiàn)的Application子類的全名。當(dāng)應(yīng)用程序進(jìn)程開(kāi)始時(shí),該類在所有應(yīng)用程序組件之前被實(shí)例化。


  • android:permission——設(shè)置許可名,這個(gè)屬性若在<application>上定義的話,是一個(gè)給應(yīng)用程序的所有組件設(shè)置許可的便捷方式,當(dāng)然它是被各組件設(shè)置的許可名所覆蓋的


  • android:presistent——該應(yīng)用程序是否應(yīng)該在任何時(shí)候都保持運(yùn)行狀態(tài),默認(rèn)為false。因?yàn)閼?yīng)用程序通常不應(yīng)該設(shè)置本標(biāo)識(shí),持續(xù)模式僅僅應(yīng)該設(shè)置給某些系統(tǒng)應(yīng)用程序才是有意義的。


  • android:process——應(yīng)用程序運(yùn)行的進(jìn)程名,它的默認(rèn)值為<manifest>元素里設(shè)置的包名,當(dāng)然每個(gè)組件都可以通過(guò)設(shè)置該屬性來(lái)覆蓋默認(rèn)值。如果你想兩個(gè)應(yīng)用程序共用一個(gè)進(jìn)程的話,你可以設(shè)置他們的android:process相同,但前提條件是他們共享一個(gè)用戶ID及被賦予了相同證書(shū)的時(shí)候


  • android:restoreAnyVersion——同樣也是android2.2的一個(gè)新特性,用來(lái)表明應(yīng)用是否準(zhǔn)備嘗試恢復(fù)所有的備份,甚至該備份是比當(dāng)前設(shè)備上更要新的版本,默認(rèn)是false


  • android:taskAffinity——擁有相同的affinity的Activity理論上屬于相同的Task,應(yīng)用程序默認(rèn)的affinity的名字是<manifest>元素中設(shè)定的package名

Androidmanifest.xml的結(jié)構(gòu)——(<Activity>):屬性

  1. <activity android:allowTaskReparenting=["true" | "false"]  
  2.           android:alwaysRetainTaskState=["true" | "false"]  
  3.           android:clearTaskOnLaunch=["true" | "false"]  
  4.           android:configChanges=["mcc", "mnc", "locale",  
  5.                                  "touchscreen", "keyboard", "keyboardHidden",  
  6.                                  "navigation", "orientation", "screenLayout",  
  7.                                  "fontScale", "uiMode"]  
  8.           android:enabled=["true" | "false"]  
  9.           android:excludeFromRecents=["true" | "false"]  
  10.           android:exported=["true" | "false"]  
  11.           android:finishOnTaskLaunch=["true" | "false"]  
  12.           android:icon="drawable resource"  
  13.           android:label="string resource"  
  14.           android:launchMode=["multiple" | "singleTop" |  
  15.                               "singleTask" | "singleInstance"]  
  16.           android:multiprocess=["true" | "false"]  
  17.           android:name="string"  
  18.           android:noHistory=["true" | "false"]    
  19.           android:permission="string"  
  20.           android:process="string"  
  21.           android:screenOrientation=["unspecified" | "user" | "behind" |  
  22.                                      "landscape" | "portrait" |  
  23.                                      "sensor" | "nosensor"]  
  24.           android:stateNotNeeded=["true" | "false"]  
  25.           android:taskAffinity="string"  
  26.           android:theme="resource or theme"  
  27.           android:windowSoftInputMode=["stateUnspecified",  
  28.                                        "stateUnchanged", "stateHidden",  
  29.                                        "stateAlwaysHidden", "stateVisible",  
  30.                                        "stateAlwaysVisible", "adjustUnspecified",  
  31.                                        "adjustResize", "adjustPan"] >     
  32. </activity>  
  • android:alwaysRetainTaskState——是否保留狀態(tài)不變, 比如切換回home, 再?gòu)男麓蜷_(kāi),activity處于最后的狀態(tài)。比如一個(gè)瀏覽器擁有很多狀態(tài)(當(dāng)打開(kāi)了多個(gè)TAB的時(shí)候),用戶并不希望丟失這些狀態(tài)時(shí),此時(shí)可將此屬性設(shè)置為true
  • android:clearTaskOnLaunch——比如 P 是 activity, Q 是被P 觸發(fā)的 activity, 然后返回Home, 重新啟動(dòng) P,是否顯示 Q
  • android:configChanges——當(dāng)配置list發(fā)生修改時(shí), 是否調(diào)用 onConfigurationChanged() 方法  比如 "locale|navigation|orientation". 這個(gè)我用過(guò),主要用來(lái)看手機(jī)方向改變的. android手機(jī)在旋轉(zhuǎn)后,layout會(huì)重新布局, 如何做到呢?正常情況下. 如果手機(jī)旋轉(zhuǎn)了.當(dāng)前Activity后殺掉,然后根據(jù)方向重新加載這個(gè)Activity. 就會(huì)從onCreate開(kāi)始重新加載.如果你設(shè)置了 這個(gè)選項(xiàng), 當(dāng)手機(jī)旋轉(zhuǎn)后,當(dāng)前Activity之后調(diào)用onConfigurationChanged() 方法. 而不跑onCreate方法等.
  • android:excludeFromRecents——是否可被顯示在最近打開(kāi)的activity列表里,默認(rèn)是false
  • android:finishOnTaskLaunch——當(dāng)用戶重新啟動(dòng)這個(gè)任務(wù)的時(shí)候,是否關(guān)閉已打開(kāi)的activity,默認(rèn)是false。如果這個(gè)屬性和allowTaskReparenting都是true,這個(gè)屬性就是王牌。Activity的親和力將被忽略。該Activity已經(jīng)被摧毀并非re-parented
  • android:launchMode(Activity加載模式)——在多Activity開(kāi)發(fā)中,有可能是自己應(yīng)用之間的Activity跳轉(zhuǎn),或者夾帶其他應(yīng)用的可復(fù)用Activity??赡軙?huì)希望跳轉(zhuǎn)到原來(lái)某個(gè)Activity實(shí)例,而不是產(chǎn)生大量重復(fù)的Activity。這需要為Activity配置特定的加載模式,而不是使用默認(rèn)的加載模式
  • Activity有四種加載模式:
  • standard、singleTop、singleTask、singleInstance(其中前兩個(gè)是一組、后兩個(gè)是一組),默認(rèn)為standard 
  • standard:就是intent將發(fā)送給新的實(shí)例,所以每次跳轉(zhuǎn)都會(huì)生成新的activity。
  • singleTop:也是發(fā)送新的實(shí)例,但不同standard的一點(diǎn)是,在請(qǐng)求的Activity正好位于棧頂時(shí)(配置成singleTop的Activity),不會(huì)構(gòu)造新的實(shí)例
  • singleTask:和后面的singleInstance都只創(chuàng)建一個(gè)實(shí)例,當(dāng)intent到來(lái),需要?jiǎng)?chuàng)建設(shè)置為singleTask的Activity的時(shí)候,系統(tǒng)會(huì)檢查棧里面是否已經(jīng)有該Activity的實(shí)例。如果有直接將intent發(fā)送給它。
  • singleInstance:首先說(shuō)明一下task這個(gè)概念,Task可以認(rèn)為是一個(gè)棧,可放入多個(gè)Activity。比如啟動(dòng)一個(gè)應(yīng)用,那么Android就創(chuàng)建了一個(gè)Task,然后啟動(dòng)這個(gè)應(yīng)用的入口Activity,那在它的界面上調(diào)用其他的Activity也只是在這個(gè)task里面。那如果在多個(gè)task中共享一個(gè)Activity的話怎么辦呢。舉個(gè)例來(lái)說(shuō),如果開(kāi)啟一個(gè)導(dǎo)游服務(wù)類的應(yīng)用程序,里面有個(gè)Activity是開(kāi)啟GOOGLE地圖的,當(dāng)按下home鍵退回到主菜單又啟動(dòng)GOOGLE地圖的應(yīng)用時(shí),顯示的就是剛才的地圖,實(shí)際上是同一個(gè)Activity,實(shí)際上這就引入了singleInstance。singleInstance模式就是將該Activity單獨(dú)放入一個(gè)棧中,這樣這個(gè)棧中只有這一個(gè)Activity,不同應(yīng)用的intent都由這個(gè)Activity接收和展示,這樣就做到了共享。當(dāng)然前提是這些應(yīng)用都沒(méi)有被銷毀,所以剛才是按下的HOME鍵,如果按下了返回鍵,則無(wú)效
  • android:multiprocess——是否允許多進(jìn)程,默認(rèn)是false
  • android:noHistory——當(dāng)用戶從Activity上離開(kāi)并且它在屏幕上不再可見(jiàn)時(shí),Activity是否從Activity stack中清除并結(jié)束。默認(rèn)是false。Activity不會(huì)留下歷史痕跡
  • android:screenOrientation——activity顯示的模式
  • 默認(rèn)為unspecified:由系統(tǒng)自動(dòng)判斷顯示方向
  • landscape橫屏模式,寬度比高度大
  • portrait豎屏模式, 高度比寬度大
  • user模式,用戶當(dāng)前首選的方向
  • behind模式:和該Activity下面的那個(gè)Activity的方向一致(在Activity堆棧中的)
  • sensor模式:有物理的感應(yīng)器來(lái)決定。如果用戶旋轉(zhuǎn)設(shè)備這屏幕會(huì)橫豎屏切換
  • nosensor模式:忽略物理感應(yīng)器,這樣就不會(huì)隨著用戶旋轉(zhuǎn)設(shè)備而更改了
  • android:stateNotNeeded——activity被銷毀或者成功重啟時(shí)是否保存狀態(tài)
  • android:windowSoftInputMode——activity主窗口與軟鍵盤的交互模式,可以用來(lái)避免輸入法面板遮擋問(wèn)題,Android1.5后的一個(gè)新特性。
  • 這個(gè)屬性能影響兩件事情:
  • 【A】當(dāng)有焦點(diǎn)產(chǎn)生時(shí),軟鍵盤是隱藏還是顯示
  • 【B】是否減少活動(dòng)主窗口大小以便騰出空間放軟鍵盤
  • 各值的含義:
  • 【A】stateUnspecified:軟鍵盤的狀態(tài)并沒(méi)有指定,系統(tǒng)將選擇一個(gè)合適的狀態(tài)或依賴于主題的設(shè)置
  • 【B】stateUnchanged:當(dāng)這個(gè)activity出現(xiàn)時(shí),軟鍵盤將一直保持在上一個(gè)activity里的狀態(tài),無(wú)論是隱藏還是顯示
  • 【C】stateHidden:用戶選擇activity時(shí),軟鍵盤總是被隱藏
  • 【D】stateAlwaysHidden:當(dāng)該Activity主窗口獲取焦點(diǎn)時(shí),軟鍵盤也總是被隱藏的
  • 【E】stateVisible:軟鍵盤通常是可見(jiàn)的
  • 【F】stateAlwaysVisible:用戶選擇activity時(shí),軟鍵盤總是顯示的狀態(tài)
  • 【G】adjustUnspecified:默認(rèn)設(shè)置,通常由系統(tǒng)自行決定是隱藏還是顯示
  • 【H】adjustResize:該Activity總是調(diào)整屏幕的大小以便留出軟鍵盤的空間
  • 【I】adjustPan:當(dāng)前窗口的內(nèi)容將自動(dòng)移動(dòng)以便當(dāng)前焦點(diǎn)從不被鍵盤覆蓋和用戶能總是看到輸入內(nèi)容的部分

Androidmanifest.xml的結(jié)構(gòu)——(<intent-filter>)

  1. <intent-filter  android:icon="drawable resource"  
  2.                android:label="string resource"  
  3.                android:priority="integer" >  
  4.       <action />  
  5.       <category />  
  6.       <data />  
  7.   
  8. </intent-filter>   
  • android:priority(解釋:有序廣播主要是按照聲明的優(yōu)先級(jí)別,如A的級(jí)別高于B,那么,廣播先傳給A,再傳給B。優(yōu)先級(jí)別就是用設(shè)置priority屬性來(lái)確定,范圍是從-1000~1000,數(shù)越大優(yōu)先級(jí)別越高)
  • Intent filter內(nèi)會(huì)設(shè)定的資料包括action,data與category三種。也就是說(shuō)filter只會(huì)與intent里的這三種資料作對(duì)比動(dòng)作
  • action屬性:
  • action很簡(jiǎn)單,只有android:name這個(gè)屬性。常見(jiàn)的android:name值為android.intent.action.MAIN,表明此activity是作為應(yīng)用程序的入口。有關(guān)android:name具體有哪些值,可參照這個(gè)網(wǎng)址:http://hi.baidu.com/linghtway/blog/item/83713cc1c2d053170ff477a7.html
  • category屬性:
  • category也只有android:name屬性。常見(jiàn)的android:name值為android.intent.category.LAUNCHER(決定應(yīng)用程序是否顯示在程序列表里)

Androidmanifest.xml的結(jié)構(gòu)——data屬性

  1. <data  android:host="string"  
  2.       android:mimeType="string"  
  3.       android:path="string"  
  4.       android:pathPattern="string"  
  5.       android:pathPrefix="string"  
  6.       android:port="string"  
  7.       android:scheme="string"/>  
  • 每個(gè)<data>元素指定一個(gè)URI和數(shù)據(jù)類型(MIME類型)。它有四個(gè)屬性scheme、host、port、path對(duì)應(yīng)于URI的每個(gè)部分: 
  • scheme://host:port/path
  • scheme的值一般為"http",host為包名,port為端口號(hào),path為具體地址。如:http://com.test.project:200/folder/etc
  • 其中host和port合起來(lái)構(gòu)成URI的憑據(jù)(authority),如果host沒(méi)有指定,則port也會(huì)被忽略
  • 要讓authority有意義,scheme也必須要指定。要讓path有意義,scheme+authority也必須要指定
  • mimeType(指定數(shù)據(jù)類型),若mimeType為'Image',則會(huì)從content Provider的指定地址中獲取image類型的數(shù)據(jù)。還有'video'啥的,若設(shè)置為video/mp4,則表示在指定地址中獲取mp4格式的video文件
  • 而pathPattern和PathPrefix主要是為了格式化path所使用的

Androidmanifest.xml的結(jié)構(gòu)——<meta-data>

  1. <meta-data android:name="string"  
  2.            android:resource="resource specification"  
  3.            android:value="string"/>  
這是該元素的基本結(jié)構(gòu).可以包含在<activity> <activity-alias> <service> <receiver>四個(gè)元素中。
  • android:name(解釋:元數(shù)據(jù)項(xiàng)的名字,為了保證這個(gè)名字是唯一的,采用java風(fēng)格的命名規(guī)范,如com.woody.project.fried)
  • android:resource(解釋:資源的一個(gè)引用,指定給這個(gè)項(xiàng)的值是該資源的id。該id可以通過(guò)方法Bundle.getInt()來(lái)從meta-data中找到。)
  • android:value(解釋:指定給這一項(xiàng)的值。可以作為值來(lái)指定的數(shù)據(jù)類型并且組件用來(lái)找回那些值的Bundle方法:[getString],[getInt],[getFloat],[getString],[getBoolean])

Androidmanifest.xml的結(jié)構(gòu)——<service>

  • 【1】service與activity同級(jí),與activity不同的是,它不能自己?jiǎn)?dòng)的,運(yùn)行在后臺(tái)的程序,如果我們退出應(yīng)用時(shí),Service進(jìn)程并沒(méi)有結(jié)束,它仍然在后臺(tái)運(yùn)行。比如聽(tīng)音樂(lè),網(wǎng)絡(luò)下載數(shù)據(jù)等,都是由service運(yùn)行的
  • 【2】service生命周期:Service只繼承了onCreate(),onStart(),onDestroy()三個(gè)方法,第一次啟動(dòng)Service時(shí),先后調(diào)用了onCreate(),onStart()這兩個(gè)方法,當(dāng)停止Service時(shí),則執(zhí)行onDestroy()方法,如果Service已經(jīng)啟動(dòng)了,當(dāng)我們?cè)俅螁?dòng)Service時(shí),不會(huì)在執(zhí)行onCreate()方法,而是直接執(zhí)行onStart()方法
  • 【3】service與activity間的通信
  • Service后端的數(shù)據(jù)最終還是要呈現(xiàn)在前端Activity之上的,因?yàn)閱?dòng)Service時(shí),系統(tǒng)會(huì)重新開(kāi)啟一個(gè)新的進(jìn)程,這就涉及到不同進(jìn)程間通信的問(wèn)題了(AIDL),Activity與service間的通信主要用IBinder負(fù)責(zé)。

Androidmanifest.xml的結(jié)構(gòu)——<receiver>

  • receiver的屬性與service一樣
  • BroadcastReceiver:用于發(fā)送廣播,broadcast是在應(yīng)用程序之間傳輸信息的一種機(jī)制,而B(niǎo)roadcastReceiver是對(duì)發(fā)送出來(lái)的 Broadcast進(jìn)行過(guò)濾接受并響應(yīng)的一類組件

Androidmanifest.xml的結(jié)構(gòu)——<uses-library>

用戶庫(kù),可自定義。所有android的包都可以引用
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
AndroidManifest.xml文件綜合詳解
Android應(yīng)用程序開(kāi)發(fā)以及背后的設(shè)計(jì)思想深度剖析(2)
AndroidManifest.xml的作用
[轉(zhuǎn)]android安全機(jī)制分析(2)
Android學(xué)習(xí)筆記之AndroidManifest.xml文件解析
Android應(yīng)用程序結(jié)構(gòu)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服