一種手機(jī)軟件快速更新下載的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種移動(dòng)通信技術(shù)領(lǐng)域,尤其涉及一種手機(jī)軟件快速更新下載的方法。
【背景技術(shù)】
[0002]手機(jī)軟件下載是把手機(jī)軟件編譯生成的二進(jìn)制目標(biāo)文件,下載到手機(jī)FLASH存儲(chǔ)空間的過(guò)程。隨著手機(jī)功能的增多,二進(jìn)制目標(biāo)文件會(huì)變得越來(lái)越大,導(dǎo)致下載升級(jí)時(shí)間變長(zhǎng)。在手機(jī)軟件調(diào)試過(guò)程中,手機(jī)軟件下載調(diào)試更為頻繁;在手機(jī)生產(chǎn)過(guò)程中,手機(jī)軟件如果批量更新,返工的時(shí)間成本會(huì)成倍增加。手機(jī)軟件臨近版本編譯生成的二進(jìn)制目標(biāo)文件存在相關(guān)性,可以找到臨近版本二進(jìn)制目標(biāo)文件的相同塊和差異塊。在手機(jī)軟件臨近版本改動(dòng)比較小的情況下,編譯生成的二進(jìn)制目標(biāo)文件的相同塊就會(huì)相應(yīng)增多。如果在手機(jī)軟件下載升級(jí)時(shí)只升級(jí)差異塊,這樣會(huì)節(jié)省下載升級(jí)的時(shí)間,勢(shì)必提高手機(jī)軟件的研發(fā)速度和降低手機(jī)軟件升級(jí)的生產(chǎn)成本。
【發(fā)明內(nèi)容】
[0003]針對(duì)已有技術(shù)升級(jí)手機(jī)軟件版本需要全部覆蓋下載的不足,本發(fā)明的發(fā)明目的是提供一種手機(jī)軟件快速更新下載的方法,它與現(xiàn)有的手機(jī)軟件版本更新下載相比,提高了手機(jī)軟件研發(fā)的調(diào)試速度、降低了手機(jī)軟件二進(jìn)制目標(biāo)文件在生產(chǎn)線批量更新下載升級(jí)的生產(chǎn)成本。
[0004]本發(fā)明的發(fā)明目的是通過(guò)如下技術(shù)方案實(shí)現(xiàn)的。
[0005]為達(dá)到上述目的,本發(fā)明一種手機(jī)軟件快速更新下載的方法,包括以下步驟:選擇要更新的新版本手機(jī)軟件對(duì)應(yīng)的二進(jìn)制目標(biāo)文件(記為FILE2.BIN);察看手機(jī)內(nèi)的軟件版本號(hào),根據(jù)這個(gè)版本號(hào)選擇對(duì)應(yīng)的二進(jìn)制目標(biāo)文件(記為FILE1.BIN),如果沒(méi)有這個(gè)版本號(hào)對(duì)應(yīng)的二進(jìn)制目標(biāo)文件,那么就根據(jù)手機(jī)軟件二進(jìn)制目標(biāo)文件在FLASH中的存儲(chǔ)起始位置開始,讀取和FILE2.BIN 二進(jìn)制目標(biāo)文件一樣大小的數(shù)據(jù)(記為FILE1.BIN);根據(jù)FLASH類型確認(rèn)存儲(chǔ)塊的劃分規(guī)則(存儲(chǔ)塊的字節(jié)數(shù)大小依次記為SEC1,SEC2,SECk);確認(rèn)手機(jī)軟件二進(jìn)制目標(biāo)文件在FLASH中存儲(chǔ)的起始?jí)K位置(記為SECm);根據(jù)FILE2.BIN文件的大小確認(rèn)手機(jī)軟件二進(jìn)制目標(biāo)文件在FLASH中存儲(chǔ)的結(jié)束塊位置(記為SECn);按照SECm到SECn的(η-m+l)個(gè)SEC塊大小劃分FILE2.BIN為(η-m+l)個(gè)部分;查找二進(jìn)制目標(biāo)文件FILE2.BIN和FILE1.BIN對(duì)應(yīng)(η-m+l)個(gè)SEC塊中的相同塊和不同塊(相同的塊記為SI, S2,...,Sg ;不同的塊記為Dl, D2,…,Dj);擦除FLASH中對(duì)應(yīng)Dl到Dj的SEC塊;下載更新二進(jìn)制目標(biāo)文件FILE2.BIN中對(duì)應(yīng)Dl到Dj的數(shù)據(jù)到FLASH對(duì)應(yīng)的存儲(chǔ)空間中,至此更新下載過(guò)程完成。
【附圖說(shuō)明】
[0006]圖1是本發(fā)明的更新下載過(guò)程原理圖;圖2是本發(fā)明的更新下載程序流程圖。
【具體實(shí)施方式】
[0007]下面結(jié)合附圖進(jìn)一步說(shuō)明本發(fā)明是如何實(shí)現(xiàn)的:
本發(fā)明是一種手機(jī)軟件快速更新下載的方法。首先編寫用于手機(jī)軟件二進(jìn)制目標(biāo)文件更新下載的應(yīng)用程序;然后打開更新下載應(yīng)用程序,并選擇要更新的手機(jī)軟件二進(jìn)制目標(biāo)文件(記為FILE2.BIN)和手機(jī)內(nèi)部版本對(duì)應(yīng)的二進(jìn)制目標(biāo)文件(記為FILE1.BIN);通過(guò)USB串口線連接手機(jī)和計(jì)算機(jī);在下載應(yīng)用程序界面選擇所用的串口號(hào)和手機(jī)支持的最大波特率;最后啟動(dòng)下載應(yīng)用程序的下載功能,下載二進(jìn)制目標(biāo)文件FILE2.BIN和FILE1.BIN的差異部分到手機(jī)內(nèi)的FLASH存儲(chǔ)區(qū),完成快速更新下載功能。
[0008]本發(fā)明的更新下載過(guò)程原理圖如圖1所示,確認(rèn)手機(jī)軟件二進(jìn)制目標(biāo)文件在FLASH中存儲(chǔ)的起始?jí)K位置(記為SECm);根據(jù)要更新的手機(jī)軟件二進(jìn)制目標(biāo)文件FILE2.BIN文件的大小,確認(rèn)FILE2.BIN在FLASH中存儲(chǔ)的結(jié)束塊位置(記為SECn);比較手機(jī)內(nèi)原有的二進(jìn)制目標(biāo)文件FILE1.BIN和要更新的手機(jī)軟件二進(jìn)制目標(biāo)文件FILE2.BIN的差異性,找到FILE2.BIN中的不同塊Dl,D2,…,Dj ;擦除Dl到Dj在手機(jī)FLASH內(nèi)的對(duì)應(yīng)存儲(chǔ)區(qū);下載Dl,D2,…,Dj到手機(jī)FLASH的對(duì)應(yīng)存儲(chǔ)區(qū)。
[0009]本發(fā)明的更新下載程序流程圖如圖2所示,測(cè)試程序開始運(yùn)行201 ;定義用于記錄FLASH存儲(chǔ)區(qū)塊大小的整型數(shù)組SEC,并根據(jù)FLASH類型初始化該數(shù)組202 ;確認(rèn)新版本手機(jī)軟件二進(jìn)制目標(biāo)文件在手機(jī)FLASH中存儲(chǔ)區(qū)的起始?jí)K位置203 ;確認(rèn)新版本手機(jī)軟件二進(jìn)制目標(biāo)文件在手機(jī)FLASH中存儲(chǔ)區(qū)的結(jié)束塊位置204 ;定義BYTE型指針pFILEl和pFILE2分別指向目標(biāo)文件FILE1.BIN和FILE2.BIN數(shù)據(jù)205 ;定義標(biāo)志位數(shù)組D
[8198],并初始化該數(shù)組D的默認(rèn)值206 ;按照SEC[m]到SEC[η]塊的大小查找比較pFILE2和pFILEl中的數(shù)據(jù)塊,記錄不同塊207 ;定義整型變量k,并初始化208 ;判定k和η的大小209,當(dāng)k大于η時(shí),跳轉(zhuǎn)結(jié)束213 ;判定D[k]和I的大小210,D [k]不等于I時(shí),跳轉(zhuǎn)212,D [k]等于I時(shí),進(jìn)入下一步211 ;擦除FLASH對(duì)應(yīng)的SEC [k]塊,并下載pFILE2指向的不同塊數(shù)據(jù)到FLASH存儲(chǔ)區(qū)相應(yīng)位置211 ;變量k=k+l,從該步212跳轉(zhuǎn)209。
[0010]綜上所述,本發(fā)明通過(guò)比較要更新下載的手機(jī)軟件二進(jìn)制目標(biāo)文件和手機(jī)FLASH存儲(chǔ)區(qū)內(nèi)原有的手機(jī)軟件二進(jìn)制目標(biāo)文件差異性,找到要更新下載的手機(jī)軟件二進(jìn)制目標(biāo)文件中的不同塊,然后只下載不同塊到手機(jī)FLASH存儲(chǔ)區(qū)內(nèi)的相應(yīng)位置,從而實(shí)現(xiàn)要更新下載的手機(jī)軟件二進(jìn)制目標(biāo)文件的快速下載功能。在手機(jī)軟件二進(jìn)制目標(biāo)文件前后版本改動(dòng)不大的情況下,不同塊的數(shù)目會(huì)變得更少,更新下載速度會(huì)大大加快。這種只更新下載不同塊的方法,提高了手機(jī)軟件研發(fā)的調(diào)試速度、降低了手機(jī)軟件二進(jìn)制目標(biāo)文件在生產(chǎn)線批量更新下載升級(jí)的生產(chǎn)成本。
【主權(quán)項(xiàng)】
1.一種手機(jī)軟件快速更新下載的方法,其特征在于:所述的下載要更新的手機(jī)軟件二進(jìn)制目標(biāo)文件和手機(jī)FLASH存儲(chǔ)區(qū)內(nèi)原有的二進(jìn)制目標(biāo)文件的不同塊,到手機(jī)FLASH存儲(chǔ)區(qū)內(nèi)的對(duì)應(yīng)位置,該方法包括以下步驟: (1)、首先,對(duì)比新版本二進(jìn)制目標(biāo)文件和手機(jī)FLASH存儲(chǔ)區(qū)內(nèi)原有的二進(jìn)制目標(biāo)文件的差異性,找出新版本二進(jìn)制目標(biāo)文件中的不同塊; (2)、其次,擦除新版本二進(jìn)制目標(biāo)文件中的不同塊在手機(jī)FLASH內(nèi)對(duì)應(yīng)的存儲(chǔ)區(qū)域; (3)、最后,下載新版本二進(jìn)制目標(biāo)文件中的不同塊到手機(jī)FLASH內(nèi)對(duì)應(yīng)的存儲(chǔ)區(qū)域。2.根據(jù)權(quán)利要求1所述的一種手機(jī)軟件快速更新下載的方法,其特征在于:所述的快速更新下載,只擦除手機(jī)新版本軟件二進(jìn)制目標(biāo)文件中的不同塊在手機(jī)FLASH內(nèi)對(duì)應(yīng)的存儲(chǔ)區(qū)域。3.根據(jù)權(quán)利要求1所述的一種手機(jī)軟件快速更新下載的方法,其特征在于:所述的快速更新下載,只下載手機(jī)新版本軟件二進(jìn)制目標(biāo)文件中的不同塊到手機(jī)FLASH內(nèi)對(duì)應(yīng)的存儲(chǔ)區(qū)域。
【專利摘要】本發(fā)明公開了一種手機(jī)軟件快速更新下載的方法,首先編寫用于手機(jī)軟件二進(jìn)制目標(biāo)文件更新下載的應(yīng)用程序;然后打開更新下載應(yīng)用程序,并選擇要更新的手機(jī)軟件二進(jìn)制目標(biāo)文件(記為FILE2.BIN)和手機(jī)內(nèi)部版本對(duì)應(yīng)的二進(jìn)制目標(biāo)文件(記為FILE1.BIN);通過(guò)USB串口線連接手機(jī)和計(jì)算機(jī);在下載應(yīng)用程序界面選擇所用的串口號(hào)和手機(jī)支持的最大波特率;最后啟動(dòng)下載應(yīng)用程序的下載功能,下載二進(jìn)制目標(biāo)文件FILE2.BIN和FILE1.BIN的差異部分到手機(jī)內(nèi)的FLASH存儲(chǔ)區(qū),完成快速更新下載功能。本發(fā)明具有提高手機(jī)軟件研發(fā)調(diào)試速度、降低生產(chǎn)線批量升級(jí)更新下載生產(chǎn)成本等優(yōu)點(diǎn)。
【IPC分類】G06F9/445
【公開號(hào)】CN104951315
【申請(qǐng)?zhí)枴緾N201410113458
【發(fā)明人】王文江
【申請(qǐng)人】上海三旗通信科技股份有限公司
【公開日】2015年9月30日
【申請(qǐng)日】2014年3月25日