Java 使用';亚洲开发银行备份';以编程方式备份应用程序
目前,我正在使用Java 使用';亚洲开发银行备份';以编程方式备份应用程序,java,android,sqlite,adb,Java,Android,Sqlite,Adb,目前,我正在使用adb backup命令对我的应用程序进行备份,我的设备通过微型usb电缆连接到我的电脑。该命令如下所示: adb backup -f Backups/app.ab -noapk com.me.app 它在我的备份文件夹中输出名为app.ab的android备份(ab)文件 我想知道是否有可能以编程方式将应用程序备份到SD卡?我只需要定期备份应用程序及其数据库 有关此问题的任何链接/文档都会有所帮助 谢谢, Matt您不能从应用程序运行ADB命令(如备份),但您可以运行SHEL
adb backup
命令对我的应用程序进行备份,我的设备通过微型usb电缆连接到我的电脑。该命令如下所示:
adb backup -f Backups/app.ab -noapk com.me.app
它在我的备份文件夹中输出名为app.ab的android备份(ab)文件
我想知道是否有可能以编程方式将应用程序备份到SD卡?我只需要定期备份应用程序及其数据库
有关此问题的任何链接/文档都会有所帮助
谢谢,
Matt您不能从应用程序运行
ADB
命令(如备份
),但您可以运行SHELL
命令(从SHELL
内部运行的LINUX
命令),如下-
Process process = Runtime.getRuntime().exec("my_command");
如果知道目标文件夹和目标文件夹,可以使用cp
命令复制文件。
如果要读取命令的结果,请使用
BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream()));
在读取adb的源代码(源代码:)后,确保您的应用程序具有写入
SD
的正确权限
我发现
/system/bin/bu备份包名称
及
/system/bin/bu restoretry {
Process su = Runtime.getRuntime().exec("su");
DataOutputStream outputStream = new DataOutputStream(su.getOutputStream());
outputStream.writeBytes("/system/bin/bu backup all\n");
outputStream.flush();
outputStream.writeBytes("exit\n");
outputStream.flush();
su.waitFor();
} catch(Exception e) {}