青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

專職C++

不能停止的腳步

  C++博客 :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
  163 Posts :: 7 Stories :: 135 Comments :: 0 Trackbacks

常用鏈接

留言簿(28)

我參與的團(tuán)隊(duì)

搜索

  •  

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

轉(zhuǎn)貼部分地址:http://www.cnblogs.com/pilang/archive/2011/04/20/2022932.html
轉(zhuǎn)貼內(nèi)容:
一、關(guān)于AndroidManifest.xml
AndroidManifest.xml 是每個(gè)android程序中必須的文件。它位于整個(gè)項(xiàng)目的根目錄,描述了package中暴露的組件(activities, services, 等等),他們各自的實(shí)現(xiàn)類,各種能被處理的數(shù)據(jù)和啟動(dòng)位置。 除了能聲明程序中的Activities, ContentProviders, Services, 和Intent Receivers,還能指定permissions和instrumentation(安全控制和測(cè)試)
二、AndroidManifest.xml結(jié)構(gòu)
  <?xmlversion="1.0"encoding="utf-8"?> <manifest>
    <application>
       <activity>
           <intent-filter>
               <action/>
               <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>
    <uses-permission/>
    <permission/>
    <permission-tree/>
    <permission-group/>
    <instrumentation/>
    <uses-sdk/>
    <uses-configuration/> 
    <uses-feature/> 
    <supports-screens/>
</manifest>
三、各個(gè)節(jié)點(diǎn)的詳細(xì)介紹
 上面就是整個(gè)am(androidManifest).xml的結(jié)構(gòu),下面以外向內(nèi)開(kāi)始闡述~~
1、第一層(<Manifest>):(屬性)
<manifest  xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.woody.test"
          android:sharedUserId="string"
          android:sharedUserLabel="string resource"
          android:versionCode="integer"
          android:versionName="string"
          android:installLocation=["auto" | "internalOnly" | "preferExternal"] >
</manifest>
A、xmlns:android
定義android命名空間,一般為http://schemas.android.com/apk/res/android,這樣使得Android中各種標(biāo)準(zhǔn)屬性能在文件中使用,提供了大部分元素中的數(shù)據(jù)。
B、package
指定本應(yīng)用內(nèi)java主程序包的包名,它也是一個(gè)應(yīng)用進(jìn)程的默認(rèn)名稱
C、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ù)了。詳見(jiàn):http://wallage.blog.163.com/blog/static/17389624201011010539408/
D、sharedUserLabel
一個(gè)共享的用戶名,它只有在設(shè)置了sharedUserId屬性的前提下才會(huì)有意義
E、versionCode
是給設(shè)備程序識(shí)別版本(升級(jí))用的必須是一個(gè)interger值代表app更新過(guò)多少次,比如第一版一般為1,之后若要更新版本就設(shè)置為2,3等等。。。
F、versionName
這個(gè)名稱是給用戶看的,你可以將你的APP版本號(hào)設(shè)置為1.1版,后續(xù)更新版本設(shè)置為1.2、2.0版本等等。。。
G、installLocation
安裝參數(shù),是Android2.2中的一個(gè)新特性,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)行
(注:需要進(jìn)行后臺(tái)類監(jiān)控的APP最好安裝在內(nèi)部,而一些較大的游戲APP最好安裝在SD卡上。現(xiàn)默認(rèn)為安裝在內(nèi)部,如果把APP安裝在SD卡上,首先得設(shè)置你的level為8,并且要配置android:installLocation這個(gè)參數(shù)的屬性為preferExternal)
2、第二層(<Application>):屬性
一個(gè)AndroidManifest.xml中必須含有一個(gè)Application標(biāo)簽,這個(gè)標(biāo)簽聲明了每一個(gè)應(yīng)用程序的組件及其屬性(如icon,label,permission等)
<application  android:allowClearUserData=["true" | "false"]
             android:allowTaskReparenting=["true" | "false"]
             android:backupAgent="string"
             android:debuggable=["true" | "false"]
             android:description="string resource"
             android:enabled=["true" | "false"]
             android:hasCode=["true" | "false"]
             android:icon="drawable resource"
             android:killAfterRestore=["true" | "false"]
             android:label="string resource"
             android:manageSpaceActivity="string"
             android:name="string"
             android:permission="string"
             android:persistent=["true" | "false"]
             android:process="string"
             android:restoreAnyVersion=["true" | "false"]
             android:taskAffinity="string"
             android:theme="resource or theme" >
