AndroidMenifest中的application属性设置
android:allowbackup
allowbackup是一个是否允许备份系统和用户数据的属性,应因此而引发Android的安全性问题
在谷歌 2010 年发布 Android 2.2 Froyo
(冻酸奶)系统中,谷歌引入一个了系统备份的功能,允许用户备份系统应用和第三方应用的apk安装包和应用数据,以便在刷机或者数据丢失后恢复应用。
第三方应用开发者需要在应用的 AndroidManifest.xml 文件中配置 allowBackup 标志(默认为 true)来设置应用数据是否能能够被备份或恢复。当这个标志被设置为true时应用程序数据可以在手机未获取 ROOT
的情况下通过adb调试工具来备份和恢复,这就允许恶意攻击者在接触用户手机的情况下在短时间内启动手机 USB 调试功能来窃取那些能够受到
AllowBackup 漏洞影响的应用的数据,造成用户隐私泄露甚至财产损失。
默认情况下,在正式发布app的时候,请在AndroidManifest.xml中,为application配置以下代码:
android:allowBackup=“false”
但一般项目引用多个第三方库的时候,会存在坑多个冲突,导致打包APP失败,查看日志也找到了google给出的建议,如下
Suggestion: add 'tools:replace="android:allowBackup"' to <application> element at AndroidManifest.xml:89:5-1052:19 to override.
所以在<application>节点以下添加属性:
<application
android:allowBackup="false"
tools:replace="android:allowBackup">
android:supportsrtl
声明你的application是否愿意支持从右到左(原来RTL就是right-to-left 的缩写...)的布局。
如果设置为true,targetSdkVersion设置为17或更高,各种RTL的API将被激活,系统使用您的应用程序可以显示RTL布局。如果targetSdkVersion设置为16或更低的设置为false,RTL的API将被忽略或没有影响您的应用程序将具有相同的行为无论对用户现场的选择相关的布局方向(你的布局会从左至右)。
此属性的默认值是false。
此属性被添加到API 17。
最后一句也说了,这个api是17(也就是Android4.2)以后才有的,并且这个属性默认是false,17以前的api不支持这个属性。
android:largeHeap
这个标识用来表明这个应用的进程是否需要更大的运行内存空间,这个标识对该应用的所有进程都有效,
大部分应用程序不需要用到本属性,而是应该关注如何减少内存消耗以提高性能。 使用本属性并不能确保一定会增加可用的内存,因为某些设备可用的内存本来就很有限。要在运行时查询可用的内存大小,请使用 getMemoryClass() 或getLargeMemoryClass() 方法,后者的方法可以获取到应用开启 largeHeap 之后可以获得的内存大小。
要注意的是: 一个应用不应该通过这个属性来解决 OOM 问题,而是应该通过检测内存泄漏来彻底根治 OOM,而且当内存很大的时候,每次gc的时间也会长一些,性能也会随之下降
android:manageSpaceActivity
这个标识用来指定一个 Activity 的名字,当用户在设置页面中手动点击清除数据按钮时,不会像以前一样把应用的私有目录/data/data/包名下的数据完全清除,而是跳转到那个声明的 activity 中,让用户遵照 activity 中提供的功能清除指定的数据。
详细介绍请参考:android:manageSpaceActivity让应用手动管理应用的数据目录
更多属性详细介绍,请参考(https://www.jianshu.com/p/f535c0f6f65f)