在Android开发中 AndroidManifest.xml是非常重要的清单文件,它里面基本包含了应用中所有组件的信息,也给Android系统提供了关于这个应用程序的基本信息,系统在运行任何程序代码之前必须知道这些信息。本文主要来分享manifest中根节点中的相关配置。\
**更多Android技术分享可以关注[我的Android技术圈子](https://gobixiu.com/community/10000996),也可以扣扣群:690347536,交流Android开发技能。**
1. xmlns:android
android命名空间。
2.package
Android应用程序包名,应用唯一标识。
build.gradle文件中的applicationId属性值会覆盖package名称,作为应用程序的唯一ID。
3.android:shareUserId
可以与其他应用程序共享数据的Linux用户标识
如果多个应用设置相同的shareUserId并且证书集相同,这几个应用都可以共享彼此数据,而且可以运行在同一个进程中。
4.android:targetSandboxVersion
目标沙箱版本默认是1,可以设置成2,来增加应用程序的安全性
以下情况可以使用2级沙箱:
a.不允许共享Uid
b.网络安全配置中usesClearTextTraffic的默认值为false。
5.android:sharedUserLabel
给userid定义了一个可读的标签,string 字符串内容必须使用字符串资源,不能使用原始的字符串,只有设置了shareUserID才有意义。
6.android:versionCode
app版本号只能使用int类型的数字,这个版本号是一个内部版本用户看不到,APP更新的时候会自动判断这个版本号
7.android:versionName
显示给用户的版本号,可以是原始的字符串或者字符串资源。此属性只是显示给用户看,没有其他作用
8.android:installLocation
"internalOnly":apk 只能安装在内部设备,如果没有设置installLocation属性,默认就是这个属性。如果设置了此选项,则永远不会在外部存储上安装该应用程序。如果内部存储空间已满,则系统将不会安装该应用程序。
"auto":优先安装内部设备,如果内部存储器已满,那么系统将把它安装到外部存储器上
"preferExternal":应用程序更喜欢安装在外部存储(SD卡)。不能保证系统会接受这个请求。如果外部媒体不可用或已满,应用程序可能安装在内部存储上
<manifest>中必须包含<application>标签,可以包含<compatible-screens>,<instrumentation>,<permission>,<permission-group>,<permission-tree>,<support-gl-texture>,<supports-screens>,<uses-configuration>,<uses-feature>,<uses-permission>,<uses-permission-sdk-23>,<uses-sdk>等标签,后续会继续分享这些标签中的相关配置。
**更多Android技术分享可以关注[我的Android技术圈子](https://gobixiu.com/community/10000996),也可以扣扣群:690347536,交流Android开发技能。**