我對apk開發相當陌生。到目前爲止,在購買了一本書以及大量的谷歌搜索之後,我設法制作了一個應用程序來控制自定義ROM的一些功能。我目前正在嘗試實施2個備份功能。我想將/data/system/batterystats.bin備份到/ sdcard,並且我想將我的touchwiz啓動程序的launcher.db備份到/ sdcard。將/data/system/xxxx.bin備份到/ sdcard
對於第一部分我還沒有找到任何東西。我已經搜索了很多關於如何恢復文件的內容,但沒有多少內容出現。它主要是關於SQL .db文件。我也尋找了通過apk運行shell腳本來執行備份的可能性。使用shell腳本很容易,但通過.java執行此操作,我確實沒有任何線索。
此外,我已經嘗試了很多代碼來讓我的sqlite數據庫文件備份,但我很不成功。這裏是我的代碼,你看:在androidmanifest
public class Backup extends Activity {
public void exportDB(){
try {
File sd = Environment.getExternalStorageDirectory();
if (sd.canWrite()) {
String currentDBPath = "data/data/com.sec.android.app.twlauncher/databases/launcher.db";
String backupDBPath = sd + "/launcher.db";
File currentDB = new File(currentDBPath);
File backupDB = new File(backupDBPath);
if (currentDB.exists()) {
FileChannel src = new FileInputStream(currentDB).getChannel();
FileChannel dst = new FileOutputStream(backupDB).getChannel();
dst.transferFrom(src, 0, src.size());
src.close();
dst.close();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
我已經添加權限外部存儲寫入,當然,但沒有任何反應。沒有FC,它只是坐在那裏無所事事。當我檢查我的SD卡時,那裏什麼也沒有。
任何幫助將不勝感激。謝謝
看看logcat的輸出。可能會有一個「fileNotFoundException」。如果沒有進一步的測試,我認爲你想複製的文件不存在,或者你想要寫入的文件尚未創建。 – stefan
它可能不會強制關閉,因爲錯誤發生在try語句中並且被捕獲。爲了更好地進行錯誤處理,使用catch(FileNotFoundException e)和catch(IOException e)'和那些東西而不是泛型'catch(Exception e)'更容易。 – stefan
非常感謝你的答覆。我會嘗試一些進一步的測試。你碰巧知道我的問題的第一部分?將/data/system/batterstats.bin文件(非SQLlite)備份到SD卡,甚至更好(對於我:P)如何通過apk運行shell腳本命令? –