</application>
A、android:allowClearUserData('true' or 'false')
用戶是否能選擇自行清除數(shù)據(jù),默認(rèn)為true,程序管理器包含一個(gè)選擇允許用戶清除數(shù)據(jù)。當(dāng)為true時(shí),用戶可自己清理用戶數(shù)據(jù),反之亦然
B、android:allowTaskReparenting('true' or 'false')
是否允許activity更換從屬的任務(wù),比如從短信息任務(wù)切換到瀏覽器任務(wù)
C、android:backupAgent
這也是Android2.2中的一個(gè)新特性,設(shè)置該APP的備份,屬性值應(yīng)該是一個(gè)完整的類名,如com.project.TestCase,此屬性并沒(méi)有默認(rèn)值,并且類名必須得指定(就是個(gè)備份工具,將數(shù)據(jù)備份到云端的操作)
D、android:debuggable
這個(gè)從字面上就可以看出是什么作用的,當(dāng)設(shè)置為true時(shí),表明該APP在手機(jī)上可以被調(diào)試。默認(rèn)為false,在false的情況下調(diào)試該APP,就會(huì)報(bào)以下錯(cuò)誤:
Device XXX requires that applications explicitely declare themselves as debuggable in their manifest.
 Application XXX does not have the attribute 'debuggable' set to TRUE in its manifest and cannot be debugged.
E、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ā)生
F、android:enabled
Android系統(tǒng)是否能夠?qū)嵗搼?yīng)用程序的組件,如果為true,每個(gè)組件的enabled屬性決定那個(gè)組件是否可以被 enabled。如果為false,它覆蓋組件指定的值;所有組件都是disabled。
G、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代碼了)
H、android:icon
這個(gè)很簡(jiǎn)單,就是聲明整個(gè)APP的圖標(biāo),圖片一般都放在drawable文件夾下
I、android:killAfterRestore
J、android:manageSpaceActivity
K、android:name
為應(yīng)用程序所實(shí)現(xiàn)的Application子類的全名。當(dāng)應(yīng)用程序進(jìn)程開(kāi)始時(shí),該類在所有應(yīng)用程序組件之前被實(shí)例化。
若該類(比方androidMain類)是在聲明的package下,則可以直接聲明android:name="androidMain",但此類是在package下面的子包的話,就必須聲明為全路徑或android:name="package名稱.子包名成.androidMain"
L、android:permission
設(shè)置許可名,這個(gè)屬性若在<application>上定義的話,是一個(gè)給應(yīng)用程序的所有組件設(shè)置許可的便捷方式,當(dāng)然它是被各組件設(shè)置的許可名所覆蓋的
M、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)用程序才是有意義的。
N、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í)候
O、android:restoreAnyVersion
同樣也是android2.2的一個(gè)新特性,用來(lái)表明應(yīng)用是否準(zhǔn)備嘗試恢復(fù)所有的備份,甚至該備份是比當(dāng)前設(shè)備上更要新的版本,默認(rèn)是false
P、android:taskAffinity
擁有相同的affinity的Activity理論上屬于相同的Task,應(yīng)用程序默認(rèn)的affinity的名字是<manifest>元素中設(shè)定的package名
Q、android:theme
是一個(gè)資源的風(fēng)格,它定義了一個(gè)默認(rèn)的主題風(fēng)格給所有的activity,當(dāng)然也可以在自己的theme里面去設(shè)置它,有點(diǎn)類似style。
3、第三層(<Activity>):屬性
<activity android:allowTaskReparenting=["true" | "false"]
          android:alwaysRetainTaskState=["true" | "false"]
          android:clearTaskOnLaunch=["true" | "false"]
          android: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>
