AndroidManifest.xml文件与build.gradle在Android项目中都是两大灵魂人物,在项目中的地位举足轻重。熟练掌握AndroidManifest文件的配置,就能在整个项目的开发中有更强大的把控力。
manifest标签:
xmlns:tools="http://schemas.android.com/tools"
package="com.example.dev">
package 声明包名;
xmlns 命名空间的声明,使得各种Android系统级的属性能让我们使用。
installLocation 程序的安装位置,
有三个值可以选择:internalOnly、auto、preferExternal
分别为只能装内置内存中、可相互转移,优先装入SD卡中。
uses-configuration标签
这个属性用于指定该应用程序所需要的硬件和软件功能。
android:reqHardKeyboard=["true" | "false"]
android:reqKeyboardType=["undefined" | "nokeys" | "qwerty" | "twelvekey"]
android:reqNavigation=["undefined" | "nonav" | "dpad" | "trackball" | "wheel"]
android:reqTouchScreen=["undefined" | "notouch" | "stylus" | "finger"] />
supports-screens标签
声明应用支持的分辨率类型
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:resizeable="true"
android:smallScreens="true"
android:xlargeScreens="true" />
resizeable 是否可以调整尺寸,增加屏幕适配的兼容性
anyDensity 是否包含了能够适用于任何屏幕密度的资源。
uses-permission标签
应用所需权限的声明,常用权限声明
application标签
设置应用整体属性
name 设置Application
label 设置应用名
icon 启动图标
theme 应用统一theme
largeHeap 请求开辟更大的应用内存
hardwareAccelerated 全局开启硬件加速。不推荐在application中开启,非要开可以在单独使用的activity标签中开,避免过大内存开销。
debuggable 指定应用程序是否能够被调试
process 这个属性用于定义一个进程名称
activity标签
screenOrientation 设置当前Activity固定屏幕方向
configChanges 配置的内容变化是否重启生命周期
launchMode 设置当前Activity启动模式
exported 设置该activity是否可以被其他应用启动,设置为true也可以直接启动就进入该activity
windowSoftInputMode 共9个属性,可以分别为软键盘设置始终隐藏,始终显示,大小调整等类型
taskAffinity 指定在任务栈的标识
hardwareAccelerated 开启硬件加速
meta-data标签
这个元素用name-value对的格式给其父组件提供任意可选的数据。
比如各种第三方sdk设置key使用的方式。
android:name="UMENG_APPKEY"
android:value="" />
android:name="UMENG_CHANNEL"
android:value="${UMENG_CHANNEL_VALUE}" />
android:name="com.amap.api.v2.apikey"
android:value="" />