999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

安卓系統增量升級探析與改進

2020-10-20 07:55:56張炎高
科學與信息化 2020年17期

張炎高

摘 要 Android最初是由Android Inc.開發的。2005年,谷歌收購了移動操作系統Android并在2007年首次向公眾展示。2008年10月,Android正式發布了1.0版本,每個廠商都可以使用這個操作系統。Android作為一個開源操作系統被進一步開發廣泛應用與手機、平板電腦和其他嵌入式設備。越來越多的中小企業,采用Android系統來開發產品。產品發布后,增加新功能、修補漏洞,都需要更新固件,隨著功能的增加,Android系統的固件也越來越大,小小的修改卻要升級整個固件,這不僅浪費網絡資源,同時也增加了升級需要的時間,于是增量升級成為一種好的解決方法。

關鍵詞 Android;安卓;OTA;增量升級;差分升級

1增量升級的原理

Android OTA升級分全量升級、增量升級(也叫差分升級)。增量升級,將舊版本固件與新版本固件進行比較,得到更新部分的補丁,并生成OTA升級zip壓縮包。將OTA升級zip壓縮包放到服務器上。設備連接到服務器,檢查是否需要更新,需要更新則通過網絡從服務器下載OTA升級zip壓縮包到本地,重啟進入recovery系統,通過應用補丁形式,完成boot、system分區的升級,完成boot、system分區的升級再次重啟進入正常系統,正常系統啟動過程中,以補丁形式完成recovery系統的升級。在recvoery系統中升級boot、system分區,在正常系統中升級recovery分區,這樣可以保證正常系統與recovery系統至少有一個是可以正常工作的。增加了系統的健壯性[1]。

2增量升級不足之處

增量升級并非十全十美,存在不足之處。

(1)Android原生增量升級,升級包管理復雜。隨著發布版本的增多,所需提供的增量升級包會越來越多。理論上,發布第n個版本時,需要提供n-1個增量升級包,才能滿足現有用戶通過一次升級,升級到版本n。否則用戶需要升級多次才能升級到版本n。例如:當前處于第1個版本的用戶,需要升級n-1次才能升級到第版本n,這將會是糟糕的用戶體驗。

(2)需要保留每個版本的中間文件,用于增量升級包的生成。小小的改動,也需要保留整個系統的中間文件,其中的大部分文件是冗余的。隨著版本的增加,消耗的磁盤空間也會越來越大。

(3)實際應用中,固件對外發布后,系統層面的代碼很少改動,主要修改是APP相關的修改。APP的小小修改,也需要重新編譯整個Android系統,大大降低開發效率。

(4)不修改源碼的情況下,全量升級只允許從編譯時間較早的版本升級到編譯時間較新的版本。增量升級則沒有這個限制,實際應用中卻有這樣的限制需求[2]。

3增量升級改進

中小企業為了加快產品上市,往往會先發布一版相對穩定的固件,然后在實際應用過程中不斷改進,版本迭代頻繁。開發調試過程中,一天可能出幾個調試版本固件,甚至更多。安卓系統原生的差分升級,在這樣環境下的應用,不足之處就會更加突出。對此,進行改進,改進后的差分升級,對中小企業更加實用、高效。

3.1 固件打包方式修改

固件打包目錄由編譯好的kernel文件、root目錄、recovery目錄、system目錄組成。root目錄用于生成正常系統ramdisk.img(根文件系統一部分,與system組成Android的整個根文件系統),ramdisk.img與編譯好的kernel生成boot.img。recovery目錄用于生成recovery系統的ramdisk.img(一個小的根文件系統),再與編譯好的kernel生成recovery.img。system目錄,存放Android系統的文件及目錄,用生成system.img。每個鏡像增加鏡像頭,鏡像頭包含版本、大小、MD5校驗和、版本兼容性等信息。增加固件頭,包含boot system recovery的版本、MD5校驗和、大小、偏移。固件頭后是boot.img、recovery.img、system.img等鏡像。system分區以文件或目錄為單位為最小單元,在鏡像文件頭部存放system分區的文件列表,文件列表項由文件名(或目錄)、MD5校驗和、偏移、大小組成。改進后,打包與Android源碼分離。這樣只修改APP應用時無須重新編譯Android源碼,加快了固件發布。

3.2 升級數據下載改進

