我正在开发一个应用程序,我知道我的数据库 *.db将出现在data/data/com.****.***
我可以借助sqlite manager从Eclipse中的AVD访问此文件
但我无法在Android手机中访问此文件.
我谷歌它,它说我需要根我的手机来做它,但我不想这样做.(新手机,保修问题和安全问题)
所以这是我的问题:如何data/data/.....在没有生根的情况下访问Android手机中的目录 "?
我可以在data/data.....不生根的情况下更改目录的用户权限吗?
我在SQLite数据库中有一组数据.我需要在设备上查看数据库.我怎么做?
我已经检查了ddms模式.文件资源管理器中的数据为空.
我目前正在开发适用于Android的WiFi应用程序.我在尝试访问设备上的数据库时遇到问题.模拟器中的调试对我不起作用,因为模拟器中没有WiFi支持.我尝试使用将数据库文件从设备中拉出来
adb pull data/data/package-name/databases/database-name
Run Code Online (Sandbox Code Playgroud)
但我收到错误"Permission denied.".在这个答案Android:数据库文件存储在哪里?,Commonsware建议通过在调试模式下运行来提取数据库文件.但它也不起作用.任何有关如何调试数据库而不需要设备生根的帮助将非常感激.
我到处寻找,我找不到真正准确的答案或教程,如果可能的话,如何做到这一点.
是否有可能以任何方式提取Android设备的数据库而无需root用户?我只需要以任何方式提取数据,以便将其收集到我的电脑上,那么我该如何执行此操作呢?我是否需要重新编程应用程序或您知道的任何方法,但请记住,不要使用设备.谢谢
我正在尝试使用adb pull命令将某些文件(jpg)复制到我的macbook.我试过"adb pull sdcard/mydir/*.jpg",但它显然没有解释通配符.我怎样才能获得仅复制的jpg文件?如果有帮助的话我已经扎根了手机.
任何人都可以告诉我,是否可以使用ADB从应用程序中提取和推送数据库,而无需手机上的root权限?
例如,我知道我的根本魔法和梦想的位置是:
/data/data/com.xxxx.xxxx/databases/xxxx
Run Code Online (Sandbox Code Playgroud)
我知道您可以在没有root的情况下使用ADB,但在尝试使用shell时 - 如果没有root privalges,则无法查看该位置.但有人告诉我,如果你知道你想要的文件,你可以使用推拉吗?
基本上我想从非root用户手机上的MY应用程序中提取数据库进行修改并重新启动.
我遇到的麻烦就是,我拥有的两部手机都是root用户,我无法访问非root用户进行试用.
我正在开发一个应用程序,我使用sqllite3数据库来存储值.我有Nexus S和Nexus 7都是无根设备.如何为我的应用程序获取数据库以进行调试.
我试过(1)我尝试过这里提到的所有方法
adb shell
run-as app.package.name \
cp /data/data/package.name/databases/application.sqlite /sdcard/
exit
adb pull /sdcard/application.sqlite ~/
Run Code Online (Sandbox Code Playgroud)
这说cp没找到..
(2)http://developer.android.com/tools/help/adb.html#sqlite
adb -s emulator-5554 shell
# sqlite3 /data/data/com.example.google.rss.rssexample/databases/rssitems.db
SQLite version 3.3.12
Enter ".help" for instructions
.... enter commands, then quit...
sqlite> .exit
Run Code Online (Sandbox Code Playgroud) 很简单的问题,但令人困惑.我在我的Android应用程序中使用sqlite.
我想知道我们可以通过命令提示符在sqlite中执行(创建,插入,更新,删除)操作: -
path> adb shell
shell@android:/ $ sqlite3 /data/data/pack/databases/name
sqlite> operations.....
Run Code Online (Sandbox Code Playgroud)
这一切都取决于我的模拟器.
但我在添加谷歌nexus设备后做了同样的事情.
path> adb shell
error:-/system/bin/sh: sqlite3: not found
Run Code Online (Sandbox Code Playgroud)
为什么在关闭模拟器并添加设备后显示此错误.
这意味着我们无法通过cmd读取设备数据库(而不是模拟器).
或者有没有办法通过cmd读取设备(而不是模拟器)数据库.
有没有办法编写一个脚本,使用run-as从ADB shell复制文件?
我知道在adb shell中复制的唯一方法就是使用cat source > dest(编辑:现代android版本有cp命令,这使得这个问题变得不必要了),但是我只能引用一个深层的大于号 - 所以我的脚本可以将它传递给adb shell,但不能传递给adb shell run-as.
例如,这有效:
adb shell "cat source > dest"
但这不是:
adb shell run-as "cat source > dest"
这不是:
adb shell "run-as cat source \> dest"
我甚至尝试创建一个小脚本并将其上传到设备,但我似乎无法从adb shell运行脚本 - 它告诉我"权限被拒绝".我也不能chmod脚本.
我想这样做的原因是将文件复制到应用程序的私有存储区域 - 具体来说,我使用脚本来修改共享首选项并将修改后的首选项放回原处.但是,只有应用程序本身或root可以写入我想要的文件.
此方案中的用例是将文件复制到设备上的受保护位置,而不是检索它; 对于检索,这个问题已经有了很好的答案.
我正在尝试使用Android Adb Command Prompt将应用程序容器内的文件夹复制到本地 Windows 文件夹。该设备运行的是 Android 5.1.1 并且未获得 root 权限。
adb pull或者cp不工作。如何复制文件夹?
以下方法不起作用:
方法一
adb shell
adb pull /data/data/DroidSample.DroidSample/files/MetroLog/MetroLogs C:/temp/test
Run Code Online (Sandbox Code Playgroud)
错误:找不到设备
在壳内你看不到做什么adb pull。看这里。
方法2
DDMS 无法访问该data文件夹。
方法3
adb shell
run-as DroidSample.DroidSample
cp /files/MetroLog/MetroLogs/ C:/temp/test
Run Code Online (Sandbox Code Playgroud)
cp: /files/MetroLog/MetroLogs/: 没有这样的文件或目录
方法4
adb shell
run-as DroidSample.DroidSample
cp /data/data/DroidSample.DroidSample/files/MetroLog/MetroLogs/ C:/temp/test
Run Code Online (Sandbox Code Playgroud)
cp: /data/data/DroidSample.DroidSample/files/MetroLog/MetroLogs 是一个目录(未复制)。
这也是行不通的。
方法5
adb shell
run-as DroidSample.DroidSample
chmod 777 /files/MetroLog/MetroLogs
exit
exit
adb pull /data/data/DroidSample.DroidSample/files/MetroLog/MetroLogs C:/temp/test
adb shell …Run Code Online (Sandbox Code Playgroud) 如何通过adb shell命令从android设备中提取应用程序的数据库?
谢谢