亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種快速有效的安卓Sparse格式鏡像下載方法與流程

文檔序號(hào):11828753閱讀:1347來(lái)源:國(guó)知局
一種快速有效的安卓Sparse格式鏡像下載方法與流程

本發(fā)明涉及計(jì)算機(jī)的數(shù)據(jù)通訊領(lǐng)域,更具體地說(shuō)是涉及一種快速有效的安卓Sparse格式鏡像下載方法。



背景技術(shù):

數(shù)據(jù)傳輸是主機(jī)和設(shè)備端兩方的軟件相互配合完成的,安卓設(shè)備鏡像一般分為Bootloader/BIOS,Boot,System,Modem,User等。其中,System的大小一般超過(guò)1GB,System鏡像的下載對(duì)主機(jī)和手機(jī)等設(shè)備的硬件性能要求較高,同時(shí)考慮到用戶的使用需求,對(duì)數(shù)據(jù)傳輸?shù)乃俣纫笠草^高,即實(shí)現(xiàn)快速下載。

傳統(tǒng)的安卓鏡像下載方法主要有兩種,具體描述如下:

方法一:如圖1所示,如果System鏡像是壓縮zip包,具體下載步驟為:

S1:將所有的鏡像存儲(chǔ)在主機(jī)硬盤(pán)上;

S2:通過(guò)下載工具,將鏡像加載到主機(jī)內(nèi)存,并通過(guò)USB傳輸?shù)皆O(shè)備端;

S3:設(shè)備端接收來(lái)自主機(jī)的鏡像,并將鏡像存儲(chǔ)在cache分區(qū)(android默認(rèn))或者直接寫(xiě)入RAM中;

S4:將鏡像寫(xiě)入設(shè)備存儲(chǔ)介質(zhì)EMMC;

S5:寫(xiě)入完成并做校驗(yàn)后,發(fā)送“OK”ACK值反饋給主機(jī);

S6:結(jié)束下載。

方法一的安卓鏡像下載方法的缺點(diǎn)有:

(1)S2中,如果System壓縮包太大,例如大于1GB,則主機(jī)需具備不低于1.5GB的內(nèi)存配置;

(2)S2中,如果是多線程同時(shí)下載,那么主機(jī)需要的內(nèi)存配置更是遠(yuǎn)大于1GB;

(3)S3中,鏡像通過(guò)USB傳輸?shù)皆O(shè)備端,需要先寫(xiě)入cache分區(qū),然后解壓縮并依次寫(xiě)入EMMC,這里花費(fèi)了額外的時(shí)間去寫(xiě)EMMC cache分區(qū);

(4)S3中,鏡像通過(guò)USB傳輸?shù)皆O(shè)備端,如果直接寫(xiě)入RAM中,則RAM需要大于System鏡像的大小,而很多設(shè)備都無(wú)法滿足;

(5)S4中,寫(xiě)入EMMC的過(guò)程需要每個(gè)bit都寫(xiě),從而浪費(fèi)了大量的時(shí)間;

(6)從主機(jī)端到設(shè)備端,一旦傳輸過(guò)程中斷,就需要從頭開(kāi)始。

方法二:如圖2所示,如果System鏡像是Sparse格式,假設(shè)其大小為1GB,具體下載步驟為:

S1:將所有的鏡像存儲(chǔ)在主機(jī)硬盤(pán)上;

S2:通過(guò)fastboot命令,將鏡像按照一定大小分為若干塊,設(shè)分別命名為塊1、塊2、塊3、塊4;

S3:將塊1加載到主機(jī)內(nèi)存,并通過(guò)USB傳輸?shù)皆O(shè)備端;

S4:設(shè)備端讀取主機(jī)發(fā)送的鏡像,并寫(xiě)入RAM中;

S5:鏡像從RAM寫(xiě)入設(shè)備存儲(chǔ)介質(zhì)EMMC;

S6:寫(xiě)入完成并做校驗(yàn)后,發(fā)送“OK”ACK值反饋給主機(jī);

S7:主機(jī)收到“OK”ACK值后,重復(fù)步驟S3至S5,將塊2寫(xiě)入設(shè)備存儲(chǔ)介質(zhì)EMMC,接著塊3、塊4執(zhí)行類(lèi)似操作;

S8:結(jié)束下載。

方法二的安卓鏡像下載方法的缺點(diǎn)有:

(1)鏡像塊1、2、3、4被依次寫(xiě)入設(shè)備存儲(chǔ)介質(zhì)EMMC,只有當(dāng)前面的鏡像塊傳輸并寫(xiě)入完成后才能傳輸及寫(xiě)入后面的鏡像塊,因此未能合理利用多線程寫(xiě)入機(jī)制,浪費(fèi)了大量的時(shí)間;