(注:有些在application中重復(fù)的就不多闡述了)
1、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
2、android:clearTaskOnLaunch 
比如 P 是 activity, Q 是被P 觸發(fā)的 activity, 然后返回Home, 重新啟動(dòng) P,是否顯示 Q
3、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方法等.
4、android:excludeFromRecents
是否可被顯示在最近打開(kāi)的activity列表里,默認(rèn)是false
5、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
6、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ú)效
7、android:multiprocess
是否允許多進(jìn)程,默認(rèn)是false
具體可看該篇文章:http://www.bangchui.org/simple/?t3181.html
8、android:noHistory
當(dāng)用戶從Activity上離開(kāi)并且它在屏幕上不再可見(jiàn)時(shí),Activity是否從Activity stack中清除并結(jié)束。默認(rèn)是false。Activity不會(huì)留下歷史痕跡
9、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è)備而更改了
10、android:stateNotNeeded
activity被銷毀或者成功重啟時(shí)是否保存狀態(tài)
11、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)容的部分
4、第四層(<intent-filter>)
結(jié)構(gòu)圖:
<intent-filter  android:icon="drawable resource"
               android:label="string resource"
               android:priority="integer" >
      <action />
      <category />
      <data />
</intent-filter> 
 
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)用程序是否顯示在程序列表里)
有關(guān)android:name具體有哪些值,可參照這個(gè)網(wǎng)址:http://chroya.javaeye.com/blog/685871
data屬性
<data  android:host="string"
      android:mimeType="string"
      android:path="string"
      android:pathPattern="string"
      android:pathPrefix="string"
      android:port="string"
      android:scheme="string"/>
【1】每個(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也必須要指定
【2】mimeType(指定數(shù)據(jù)類型),若mimeType為'Image',則會(huì)從content Provider的指定地址中獲取image類型的數(shù)據(jù)。還有'video'啥的,若設(shè)置為video/mp4,則表示在指定地址中獲取mp4格式的video文件
【3】而pathPattern和PathPrefix主要是為了格式化path所使用的
5、第四層<meta-data>
<meta-data android:name="string"
           android:resource="resource specification"
           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])
6、第三層<activity-alias>屬性
<activity-alias android:enabled=["true" | "false"]
                android:exported=["true" | "false"]
                android:icon="drawable resource"
                android:label="string resource"
                android:name="string"
                android:permission="string"
                android:targetActivity="string">
<intent-filter/> 
<meta-data/>
</activity-alias>
<activity-alias>是為activity創(chuàng)建快捷方式的,如下實(shí)例:
<activity android:name=".shortcut">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
            </intent-filter>
</activity>
 <activity-alias android:name=".CreateShortcuts" android:targetActivity=".shortcut" android:label="@string/shortcut">
    <intent-filter>
             <action android:name="android.intent.action.CREATE_SHORTCUT" />
             <category android:name="android.intent.category.DEFAULT" />
     </intent-filter>
 </activity-alias>
其中android.targetActivity是指向?qū)?yīng)快捷方式的activity,如上述的shortcut(此Activity名)
android:label是指快捷方式的名稱,而快捷方式的圖標(biāo)默認(rèn)是給定的application圖標(biāo)
7、第三層<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é)。具體可參照:http://zhangyan1158.blog.51cto.com/2487362/491358
【4】
<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>
service標(biāo)簽內(nèi)的屬性之前已有描述,在此不重復(fù)了~
8、第三層<receiver>
receiver的屬性與service一樣,這里就不顯示了
BroadcastReceiver:用于發(fā)送廣播,broadcast是在應(yīng)用程序之間傳輸信息的一種機(jī)制,而B(niǎo)roadcastReceiver是對(duì)發(fā)送出來(lái)的 Broadcast進(jìn)行過(guò)濾接受并響應(yīng)的一類組件,具體參照http://kevin2562.javaeye.com/blog/686787
9、第三層<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">
           <grant-uri-permission/>
           <meta-data/>
