原文
before we start, do you have a rooted phone? if not, I strongly suggest that it’s time you make the jump. 99% of the tutorials that help you to do this require that you have a rooted phone (I know b/c I spent about an hour searching for a way to do it without having a rooted phone.. couldn’t find any..) also if you think about it, your iPhone also has to be rooted to do this same task. So it’s totally reasonable. More about rooting at end of answer.
from your command line type:
adb shell
this takes you to your android shell comand line (you should see something like this: shell@android:/ $ now type:
shell@android:/ $
run-as com.domain.yourapp
this should take you directly to the data directory of com.domain.yourapp:
shell@android:/data/data/com.domain.yourapp $
if it doesn’t (ie if you get an error) then you probably don’t have a rooted phone, or you haven’t used your root user privileges. To use your root user privileges, type su on the adb command line and see what happens, if you get an error, then you’re phone is not rooted. If it’s not, root it first then continue these instructions.
from there you can type ls and you’ll see all the directories including the dbs:
shell@android:/data/data/com.domain.yourapp $ ls
cache
databases
lib
shared_prefs
after that you can use sqlite3 to browse the dbase.. if you don’t have it installed (you can find it out by typing sqlite3, if you get command not found then you’ll have to install it. To install sqlite, follow instructions here.
about rooting: if you’ve never rooted your phone before, and you’re worried about it screwing your phone, I can tell you with full confidence that there is nothing to worry about. there are tonnes of quick and easy phone rooting tutorials for pretty much all the new and old models out there, and you can root your phone even if you have a mac (I rooted my s3 with my mac).
另一篇不错的文章
在不root手机的情况下读取Data目录下的文件
使用adb命令时的错误
如果直接使用adb命令会产生以下错误:
shell@android:/ $ cd /data
cd /data
shell@android:/data $ ls
ls
opendir failed, Permission denied
你是没有权限的。
正确使用adb读取data目录下的文件方式
shell@android:/data $ run-as com.your.package
run-as com.your.package
shell@android:/data/data/com.your.package $ cd /data/data/com.your.package
cd /data/data/com.your.package
shell@android:/data/data/com.your.package $ ls
ls
cache
databases
lib
shared_prefs
shell@android:/data/data/com.your.package $ cd databases
cd databases
shell@android:/data/data/com.your.package/databases $ ls
yourpackagename.db
$ cat preferences.db > /mnt/sdcard/yourpackagename.db