AndroidMainfest.xml文件详解
2015-11-11 17:42
483 查看
转载:http://www.bkjia.com/Androidjc/1022569.html
每个android项目都包含一个AndroidMainfest.xml文件,它包含了组成应用程序的每一个Acitivity、Service、Content Provider和Broadcast Receiver的节点,并使用Intent Filter 和权限来确定这些组件之间以及这些组件和其他应用程序是如何交互的。
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>
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项目都包含一个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利用Volley异步加载(JSON和图片)完整示例
- 关于Android 软键盘覆盖布局问题
- Android-Universal-Image-Loader 学习笔记(五)线程池分析
- android 使用百度地图Mapview黑屏状态
- Android 5.0(Lollipop)中的SurfaceTexture,TextureView, SurfaceView和GLSurfaceView
- Android加载Html的方法+NetworkOnMainThreadException异常
- Android 自定义View及其在布局文件中的使用示例
- Android Canvas API总结和使用方法
- 利用androguard来检查apk中得权限
- Android开发实践(二)
- Android 学习笔记
- android PopWindow
- Android之Socket通信、List加载更多、Spinner下拉列表
- Android Mvc 实现
- Android之判断是否有网封装类
- 读Android Picasso源码有感
- Android使用UncaughtExceptionHandler捕获全局异常
- android之 MAT、DDMS 等内存查看工具
- Android6.0极其以上系统获取Dangerous系统权限问题及其解决方案
- android控件的事件传播机制