我有一個應用程序不斷寫入的SD卡上的文件,我需要從該應用程序寫入該設備時將該文件拖動到我的windows主機進行進一步分析。從android sdcard到windows主機的流文件
adb pull
是不好的,因爲它拉動整個文件然後停止,但當然文件仍然被寫入。無論如何,文件變得非常大,所以我不想每次都複製整個文件,只是從上次閱讀以來寫入的部分。
adb shell dd
可能是一種選擇,但我只能把它從一個文件的SD卡複製到SD卡的另一個文件,即不是我的Windows機器:
例如adb shell dd if=/sdcard/input.pcm of=/sdcard/output.pcm
然後使用跳過並尋找dd選項。
如果我使用dd和管道:: adb shell dd if=/sdcard/input.pcm > output.pcm
輸出文件有一些損壞:0x0D,0x0D隨機添加到pcm數據。就像我剛剛做adb shell cat input.pcm一樣。
我也想過把數據寫入logcat並解析它,但是這相當笨拙和混亂,並且有大量數據。
另一種選擇可能是將文件分割成許多小文件,因爲它們正在寫入,然後使用adb pull。
這些都不是理想的。理想情況下,我希望主機上的一個程序可以在我的控制下提取數據,例如fopen,fread等。但我不確定這是否可行。
任何人都可以建議我如何能夠滿足我的要求:
- 閱讀所有的可用到Windows文件託管
- 閱讀,因爲我去年做了一個已更新的文件的部分讀(例如每100ms)
非常感謝提前。