</provider>
contentProvider(數(shù)據(jù)存儲(chǔ))
【1】android:authorities:
標(biāo)識(shí)這個(gè)ContentProvider,調(diào)用者可以根據(jù)這個(gè)標(biāo)識(shí)來(lái)找到它
【2】android:grantUriPermission:
對(duì)某個(gè)URI授予的權(quán)限
【3】android:initOrder
10、第三層<uses-library>
用戶庫(kù),可自定義。所有android的包都可以引用
11、第一層<supports-screens>
<supports-screens  android:smallScreens=["true" | "false"] 
                  android:normalScreens=["true" | "false"] 
                  android:largeScreens=["true" | "false"] 
                  android:anyDensity=["true" | "false"] />
這是在android1.6以后的新特性,支持多屏幕機(jī)制
各屬性含義:這四個(gè)屬性,是否支持大屏,是否支持中屏,是否支持小屏,是否支持多種不同密度
12、第二層<uses-configuration />與<uses-feature>性能都差不多
<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:glEsVersion="integer"
              android:name="string"
              android:required=["true" | "false"] />
這兩者都是在描述應(yīng)用所需要的硬件和軟件特性,以便防止應(yīng)用在沒(méi)有這些特性的設(shè)備上安裝。
13、第二層<uses-sdk />
<uses-sdk android:minSdkVersion="integer"
          android:targetSdkVersion="integer"
          android:maxSdkVersion="integer"/>
描述應(yīng)用所需的api level,就是版本,目前是android 2.2 = 8,android2.1 = 7,android1.6 = 4,android1.5=3
在此屬性中可以指定支持的最小版本,目標(biāo)版本以及最大版本
14、第二層<instrumentation />
<instrumentation android:functionalTest=["true" | "false"]
                 android:handleProfiling=["true" | "false"]
                 android:icon="drawable resource"
                 android:label="string resource"
                 android:name="string"
                 android:targetPackage="string"/>
 定義一些用于探測(cè)和分析應(yīng)用性能等等相關(guān)的類,可以監(jiān)控程序。在各個(gè)應(yīng)用程序的組件之前instrumentation類被實(shí)例化
android:functionalTest(解釋:instrumentation類是否能運(yùn)行一個(gè)功能測(cè)試,默認(rèn)為false)
15、<permission>、<uses-permission>、<permission-tree />、<permission-group />區(qū)別~
最常用的當(dāng)屬<uses-permission>,當(dāng)我們需要獲取某個(gè)權(quán)限的時(shí)候就必須在我們的manifest文件中聲明,此<uses-permission>與<application>同級(jí),具體權(quán)限列表請(qǐng)看此處
通常情況下我們不需要為自己的應(yīng)用程序聲明某個(gè)權(quán)限,除非你提供了供其他應(yīng)用程序調(diào)用的代碼或者數(shù)據(jù)。這個(gè)時(shí)候你才需要使用<permission> 這個(gè)標(biāo)簽。很顯然這個(gè)標(biāo)簽可以讓我們聲明自己的權(quán)限。比如:
<permission android:name="com.teleca.project.MY_SECURITY" . . . />
那么在activity中就可以聲明該自定義權(quán)限了,如:
<application . . .>
        <activity android:name="XXX" . . . >
                  android:permission="com.teleca.project.MY_SECURITY"> </activity>
 </application>
