Android 如何禁用作为第三方SDK分发的库项目的自动备份?
我目前正在开发一个android库项目(aar),该项目将被第三方用作SDK。在内部,我使用SharedReferences存储一些特定于我的库的数据:Android 如何禁用作为第三方SDK分发的库项目的自动备份?,android,android-library,aar,android-sharedpreferences,Android,Android Library,Aar,Android Sharedpreferences,我目前正在开发一个android库项目(aar),该项目将被第三方用作SDK。在内部,我使用SharedReferences存储一些特定于我的库的数据: SharedPreferences prefs = context.getSharedPreferences("my.library.prefs", Context.MODE_PRIVATE); SharedPreferences.Editor editor = prefs.edit(); editor.putString("my.librar
SharedPreferences prefs = context.getSharedPreferences("my.library.prefs", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putString("my.library.data", "test_data");
editor.apply();
在Android Marshmallow及以上设备上,我注意到,即使在卸载并重新安装主机应用程序(使用我的库)之后,我以前保存的一些数据也会自动恢复。通过研究stackoverflow,我发现在较新的设备上,自动备份几乎可以恢复存储在私有沙箱中的所有内容,包括SharedReference文件
要将我的库的文件排除在自动备份行为之外,最合适的方法是什么?请记住,我的库的用户可能有他们自己想要备份的文件。不幸的是,没有一个好的答案 您可以将
android:fullBackupContent=“@xml/backup\u rules”
添加到),这将自行工作。但是,如果库的使用者定义了自己的备份规则,则在清单合并期间,您的备份规则将被覆盖
我希望您能够这样做的方式是为库中的路径定义一个字符串(my.library.prefs.xml
),然后告诉您的消费应用程序在其备份规则中引用该字符串。不幸的是,您似乎无法在该文件中使用字符串引用<代码>
无法正确解析
您所能做的最好的事情就是在自述文件中硬编码路径,并要求您的消费者将其排除在外