與原生的OTA升級下載整個OTA升級包不同,先下載固件頭部分數據,比較固件頭中的版本、MD5校驗和信息。固件頭中對應鏡像的版本、MD5校驗和都相同則無須下載此部分鏡像,不同則繼續下載鏡像頭進行比較。boot、recovery分區根據版本、MD5校驗和比較結果進行下載,版本、MD5校驗和相同,無須升級則不進行下載,否則下載固件中相應部分的數據,減少數據下載。system分區數據的下載,則進一步比較當前版本固件中system分區的文件列表與最新版本固件中system分區的文件列表,可以知道新版本固件system分區中哪些文件(或目錄)是新增加的,哪些文件(或目錄)需要刪除的,哪些文件(或目錄)需要修改的。只下載增加、修改的數據,記錄刪除的文件(或目錄),就可以升級。增量升級數據的生成在設備端進行,這樣不需要事先制作好2個版本間的增量升級包,服務器上只需發布完整的固件即可。固件版本的維護,相對簡單。設備當前無論處于哪個固件版本,都可以通過一次更新升級到最新版本。system分區文件列表包含成千上萬個文件或目錄,為了加快比較速度,對本地文件列表根據文件名進行快速排序,然后對最新版本的system分區文件列表項,用2分查找法在本地文件列表中進行搜索,這樣可以快速生成新增、修改、刪除表。

3.3 數據升級

與Android原生系統一樣,同樣啟動進recovery系統進行增量升級,不同改用掛載system分區,進行文件增加、刪除。

4結束語

綜上所述,改進后的差分升級方式,更易維護,更節省時間、空間,更適合中小企業快速迭代的需求。

參考文獻

[1] 林學森.深入理解Android內核設計思想[M].北京:人民郵電出版社,2014:335.

[2] 佚名.android維基百科[ED/OL].https://en.droidwiki.org/wiki/Android,2020-5-2.

主站蜘蛛池模板: 国产成人一区免费观看| 亚洲精品福利视频| 91福利一区二区三区| 999国内精品久久免费视频| 国产网友愉拍精品视频| 亚洲国模精品一区| 四虎永久在线精品国产免费| 自拍偷拍欧美日韩| 9966国产精品视频| 91亚洲影院| 亚洲精品国产首次亮相| 欧美一级在线看| 午夜啪啪网| 亚洲品质国产精品无码| 最新日韩AV网址在线观看| 国产精品内射视频| www.亚洲国产| 综合色在线| 欧美区日韩区| 婷婷亚洲视频| 五月天天天色| 呦系列视频一区二区三区| 日韩欧美国产综合| 无码一区18禁| 无码 在线 在线| 香蕉视频国产精品人| 欧美成人精品高清在线下载| 日韩视频免费| 欧美不卡在线视频| 色婷婷成人| 欧美日韩资源| 国产一区二区网站| 亚洲视频三级| 久久久精品久久久久三级| 国产精品第一区| аⅴ资源中文在线天堂| 亚洲首页在线观看| 亚洲欧美在线综合图区| 最新日本中文字幕| 99热亚洲精品6码| 欧美笫一页| 尤物国产在线| 中国成人在线视频| 欧美日韩福利| 无码中文字幕加勒比高清| 国产无人区一区二区三区| 国产亚洲精品精品精品| 国产毛片高清一级国语 | 在线视频亚洲色图| 精品天海翼一区二区| 四虎在线高清无码| 久久久久亚洲AV成人人电影软件| 亚洲欧美综合在线观看| 国产伦片中文免费观看| 亚洲一级毛片| 极品国产在线| 亚洲高清国产拍精品26u| 亚洲精品在线观看91| www.日韩三级| 亚洲国产欧美国产综合久久 | 国产精品免费电影| 91精品免费久久久| 亚洲日韩久久综合中文字幕| 国产91全国探花系列在线播放| 97se亚洲综合在线天天| 免费无码AV片在线观看国产| 国产第八页| 99视频有精品视频免费观看| 香蕉蕉亚亚洲aav综合| 91免费国产在线观看尤物| 亚洲永久视频| 久草国产在线观看| 亚洲人成影院在线观看| 国产福利影院在线观看| 国产极品美女在线观看| 超碰aⅴ人人做人人爽欧美| 91亚洲免费视频| 国产男女免费视频| 中国一级特黄大片在线观看| 亚洲中文字幕无码爆乳| 国产18在线播放| 欧美日韩精品一区二区视频|