下面的命令是拉檔案:
adb -d shell "run-as com.myapp cat /data/data/com.myapp/databases/file.db" > file.db
但是如何像 Android Studio 一樣通過設備檔案資源管理器將其推回?
uj5u.com熱心網友回復:
上傳檔案沒有簡單的命令。使用設備檔案資源管理器上傳檔案時,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
uj5u.com熱心網友回復:
從羅伯特的回答現在我可以這樣做:
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 等。
我希望這對每個人都有用。
uj5u.com熱心網友回復:
使用此命令
adb push <file_path> <android_device_path>
adb 拉 <android_device_path>
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/482773.html
