当前位置:  开发笔记 > 编程语言 > 正文

如何检查adb shell中的SharedPreferences?

如何解决《如何检查adbshell中的SharedPreferences?》经验,为你挑选了4个好方法。

既然我们可以从远程Shell中检查sqlite3数据库,是否可以检查adb shell中的SharedPreferences?因为在调试时从命令行检查和操作SharedPreferences会更方便.

或者以另一种方式,在什么文件中保存SharedPreferences,以及如何查看和修改这些文件?



1> an0..:

好吧,我在上面提出问题之后找到了这个文件.(看起来有些问题公开激励我更加努力地自己搜索答案,因为我不希望亲爱的同伴把我视为一个懒惰的程序员.)

它是一个XML文件/data/data/your.app.package.name/shared_prefs,文件名是your.app.package.name_preferences.xml.当您发现内容只是一个键值映射时,很容易修改首选项.


adb pull <路径>,在您的设备上编辑,adb push <文件> <路径>
那么当你编写首选项时,你有标志mode_private怎么样...文件在哪里?

2> joecks..:

如果应用程序是可调试的,您可以这样做:

$ adb shell
$ run-as 
$ cat /data/data//shared_prefs/prefs.xml

请注意,首选项可能存储在另一个文件中,因此最好检查目录以找到它:

$ ls /data/data//shared_prefs/



3> friederbluem..:

我正在使用这个方便的单行程来拉取,在vim中编辑,并推送应用程序的共享首选项:

APP_ID=com.myapp; adb pull /data/data/${APP_ID}/shared_prefs/${APP_ID}_preferences.xml /tmp/${APP_ID}_preferences.xml && vim /tmp/${APP_ID}_preferences.xml && adb push /tmp/${APP_ID}_preferences.xml /data/data/${APP_ID}/shared_prefs/

只需设置APP_ID您的应用程序ID即可.

请注意,这假设您使用的共享首选项的默认文件名,从中获取PreferenceManager.getDefaultSharedPreferences(context).此外,ADB需要以root模式运行:adb root



4> eleven..:

助手bash功能

function adb-pull-prefs {
    # ${1} - app package
    # ${2} - prefs name
    adb exec-out run-as ${1} cat /data/data/${1}/shared_prefs/${2}.xml
}

推荐阅读
oDavid_仔o_880
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有