私はこのようなアプリのデータベースにアクセスするためにADBを使用しています:接続を閉じずにADB経由でアプリケーションデータベースに何度もアクセスしていますか?
public static int runCommandInt(String arg1) {
try {
ProcessBuilder proc = new ProcessBuilder(adbLocation, "shell", "sqlite3",
"/data/data/com.package/databases/Database.db", arg1);
Process p = proc.start();
BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream()));
BufferedReader stdError = new BufferedReader(new InputStreamReader(p.getErrorStream()));
String s = null;
int i = 0;
while ((s = stdInput.readLine()) != null) {
i = Integer.parseInt(s);
p.destroyForcibly();
return i;
}
while ((s = stdError.readLine()) != null) {
System.out.println(s);
}
} catch (Exception e) {
e.printStackTrace();
}
return 0;
}
これに伴う問題は、しかし、私は、コマンドを実行しようとするたびに、それはADB(したがって、データベース接続を開閉することです同様に非常に非効率的です)、同じadbウィンドウを取得してそこにもっと多くのコマンドを実行する方法はありますか?
は、残念ながらadbを通過するです。毎秒データベースをプルしてローカルにチェックすると、エラーの余地があまりにも大きくなります。
非効率だと思う以外の目的を達成するこの方法について他に苦情がありますか?あなたが必要とするのは、毎秒いくつかの値を照会することです - 私は事を変更しません。他の問題がある場合は、それらについて聞かせてください。 –