當(dāng)然自己聲明的permission也不能隨意的使用,還是需要使用<uses-permission>來(lái)聲明你需要該權(quán)限
<permission-group> 就是聲明一個(gè)標(biāo)簽,該標(biāo)簽代表了一組permissions,而<permission-tree>是為一組permissions聲明了一個(gè)namespace。這兩個(gè)標(biāo)簽可以看之前的系列文章。

一個(gè)cocos2dx的實(shí)際例子
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package
="com.android.zdhsoft"
      android:versionCode
="2"
      android:versionName
="1.1">

    <uses-sdk android:minSdkVersion="8"/>
    <uses-feature android:glEsVersion="0x00020000" />

    <application android:label="@string/app_name"
        android:icon
="@drawable/icon">

        <activity android:name=".MyGame"
                  android:label
="@string/app_name"
                  android:screenOrientation
="landscape"
                  android:theme
="@android:style/Theme.NoTitleBar.Fullscreen"
                  android:configChanges
="orientation">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
    <supports-screens android:largeScreens="true"
                      android:smallScreens
="true"
                      android:anyDensity
="true"
                      android:normalScreens
="true"/>
                         
    <uses-permission android:name="android.permission.INTERNET"/>
</manifest> 
posted on 2014-02-03 12:14 冬瓜 閱讀(3940) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 轉(zhuǎn)貼cocos2dx
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美国产日韩在线观看| 中文av字幕一区| 久久久.com| 在线成人av| 亚洲成在线观看| 欧美日韩国产一级片| 亚洲欧美中文日韩在线| 午夜亚洲性色视频| 亚洲国产第一页| 亚洲免费观看高清完整版在线观看| 欧美日韩久久久久久| 久久精品国产免费| 免费短视频成人日韩| 亚洲一区久久久| 欧美一区二区三区电影在线观看| 欧美亚洲视频一区二区| 久久激情久久| 一区二区三区|亚洲午夜| 亚洲一级在线观看| 亚洲大片av| 亚洲一区二区三区乱码aⅴ| 狠狠色综合网| 日韩视频一区二区三区在线播放免费观看 | 宅男噜噜噜66一区二区66| 国产色综合久久| 亚洲国产一二三| 国产热re99久久6国产精品| 欧美成人精品在线观看| 国产精品黄页免费高清在线观看| 久久阴道视频| 国产精品久久久一区二区三区| 牛牛国产精品| 国产日韩欧美综合一区| 91久久香蕉国产日韩欧美9色| 国产午夜精品久久| 一区二区国产在线观看| 亚洲第一页自拍| 亚洲自拍16p| 亚洲一区二区三区四区在线观看| 久久综合中文字幕| 欧美在线视频观看免费网站| 欧美三级视频在线播放| 欧美承认网站| 激情av一区二区| 午夜国产一区| 亚洲欧美日韩一区二区| 欧美三级视频在线| 亚洲日本在线观看| 亚洲精选在线观看| 理论片一区二区在线| 久久国产天堂福利天堂| 欧美激情精品久久久六区热门| 国产精品自拍视频| 99国产精品国产精品久久| 亚洲日本中文字幕| 麻豆国产va免费精品高清在线| 久久永久免费| 精品动漫3d一区二区三区免费版 | 一区二区三区高清在线| 一卡二卡3卡四卡高清精品视频| 欧美大片18| 亚洲激情亚洲| 中文国产成人精品久久一| 欧美精品一区二区三区一线天视频 | 国内精品一区二区| 欧美在线视频播放| 久久免费视频这里只有精品| 黄色欧美日韩| 久久久久久有精品国产| 欧美成人精品影院| 亚洲美女精品久久| 欧美三级特黄| 久久夜色精品国产欧美乱极品| 久久成人精品视频| 麻豆久久精品| 最新日韩精品| 欧美日韩一级片在线观看| 一本色道久久综合亚洲精品不卡 | 好看的日韩视频| 欧美v国产在线一区二区三区| 亚洲国产欧美日韩精品| 中日韩男男gay无套| 国产精品亚洲综合久久| 久久精品日产第一区二区| 欧美肥婆bbw| 亚洲欧美日韩另类| 激情综合久久| 欧美女激情福利| 欧美一二区视频| 亚洲电影免费观看高清完整版在线观看| 亚洲精品社区| 国产精自产拍久久久久久| 久久久久欧美精品| 在线中文字幕日韩| 男人的天堂亚洲在线| 亚洲一区二区视频在线观看| 国产一区二区成人久久免费影院| 久久综合色天天久久综合图片| 日韩小视频在线观看专区| 久久久久国产精品人| 日韩一级黄色片| 国产视频久久网| 欧美日韩第一区| 久久精品视频在线观看| 9久草视频在线视频精品| 麻豆精品视频| 午夜精品久久久久久99热软件| 亚洲国产小视频在线观看| 国产美女精品视频免费观看| 欧美成ee人免费视频| 欧美一区二区播放| 一本一本久久a久久精品综合麻豆| 久久在线观看视频| 欧美亚洲免费| 在线一区二区视频| 亚洲经典在线看| 一色屋精品视频在线看| 国产精品欧美日韩一区二区| 欧美激情成人在线视频| 久久久国产精品一区二区中文| 亚洲网站在线播放| 亚洲精品视频在线观看网站| 国产一区二区三区观看 | 久久综合久色欧美综合狠狠| 亚洲专区免费| 亚洲午夜精品久久久久久app| 亚洲春色另类小说| 欧美激情精品久久久| 免费看av成人| 免费高清在线一区| 巨乳诱惑日韩免费av| 久久久久久久网站| 久久久久国产一区二区| 欧美在线观看视频在线| 小处雏高清一区二区三区| 亚洲欧美在线另类| 亚洲免费在线| 午夜宅男欧美| 欧美主播一区二区三区美女 久久精品人| 亚洲视频二区| 亚洲欧美国产一区二区三区| 亚洲欧美在线一区二区| 性8sex亚洲区入口| 久久久久91| 免费在线看一区| 国产日韩欧美高清免费| 亚洲美女视频在线观看| 亚洲国产精品ⅴa在线观看 | 亚洲午夜精品国产| 亚洲一区二区日本| 西瓜成人精品人成网站| 久久精品人人做人人综合| 欧美在线免费观看| 噜噜噜在线观看免费视频日韩| 猛男gaygay欧美视频| 亚洲电影在线播放| 在线一区二区日韩| 欧美一级欧美一级在线播放| 久久人人看视频| 欧美激情一区在线观看| 国产精品国产三级国产专区53| 国产精品一区久久| 亚洲国产99精品国自产| 一区二区三区视频观看| 欧美在线观看视频一区二区三区| 麻豆成人在线| 日韩亚洲不卡在线| 午夜一区二区三区在线观看| 免费国产一区二区| 国产精品成人免费| 影音先锋久久资源网| 一二三四社区欧美黄| 久久久高清一区二区三区| 亚洲国产精品黑人久久久| 在线亚洲电影| 麻豆av福利av久久av| 国产精品久久久久影院色老大| 韩国视频理论视频久久| 99在线精品视频在线观看| 久久久噜噜噜久久| aa日韩免费精品视频一| 久久久欧美一区二区| 国产精品久线观看视频| 亚洲国产专区校园欧美| 欧美一级艳片视频免费观看| 亚洲高清资源| 欧美专区亚洲专区| 国产精品黄色| 亚洲精品久久| 欧美.日韩.国产.一区.二区| 亚洲视频1区2区| 欧美巨乳波霸| 亚洲激情视频网站| 麻豆精品网站| 久久都是精品| 国产麻豆日韩欧美久久| 亚洲一区二区三区四区中文| 亚洲国产成人av好男人在线观看| 欧美一区二区三区视频在线 | 欧美精品久久久久久久久老牛影院|