(2)如果分割的鏡像塊過(guò)大,仍然對(duì)主機(jī)和設(shè)備的硬件性能有嚴(yán)格限制。

因此,找到一種對(duì)硬件配置需求低,同時(shí)下載速度較快的安卓鏡像下載方法顯得十分必要,能大大節(jié)省下載時(shí)間,提升下載效率。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明克服現(xiàn)有安卓鏡像下載方法的不足,提出一種快速有效的安卓Sparse格式鏡像下載方法,解決了傳統(tǒng)安卓鏡像下載方法對(duì)主機(jī)和設(shè)備硬件性能的限制,同時(shí)大大節(jié)省了下載時(shí)間,提升了下載效率。

與傳統(tǒng)的安卓鏡像下載方法相比,本發(fā)明將數(shù)據(jù)以包的形式組織,以批量傳輸?shù)姆绞桨l(fā)送,同時(shí)引入FIFO隊(duì)列,將前一塊的數(shù)據(jù)先存入FIFO隊(duì)列,即可進(jìn)行下一塊數(shù)據(jù)的傳輸,從而使寫(xiě)入EMMC步驟和從主機(jī)到設(shè)備的數(shù)據(jù)傳輸步驟可以并行進(jìn)行,大大節(jié)省了下載時(shí)間。

實(shí)現(xiàn)本發(fā)明的技術(shù)方案如下:

一種快速有效的安卓Sparse格式鏡像下載方法,包括如下步驟:

S301:將Sparse格式的鏡像存儲(chǔ)在主機(jī)硬盤(pán)上;

S302:通過(guò)fastboot命令,將system鏡像分割為若干塊,分別命名為塊1、塊2、塊3、塊4……;

S303:將每個(gè)塊再次分割為若干個(gè)包,設(shè)塊1分割的包命名為包11、包12……,其他塊類(lèi)似處理;

S304:將包11加載到主機(jī)內(nèi)存并通過(guò)USB傳輸?shù)皆O(shè)備端;

S305:設(shè)備端讀取包11數(shù)據(jù)并寫(xiě)入RAM;

S306:將包12加載到主機(jī)內(nèi)存并通過(guò)USB傳輸?shù)皆O(shè)備端;

S307:設(shè)備端讀取包12數(shù)據(jù)并寫(xiě)入RAM;塊1的其他包同樣處理;

S308:判斷塊1是否為Sparse格式,如果是的話,存入FIFO隊(duì)列;否則,不存入;

S309:開(kāi)始執(zhí)行寫(xiě)操作,將塊1寫(xiě)入EMMC;

S310:設(shè)備端發(fā)送ACK值給主機(jī);

S311:主機(jī)收到ACK值,重復(fù)步驟S303至S308,將塊2分包分別傳輸?shù)皆O(shè)備端、存入FIFO隊(duì)列;接著塊3、塊4……進(jìn)行同樣的操作,存入到FIFO隊(duì)列;

S312:設(shè)備端的主進(jìn)程監(jiān)測(cè)鏡像寫(xiě)入EMMC的進(jìn)度,并分別完成塊1、塊2、塊3、塊4……的寫(xiě)入;

S313:設(shè)備端的主進(jìn)程監(jiān)測(cè)到所有的鏡像塊都寫(xiě)入到EMMC后,發(fā)送“OK”ACK值反饋給主機(jī);

S314:主機(jī)收到“OK”ACK值后,結(jié)束下載。

進(jìn)一步,所述步驟S302中,若System鏡像的大小為1.0GBytes,可按照300M的大小分割System鏡像,分割的塊1、塊2、塊3、塊4的大小分別為288M、312M、294M、130M。

進(jìn)一步,所述步驟S303中,可按照160M將塊1分割得到包11、包12的大小為160M、128M;塊2分割得到的包21、包22的大小為160M、152M;塊3分割得到包31、包32的大小分別為150M和144M;塊4分割得到包41、包42的大小分別為70M和60M。

進(jìn)一步,還包括所有分割的包在內(nèi)存中存放的地址可通過(guò)軟件明確定義,下載完成后,對(duì)應(yīng)的指令指針指向鏡像存放的起始地址。

進(jìn)一步,還包括所有分割的包從主機(jī)內(nèi)存?zhèn)鬏數(shù)皆O(shè)備端時(shí),數(shù)據(jù)包傳輸?shù)母袷桨ㄐr?yàn)位和數(shù)據(jù)位。

本發(fā)明的有益效果:

