Android中l⽂件详解
Android 中l⽂件详解
therebe的用法
每⼀个Android项⽬都包含⼀个清单(Manifest)⽂件--l,它存储在项⽬层次中的最底层。清单可以定义应⽤程序及其组件的结构和元数据。
making love
它包含了组成应⽤程序的每⼀个组件(活动、服务、内容提供器和⼴播接收器)的节点,并使⽤Intent过滤器和权限来确定这些组件之间以及这些组件和其他应⽤程序是如何交互的。
它还提供了各种属性来详细地说明应⽤程序的元数据(如它的图标或者主题)以及额外的可⽤来进⾏安全设置和单元测试顶级节点,如下所述。
清单由⼀个根manifest标签构成,该标签带有⼀个设置项⽬包的package属性。它通常包含⼀个xmlns:android属性来提供⽂件内使⽤的某些系统属性。下⾯的XML代码段展⽰了⼀个典型的声明节点:
<manifest xmlns:android=/apk/res/android
package="__app">
[ ... manifest nodes ... ]
</manifest>
manifest标签包含了⼀些节点(node),它们定义了应⽤程序组件、安全设置和组成应⽤程序的测试类。下⾯列出了⼀些常⽤的manifest节点标签,并⽤⼀些XML代码段说明了它们是如何使⽤的。
1.application
⼀个清单只能包含⼀个application节点。它使⽤各种属性来指定应⽤程序的各种元数据(包括标题、图标和主题)。它还可以作为⼀个包含了活动、服务、内容提供器和⼴播接收器标签的容器,⽤来指定应⽤程序组件。
<application
android:icon="@drawable/icon"
android:theme="@style/my_theme">
[ ... application nodes ... ]
</application>
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>
3.provider
provider标签⽤来说明应⽤程序中的每⼀个内容提供器。内容提供器是⽤来管理数据库访问以及程序内和程序间共享的。
<provider
android:permission="com.liujc.MY_PERMISSION"
android:name=".MyContentProvider"
android:enabled="true"
android:authorities="app.MyContentProvider">
</provider>
通过添加receiver标签,可以注册⼀个⼴播接收器(Broadcast Receiver),⽽不⽤事先启动应⽤程序。⼴播接收器就像全局事件监听器⼀样,⼀旦注册了之后,⽆论何时,只要与它相匹配的intent被应⽤程序⼴播出来,它就会⽴即执⾏。通过在声明中注册⼀个⼴播接收器,可以使这个进程实现完全⾃动化。如果⼀个匹配的Intent被⼴播了,则应⽤程序就会⾃动启动,并且你注册的⼴播接收器也会开始运⾏。
<receiver
android:enabled="true"
android:label="My Broadcast Receiver"
android:name=".MyBroadcastReceiver">
</receiver>
5.rvice
the show lenkaService作为Android四⼤组件之⼀,在每⼀个应⽤程序中都扮演着⾮常重要的⾓⾊。它主要⽤于在后台处理⼀些耗时的逻辑,或者去执⾏某些需要长期运⾏的任务。
<rvice
androidandroid:enabled="true"
android:name=".MyService">magicjack
</rvice>
technology6. us-permission
作为安全模型的⼀部分,us-permission标签声明了那些由你定义的权限,⽽这些权限是应⽤程序正常执⾏所必需的。在安装程序的时候,你设定的所有权限将会告诉给⽤户,由他们来决定同意与否。对很多本地Android服务来说,权限都是必需的,特别是那些需要付费或者有安全问题的服务(例如,拨号、接收SMS或者使⽤基于位置的服务)。如下所⽰,第三⽅应⽤程序,包括你⾃⼰的应⽤程序,也可以在提供对共享的程序组件进⾏访问之前指定权限。
<us-permission android:name="android.permission.ACCESS_LOCATION"> </us-permission>
som
7.permission
在可以限制访问某个应⽤程序组件之前,需要在清单中定义⼀个permission。可以使⽤permission标签来创建这些权限定义。然后,应⽤程序组件就可以通过添加android:permission属性来要求这些权限。再后,其他的应⽤程序就需要在它们的清单中包含us-permission标签(并且通过授权),之后才能使⽤这些受保护的组件。
在us-permission标签内,可以详细指定允许的访问权限的级别(normal、dangerous、signature、signatureOrSystem)、⼀个 label属性和⼀个外部资源,这个外部资源应该包含了对授予这种权限的风险的描述。g force
<permission
android:name="com.liujc.DETONATE_DEVICE"
android:protectionLevel="dangerous"
android:label="Self Destruct"
android:description="@string/detonate_description">
prettyboy
</permission>
8.instrumentation机电维修
instrumentation类提供⼀个框架,⽤来在应⽤程序运⾏时在活动或者服务上运⾏测试。它们提供了⼀些⽅法来监控应⽤程序及其与系统资源的交互。对于为⾃⼰的应⽤程序所创建的每⼀个测试类,都需要创建⼀个新的节点。
<instrumentation
ligoandroid:label="My Test"
android:name=".MyTestClass"
android:targetPackage="st">
</instrumentation>
感谢阅读,希望能帮助到⼤家,谢谢⼤家对本站的⽀持!