国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種基于ARM平臺的Android系統(tǒng)加速啟動方法與流程

      文檔序號:11276046閱讀:663來源:國知局
      一種基于ARM平臺的Android系統(tǒng)加速啟動方法與流程

      本發(fā)明公開一種android系統(tǒng)加速啟動方法,涉及移動終端操作系統(tǒng)領(lǐng)域,具體地說是一種基于arm平臺的android系統(tǒng)加速啟動方法。



      背景技術(shù):

      近年來,由于android設(shè)備的大量普及,相對于經(jīng)常開關(guān)機(jī)的設(shè)備,如平板電腦,其開啟速度直接影響到用戶體驗(yàn),也是判斷產(chǎn)品的優(yōu)劣的一個(gè)重要標(biāo)準(zhǔn)。

      而目前,對于加速開機(jī)速度常用的方式有:

      一是采用電源管理技術(shù),使用休眠或睡眠的方式對android系統(tǒng)進(jìn)行非真正意義上的關(guān)機(jī),當(dāng)用戶需要使用設(shè)備時(shí)再喚醒設(shè)備。但是這不是真正意義上的關(guān)機(jī),很難滿足用戶的需求。另一種是將android啟動過程的zygote預(yù)加載類和資源進(jìn)行了裁剪,這種方式因打開應(yīng)用程序的次數(shù)遠(yuǎn)遠(yuǎn)多于用戶開關(guān)機(jī)的次數(shù)而使android啟動后的后續(xù)性能不良。

      因此在android系統(tǒng)中,上述優(yōu)化方法存在一定的局限性,有些甚至帶來android啟動后的后續(xù)性能問題,所以都不能滿足android啟動加速需求。

      本發(fā)明提供了一種基于arm平臺的android系統(tǒng)加速啟動方法,采用blcr(berkeleylabcheckpoint/restart)技術(shù),對android啟動過程中比較耗時(shí)的zygote進(jìn)程預(yù)加載類和預(yù)加載資源過程進(jìn)行斷點(diǎn)設(shè)置,然后在進(jìn)程啟動到執(zhí)行斷點(diǎn)時(shí),保存進(jìn)程的當(dāng)前狀態(tài)和信息到鏡像文件中,下次啟動的時(shí)候直接從鏡像文件中啟動該進(jìn)程,從而跳過了耗時(shí)的預(yù)加載類和預(yù)加載資源過程,實(shí)現(xiàn)的android加速,而且對android的后續(xù)性能沒有影響。



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

      本發(fā)明針對現(xiàn)有技術(shù)存在的不足和問題,提供一種基于arm平臺的android系統(tǒng)加速啟動方法,實(shí)現(xiàn)的android加速,而且對android的后續(xù)性能沒有影響。

      本發(fā)明提出的具體方案是:

      一種基于arm平臺的android系統(tǒng)加速啟動方法,基于arm平臺,利用blcr技術(shù)對blcr內(nèi)核進(jìn)行加載并進(jìn)行修改以適應(yīng)arm平臺,同時(shí)對blcr的動態(tài)鏈接庫進(jìn)行修改,然后對android系統(tǒng)啟動過程中zygote進(jìn)程預(yù)加載類和預(yù)加載資源過程進(jìn)行斷點(diǎn)設(shè)置,并在進(jìn)程啟動執(zhí)行到斷點(diǎn)時(shí),保存進(jìn)程的當(dāng)前狀態(tài)和信息到鏡像文件中,下次android系統(tǒng)啟動直接從鏡像文件中啟動該進(jìn)程,跳過zygote預(yù)加載類和預(yù)加載資源過程。

      修改arm平臺的linux內(nèi)核鏡像,以支持blcr內(nèi)核的加載,修改blcr內(nèi)核文件以支持arm平臺,通過交叉編譯,生成blcr內(nèi)核模塊。

      所述修改android的bionic的線程庫文件,添加blcr動態(tài)鏈接庫所需的線程庫函數(shù)接口,修改android的啟動腳本init.rc,在系統(tǒng)進(jìn)入用戶空間后添加blcr內(nèi)核模塊的功能,供blcr動態(tài)鏈接庫調(diào)用。

      編寫blcr動態(tài)鏈接庫的android.mk文件,以支持android系統(tǒng),并將blcr的函數(shù)接口庫移植到arm平臺。

      編寫android啟動的init.rc調(diào)用腳本,用于判斷鏡像文件是否存在。

      在zygoteinit.java文件中通過jni調(diào)用blcr內(nèi)核模塊,在預(yù)加載類和預(yù)加載資源過程進(jìn)行時(shí)設(shè)置斷點(diǎn),將zygote進(jìn)程啟動執(zhí)行到斷點(diǎn)時(shí),保存進(jìn)程的當(dāng)前狀態(tài)和信息到鏡像文件中。

      android系統(tǒng)加速啟動具體步驟為:

      1)android啟動開機(jī);

      2)kernel啟動完成后,開始啟動init進(jìn)程,init進(jìn)程通過讀取init.rc完成進(jìn)入android系統(tǒng)用戶空間的初始化工作;

      3)執(zhí)行blcr內(nèi)核模塊的加載;

      4)判斷是否存在zygote進(jìn)程的鏡像文件來決定是否啟動執(zhí)行流程,如果存在則從鏡像文件中創(chuàng)建zygote進(jìn)程,從斷點(diǎn)處開始往下執(zhí)行,如果不存在,則執(zhí)行正常android啟動流程;

      5)通過調(diào)研systemserver進(jìn)程完成android系統(tǒng)在init進(jìn)程啟動所有其他服務(wù)的啟動;

      6)android系統(tǒng)啟動完成,進(jìn)入主界面。

      本發(fā)明的有益之處是:

      本發(fā)明提供了一種基于arm平臺的android系統(tǒng)加速啟動方法,采用blcr(berkeleylabcheckpoint/restart)技術(shù),對android啟動過程中比較耗時(shí)的zygote進(jìn)程預(yù)加載類和預(yù)加載資源過程進(jìn)行斷點(diǎn)設(shè)置,然后在進(jìn)程啟動到執(zhí)行斷點(diǎn)時(shí),保存進(jìn)程的當(dāng)前狀態(tài)和信息到鏡像文件中,下次啟動的時(shí)候直接從鏡像文件中啟動該進(jìn)程,從而跳過了耗時(shí)的預(yù)加載類和預(yù)加載資源過程;

      與現(xiàn)有技術(shù)相比,本發(fā)明支持所有arm平臺的android系統(tǒng)的應(yīng)用;android啟動時(shí)間縮短至少13秒,對android的目前啟動速度提高了接近30%-40%,而且采用“冷啟動”方式實(shí)現(xiàn)的加速,節(jié)約了設(shè)備的能源,也滿足了android用戶對真正意義上的關(guān)機(jī)服務(wù)的需求。實(shí)現(xiàn)的android加速,對android的后續(xù)性能沒有影響。

      附圖說明

      圖1是本發(fā)明方法應(yīng)用框架示意圖;

      圖2是應(yīng)用本發(fā)明方法android系統(tǒng)加速啟動操作流程示意圖。

      具體實(shí)施方式

      本發(fā)明提供一種基于arm平臺的android系統(tǒng)加速啟動方法,基于arm平臺,利用blcr技術(shù)對blcr內(nèi)核進(jìn)行加載并進(jìn)行修改以適應(yīng)arm平臺,同時(shí)對blcr的動態(tài)鏈接庫進(jìn)行修改,然后對android系統(tǒng)啟動過程中zygote進(jìn)程預(yù)加載類和預(yù)加載資源過程進(jìn)行斷點(diǎn)設(shè)置,并在進(jìn)程啟動執(zhí)行到斷點(diǎn)時(shí),保存進(jìn)程的當(dāng)前狀態(tài)和信息到鏡像文件中,下次android系統(tǒng)啟動直接從鏡像文件中啟動該進(jìn)程,跳過zygote預(yù)加載類和預(yù)加載資源過程。

      結(jié)合附圖,對本發(fā)明做一步說明。

      本發(fā)明方法,基于arm平臺,利用blcr技術(shù)對blcr內(nèi)核進(jìn)行加載并進(jìn)行修改以適應(yīng)arm平臺,其中修改arm平臺的linux內(nèi)核鏡像,以支持blcr內(nèi)核的加載,修改blcr內(nèi)核文件以支持arm平臺,通過交叉編譯,生成blcr內(nèi)核模塊;

      同時(shí)對blcr的動態(tài)鏈接庫進(jìn)行修改:編寫blcr動態(tài)鏈接庫的android.mk文件,以支持android系統(tǒng),并將blcr的函數(shù)接口庫移植到arm平臺,修改android的bionic的線程庫文件,添加blcr動態(tài)鏈接庫所需的線程庫函數(shù)接口,修改android的啟動腳本init.rc,在系統(tǒng)進(jìn)入用戶空間后添加blcr內(nèi)核模塊的功能,供blcr動態(tài)鏈接庫調(diào)用;

      編寫android系統(tǒng)下的jni接口函數(shù),用于調(diào)用blcr動態(tài)鏈接庫;在zygoteinit.java文件中通過jni調(diào)用blcr內(nèi)核模塊,在預(yù)加載類和預(yù)加載資源過程進(jìn)行時(shí)設(shè)置斷點(diǎn),將zygote進(jìn)程啟動執(zhí)行到斷點(diǎn)時(shí),保存進(jìn)程的當(dāng)前狀態(tài)和信息到鏡像文件中,下次啟動時(shí)通過恢復(fù)進(jìn)程的鏡像文件,從斷點(diǎn)處往下執(zhí)行程序,跳過了耗時(shí)的預(yù)加載類和預(yù)加載資源的過程,從而提高了android的啟動速度。

      上述提及的鏡像文件,可以通過編寫android啟動的init.rc調(diào)用腳本,判斷鏡像文件是否存在。如果存在則直接從鏡像文件中啟動,如果不存在,則通過調(diào)用blcr內(nèi)核模塊生成zygote進(jìn)程的鏡像文件。

      利用上述方法,對android系統(tǒng)啟動加速進(jìn)行加速,具體步驟為:

      1)android啟動開機(jī),包括bootloader、android底層linux內(nèi)核的啟動;

      2)kernel啟動完成之后,開始啟動init進(jìn)程,init進(jìn)程通過讀取init.rc完成進(jìn)入android系統(tǒng)用戶空間的初始化工作;

      3)如果步驟2成功完成,接下來就是通過insmod的方式執(zhí)行blcr動態(tài)內(nèi)核模塊的加載,為后續(xù)blcr技術(shù)加速android啟動建立基礎(chǔ);

      4)判斷是否存在zygote進(jìn)程的鏡像文件來決定是否啟動執(zhí)行流程,如果存在則從鏡像文件中創(chuàng)建zygote進(jìn)程,從斷點(diǎn)處開始往下執(zhí)行,如果不存在,則執(zhí)行正常android啟動流程;

      5)通過調(diào)研systemserver進(jìn)程完成android系統(tǒng)在init進(jìn)程啟動所有其他服務(wù)的啟動;

      6)android系統(tǒng)啟動完成,進(jìn)入主界面。

      利用本發(fā)明方法對android系統(tǒng)啟動后的后續(xù)性能沒有影響,彌補(bǔ)了傳統(tǒng)加速方法如裁剪或定制android服務(wù)的方式對后續(xù)性能產(chǎn)生影響的缺陷。同時(shí),采用了“冷啟動”的方式,節(jié)約了設(shè)備的能源,也滿足了android用戶對真正意義上的關(guān)機(jī)服務(wù)的需求。

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