AndroidManifest中的一些属性

1、allowBackup

在谷歌 2010 年发布Android 2.2 Froyo系统中,谷歌引入一个了系统备份的功能,允许用户备份系统应用和第三方应用的apk安装包和应用数据,以便在刷机或者数据丢失后恢复应用。

第三方应用开发者需要在应用的AndroidManifest.xml文件中配置 allowBackup 标志(默认为 true )来设置应用数据是否能能够被备份或恢复。

当这个标志被设置为true时,应用程序数据可以在手机未获取 ROOT 的情况下,通过adb调试工具来备份和恢复。

这就允许恶意攻击者在接触用户手机的情况下,在短时间内启动手机 USB 调试功能,来窃取那些能够受到AllowBackup 漏洞影响的应用的数据,造成用户隐私泄露甚至财产损失。

与此相关的分析,可以参考链接

因此,涉及重要信息的应用,必须显示配置该属性为false,例如:

............
<application
    android:name=".TransferApp"
    android:allowBackup="false"
    .............

2、supportsRtl

Android Studio新建Module时,应用对应的AndroidManifest文件里,会有一个supportsRtl属性,如下:

    ................
    <application
        android:allowBackup="true"
        android:label="@string/app_name"
        android:supportsRtl="true">
    </application>
    ................

对于这个属性,Android官网的文档的解释如下:
Declares whether your application is willing to support right-to-left (RTL) layouts.

If set to true and targetSdkVersion is set to 17 or higher, various RTL APIs will be activated and used by the system so your app can display RTL layouts.

If set to false or if targetSdkVersion is set to 16 or lower, the RTL APIs will be ignored or will have no effect and your app will behave the same regardless of the layout direction associated to the user’s Locale choice (your layouts will always be left-to-right).

从文档可以看出,RTL用于声明你的application是否愿意支持从右到左(right-to-left)的布局。
当supportsRtl为true,并且运行的SDK版本大于等于17时,RTL对应的API将被系统激活,于是应用就可以支持从右向左的布局了。

在设置-开发者选项中,可以强制使用从右到左的布局方向,此时支持RTL的应用,将显示从右往左的布局。


3、largeHeap

一个应用如果使用了largeHeap,会请求系统为Dalvik虚拟机分配更大的内存空间。
使用起来也很方便,只需在manifest文件application节点加入android:largeHeap=“true”即可。
例如:

.................
<application android:icon="@drawable/icon"
    android:allowBackup="false"
    android:label="@string/app_name"
    android:debuggable="true"
    android:theme="@android:style/Theme.Black"
    android:largeHeap="true">
.................

关于largeHeap的分析,可以参考链接


4、configChanges

android中的组件Activity在AndroidManifest.xml文件中,可以指定参数android:ConfigChanges,用于捕获手机状态的改变。

在Activity中添加了android:configChanges属性后,当所指定属性(Configuration Changes)发生改变时,
AMS将通知回调Activity的onConfigurationChanged函数。

设置方法类似于:

.............
<activity android:name=".ConfigChangedTesting"
    android:label="@string/app_name"
    android:configChanges="orientation|screenSize">
.............

对于上述配置,当Activity检测到屏幕方向发生改变后,就会回调其onConfigurationChanged函数。
注意Android 3.2以后,orientation|screenSize必须组合使用,否则onConfigurationChanged不会被回调。
对应分析,可以参考链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值