每个android项目都包含一个AndroidMainfest.xml文件,它包含了组成应用程序的每一个Acitivity、Service、Content Provider和Broadcast Receiver的节点,并使用Intent Filter 和权限来确定这些组件之间以及这些组件和其他应用程序是如何交互的。

1.根节点manifest

package属性:当前应用的包名

versionCode属性:将当前应用程序的版本定义为一个整数,每次版本迭代时,该数字都会增加

versionName属性:定义一个显示给用户的公共版本号

installLocation属性:指定是否允许(或者首选)将应用程序安装到外部存储器(通常为SD卡)。其值可以为:preferExternal或auto,使用前者,只要有可能就会把应用程序安装在外部存储器上,后者则由系统决定。若不指定installLocation属性,则将当前应用安装到内部存储器,而不能将其移动到外部存储器。

如:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

package="cn.csc.mydemo"

android:versionCode="1"

android:versionName="1.0 Beta"

android:installLocation=”preferExternal”>

</manifest>

2.manifest的常见子节点:

1)uses-sdk:

如:<uses-sdk

android:minSdkVersion="10"

android:targetSdkVersion="14" />

minSdkVersion属性:指定应用要求的最低SDK版本,未指定,则默认为1

maxSdkVersion属性:最高SDK版本,一般最好不要指定,除非知道应用在更新版本的平台上肯定不能正确运行。

targetSdkVersion属性:用于指定开发和测试中所使用的平台版本。即使应用程序没有使用任何新的API,也应当将目标SDK设为最新的平台版本,这被认为是一种最佳实践。

2)uses-permission:

配置应用程序所需要的权限,在安装应用程序时,设定的所有权限将会告诉给用户,由他们来决定是否同意安装使用。

如:<uses-permission android:name="android.permission.INTERNET"/>需要网络权限

3)instrumentation:

单元测试时,用到

如:<instrumentation

android:name="android.test.InstrumentationTestRunner"

android:targetPackage="cn.csc.demo" />指定要测试的包名

4)application:

一个mainfest文件只能有一个application节点,它的属性和子节点都比较常用

3.application节点:

如:<application

android:icon="@drawable/ic_launcher"

android:label="@string/app_name" >

icon属性:指定当前应用程序的图标

label属性:指定当前应用程序的标题

1)activity子节点:

<activity

android:name=".MainActivity"

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都要求有一个Activity子节点,启动一个没有在Manifest中定义的Activity时都会抛出一个运行时异常。每个Activity节点都允许使用intent-filter子节点来定义用于启动该Activity的Intent。

name属性:指定Activity类的名字

2)service子节点:应用程序使用的service

3)provider子节点:应用程序使用的Content Provider

4)receiver子节点:引用程序使用的Broadcast Receiver

5)uses-library子节点:用于指定应用程序需要的共享库

android菜鸟学习笔记3----关于AndroidMainfest.xml的更多相关文章

  1. android菜鸟学习笔记22----ContentProvider(二)ContentObserver的简单使用

    现在有这样一个应用A通过ContentProvider提供自己的数据给其他应用,应用B通过ContentResolver获取应用A中提供的数据,并将其展示在ListView中,而应用C通过Conten ...

  2. android菜鸟学习笔记19----Android数据存储(三)XML文件的解析及序列化

    Android内置了PULL解析器的XPP3实现,以及SAX解析器等,可以直接使用PULL或SAX解析XML,直接把JAVA中进行PULL或SAX解析的代码直接拿来用,遗忘的话,可以参考java拾遗1 ...

  3. android菜鸟学习笔记30----Android使用百度地图API(一)准备工作及在应用中显示地图

    1.准备工作: 百度地图API是免费开放的,但是需要申请API Key: 1)先注册一个百度开发者帐号 2)进入百度开放服务平台http://developer.baidu.com/ 3)进入LBS云 ...

  4. android菜鸟学习笔记29----Android应用向用户发送提示信息的方式总结

    常见的向用户发送提示信息的方式有3种,分别为: 1)发送Toast信息 2)弹出对话框 3)发送通知 总结如下: 方式1:发送Toast信息: 这种方式最简单,在之前的学习中多次使用过.Toast是在 ...

  5. android菜鸟学习笔记23----ContentProvider(三)利用内置ContentProvider监听短信及查看联系人

    要使用一个ContentProvider,必须要知道的是它所能匹配的Uri及其数据存储的表的结构. 首先想办法找到访问短信及联系人数据的ContentProvider能接受的Uri: 到github上 ...

  6. android菜鸟学习笔记21----ContentProvider(一)ContentProvider的简单使用

    ContentProvider是Android四大组件之一,它用来封装数据,并通过ContentResolver接口将数据提供给其他应用.只有当需要在多个应用之间共享数据时才会用到ContentPro ...

  7. android菜鸟学习笔记7----android布局(二)

    3.FrameLayout:帧布局 如同Flash或者photoshop中图层的概念,在上面的图层遮盖下面的图层,没被遮到的地方仍然显示出来. 右击res/layout,然后在弹出的菜单中选择new, ...

  8. android菜鸟学习笔记2----关于adb

    adb : android debug bridge android调试桥 路径:adt-bundle目录/sdk/platform-tools/adb.exe 常见的adb命令: adb devic ...

  9. android菜鸟学习笔记27----Fragment的简单使用

    1.Fragment的生命周期: 简单在新建一个MyFragment继承自Fragment,重写各个生命周期回调方法,各个方法中直接输出标识相关函数被调用的信息. 重写MainActivity的各个生 ...

随机推荐

  1. IT人为了自己父母和家庭,更得注意自己的身体和心理健康

    我前一阵在一家互联网公司,工作节奏是995,忙的时候,要晚上10点才能离开公司,有时候周六还得加班.自己感觉身体状况有所下降,且听说其它一个组,在体检后多少都查出问题来,细思极恐. 有时候确实忙,那么 ...

  2. Codeforces Round #490 (Div. 3)

    感觉现在\(div3\)的题目也不错啊? 或许是我变辣鸡了吧....... 代码戳这里 A. Mishka and Contes 从两边去掉所有\(≤k\)的数,统计剩余个数即可 B. Reversi ...

  3. Oracle Forms Project For Students Free Download

    After getting to much requests for a free Oracle Forms and Reports project for students, I am sharin ...

  4. 【spring cloud】注解@SpringCloudApplication和@SpringBootApplication的区别

    @SpringCloudApplication和@SpringBootApplication的区别

  5. Python moni模拟鼠标事件

    7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 4 ...

  6. 16. Spring Boot使用Druid(编程注入)【从零开始学Spring Boot】

    转载:http://blog.csdn.net/linxingliang/article/details/52001744 在上一节使用是配置文件的方式进行使用druid,这里在扩散下使用编程式进行使 ...

  7. 查看Linux上MySQL版本信息

    如果MySQL是用rpm或者yum安装的,可用 #rpm -qa|grep mysql查看. 如: [root@asd76 ~]# rpm -qa|grep mysqlmysql-5.1.73-3.e ...

  8. springMVC --配置具体与注讲解明

    <?xml version="1.0" encoding="UTF-8"? > <beans xmlns="http://www.s ...

  9. linux暴力密码破解工具hydra安装与使用

    说明:hydra是著名黑客组织thc的一款开源的暴力密码破解工具,可以在线破解多种密码.官网:http://www.thc.org/thc-hydra,可支持AFP, Cisco AAA, Cisco ...

  10. BC 1.2 模式(Battery Charging Specification 1.2)

    转自:http://blog.csdn.net/liglei 转自:http://blog.csdn.net/liglei/article/details/22852755 USB BC1.2有以下三 ...