與傳統(tǒng)的安卓鏡像下載方法相比,本發(fā)明將數(shù)據(jù)以包的形式組織,以批量傳輸?shù)姆绞桨l(fā)送,改善了傳統(tǒng)安卓鏡像下載方法對(duì)主機(jī)和設(shè)備硬件性能的限制;同時(shí),本發(fā)明引入了FIFO隊(duì)列,將前一塊的數(shù)據(jù)先存入FIFO隊(duì)列,即可進(jìn)行下一塊數(shù)據(jù)的傳輸,從而使寫(xiě)入EMMC步驟和從主機(jī)到設(shè)備的數(shù)據(jù)傳輸步驟可以并行進(jìn)行,大大節(jié)省了下載時(shí)間,提高了下載效率。因此它改善了傳統(tǒng)安卓鏡像下載方法的不足,實(shí)現(xiàn)在較低的硬件配置需求下達(dá)到較快的安卓鏡像下載速度。

附圖說(shuō)明

圖1是背景技術(shù)中方法一所述的System鏡像是壓縮zip包的傳統(tǒng)的安卓鏡像下載流程;

圖2是背景技術(shù)中方法二所述的System鏡像是Sparse格式的傳統(tǒng)的安卓鏡像下載流程;

圖3是本發(fā)明所述的安卓鏡像下載流程。

具體實(shí)施方式

下面結(jié)合附圖對(duì)本發(fā)明提出的一種快速有效的安卓Sparse格式鏡像下載方法作進(jìn)一步詳述。

如圖3所示,本發(fā)明所述的一種快速有效的安卓Sparse格式鏡像下載方法,具體步驟如下:

S301:將鏡像存儲(chǔ)在主機(jī)硬盤(pán)上,System鏡像為Sparse格式,假設(shè)大小為1.0GB;

S302:通過(guò)fastboot命令,將system鏡像分割為若干塊;針對(duì)1.0GB大小的System鏡像,按照300M的大小分割system鏡像,得到四個(gè)塊,塊1、塊2、塊3、塊4,且分割的塊1、塊2、塊3、塊4的大小分別為288M、312M、294M、130M;

S303:將每個(gè)塊分別再次分割為若干包;針對(duì)S302中塊的大小,將塊1再次分割為2個(gè)包,分別命名為包11、包12;按照160M將塊1分割得到包11、包12的大小為160M、128M;塊2分割得到的包21、包22的大小為160M、152M;塊3分割得到包31、包32的大小分別為150M和144M;塊4分割得到包41、包42的大小分別為70M和60M。

S304:包11被加載到主機(jī)內(nèi)存并通過(guò)USB傳輸?shù)皆O(shè)備端;

S305:設(shè)備端讀取包11數(shù)據(jù)并寫(xiě)入RAM;

S306:包12被加載到主機(jī)內(nèi)存并通過(guò)USB傳輸?shù)皆O(shè)備端;

S307:設(shè)備端讀取包12數(shù)據(jù)并寫(xiě)入RAM;

S308:判斷塊1是否為Sparse格式,如果是的話,存入FIFO隊(duì)列;否則,不寫(xiě)入;

S309:開(kāi)始將塊1寫(xiě)入EMMC,注意此處只是執(zhí)行開(kāi)始寫(xiě)操作,并不是寫(xiě)完;

S310:設(shè)備端發(fā)送ACK值給主機(jī);

S311:主機(jī)收到ACK值,重復(fù)步驟S303至S308,將塊2分包分別傳輸?shù)皆O(shè)備端,存入FIFO隊(duì)列,接著塊3、塊4執(zhí)行類(lèi)似的操作,寫(xiě)入FIFO隊(duì)列;

S312:設(shè)備端的主進(jìn)程監(jiān)測(cè)鏡像寫(xiě)入EMMC的進(jìn)度,并分別完成塊1、塊2、塊3和塊4的寫(xiě)入;

S313:設(shè)備端的主進(jìn)程監(jiān)測(cè)到所有的鏡像塊都被寫(xiě)入到EMMC后,完成校驗(yàn),并發(fā)送“OK”ACK值反饋給主機(jī);

S314:主機(jī)收到“OK”ACK值后,結(jié)束下載。

進(jìn)一步,所有分割的包在內(nèi)存中存放的地址可通過(guò)軟件明確定義,下載完成后,對(duì)應(yīng)的指令指針指向鏡像存放的起始地址;

進(jìn)一步,所有分割的包從主機(jī)內(nèi)存?zhèn)鬏數(shù)皆O(shè)備端時(shí),數(shù)據(jù)包傳輸?shù)母袷桨ㄐr?yàn)位和數(shù)據(jù)位。

上文所列出的一系列的詳細(xì)說(shuō)明僅僅是針對(duì)本發(fā)明的可行性實(shí)施方式的具體說(shuō)明,它們并非用以限制本發(fā)明的保護(hù)范圍,凡未脫離本發(fā)明技藝精神所作的等效實(shí)施方式或變更均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1