自从新的ADT预览版本(版本21)以来,它们有一个新的lint警告,它告诉我清单文件(在应用程序标记中)的下一件事:
应该明确地将android:allowBackup设置为true或false(默认情况下为true,这可能会对应用程序的数据产生一些安全隐患)
在官方网站上,他们写道:
一些新检查:您必须明确决定您的应用是否允许备份和标签检查.有一个新的命令行标志用于设置库路径.编辑时增量lint分析的许多改进.
这警告是什么?什么是备份功能,以及如何使用它?
另外,为什么警告告诉我它有安全隐患?禁用此功能有哪些缺点和优点?
清单有两种备份概念:
是否允许应用程序参与备份和还原基础结构.如果此属性设置为false,则不会执行应用程序的备份或还原,即使是全系统备份也会导致所有应用程序数据都通过adb保存.此属性的默认值为true.
这被认为是一个安全问题,因为人们可以通过ADB备份您的应用,然后将您应用的私人数据导入他们的PC.
但是,我认为这不是一个问题,因为大多数用户不知道什么是adb,如果他们这样做,他们也会知道如何根设备.ADB功能仅在设备启用了调试功能时才有效,这需要用户启用它.
因此,只有将其设备连接到PC并启用调试功能的用户才会受到影响.如果他们的PC上有使用ADB工具的恶意应用程序,这可能会有问题,因为应用程序可以读取私有存储数据.
我认为Google应该在开发人员类别中添加默认禁用的功能,以允许通过ADB备份和恢复应用.
实现应用程序备份代理的类的名称,BackupAgent的子类.属性值应该是完全限定的类名(例如"com.example.project.MyBackupAgent").但是,作为简写,如果名称的第一个字符是句点(例如,".MyBackupAgent"),则它将附加到元素中指定的包名称.没有默认值.必须指定名称.
这不是安全问题.
android adt compiler-warnings android-lint android-backup-service
我在Google Play市场上有一款应用.由于各种原因,我不打算进入,我已经改变了我的一些偏好的类型.例如,首选项类型是Integer,在最新版本中它现在是String.我想这不是一个好习惯,但不幸的是我不得不这样做.
我担心的是,当有人更新新版本时,他们的应用会因偏好类型发生变化而崩溃.出于这个原因,我想在应用程序更新时清除首选项(再次,我意识到不理想!)
这可能吗?