以下命令是拉取文件:
adb -d shell "run-as com.myapp cat /data/data/com.myapp/databases/file.db" > file.db
但是如何像 Android Studio 那样通过设备文件资源管理器将其推回呢?
没有简单的命令来上传文件。 Android Studio 使用设备文件资源管理器上传文件时执行的操作是:
adb push /data/local/tmp/<random file name>
adb shell run-as com.myapp sh -c 'cp /data/local/tmp/<random file name> /data/data/com.myapp/<path>/<final file-name>'
adb shell rm /data/local/tmp/<random file name>
adb shell run-as com.myapp sh -c 'ls -al /data/data/com.myapp/<path>/'
我通过使用 Wireshark 捕获 TCP 端口 5027 上的 adb 流量发现了这一点。一个有趣的细节是,使用 adb shell 命令执行的每个命令都使用以下形式
<command-to-be executed in adb shell> || echo ERR-ERR-ERR-ERR
使用此命令
adb 推送
亚行拉
从罗伯特的回答来看,我现在可以这样做:
function dbpull() {
adb shell run-as "com.$1.debug" cat "/data/data/com.$1.debug/databases/$2.db" > "/Users/username/Desktop/$2.db"
}
function dbpush() {
adb push "/Users/username/Desktop/$1.db" "/sdcard/db/tmp/"
}
function dbpush2() {
adb shell run-as "com.$1.debug" cp "/sdcard/db/tmp/$2.db" "/data/data/com.$1.debug/databases/$2.db"
}
function dbcheck() {
adb shell run-as "com.$1.debug" ls -al "/data/data/com.$1.debug/databases/"
}
只需在您的 .bash_profile 中写入以上代码行,然后在终端中调用它。
dbpull myapp mydata
目前我更喜欢使用 Visual Studio Code 而不是 Android Studio 来开发我的 Android 应用程序。所以,我需要更多地了解终端中的命令,例如adb、gradle 等
希望这对大家有用。