基于WinCE的智能終端自動升級引擎設(shè)計
(1)在運行智能終端主程序時就啟動升級模塊,從服務(wù)器下載最新的版本號,如果對比當(dāng)前版本號過時,則提示是否升級。
(2)在獲取網(wǎng)絡(luò)連接正常且?guī)捲试S的情況下,確認(rèn)升級。
(3)服務(wù)器接收到升級請求后,向數(shù)據(jù)庫獲取新舊版本的版本信息和文件信息列表,通過任意版本間版本信息的比較算法獲取需要更新、刪除、添加的文件列表。
(4)智能終端通過獲取到的需要更新、刪除、添加的文件列表下載相關(guān)的升級模塊來進行軟件的自動升級。
(5)顯示下載進度。
(6)下載完畢后,對要注冊的文件進行注冊。
(7)升級完成,關(guān)閉升級模塊,運行主程序。
(8)在主程序運行過程中檢測、獲取服務(wù)器智能推送過來的版本信息。
(9)如發(fā)現(xiàn)智能推送過來版本升級信息,回到第4步。
(10)關(guān)閉主程序。
4.版本信息數(shù)據(jù)庫和算法的設(shè)計
4.1 版本信息數(shù)據(jù)庫的設(shè)計
(1)tab_ver_all(歷史版本控制表)
該表數(shù)據(jù)項說明如表一所示:
表一 歷史版本控制表
列名 | 數(shù)據(jù)類型 | 長度 | 是否為空 | 意義 |
ID | integer | 2 | N | 標(biāo)志一條記錄 |
Ver_number | verchar | 6 | N | 智能終端軟件版本號 |
Ver_date | date | 20 | N | 軟件發(fā)布日期 |
Ver_remark | verchar | 100 | Y | 備注 |
(2)tab_ver_info(版本信息控制表)
該表數(shù)據(jù)項說明如表二所示:
表二 版本信息控制表
列名 | 數(shù)據(jù)類型 | 長度 | 是否為空 | 意義 |
ID | integer | 2 | N | 標(biāo)志一條記錄 |
FileName | verchar | 20 | N | 文件名 |
BelongVer | verchar | 10 | N | 所屬版本,與tab_ver_info建立外鍵關(guān)系 |
FileVer | verchar | 10 | N | 文件版本 |
FileSize | verchar | 20 | N | 文件大小 |
ServerList | verchar | 60 | N | 服務(wù)器安裝目錄 |
ClientList | verchar | 60 | N | 智能終端安裝目錄 |
FileDate | date | 20 | N | 文件發(fā)布日期 |
fileRemark | verchar | 100 | Y | 備注 |
4.2 任意版本間版本信息比較的算法設(shè)計
4.2.1 算法設(shè)計的目的
本算法接收新舊版本號,運算后按照接口字符串協(xié)議提供給上層應(yīng)用需要更新、刪除、添加的文件列表字符串。
4.2.2 算法設(shè)計的思路和流程
(1)根據(jù)輸入的新舊版本號查詢版本信息控制表,獲取到新舊版本的文件名列表。
(2)把新舊版本的文件名列表放入new()和old()兩個數(shù)組中,進行第一次循環(huán)比較:相同的文件放入same()數(shù)組中,多余的文件放入del()數(shù)組中,沒有的文件放入add()數(shù)組中。由此已經(jīng)確定了需要刪除、添加的文件名列表。
(3)再根據(jù)輸入的新舊版本號和same()數(shù)組中的相同文件名查詢版本信息控制表中相同文件名的文件版本號,進行第二次循環(huán)比較:文件版本號相同的文件保留,不同的則放入update()數(shù)組中,由此最終確定了需要更新的文件名列表。
(4)通過得到的三類文件名列表查詢版本信息控制表獲取完整包括文件名、文件大小、服務(wù)器安裝目錄、智能終端安裝目錄等文件信息。
(5)按照接口字符串協(xié)議打包生成需要更新、刪除、添加的文件列表字符串提供給上層應(yīng)用解包后完成軟件需要更新、刪除、添加文件的分發(fā)下載。
評論