国产精品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>

      基于Android系統(tǒng)的車載系統(tǒng)的快速啟動(dòng)方法

      文檔序號(hào):6504673閱讀:3205來(lái)源:國(guó)知局
      基于Android系統(tǒng)的車載系統(tǒng)的快速啟動(dòng)方法
      【專利摘要】本發(fā)明提供了一種基于Android系統(tǒng)的車載系統(tǒng)的快速啟動(dòng)方法,包括:對(duì)原生Android系統(tǒng)的引導(dǎo)程序、內(nèi)核和用戶域的啟動(dòng)方式進(jìn)行優(yōu)化,以使優(yōu)化后的啟動(dòng)時(shí)間小于原生Android系統(tǒng)的默認(rèn)啟動(dòng)時(shí)間;以優(yōu)化后的方式加載并啟動(dòng)所述引導(dǎo)程序;以優(yōu)化后的方式加載并啟動(dòng)所述內(nèi)核;以優(yōu)化后的方式加載并啟動(dòng)所述用戶域。本發(fā)明能夠縮短車載系統(tǒng)的啟動(dòng)時(shí)間,有利于改善用戶體驗(yàn)。
      【專利說(shuō)明】基于Android系統(tǒng)的車載系統(tǒng)的快速啟動(dòng)方法

      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及車載系統(tǒng)的啟動(dòng)技術(shù),尤其涉及一種基于Android系統(tǒng)的車載系統(tǒng)的 快速啟動(dòng)方法。

      【背景技術(shù)】
      [0002]現(xiàn)有的基于Android系統(tǒng)的車載娛樂(lè)系統(tǒng)保留了 Android系統(tǒng)的諸多優(yōu)點(diǎn),例如 良好的可移植性和定制性、豐富的應(yīng)用軟件生態(tài)環(huán)境等,但同時(shí)也一并繼承遺留了 Android 系統(tǒng)開(kāi)機(jī)啟動(dòng)時(shí)間過(guò)長(zhǎng)的缺點(diǎn)。
      [0003] 原生的Android系統(tǒng)的開(kāi)機(jī)啟動(dòng)過(guò)程如圖i所示,啟動(dòng)過(guò)程按照引導(dǎo)程序 (bootloader) 11、內(nèi)核(kernel) 12和用戶域(user space)的順序先后加載啟動(dòng),其中用戶 域的加載啟動(dòng)按照初始化程序/啟動(dòng)腳本(init/init.rc) 131、孵化器(Zygote) 132、系統(tǒng) 服務(wù)(System Server) 133和桌面啟動(dòng)器(Launcher) 134的順序先后加載啟動(dòng)。
      [0004]其中,用戶域的加載啟動(dòng)的詳細(xì)過(guò)程如圖2所示,首先加載啟動(dòng)初始化程序/啟 動(dòng)腳本(init/init· rc) 21,然后啟動(dòng)本地服務(wù)22,之后啟動(dòng)Android服務(wù)23,最后加載啟 動(dòng)Android應(yīng)用24。其中,在原生的Android系統(tǒng)中,本地服務(wù)22包括rild、netd、媒體 (media)、醉化器(zygote)以及其他服務(wù);Android服務(wù)包括電源管理器(Power Manager)、 內(nèi)容管理器(Content Manager)、打包器管理器(Packager Manager)以及其他服務(wù)。
      [0005]現(xiàn)有的基于Android系統(tǒng)的車載系統(tǒng)的啟動(dòng)時(shí)間比較長(zhǎng),例如冷開(kāi)機(jī)時(shí)間普遍都 超過(guò)30秒。在車載系統(tǒng)領(lǐng)域,這樣漫長(zhǎng)的開(kāi)機(jī)等待時(shí)間給用戶使用帶來(lái)了不便,導(dǎo)致了非 常差的用戶體驗(yàn)。


      【發(fā)明內(nèi)容】

      [0006]本發(fā)明要解決的技術(shù)問(wèn)題是提供一種基于Android系統(tǒng)的車載系統(tǒng)的快速啟動(dòng) 方法,能夠縮短車載系統(tǒng)的啟動(dòng)時(shí)間,有利于改善用戶體驗(yàn)。
      [0007]為解決上述技術(shù)問(wèn)題,本發(fā)明提供了一種基于Android系統(tǒng)的車載系統(tǒng)的快速啟 動(dòng)方法,包括:
      [0008]對(duì)原生Android系統(tǒng)的引導(dǎo)程序、內(nèi)核和用戶域的啟動(dòng)方式進(jìn)行優(yōu)化,以使優(yōu)化 后的啟動(dòng)時(shí)間小于原生Android系統(tǒng)的默認(rèn)啟動(dòng)時(shí)間;
      [0009]以優(yōu)化后的方式加載并啟動(dòng)所述引導(dǎo)程序;
      [0010]以優(yōu)化后的方式加載并啟動(dòng)所述內(nèi)核;
      [0011 ]以優(yōu)化后的方式加載并啟動(dòng)所述用戶域。
      [0012]根據(jù)本發(fā)明的一個(gè)實(shí)施例,對(duì)所述引導(dǎo)程序、內(nèi)核和用戶域的啟動(dòng)方式進(jìn)行優(yōu)化 包括:根據(jù)所述車載系統(tǒng)的軟硬件配置對(duì)所述引導(dǎo)程序、內(nèi)核和用戶域的啟動(dòng)方式進(jìn)行優(yōu) 化。
      [0013]根據(jù)本發(fā)明的一個(gè)實(shí)施例,根據(jù)所述車載系統(tǒng)的軟硬件配置對(duì)所述引導(dǎo)程序的啟 動(dòng)方式進(jìn)行優(yōu)化包括以下操作中的一項(xiàng)或多項(xiàng):
      [0014] 裁減所述引導(dǎo)程序中與網(wǎng)絡(luò)相關(guān)的模塊;
      [0015] 減小讀取uramdisk. img區(qū)域和ulmage區(qū)域的空間,使其小于原生Android系統(tǒng) 的默認(rèn)值;
      [0016] 減小MMC驅(qū)動(dòng)中發(fā)送命令的延遲時(shí)間,使其小于原生Android系統(tǒng)的默認(rèn)值并與 所述車載系統(tǒng)的硬件配置適配。
      [0017] 根據(jù)本發(fā)明的一個(gè)實(shí)施例,對(duì)所述引導(dǎo)程序的啟動(dòng)方式進(jìn)行優(yōu)化還包括以下操作 中的一項(xiàng)或多項(xiàng):
      [0018] 去除加載所述內(nèi)核之前的等待時(shí)間;
      [0019] 對(duì)于同一 MMC硬件僅調(diào)用一次MMC初始化程序;
      [0020]將是否進(jìn)入還原模式的判斷方式修改為通過(guò)讀取預(yù)設(shè)偏移位置的裸數(shù)據(jù)來(lái)判斷。
      [0021] 根據(jù)本發(fā)明的一個(gè)實(shí)施例,根據(jù)所述車載系統(tǒng)的軟硬件配置對(duì)所述內(nèi)核的啟動(dòng)方 式進(jìn)行優(yōu)化包括以下操作中的一項(xiàng)或多項(xiàng):
      [0022] 減小Pty設(shè)備節(jié)點(diǎn)的數(shù)量,使其小于原生Android系統(tǒng)的默認(rèn)值并與所述車載系 統(tǒng)的軟硬件配置適配;
      [0023] 延遲所述內(nèi)核中的initcall機(jī)制,以將所述內(nèi)核的多個(gè)驅(qū)動(dòng)中的一部分轉(zhuǎn)移至 所述用戶域的啟動(dòng)過(guò)程進(jìn)行初始化;
      [0024] 對(duì)電源管理芯片的初始化過(guò)程進(jìn)行優(yōu)化,以去除與所述車載系統(tǒng)的硬件配置不相 關(guān)的部分;
      [0025] 裁減所述車載系統(tǒng)的硬件配置以外的設(shè)備驅(qū)動(dòng);
      [0026]裁減所述車載系統(tǒng)未使用的文件系統(tǒng)。
      [0027] 根據(jù)本發(fā)明的一個(gè)實(shí)施例,對(duì)所述內(nèi)核的啟動(dòng)方式進(jìn)行優(yōu)化還包括:去除內(nèi)核的 打印信息。
      [0028] 根據(jù)本發(fā)明的一個(gè)實(shí)施例,根據(jù)所述車載系統(tǒng)的軟硬件配置對(duì)所述用戶域的啟動(dòng) 方式進(jìn)行優(yōu)化包括以下操作中的一項(xiàng)或多項(xiàng):
      [0029] 刪除所述車載系統(tǒng)未使用的Android服務(wù);
      [0030] 對(duì)預(yù)加載的類列表做裁減優(yōu)化,將所述車載系統(tǒng)未使用的類從所述預(yù)加載的類列 表中刪除;
      [0031] 裁減以太網(wǎng)服務(wù);
      [0032] 移除Sensor Manager和Battery Service內(nèi)部的全部操作并保留接口。
      [0033]根據(jù)本發(fā)明的一個(gè)實(shí)施例,對(duì)所述用戶域的啟動(dòng)方式進(jìn)行優(yōu)化還包括以下操作中 的一項(xiàng)或多項(xiàng):
      [0034] 將Entropy Service對(duì)文件的讀寫(xiě)修改為異步的;
      [0035] 將Package Manager Service對(duì)配置文件的寫(xiě)操作修改為異步的;
      [0036]增大垃圾收集的閾值,以減小垃圾收集的次數(shù);
      [0037]將桌面啟動(dòng)器和系統(tǒng)用戶界面設(shè)置為優(yōu)先于其他應(yīng)用啟動(dòng);
      [0038] 將init. rc文件中對(duì)/dev/路徑下設(shè)備節(jié)點(diǎn)權(quán)限的修改轉(zhuǎn)移至uevent. rc文件 中;
      [0039] 預(yù)先在uramdisk中創(chuàng)建掛載點(diǎn)目錄,以避免動(dòng)態(tài)創(chuàng)建;
      [0040] 關(guān)閉Java本地調(diào)用的檢查;
      [0041] 壓縮所述桌面啟動(dòng)器中的界面圖片資源。
      [0042] 與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn):
      [0043]本發(fā)明實(shí)施例的基于Android系統(tǒng)的車載系統(tǒng)的快速啟動(dòng)方法中,首先對(duì) Android系統(tǒng)的引導(dǎo)程序、內(nèi)核和用戶域的啟動(dòng)方式進(jìn)行優(yōu)化,之后按照常規(guī)的順序,以優(yōu) 化后的方式加載并啟動(dòng)引導(dǎo)程序、內(nèi)核和用戶域,從而縮短啟動(dòng)時(shí)間,改善用戶體驗(yàn)。
      [0044]進(jìn)一步而言,對(duì)于引導(dǎo)程序、內(nèi)核和用戶域的優(yōu)化可以是根據(jù)車載系統(tǒng)的軟硬件 配置來(lái)進(jìn)行的,使得優(yōu)化過(guò)程更加有針對(duì)性。

      【專利附圖】

      【附圖說(shuō)明】
      [0045]圖1是原生Android系統(tǒng)的啟動(dòng)流程示意圖;
      [0046]圖2是原生Android系統(tǒng)的用戶域的詳細(xì)啟動(dòng)流程示意圖;
      [0047]圖3是本發(fā)明實(shí)施例的基于Android系統(tǒng)的車載系統(tǒng)的快速啟動(dòng)方法的流程示意 圖。

      【具體實(shí)施方式】
      [0048] 下面結(jié)合具體實(shí)施例和附圖對(duì)本發(fā)明作進(jìn)一步說(shuō)明,但不應(yīng)以此限制本發(fā)明的保 護(hù)范圍。
      [0049] 參考圖3,本實(shí)施例中,基于Android系統(tǒng)的車載系統(tǒng)的快速啟動(dòng)方法包括如下步 驟:
      [0050] 步驟S31,對(duì)原生Andro i d系統(tǒng)的引導(dǎo)程序、內(nèi)核和用戶域的啟動(dòng)方式進(jìn)行優(yōu)化, 以使優(yōu)化后的啟動(dòng)時(shí)間小于原生Android系統(tǒng)的默認(rèn)啟動(dòng)時(shí)間;
      [0051] 步驟S32,以優(yōu)化后的方式加載并啟動(dòng)所述引導(dǎo)程序;
      [0052] 步驟S33,以優(yōu)化后的方式加載并啟動(dòng)所述內(nèi)核;
      [0053] 步驟S34,以優(yōu)化后的方式加載并啟動(dòng)所述用戶域。
      [0054] 本實(shí)施例保留了原生Android系統(tǒng)原有的啟動(dòng)階段(包括引導(dǎo)程序、內(nèi)核和用戶 域)和順序不變,但針對(duì)車載系統(tǒng)本身的特點(diǎn)對(duì)各個(gè)啟動(dòng)階段進(jìn)行了優(yōu)化和改良,從而縮短 了車載系統(tǒng)的開(kāi)機(jī)啟動(dòng)時(shí)間。在一實(shí)例中,采用該方法可以使得車載設(shè)備的開(kāi)機(jī)時(shí)間降低 至13秒。
      [0055] 進(jìn)一步而言,對(duì)各個(gè)啟動(dòng)階段的優(yōu)化包括根據(jù)車載系統(tǒng)的軟硬件配置進(jìn)行優(yōu)化, 以及其他通用的優(yōu)化。下面對(duì)各個(gè)啟動(dòng)階段的具體優(yōu)化方法進(jìn)行詳細(xì)說(shuō)明。
      [0056] 首先介紹對(duì)于引導(dǎo)程序的優(yōu)化。
      [0057] 首先可以裁減引導(dǎo)程序中于網(wǎng)絡(luò)相關(guān)的模塊。例如在一實(shí)例中,車載系統(tǒng)被配置 為無(wú)需使用原生Andro i d系統(tǒng)提供的網(wǎng)絡(luò),那么可以裁減FTP上傳/下載相關(guān)的模塊,還可 以裁減網(wǎng)絡(luò)掛載分區(qū)的NFS命令等。
      [0058] 另外,還可以減小讀取uramdisk· img區(qū)域和ulmage區(qū)域的空間大小,使其小于原 生Android系統(tǒng)的默認(rèn)值。例如,在一實(shí)例中,可以將讀取uramdisk. img區(qū)域和ulmage區(qū) 域這兩個(gè)區(qū)域的空間減小至約2· 6M。
      [0059] 另外還可以優(yōu)化MMC驅(qū)動(dòng)性能,減小MMC驅(qū)動(dòng)中發(fā)送命令的延遲時(shí)間,使其小于原 生Android系統(tǒng)的默認(rèn)值并與車載系統(tǒng)的硬件配置適配。例如可以從loooo納秒減小至1 納秒,示意性的實(shí)現(xiàn)代碼如下:
      [0060] esdhc_send_cmc^sfiritet mmc *mmc, struct mmc cmd *cmd, struct mmc data *data) * N?te: This is way more than 8 cycles, but 1ms seems to # a-es?lve timing issues with some cards - udelayCaOGii; //刪除 + udelay(l); //添加 /* Set up for a lata transfer if we have one if (data) void set^sysctl(struct mmc *mmc, uint clock) tmp = (readi(&regs->sysctl) & ( SYSCTL CLOCK MASK)) | elk; writel(tmp, &regs->sysctl); - udelay( 10000); //刪除 + udelay(3000); //添加 ·
      [0061] 另外,還可以去除引導(dǎo)程序啟動(dòng)過(guò)程中的延遲等待時(shí)間,也就是引導(dǎo)程序啟動(dòng)過(guò) 程的結(jié)尾至加載內(nèi)核之前的等待時(shí)間。在原生Android系統(tǒng)中,該等待時(shí)間通常為 3s,本實(shí) 施例中可以將其設(shè)置為0。例如可以通過(guò)下述方式實(shí)現(xiàn):
      [0062] -#define CONFIG-B00TDELAY 3 //刪除
      [0063] +#define CONFIG_B〇〇TDELAY 0 //添加
      [0064] 另外,通過(guò)優(yōu)化,可以對(duì)于同一 MMC硬件僅調(diào)用一·次MMC初始化程序(mmc_init), 而原生Android系統(tǒng)在每一次10之前都會(huì)調(diào)用一次MMC初始化程序。示意性的實(shí)現(xiàn)方式 如下:
      [0065] struct mmc | struct mmc cmd *cmd, struct mmc_4ata void (*set_ios)(struct mmc int (*init)(struct mmc *mmc); ? int initialized; //添加 !; static ini ollii£i_startiip{struct mmc *mmc) (ffl卿::->cid[2] :>>:24.) & Oxf); iuitj)art(&mmc->block_dev); #- mftC^Initialized = //添加 leturn 0, ini mrac_init(struct mmc *mmc) { l· if(mmc->initializrf) //添加 ? leturn //添加 err
      [0066] 另外,還可以將是否進(jìn)入還原(recovery)模式的判斷方式修改為通過(guò)讀取偏移位 置的裸數(shù)據(jù)來(lái)判斷,而不再通過(guò)開(kāi)機(jī)啟動(dòng)讀取高速緩存( cache)分區(qū)里某文件的方式判斷 是否進(jìn)入還原模式。示意性的實(shí)現(xiàn)方式如下:
      [0067] v_eheck-recovery-mode(void) setup recoveryb_env(); #endif
      [0068] !' - else if (check_recovery_cTnd_file〇 || check_recoveixj)arai?^mi0| I mwr + else if (check_recoveryjparams_cmdQ| | "溱加 . puts("Recovery command file founded!\n"|; setup-recovery_env〇:
      [0069] 下面對(duì)內(nèi)核的啟動(dòng)方式的優(yōu)化進(jìn)行詳細(xì)描述。
      [0070] 首先可以減小pty設(shè)備節(jié)點(diǎn)的數(shù)量,使其小于原生Android系統(tǒng)的默認(rèn)值并與所 述車載系統(tǒng)的軟硬件配置適配。在一實(shí)例中,可以將原生Android系統(tǒng)默認(rèn)動(dòng)態(tài)分配的256 個(gè)pty設(shè)備節(jié)點(diǎn)減小至32。進(jìn)一步而言,可以通過(guò)增加啟動(dòng)參數(shù)pty. legacy_count=32來(lái) 實(shí)現(xiàn)。
      [0071] 此外,還可以去除內(nèi)核的打印信息,例如可以增加啟動(dòng)參數(shù)quiet來(lái)實(shí)現(xiàn)。
      [0072] 另外,還可以延遲內(nèi)核中的initcall機(jī)制,將部分驅(qū)動(dòng)轉(zhuǎn)移至用戶域的啟動(dòng)過(guò)程 再觸發(fā)初始化。
      [0073] 另外,還可以對(duì)電源管理芯片(PMIC)的初始化過(guò)程進(jìn)行優(yōu)化,將與車載系統(tǒng)的硬 件配置不相關(guān)的部分跳過(guò)。示意性的實(shí)現(xiàn)方式如下:
      [0074] static int hc3589_regulator_probe(struct platform device *pdev) ..Jr I* roister fqgulator */ -: rdev = regulatoi^jegister(&ltc3589-reg[pde¥->id|5. &pdev->dev, #_除 .+. /* rdev = regulator-i,egister(&ltc3 589-reg[pdev->id.],,.,藥ρ?群-〉dev, //添加 pdev->dev.pialfbim_data, de¥_getdrvclata(&pdev->dev)); if (IS_ERR(rdev)) { dev_err(&pdev->dev, "failed to register ? 〇s' n", ltc3589_reg[pdev->id].name); return PTR_ERR(rdev).;. :? I //刪除
      [0075] + 職加 ,ie35觀_set,?w_rate(福ev,Lffi3 纖 JRRC1R:亂 //刪除 +/*ltc3589_set_slew_rate(rdev,LTC3589 VRRCR SLEW RATE 7P00MV_^S), */ ;/雜加
      [0076] 另外,還可以將車載系統(tǒng)的硬件配置以外的設(shè)備驅(qū)動(dòng)裁減掉,也就是將車載系統(tǒng) 并未使用的硬件的設(shè)備驅(qū)動(dòng)移除。例如可以將驅(qū)動(dòng)頂PUT_ISL 29〇23裁減掉,實(shí)現(xiàn)方式可以 是:Disable INPUT一ISL29023。另外,可以將沒(méi)有使用到的LCD驅(qū)動(dòng)裁減掉,例如:
      [0077] A· Disable CONFIG_FB_MXC_EPSON_VGA-SYNC_PANEL
      [0078] B. Disable CONFIG_FB_MXC_CLAA_WVGA_SYNC_PANEL
      [0079] C. Disable CONFIG_FB_MXC_SEIKO_WVGA_SYNC_PANEL
      [0080] D.Disable CONFIG-FB_MXC_SII902X
      [0081] E. Disable C0NFIG_FB_MXC_CH7026
      [0082] F. Disable CONFIG_FB_MXC_EINK_PANEL
      [0083] 此夕卜,還可以裁減掉MAX17135, MAG3110,MMA8451驅(qū)動(dòng)。示意性的實(shí)現(xiàn)方式如下·
      [0084] Disable MFD_MAX17135, REGULAT0R_MAX17135 '
      [0085] Disable sensor drivers MAX17135, MAG3110, MMA8451.
      [0086] 此外,還可以將DA9052驅(qū)動(dòng)裁減掉,實(shí)現(xiàn)方式如下:
      [0087] Disable all drivers on DA9052〇
      [0088] 此外,還可以將以太網(wǎng)(ethernet)驅(qū)動(dòng)裁減掉,實(shí)現(xiàn)方式如下.
      [0089] Disable all drivers of ethernet。
      [0090] 還可以將APM battery驅(qū)動(dòng)裁減掉,實(shí)現(xiàn)方式如下:
      [0091] Remove all APM battery drviers〇
      [0092] 還可以將紅外(IR)設(shè)備相關(guān)的設(shè)備驅(qū)動(dòng)裁減掉,實(shí)現(xiàn)方式如下·.
      [0093] Disable CONFIG-RC-MAP;
      [0094] Disable CONFIG-IR-RC5-DECODER;
      [0095] Disable CONFIG-IR-RC6-DECODER;
      [0096] Disable CONFIG-IR-JVC-DECODER;
      [0097] Disable CONFIG一IR-SONY-DECODER;
      [0098] Disable CONFIG-RC-MAP;
      [0099] Disable C0NFIG_VIDE0-IR_I2C。
      [0100] 還可以將所有CAN相關(guān)的設(shè)備驅(qū)動(dòng)移除,實(shí)現(xiàn)方式如下:
      [0101] Disable C0NFIG_CAN, C0NFIG_CAN_RAff and C0NFIG_CAN B〇M
      [0102] 還可以將鍵盤驅(qū)動(dòng) KEYBOARD-GPI0 和 KEYB0ARDJ1XC 裁g掉二 n、、
      [0103] Disable KEYB0ARD_GP 10 and KEYB0ARD_MXC。 '頭義萬(wàn)式如下:
      [0104] 此外,還可以將電源管理模塊DVFS裁減掉。
      [0105] 另外,還可以將車載系統(tǒng)未使用的文件系統(tǒng)裁減掉,例如可以將文件系統(tǒng)UBIFS 模塊裁減掉。
      [0106] 下面詳細(xì)介紹用戶域啟動(dòng)方式的優(yōu)化。 >
      [0107] 首先,可以刪除車載系統(tǒng)未使用的原生Android服務(wù)。例如,可以采用如下方式刪 除相關(guān)的原生Android服務(wù):
      [0108] A. remove Headset Observer;
      [0109] B. remove HDMI Observer;
      [0110] C. remove Dock Observer;
      [0111] D. remove Recognition Manager Service;
      [0112] E. remove Vibrator Service;
      [0113] F. remove Backup Service〇
      [0114] 另外,可以將Entropy Service中對(duì)文件的讀寫(xiě)修改為異步的,以防止阻塞。
      [0115] 另外,可以將Package Manager Service對(duì)配置文件的寫(xiě)操作修改為異步的,以防 止阻塞。
      [0116] 此外,還可以取消對(duì)/vendor/app目錄的掃描。
      [0117] 另外,可以對(duì)預(yù)加載的類列表進(jìn)行裁減優(yōu)化,將車載系統(tǒng)未使用的類從預(yù)加載的 類列表中刪除,例如:
      [0118] A. remove javax. net. ssl. ^
      [0119] B. remove libcore. *
      [0120] C. remove org. apache, http. conn. ssl. ^
      [0121] D. remove org. apache, http. impl. client. Abstract Http Client
      [0122] E. remove android, webkit. Web View Core
      [0123] F. remove android, media. Exif Interface
      [0124] G. remove Bluetooth class;
      [0125] 此外,可以將一些較為耗時(shí)的操作從預(yù)加載類時(shí)執(zhí)行轉(zhuǎn)移到創(chuàng)建對(duì)象時(shí)再執(zhí)行。
      [0126] 此外,還可以調(diào)整垃圾收集(GC)的閾值,使其大于原生Android系統(tǒng)的默認(rèn)值,以 減小垃圾收集的次數(shù)。需要說(shuō)明的是,該調(diào)整僅影響預(yù)加載類階段的垃圾收集操作,在預(yù)加 載類結(jié)束后,垃圾收集的閾值將被調(diào)回默認(rèn)值。
      [0127] 另外,可以調(diào)整用戶域中各個(gè)應(yīng)用的啟動(dòng)順序,首先啟動(dòng)桌面啟動(dòng)器(launcher ) 和系統(tǒng)用戶界面(systemui),其余的應(yīng)用(例如電話、拼音輸入法等)例如可以延遲2秒后 再啟動(dòng)。而在原生Android系統(tǒng)中,上述全部應(yīng)用都是同時(shí)啟動(dòng)的,影響了啟動(dòng)速度。
      [0128] 另外還可以對(duì)啟動(dòng)腳本(init.rc)進(jìn)行優(yōu)化,具體而言,可以包括如下內(nèi)容:
      [0129] A.刪除車載系統(tǒng)不需要的操作,如不需要的環(huán)境變量的設(shè)置等;
      [0130] B.將對(duì)/dev/下設(shè)備節(jié)點(diǎn)權(quán)限的修改全部移到uevent. rc文件中;
      [0131] C·預(yù)先在uramdisk中創(chuàng)建掛載點(diǎn)目錄,而不在啟動(dòng)時(shí)動(dòng)態(tài)創(chuàng)建。
      [0132]針對(duì) Package Manager service 的優(yōu)化可以包括:
      [0133] A.用戶(user)版本針對(duì)/SyStem/app下的apk應(yīng)用不再做odex文件的生成,而 是在編譯時(shí)就生成odex文件;
      [0134] B.分階段掃描apk應(yīng)用,重要的apk應(yīng)用優(yōu)先掃描加載,例如先系統(tǒng)級(jí),再非系統(tǒng) 級(jí)。
      [0135]另外,可以裁減掉以太網(wǎng)服務(wù)。
      [0136] 另外,還可以移除Sensor Manager和Battery Service內(nèi)部的所有操作,并保留 接口。 '
      [0137] 此外,可以關(guān)閉Java本地調(diào)用(JNI)的檢查,實(shí)現(xiàn)方式如下:
      [0138] JNI check off。
      [0139] 對(duì)于桌面啟動(dòng)器(launcher)應(yīng)用的優(yōu)化可以包括:
      [0140] A.在不影響UI效果前提下,壓縮界面圖片資源,使得界面圖片資源所占空間盡可 能??;
      [0141] B.耗時(shí)的操作轉(zhuǎn)移至π界面顯示出來(lái)后再執(zhí)行。
      [0142]綜上,本實(shí)施例的快速啟動(dòng)方法在原生Android系統(tǒng)的基礎(chǔ)上并沒(méi)有增加額外的 啟動(dòng)階段,沒(méi)有減少或者重排原始的啟動(dòng)次序,改良后的系統(tǒng)維護(hù)和升級(jí)工作與優(yōu)化前相 比并沒(méi)有變化,引入的具體優(yōu)化方法都易于理解、移植以及維護(hù)。
      [0143]本發(fā)明雖然以較佳實(shí)施例公開(kāi)如上,但其并不是用來(lái)限定本發(fā)明,任何本領(lǐng)域技 術(shù)人員在不脫離本發(fā)明的精神和范圍內(nèi),都可以做出可能的變動(dòng)和修改,因此本發(fā)明的保 護(hù)泡圍應(yīng)當(dāng)以本發(fā)明權(quán)利要求所界定的范圍為準(zhǔn)。
      【權(quán)利要求】
      1. 一種基于Android系統(tǒng)的車載系統(tǒng)的快速啟動(dòng)方法,其特征在于,包括: 對(duì)原生Android系統(tǒng)的引導(dǎo)程序、內(nèi)核和用戶域的啟動(dòng)方式進(jìn)行優(yōu)化,以使優(yōu)化后的 啟動(dòng)時(shí)間小于原生Android系統(tǒng)的默認(rèn)啟動(dòng)時(shí)間; 以優(yōu)化后的方式加載并啟動(dòng)所述引導(dǎo)程序; 以優(yōu)化后的方式加載并啟動(dòng)所述內(nèi)核; 以優(yōu)化后的方式加載并啟動(dòng)所述用戶域。
      2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,對(duì)所述引導(dǎo)程序、內(nèi)核和用戶域的啟動(dòng)方 式進(jìn)行優(yōu)化包括:根據(jù)所述車載系統(tǒng)的軟硬件配置對(duì)所述引導(dǎo)程序、內(nèi)核和用戶域的啟動(dòng) 方式進(jìn)行優(yōu)化。
      3. 根據(jù)權(quán)利要求2所述的方法,其特征在于,根據(jù)所述車載系統(tǒng)的軟硬件配置對(duì)所述 引導(dǎo)程序的啟動(dòng)方式進(jìn)行優(yōu)化包括以下操作中的一項(xiàng)或多項(xiàng): 裁減所述引導(dǎo)程序中與網(wǎng)絡(luò)相關(guān)的模塊; 減小讀取uramdisk. img區(qū)域和ulmage區(qū)域的空間,使其小于原生Android系統(tǒng)的默 認(rèn)值; 減小MMC驅(qū)動(dòng)中發(fā)送命令的延遲時(shí)間,使其小于原生Android系統(tǒng)的默認(rèn)值并與所述 車載系統(tǒng)的硬件配置適配。
      4. 根據(jù)權(quán)利要求2所述的方法,其特征在于,對(duì)所述引導(dǎo)程序的啟動(dòng)方式進(jìn)行優(yōu)化還 包括以下操作中的一項(xiàng)或多項(xiàng): 去除加載所述內(nèi)核之前的等待時(shí)間; 對(duì)于同一 MMC硬件僅調(diào)用一次MMC初始化程序; 將是否進(jìn)入還原模式的判斷方式修改為通過(guò)讀取預(yù)設(shè)偏移位置的裸數(shù)據(jù)來(lái)判斷。
      5. 根據(jù)權(quán)利要求2所述的方法,其特征在于,根據(jù)所述車載系統(tǒng)的軟硬件配置對(duì)所述 內(nèi)核的啟動(dòng)方式進(jìn)行優(yōu)化包括以下操作中的一項(xiàng)或多項(xiàng): 減小pty設(shè)備節(jié)點(diǎn)的數(shù)量,使其小于原生Android系統(tǒng)的默認(rèn)值并與所述車載系統(tǒng)的 軟硬件配置適配; 延遲所述內(nèi)核中的initcall機(jī)制,以將所述內(nèi)核的多個(gè)驅(qū)動(dòng)中的一部分轉(zhuǎn)移至所述 用戶域的啟動(dòng)過(guò)程進(jìn)行初始化; 對(duì)電源管理芯片的初始化過(guò)程進(jìn)行優(yōu)化,以去除與所述車載系統(tǒng)的硬件配置不相關(guān)的 部分; 裁減所述車載系統(tǒng)的硬件配置以外的設(shè)備驅(qū)動(dòng); 裁減所述車載系統(tǒng)未使用的文件系統(tǒng)。
      6. 根據(jù)權(quán)利要求2所述的方法,其特征在于,對(duì)所述內(nèi)核的啟動(dòng)方式進(jìn)行優(yōu)化還包括: 去除內(nèi)核的打印信息。
      7. 根據(jù)權(quán)利要求2所述的方法,其特征在于,根據(jù)所述車載系統(tǒng)的軟硬件配置對(duì)所述 用戶域的啟動(dòng)方式進(jìn)行優(yōu)化包括以下操作中的一項(xiàng)或多項(xiàng): 刪除所述車載系統(tǒng)未使用的原生Android服務(wù); 對(duì)預(yù)加載的類列表做裁減優(yōu)化,將所述車載系統(tǒng)未使用的類從所述預(yù)加載的類列表中 刪除; 裁減以太網(wǎng)服務(wù); 移除Sensor Manager和Battery Service內(nèi)部的全部操作并保留接口。
      8.根據(jù)權(quán)利要求2所述的方法,其特征在于,對(duì)所述用戶域的啟動(dòng)方式進(jìn)行優(yōu)化還包 括以下操作中的一項(xiàng)或多項(xiàng): 將Entropy Service對(duì)文件的讀寫(xiě)修改為異步的; 將Package Manager Service對(duì)配置文件的寫(xiě)操作修改為異步的; 增大垃圾收集的閾值,以減小垃圾收集的次數(shù); 將桌面啟動(dòng)器和系統(tǒng)用戶界面設(shè)置為優(yōu)先于其他應(yīng)用啟動(dòng); 將init. rc文件中對(duì)/dev/路徑下設(shè)備節(jié)點(diǎn)權(quán)限的修改轉(zhuǎn)移至uevent. rc文件中; 預(yù)先在uramdisk中創(chuàng)建掛載點(diǎn)目錄,以避免動(dòng)態(tài)創(chuàng)建; 關(guān)閉Java本地調(diào)用的檢查; 壓縮所述桌面啟動(dòng)器中的界面圖片資源。
      【文檔編號(hào)】G06F9/445GK104252363SQ201310255835
      【公開(kāi)日】2014年12月31日 申請(qǐng)日期:2013年6月25日 優(yōu)先權(quán)日:2013年6月25日
      【發(fā)明者】王磊, 趙亞立 申請(qǐng)人:上海博泰悅臻電子設(shè)備制造有限公司
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1