編輯:系統備份
簡介: 移動互聯網是一個新型的融合型網絡,隨著其高速的發展,將會有越來越多的 3G 手機用戶,而手機中有許多重要的數據,本文介紹了基於 android 備份恢復這些數據的一種實現方法。
引言
隨著 3G 時代的到來,移動互聯網的發展,手機的功能越來越強大,手機裡的數據對每個用戶來說都非常的重要,特別是通訊錄、日程、短信息、郵件等數據,一旦手機丟失、誤刪或其他意外使得數據無法正常使用,會給用戶帶來麻煩,數據備份與恢復這個應用可以幫助用戶解決這個問題。
本文主要論述了基於 android 平台所提供的開發框架和應用組件,並給出了一種數據備份恢復的設計與實現。
背景知識介紹
當前流行的智能手機操作系統有 Windows Mobile,SymBian,iPhone OS,Android 等。本文基於目前最熱門的 android 系統平台,該平台具有開源、易用、開發方便、與個人電腦有較強的融合性等眾多優勢。
android 架構
圖 1. android 架構圖
Application:
android 會與一個核心應用程序包一起發布,如通訊錄、短信息、浏覽器等,所有的應用使用 Java 語言所開發。
Application Framework:
android 應用程序框架對於開發者也完全可以訪問核心應用程序所使用的 API 框架。該應用程序架構用來簡化組件軟件的重用;任何一個應用程序都可以發布它的功能塊並且任何其它的應用程序都可以使用其所發布的功能塊。該應用程序重用機制使得組建可以被用戶替換。
LibrarIEs:
Android 程序庫包括一個被 Android 系統中各種不同組件所使用的 C/C++ 庫集。該庫通過 android 應用程序框架為開發者提供服務。
Linux Kernel:
內核 android 的核心系統服務依賴於 Linux 2.6 內核,如安全性,內存管理,進程管理,網絡協議棧和驅動模型。 Linux 內核也同時作為硬件和軟件堆棧之間的硬件抽象層。
備份恢復的設計與實現
備份的方式有本地備份、網絡備份,本地備份是直接將數據備份到 SDcard 存儲介質中;網絡備份是將數據備份到網絡服務器中。網絡服務器系統是基於 J2EE 架構,通過 HTTP(HTTPS)協議對終端提供服務,備份的應用的數目可以大於等於 1,這裡只備份通訊錄。系統體系結構圖如下所示:
圖 2. 數據備份與恢復體系結構圖
本地備份恢復
本地備份恢復客戶端的流程
用戶選擇本地 Backup 或 Restore,通過向 Contacts 發送廣播信號,如果 Contacts 准確收到廣播信號後,開始執行 Backup 或 Restore 操作,完成後反饋操作結果。流程圖如下所示:
圖 3. 本地備份恢復流程圖
本地備份恢復客戶端的序列圖:
在序列圖中,客戶端選擇本地備份或本地恢復後,發送廣播消息通知 Contacts 應用開始備份或恢復 (ContactsReceiver 根據信號類別 : 執行備份或恢復操作 ),通過 FileInputStream 和 FileOutputStream 對數據庫文件進行 read/write。
如果是本地備份則將自身的數據庫文件寫到 SDCard;如果是本地恢復將 SDCard 中對應的文件寫到 Contacts 應用對應的路徑下,用以覆蓋原始數據庫文件。
用 Environment.getExternalStorageDirectory() 方法獲取 SD 卡的路徑 , 卡存儲空間大小及已占用空間獲取方法 :
/* 獲取存儲卡路徑 */ File sdcardDir=Environment.getExternalStorageDirectory(); /*StatFs 看文件系統空間使用情況 */ StatFs statFs=new StatFs(sdcardDir.getPath()); /*Block 的 size*/ Long blockSize=statFs.getBlockSize(); /* 總 Block 數量 */ Long totalBlocks=statFs.getBlockCount(); /* 已使用的 Block 數量 */ Long availableBlocks=statFs.getAvailableBlocks();
序列圖如下所示:
圖 4. 本地備份恢復序列圖
本地備份恢復客戶端的實現:
如下圖給出了 BackupRestoreActivity 和 ContactsReceiver 的類圖,以及他們工作機制中涉及到的類的結構。
圖 5. 本地備份恢復類圖
commandFilter = newIntentFilter(); commandFilter.addAction("signal"); registerReceiver(BroadcastReceiver, commandFilter); BroadcastReceiver 用來接收和響應廣播消息
用戶選擇本地備份或者本地恢復,ContactsReceiver 則收到廣播消息後,根據信號判斷操作的類別是備份還是恢復,然後啟動一個線程,在線程中調用 Handler,通過 Handler 去處理讀寫數據。
在一二線城市,智能機幾乎是人手一個,刷機也逐漸成為一種潮流。在刷機前,很多網友總是忘記備份手機資料,或者有時刷機後發現SD卡中照片文件夾莫名其妙丟失了!小編在刷MIUI或
用微信和好友、公眾賬號收發文字、圖片、視頻,時間久了想把怕聊天記錄丟失,想要備份一下微信記錄,可是微信目前並沒有備份的功能,網上雖說有備份方法,但大多數需要
本經驗是基於系統flyme3.0以上版本,其他版本是一樣的。首先,打開手機的設置頁面 找到設置裡的賬戶,點擊進入,進行flyme賬戶的登錄(沒有賬戶的按要求進行注冊)
還在因為找不到數據線無法查看移動存儲設備的資料而煩惱嗎?或者又因為設備的丟失而導致重要文件苦惱嗎?一切都交給金山快盤來處理吧。信息社會數據在我們的生活總是扮演著一些非常重