アプリによって常に書き込まれているファイルがsdcardにあり、さらに分析するために、アプリによって書き込まれているファイルをデバイスからWindowsホストマシンにプルする必要があります。
adb pull
ファイル全体をプルしてから停止するので良くありませんが、もちろんファイルもまだ書き込まれています。とにかく、ファイルは非常に大きくなるので、毎回ファイル全体をコピーするのではなく、最後に読んでから書き込まれた部分だけをコピーします。
adb shell dd
オプションかもしれませんが、SDカード上のあるファイルからSDカード上の別のファイルにコピーすることしかできません。つまり、私のWindowsマシンではありません:
たとえばadb shell dd if=/sdcard/input.pcm of=/sdcard/output.pcm
、skip および seek 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 ホストで利用可能なすべてのファイルを読み取る
- 最後に読み取りを行ってから更新されたファイルの部分を読み取ります (例: 100 ミリ秒ごと)
よろしくお願いします。