??xml version="1.0" encoding="utf-8" standalone="yes"?>欧美天堂在线观看,综合国产视频,超碰在线中文http://www.aygfsteel.com/jay485584/category/49882.htmlzh-cnTue, 07 Feb 2012 18:07:13 GMTTue, 07 Feb 2012 18:07:13 GMT60[转]Android学习W记之AndroidManifest.xml文g解析 http://www.aygfsteel.com/jay485584/archive/2012/02/07/369500.html唐大?/dc:creator>唐大?/author>Tue, 07 Feb 2012 01:47:00 GMThttp://www.aygfsteel.com/jay485584/archive/2012/02/07/369500.htmlhttp://www.aygfsteel.com/jay485584/comments/369500.htmlhttp://www.aygfsteel.com/jay485584/archive/2012/02/07/369500.html#Feedback0http://www.aygfsteel.com/jay485584/comments/commentRss/369500.htmlhttp://www.aygfsteel.com/jay485584/services/trackbacks/369500.html

一、关于AndroidManifest.xml

AndroidManifest.xml 是每个androidE序中必ȝ文g。它位于整个目的根目录Q描qCpackage中暴露的lgQactivities, services, {等Q,他们各自的实现类Q各U能被处理的数据和启动位|?除了能声明程序中的Activities, ContentProviders, Services, 和Intent Receivers,q能指定permissions和instrumentationQ安全控制和试Q?/p>

二、AndroidManifest.xmll构

<?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>

三、各个节点的详细介绍

 上面是整个am(androidManifest).xml的结构,下面以外向内开始阐qͽ?/p>

1、第一?<Manifest>):(属?

<manifest  xmlns: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命名I间Q一般ؓhttp://schemas.android.com/apk/res/androidQ这样得Android中各U标准属性能在文件中使用Q提供了大部分元素中的数据?/p>


B、package

指定本应用内javaȝ序包的包名,它也是一个应用进E的默认名称


C、sharedUserId

表明数据权限Q因为默认情况下QAndroidl每个APK分配一个唯一的UserIDQ所以是默认止不同APK讉K׃n数据的。若要共享数据,W一可以采用Share PreferenceҎQ第二种可以采用sharedUserId了,不同APK的sharedUserId都设ZP则这些APK之间可以互相共享数据了。详见:http://wallage.blog.163.com/blog/static/17389624201011010539408/

D、sharedUserLabel

一个共享的用户名,它只有在讄了sharedUserId属性的前提下才会有意义


E、versionCode

是给讑֤E序识别版本(升)用的必须是一个intergerg表app更新q多次Q比如第一版一般ؓ1Q之后若要更新版本就讄?Q?{等。。?/p>


F、versionName

q个名称是给用户看的Q你可以你的APP版本可|ؓ1.1版,后箋更新版本讄?.2?.0版本{等。。?/p>


G、installLocation

安装参数Q是Android2.2中的一个新Ҏ,installLocation有三个值可以选择QinternalOnly、auto、preferExternal

选择preferExternal,pȝ会优先考虑APK安装到SD卡上(当然最l用户可以选择为内部ROM存储上,如果SD存储已满Q也会安装到内部存储?

选择autoQ系l将会根据存储空间自己去适应

选择internalOnly是指必须安装到内部才能运?/p>

(注:需要进行后台类监控的APP最好安装在内部Q而一些较大的游戏APP最好安装在SD卡上。现默认为安装在内部Q如果把APP安装在SD卡上Q首先得讄你的level?Qƈ且要配置android:installLocationq个参数的属性ؓpreferExternal)


2、第二层(<Application>):属?/p>

一个AndroidManifest.xml中必d有一个Application标签Q这个标{֣明了每一个应用程序的lg及其属?如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')

用户是否能选择自行清除数据Q默认ؓtrueQ程序管理器包含一个选择允许用户清除数据。当为trueӞ用户可自己清理用h据,反之亦然


B、android:allowTaskReparenting('true' or 'false')

是否允许activity更换从属的Q务,比如从短信息d切换到浏览器d


C、android:backupAgent

q也是Android2.2中的一个新Ҏ,讄该APP的备份,属性值应该是一个完整的cdQ如com.project.TestCaseQ此属性ƈ没有默认|q且cd必须得指?是个备份工P数据备份到云端的操?


D、android:debuggable

q个从字面上可以看出是什么作用的Q当讄为trueӞ表明该APP在手Z可以被调试。默认ؓfalse,在false的情况下调试该APPQ就会报以下错误Q?/p>

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

此两个属性都是ؓ许可提供的,均ؓ字符串资源,当用户去看许可列?android:label)或者某个许可的详细信息(android:description)Ӟq些字符串资源就可以昄l用戗label应当量短,之需要告知用戯许可是在保护什么功能就行。而description可以用于具体描述获取该许可的E序可以做哪些事情,实际上让用户可以知道如果他们同意E序获取该权限的话,该程序可以做什么。我们通常用两句话来描q许可,W一句描q该许可Q第二句警告用户如果批准该权限会可能有什么不好的事情发生


F、android:enabled

Androidpȝ是否能够实例化该应用E序的组Ӟ如果为trueQ每个组件的enabled属性决定那个组件是否可以被 enabled。如果ؓfalseQ它覆盖lg指定的|所有组仉是disabled?/p>


G、android:hasCode('true' or 'false')

表示此APP是否包含M的代码,默认为trueQ若为falseQ则pȝ在运行组件时Q不会去试加蝲M的APP代码

一个应用程序自w不会含有Q何的代码Q除非内|组件类Q比如Activityc,此类使用了AliasActivityc,当然q是个罕见的现象

(在Android2.3可以用标准C来开发应用程序,可在androidManifest.xml中将此属性设|ؓfalse,因ؓq个APP本n已经不含有Q何的JAVA代码?

H、android:icon

q个很简单,是声明整个APP的图标,囄一般都攑֜drawable文g夹下

I、android:killAfterRestore

J、android:manageSpaceActivity

K、android:name

为应用程序所实现的Application子类的全名。当应用E序q程开始时Q该cd所有应用程序组件之前被实例化?

若该c?比方androidMainc?是在声明的package下,则可以直接声明android:name="androidMain",但此cL在package下面的子包的话,必d明ؓ全\径或android:name="package名称.子包名成.androidMain"

L、android:permission

讄许可名,q个属性若?lt;application>上定义的话,是一个给应用E序的所有组件设|许可的便捷方式Q当然它是被各组件设|的许可名所覆盖?/p>

M、android:presistent

该应用程序是否应该在M时候都保持q行状?默认为false。因为应用程序通常不应该设|本标识Q持l模式仅仅应该设|给某些pȝ应用E序才是有意义的?

N、android:process

应用E序q行的进E名Q它的默认gؓ<manifest>元素里设|的包名Q当然每个组仉可以通过讄该属性来覆盖默认倹{如果你想两个应用程序共用一个进E的话,你可以设|他们的android:process相同Q但前提条g是他们共享一个用户ID及被赋予了相同证书的时?/p>

O、android:restoreAnyVersion

同样也是android2.2的一个新Ҏ,用来表明应用是否准备试恢复所有的备䆾Q甚臌备䆾是比当前讑֤上更要新的版本,默认是false

P、android:taskAffinity

拥有相同的affinity的Activity理论上属于相同的TaskQ应用程序默认的affinity的名字是<manifest>元素中设定的package?/p>


Q、android:theme

是一个资源的风格Q它定义了一个默认的主题风格l所有的activity,当然也可以在自己的theme里面去设|它Q有点类似style?/p>

3、第三层(<Activity>):属?/p>

<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中重复的׃多阐qC)

1、android:alwaysRetainTaskState

 是否保留状态不变, 比如切换回home, 再从新打开Qactivity处于最后的状态。比如一个浏览器拥有很多状?当打开了多个TAB的时?Q用户ƈ不希望丢p些状态时Q此时可此属性设|ؓtrue

2、android:clearTaskOnLaunch
比如 P ?activity, Q 是被P 触发?activity, 然后q回Home, 重新启动 PQ是否显C?Q

3、android:configChanges

当配|list发生修改Ӟ 是否调用 onConfigurationChanged() Ҏ  比如 "locale|navigation|orientation".
q个我用q?主要用来看手机方向改变的. android手机在旋转后,layout会重新布局, 如何做到?
正常情况? 如果手机旋{?当前Activity后杀?然后Ҏ方向重新加蝲q个Activity. ׃从onCreate开始重新加?
如果你设|了 q个选项, 当手机旋转后,当前Activity之后调用onConfigurationChanged() Ҏ. 而不跑onCreateҎ{?

4、android:excludeFromRecents

是否可被昄在最q打开的activity列表里,默认是false

5、android:finishOnTaskLaunch

当用户重新启动这个Q务的时候,是否关闭已打开的activityQ默认是false

如果q个属性和allowTaskReparenting都是true,q个属性就是王牌。Activity的亲和力被忽略。该Activity已经被摧毁ƈ非re-parented


6、android:launchMode(Activity加蝲模式)

在多Activity开发中Q有可能是自己应用之间的Activity跌{Q或者夹带其他应用的可复用Activity。可能会希望跌{到原来某个Activity实例Q而不是生大量重复的Activity。这需要ؓActivity配置特定的加载模式,而不是用默认的加蝲模式

Activity有四U加载模式:

standard、singleTop、singleTask、singleInstance(其中前两个是一l、后两个是一l?Q默认ؓstandard
 

standardQ就是intent发送给新的实例Q所以每ơ蟩转都会生成新的activity?/p>

singleTopQ也是发送新的实例,但不同standard的一ҎQ在h的Activity正好位于栈顶?配置成singleTop的Activity)Q不会构造新的实?/p>

singleTaskQ和后面的singleInstance都只创徏一个实例,当intent到来Q需要创|ؓsingleTask的Activity的时候,pȝ会检查栈里面是否已经有该Activity的实例。如果有直接intent发送给它?/p>

singleInstanceQ?/p>

首先说明一下taskq个概念QTask可以认ؓ是一个栈Q可攑օ多个Activity。比如启动一个应用,那么Android创Z一个TaskQ然后启动这个应用的入口ActivityQ那在它的界面上调用其他的Activity也只是在q个task里面。那如果在多个task中共享一个Activity的话怎么办呢。D个例来说Q如果开启一个导游服务类的应用程序,里面有个Activity是开启GOOGLE地图的,当按下home键退回到主菜单又启动GOOGLE地图的应用时Q显C的是刚才的地图,实际上是同一个ActivityQ实际上q就引入了singleInstance。singleInstance模式是该Activity单独攑օ一个栈中,q样q个栈中只有q一个ActivityQ不同应用的intent都由q个Activity接收和展C,q样做C׃n。当然前提是q些应用都没有被销毁,所以刚才是按下的HOME键,如果按下了返回键Q则无效

7、android:multiprocess

是否允许多进E,默认是false

具体可看该篇文章Q?a >http://www.bangchui.org/simple/?t3181.html

8、android:noHistory

当用户从Activity上离开q且它在屏幕上不再可见时QActivity是否从Activity stack中清除ƈl束。默认是false。Activity不会留下历史痕迹

9、android:screenOrientation

activity昄的模?/p>

默认为unspecifiedQ由pȝ自动判断昄方向

landscape横屏模式Q宽度比高度?/p>

portrait竖屏模式, 高度比宽度大

user模式Q用户当前首选的方向

behind模式Q和该Activity下面的那个Activity的方向一?在Activity堆栈中的)

sensor模式Q有物理的感应器来决定。如果用h转设备这屏幕会横竖屏切换

nosensor模式Q忽略物理感应器Q这样就不会随着用户旋{讑֤而更改了

10、android:stateNotNeeded

activity被销毁或者成功重启时是否保存状?

11、android:windowSoftInputMode

activityȝ口与软键盘的交互模式Q可以用来避免输入法面板遮挡问题QAndroid1.5后的一个新Ҏ?/p>

q个属性能影响两g事情Q?/p>

【A】当有焦点生时QY键盘是隐藏还是显C?/p>

【B】是否减活动主H口大小以便腑ևI间放Y键盘

各值的含义Q?/p>

【A】stateUnspecifiedQY键盘的状态ƈ没有指定Q系l将选择一个合适的状态或依赖于主题的讄

【B】stateUnchangedQ当q个activity出现Ӟ软键盘将一直保持在上一个activity里的状态,无论是隐藏还是显C?/p>

【C】stateHiddenQ用户选择activityӞ软键盘L被隐?/p>

【D】stateAlwaysHiddenQ当该Activityȝ口获取焦ҎQY键盘也L被隐藏的

【E】stateVisibleQY键盘通常是可见的

【F】stateAlwaysVisibleQ用户选择activityӞ软键盘L昄的状?/p>

【G】adjustUnspecifiedQ默认设|,通常ql自行决定是隐藏q是昄

【H】adjustResizeQ该ActivityL调整屏幕的大以便留Y键盘的空?/p>

【I】adjustPanQ当前窗口的内容自动移动以便当前焦点从不被键盘覆盖和用戯L看到输入内容的部?/p>

4、第四层(<intent-filter>)

l构图:

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

      <action />

      <category />

      <data />

</intent-filter>
 

intent-filter属?/p>

android:priority(解释Q有序广播主要是按照声明的优先别,如A的别高于BQ那么,q播先传lAQ再传给B。优先别就是用讄priority属性来定Q范围是?1000?000Q数大优先U别高)


Intent filter内会讑֮的资料包括action,data与category三种。也是说filter只会与intent里的q三U资料作Ҏ动作


action属?/p>

action很简单,只有android:nameq个属性。常见的android:namegؓandroid.intent.action.MAINQ表明此activity是作为应用程序的入口。有关android:name具体有哪些|可参照这个网址Q?a >http://hi.baidu.com/linghtway/blog/item/83713cc1c2d053170ff477a7.html

category属?/p>

category也只有android:name属性。常见的android:namegؓandroid.intent.category.LAUNCHER(军_应用E序是否昄在程序列表里)

有关android:name具体有哪些|可参照这个网址Q?a >http://chroya.javaeye.com/blog/685871

data属?/p>

<data  android:host="string"
      android:mimeType="string"
      android:path="string"
      android:pathPattern="string"
      android:pathPrefix="string"
      android:port="string"
      android:scheme="string"/>

?】每?lt;data>元素指定一个URI和数据类型(MIMEcdQ。它有四个属性scheme、host、port、path对应于URI的每个部分:
scheme://host:port/path

scheme的g般ؓ"http"Qhost为包名,port为端口号Qpath为具体地址。如Q?a >http://com.test.project:200/folder/etc

其中host和port合v来构成URI的凭?authority)Q如果host没有指定Q则port也会被忽?/p>

要让authority有意义,scheme也必要指定。要让path有意义,scheme+authority也必要指定

?】mimeTypeQ指定数据类型)Q若mimeType?Image'Q则会从content Provider的指定地址中获取imagecd的数据。还?video'啥的Q若讄为video/mp4Q则表示在指定地址中获取mp4格式的video文g

?】而pathPattern和PathPrefix主要是ؓ了格式化path所使用?/p>

5、第四层<meta-data>

<meta-data android:name="string"
           android:resource="resource specification"
           android:value="string"/>

q是该元素的基本l构.可以包含?lt;activity> <activity-alias> <service> <receiver>四个元素中?/p>

android:nameQ解释:元数据项的名字,Z保证q个名字是唯一的,采用java风格的命名规范,如com.woody.project.fried)

android:resource(解释Q资源的一个引用,指定l这个项的值是该资源的id。该id可以通过ҎBundle.getInt()来从meta-data中找到?

android:value(解释Q指定给q一的倹{可以作为值来指定的数据类型ƈ且组件用来找回那些值的BundleҎQ[getString],[getInt],[getFloat],[getString],[getBoolean])


6、第三层<activity-alias>属?/p>

<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创徏快捷方式的,如下实例Q?/p>


<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是指向对应快h式的activity,如上q的shortcut(此Activity?

android:label是指快捷方式的名Uͼ而快h式的图标默认是给定的application图标


7、第三层<service>

?】service与activity同Q与activity不同的是Q它不能自己启动的,q行在后台的E序Q如果我们退出应用时QServiceq程q没有结束,它仍然在后台q行。比如听音乐Q网l下载数据等Q都是由serviceq行?/p>

?】service生命周期QService只承了onCreate(),onStart(),onDestroy()三个ҎQ第一ơ启动ServiceӞ先后调用了onCreate(),onStart()q两个方法,当停止ServiceӞ则执行onDestroy()ҎQ如果Service已经启动了,当我们再ơ启动ServiceӞ不会在执行onCreate()ҎQ而是直接执行onStart()Ҏ

?】service与activity间的通信

Service后端的数据最l还是要呈现在前端Activity之上的,因ؓ启动ServiceӞpȝ会重新开启一个新的进E,q就涉及C同进E间通信的问题了(AIDL)QActivity与service间的通信主要用IBinder负责。具体可参照Q?a >http://zhangyan1158.blog.51cto.com/2487362/491358

??/p>

<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标签内的属性之前已有描qͼ在此不重复了?/p>

8、第三层<receiver>

receiver的属性与service一Pq里׃昄?/p>

BroadcastReceiverQ用于发送广播,broadcast是在应用E序之间传输信息的一U机Ӟ而BroadcastReceiver是对发送出来的 Broadcastq行qo接受q响应的一cȝӞ具体参照http://kevin2562.javaeye.com/blog/686787

9、第三层<provider>属?/p>

<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(数据存储)

?】android:authoritiesQ?/p>

标识q个ContentProviderQ调用者可以根据这个标识来扑ֈ?/p>

?】android:grantUriPermissionQ?/p>

Ҏ个URI授予的权?/p>

?】android:initOrder

10、第三层<uses-library>

用户库,可自定义。所有android的包都可以引?/p>

11、第一?lt;supports-screens>

<supports-screens  android:smallScreens=["true" | "false"]
                  android:normalScreens=["true" | "false"]
                  android:largeScreens=["true" | "false"]
                  android:anyDensity=["true" | "false"] />

q是在android1.6以后的新Ҏ,支持多屏q机?/p>

各属性含义:q四个属性,是否支持大屏Q是否支持中屏,是否支持屏Q是否支持多U不同密?/p>

12、第二层<uses-configuration />?lt;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"] />

q两者都是在描述应用所需要的g和Y件特性,以便防止应用在没有这些特性的讑֤上安装?/p>


13、第二层<uses-sdk />

<uses-sdk android:minSdkVersion="integer"
          android:targetSdkVersion="integer"
          android:maxSdkVersion="integer"/>

描述应用所需的api levelQ就是版本,目前是android 2.2 = 8Qandroid2.1 = 7Qandroid1.6 = 4Qandroid1.5=3

在此属性中可以指定支持的最版本,目标版本以及最大版?/p>

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"/>

 定义一些用于探和分析应用性能{等相关的类Q可以监控程序。在各个应用E序的组件之前instrumentationc被实例?/p>

android:functionalTest(解释QinstrumentationcL否能q行一个功能测试,默认为false)

15?lt;permission>?lt;uses-permission>?lt;permission-tree />?lt;permission-group />区别?/p>

最常用的当?lt;uses-permission>Q当我们需要获取某个权限的时候就必须在我们的manifest文g中声明,?lt;uses-permission>?lt;application>同Q具体权限列表请看此?/p>

通常情况下我们不需要ؓ自己的应用程序声明某个权限,除非你提供了供其他应用程序调用的代码或者数据。这个时候你才需要?lt;permission> q个标签。很昄q个标签可以让我们声明自q权限。比如:

<permission android:name="com.teleca.project.MY_SECURITY" . . . />

那么在activity中就可以声明该自定义权限了,如:


<application . . .>

        <activity android:name="XXX" . . . >

                  android:permission="com.teleca.project.MY_SECURITY"> </activity>

 </application>

当然自己声明的permission也不能随意的使用Q还是需要?lt;uses-permission>来声明你需要该权限

<permission-group> 是声明一个标{,该标{代表了一lpermissionsQ?lt;permission-tree>是ؓ一lpermissions声明了一个namespace。这两个标签可以看之前的pd文章?br />
文章转蝲自:

]]>
关于在eclipse中新建android目后出现错?/title><link>http://www.aygfsteel.com/jay485584/archive/2011/10/20/361674.html</link><dc:creator>唐大?/dc:creator><author>唐大?/author><pubDate>Thu, 20 Oct 2011 12:45:00 GMT</pubDate><guid>http://www.aygfsteel.com/jay485584/archive/2011/10/20/361674.html</guid><wfw:comment>http://www.aygfsteel.com/jay485584/comments/361674.html</wfw:comment><comments>http://www.aygfsteel.com/jay485584/archive/2011/10/20/361674.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/jay485584/comments/commentRss/361674.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/jay485584/services/trackbacks/361674.html</trackback:ping><description><![CDATA[<p>      本h最q开始学习android开发。但是一新徏目发生了错误。当时很奇怪,以ؓ是eclipse{工L问题Q于是下载了新版本的eclipse、ADT和SDKQ但仍然无法解决。最q了老师讲的课,发现原来是插件的一些bug?br />解决ҎQ打开AndroidManifest.xmlQ随便输入一个空|然后保存一下就好了?br />      可能q个问题困扰着不少像我q样的新人,希望通过q篇文章可以帮助到有cM问题的朋友?/p> <img src ="http://www.aygfsteel.com/jay485584/aggbug/361674.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/jay485584/" target="_blank">唐大?/a> 2011-10-20 20:45 <a href="http://www.aygfsteel.com/jay485584/archive/2011/10/20/361674.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ӣ</a>| <a href="http://" target="_blank">ͭϿ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ζ</a>| <a href="http://" target="_blank">ն</a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ϫ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">֣</a>| <a href="http://" target="_blank">ָɽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">̨</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ʡ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ʯ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Զ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">˺</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">տ</a>| <a href="http://" target="_blank">С</a>| <a href="http://" target="_blank">̨</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>