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

      一種將安卓系統(tǒng)服務(wù)插件化的實(shí)現(xiàn)方法

      文檔序號(hào):8412346閱讀:281來(lái)源:國(guó)知局
      一種將安卓系統(tǒng)服務(wù)插件化的實(shí)現(xiàn)方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及到嵌入式設(shè)備上搭建安卓系統(tǒng)的技術(shù)領(lǐng)域,更具體的說(shuō),是提供了一種可方便地針對(duì)不同產(chǎn)品需求定制系統(tǒng)服務(wù)的方法,可在節(jié)省硬件資源的同時(shí)提升系統(tǒng)性會(huì)K。
      【背景技術(shù)】
      [0002]自從安卓發(fā)布第一個(gè)版本以來(lái),系統(tǒng)的碎片化和兼容性一直是谷歌的工程師致力解決的問(wèn)題,經(jīng)歷數(shù)個(gè)版本的更替,當(dāng)前的版本無(wú)論是在兼容性還是穩(wěn)定性上都有了極大的提升。已經(jīng)兼容了手機(jī)、平板的不同規(guī)格的產(chǎn)品,針對(duì)不同分類(lèi)設(shè)備的兼容工作也已經(jīng)在最新的版本中得到體現(xiàn)。但隨之而來(lái)的問(wèn)題是龐大的服務(wù)框架使系統(tǒng)顯得過(guò)于臃腫,占用了寶貴的硬盤(pán)空間、拖慢了系統(tǒng)的運(yùn)行速度、消耗更多的電池電量。而這些也正是廣大安卓用戶(hù)一直垢病的地方。
      [0003]如圖1是安卓原生的服務(wù)結(jié)構(gòu)圖,上層服務(wù)的主要通過(guò)服務(wù)管理程序(ServiceManager)相互通訊,底層通訊的實(shí)現(xiàn)則是基于內(nèi)核的Binder驅(qū)動(dòng)完成。系統(tǒng)服務(wù)主要有兩部分組成,一部分上層應(yīng)用、服務(wù)管理的服務(wù)集中在系統(tǒng)服務(wù)(SystemServer)這個(gè)系統(tǒng)核心進(jìn)程中,另外一部分功能相對(duì)獨(dú)立的服務(wù)則分散在其它的本地(Native)進(jìn)程中。原生系統(tǒng)提供了全面的功能來(lái)兼容不同平臺(tái)的需求,僅SystemServer—項(xiàng)就啟動(dòng)了接近50個(gè)服務(wù),但實(shí)際上很大一部分服務(wù)在特定硬件平臺(tái)上并沒(méi)有存在的必要。
      [0004]圖2為原生安卓啟動(dòng)后各個(gè)進(jìn)程占用內(nèi)存比例圖,所采用的系統(tǒng)為版本為Android-4.4.2,主要用于說(shuō)明純凈的安卓平臺(tái)啟動(dòng)后各個(gè)進(jìn)程所消耗的內(nèi)存資源,該數(shù)據(jù)的分析結(jié)果是本發(fā)明進(jìn)行性能優(yōu)化工作的前提。
      [0005]圖3為安卓系統(tǒng)服務(wù)插件化流程分析,其實(shí)現(xiàn)方式大致可以分為三個(gè)過(guò)程分析。分別為系統(tǒng)服務(wù)插件化分析、系統(tǒng)插件化服務(wù)框架啟動(dòng)、系統(tǒng)服務(wù)調(diào)用流程。以下是調(diào)用步驟。
      [0006]步驟S301、系統(tǒng)服務(wù)插件化分析開(kāi)始。這一部分是實(shí)現(xiàn)安卓服務(wù)插件化的前提條件。安卓的系統(tǒng)服務(wù)框架博大精深,要實(shí)現(xiàn)插件化的服務(wù)框架必須對(duì)整個(gè)系統(tǒng)服務(wù)有深入的了解和分析。
      [0007]步驟S302、系統(tǒng)服務(wù)必要性分析。安卓原生服務(wù)雜揉在一起,服務(wù)之間的依賴(lài)關(guān)系錯(cuò)綜復(fù)雜,必須先對(duì)解除系統(tǒng)服務(wù)間的相互依賴(lài)關(guān)系才能實(shí)現(xiàn)系統(tǒng)服務(wù)的插件化管理。這一部分正是解除系統(tǒng)服務(wù)間的相互依賴(lài)關(guān)系,同時(shí)分離出系統(tǒng)的核心服務(wù)。圖4給出了可以參與插件化的系統(tǒng)服務(wù)集成的分析結(jié)果。
      [0008]步驟S303、系統(tǒng)服務(wù)占用資源分析。除了依據(jù)圖2總結(jié)的系統(tǒng)進(jìn)程占用內(nèi)存資源分析結(jié)果以外,還需要梳理SystemServer進(jìn)程中每個(gè)服務(wù)占用的系統(tǒng)資源,從而歸納出每個(gè)服務(wù)占用系統(tǒng)資源的貢獻(xiàn)值。
      [0009]步驟S304、系統(tǒng)服務(wù)配置化實(shí)現(xiàn)。該步驟是本發(fā)明的關(guān)鍵所在,依據(jù)上面兩步歸納的結(jié)果為指導(dǎo)思想,歸納出可以參與配置化的系統(tǒng)服務(wù)、進(jìn)程,根據(jù)硬件平臺(tái)特性定義出服務(wù)對(duì)應(yīng)的配置選項(xiàng)。編寫(xiě)插件化服務(wù)運(yùn)行時(shí)解析框架,編寫(xiě)插件化服務(wù)框架。
      [0010]步驟S305、系統(tǒng)服務(wù)配置文件編寫(xiě)。該步驟主要是編寫(xiě)配置文件編譯時(shí)解析框架,以提供系統(tǒng)運(yùn)行時(shí)插件框架讀取服務(wù)配置。
      [0011]步驟S306、系統(tǒng)服務(wù)配置化結(jié)束。至此整個(gè)系統(tǒng)插件化的靜態(tài)實(shí)現(xiàn)基本完成。開(kāi)發(fā)者可以根據(jù)特定的硬件平臺(tái)來(lái)定義系統(tǒng)服務(wù)的配置文件了。
      [0012]步驟S311、系統(tǒng)啟動(dòng)。該部分描述了系統(tǒng)運(yùn)行時(shí)整個(gè)插件化服務(wù)框架的工作流程。
      [0013]步驟S312、配置文件解析。配置文件的解析主要包括配置文件的加載、配置文件的合法性檢查、配置文件的客制化更新等。
      [0014]步驟S313、配置服務(wù)依賴(lài)性分析。該部分主要根據(jù)S302分析出的系統(tǒng)服務(wù)依賴(lài)規(guī)則來(lái)檢查配置文件的合理性,同時(shí)給出兼容性措施。
      [0015]步驟S314、啟動(dòng)插件式服務(wù)框架。啟動(dòng)S304編寫(xiě)的插件式啟動(dòng)框架。
      [0016]步驟S315、啟動(dòng)插件式服務(wù)。根據(jù)S312和S313分析的配置文件結(jié)果,來(lái)啟動(dòng)對(duì)應(yīng)的插件服務(wù)。
      [0017]步驟S316、系統(tǒng)啟動(dòng)完成。系統(tǒng)服務(wù)插件框架啟動(dòng)成功,等待客戶(hù)端調(diào)用。
      [0018]步驟S321、客戶(hù)端服務(wù)調(diào)用開(kāi)始。該步驟描述了系統(tǒng)插件化服務(wù)框架下客戶(hù)端調(diào)用服務(wù)的基本流程。
      [0019]步驟S322、本地服務(wù)代理。每一個(gè)插件化的服務(wù)都有一個(gè)本地代理服務(wù)與之對(duì)應(yīng),以屏蔽服務(wù)插件化的技術(shù)細(xì)節(jié)。
      [0020]步驟S323、插件式服務(wù)檢查。檢查調(diào)用的服務(wù)是否已經(jīng)在插件化服務(wù)框架中啟動(dòng)。
      [0021]步驟S324、服務(wù)依賴(lài)檢查。檢查調(diào)用服務(wù)所依賴(lài)的其它服務(wù)是否已經(jīng)正常啟動(dòng)。
      [0022]步驟S325、系統(tǒng)服務(wù)調(diào)用權(quán)限檢查。檢查客戶(hù)端是否有調(diào)用服務(wù)相關(guān)接口的權(quán)限。
      [0023]步驟S326、服務(wù)調(diào)用失敗。
      [0024]步驟S326、服務(wù)調(diào)用成功。
      [0025]考慮到不同客戶(hù)對(duì)系統(tǒng)的定制要求以及特定的硬件環(huán)境,在不影響系統(tǒng)基本功能的前提下,將系統(tǒng)的服務(wù)抽象成可配置化的框架,方案集成廠(chǎng)商可以根據(jù)其需求定制不同的服務(wù)或是添加私有服務(wù),以到達(dá)減少系統(tǒng)的開(kāi)銷(xiāo)、優(yōu)化用戶(hù)體驗(yàn)的目的成為技術(shù)發(fā)展的一個(gè)方向。

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

      [0026]本發(fā)明主要提供了一種通用的將安卓系統(tǒng)服務(wù)插件化的實(shí)現(xiàn)框架,將安卓本身龐大的服務(wù)架構(gòu)抽象成可配置的結(jié)構(gòu)。基于本發(fā)明提供的方法,在定制不同產(chǎn)品的安卓系統(tǒng)時(shí),可按照不同產(chǎn)品需求通過(guò)配置文件快速的增減系統(tǒng)服務(wù),使得運(yùn)行在不同硬件平臺(tái)上的系統(tǒng)均為最精簡(jiǎn)的系統(tǒng),且達(dá)到提高系統(tǒng)運(yùn)行速度與啟動(dòng)速度、減少磁盤(pán)和內(nèi)存占用空間、延長(zhǎng)電池使用壽命的目的。
      [0027]本發(fā)明的具體技術(shù)方案如下:
      一種將安卓系統(tǒng)服務(wù)插件化的實(shí)現(xiàn)方法,其實(shí)施流程的具體步驟是:
      步驟S501、安卓服務(wù)插件化開(kāi)始;
      步驟S502、init.rc中支持進(jìn)程啟動(dòng)配置化。在init.rc中增加進(jìn)程的啟動(dòng)參數(shù)描述,以支持進(jìn)程啟動(dòng)的配置化。具體需要修改init.c中關(guān)于配置文件的解析部分。
      [0028]步驟S503、AndroidManifest.xml中支持Activity啟動(dòng)配置化。安卓中部分啟動(dòng)服務(wù)是通過(guò)接收開(kāi)機(jī)消息啟動(dòng)的,因此需要修改PackageParser中關(guān)于應(yīng)用程序包的解析邏輯,以支持服務(wù)或者組件啟動(dòng)的配置化。
      [0029]步驟S504、SystemServer中支持插件服務(wù)加載框架。SystemServer中含有大量的啟動(dòng)服務(wù),為了支持插件化的服務(wù)啟動(dòng),需要額外編寫(xiě)插件化服務(wù)加載框架。具體需要修改SystemServer中的main函數(shù),添加插件化服務(wù)框架線(xiàn)程,添加服務(wù)的加載、卸載、更新、查詢(xún)、權(quán)限檢查邏輯。
      [0030]步驟S505、pix)duCt目錄下支持服務(wù)、進(jìn)程的配置文件和默認(rèn)值。此項(xiàng)工作需要在編譯前進(jìn)行,具體根據(jù)圖4中總結(jié)的可插件化的服務(wù)添加宏選項(xiàng)來(lái)控制對(duì)應(yīng)的服務(wù)是否啟動(dòng)。
      [0031]步驟S506、定義各個(gè)服務(wù)之間的依賴(lài)規(guī)則。系統(tǒng)服務(wù)參與插件化的前提是不與依賴(lài)服務(wù)沖突,所以必須事先定義好服務(wù)之間的依賴(lài)規(guī)則,避免部分服務(wù)因?yàn)橐蕾?lài)服務(wù)未啟動(dòng)而發(fā)生錯(cuò)誤。
      [0032]步驟S507、編寫(xiě)系統(tǒng)運(yùn)行時(shí)配置解析模塊。配置文件是編譯時(shí)生成的,該步驟實(shí)現(xiàn)了配置文件在運(yùn)行期的解析和加載,具體需要修改系統(tǒng)的propertyservice服務(wù),利用系統(tǒng)已有的屬性查詢(xún)系統(tǒng)來(lái)實(shí)現(xiàn)配置文件的轉(zhuǎn)化動(dòng)作。
      [0033]步驟S508、系統(tǒng)支持運(yùn)行期調(diào)試的相關(guān)服務(wù)插件化?;谧罱K提供給用戶(hù)的系統(tǒng)實(shí)際是不需要任何調(diào)試模塊的。系統(tǒng)中典型的調(diào)試服務(wù)是在SystemServer中啟動(dòng)的SamplingProfilerService服務(wù),主要提供性能統(tǒng)計(jì)分析用。
      [0034]步驟S509、電池相關(guān)模塊插件化。一些安卓衍生類(lèi)產(chǎn)品上并沒(méi)有電池相關(guān)模塊,所以裁剪這一部分會(huì)節(jié)省系統(tǒng)不必要的系統(tǒng)開(kāi)銷(xiāo)。具體的操作涉及到禁用SystemServer中的BatteryService和init.rc文件中啟動(dòng)的healthd進(jìn)程。
      [0035]步驟S510、Drm相關(guān)模塊插件化。目前國(guó)內(nèi)大部分的影像產(chǎn)品是沒(méi)有采用采用版權(quán)加密的,所以在特定的應(yīng)用環(huán)境下這一部分的相關(guān)服務(wù)也是可以裁剪的。具體的需要在init.rc中為啟動(dòng)進(jìn)程drmserver增加配置選項(xiàng)。
      [0036]步驟S511、電話(huà)相關(guān)模塊插件化。目前安卓的眾多產(chǎn)品中,除了手機(jī)有射頻通訊模塊外,其它的產(chǎn)品如盒子、平板、導(dǎo)航儀等眾多設(shè)備基本是不需要電話(huà)相關(guān)模塊的,所以裁剪電話(huà)模塊對(duì)這些產(chǎn)品來(lái)說(shuō)是很有意義的。具體需要裁剪SystemServer中的TelephonyRegistry,禁止 packages/services/ 下的 PhoneApp 啟動(dòng),禁止 packages/apps/Mms/下的Mms中關(guān)于B00T_C0MPLETED的啟動(dòng)邏輯。如此整個(gè)電話(huà)系統(tǒng)在裁剪后的系統(tǒng)中不會(huì)占用任何系統(tǒng)資源。
      [0037]步驟S512、藍(lán)牙相關(guān)模塊插件化。一些非移動(dòng)設(shè)備上并沒(méi)有藍(lán)牙模塊,那么針對(duì)這些產(chǎn)品上裁剪安卓本身的藍(lán)牙相關(guān)支持會(huì)減少系統(tǒng)不必要的開(kāi)銷(xiāo)。具體的操作是在為SystemServer進(jìn)程中啟動(dòng)的BluetoothManagerService增加配置選項(xiàng)。
      [0038]步驟S513、狀態(tài)欄相關(guān)服務(wù)插件化。除了手機(jī)、平板等產(chǎn)品需要狀態(tài)欄相關(guān)服務(wù)外,其它的一些衍生類(lèi)產(chǎn)品如盒子、導(dǎo)航儀等都不需要狀態(tài)欄服務(wù),因此有必要增加統(tǒng)一的選項(xiàng)控制這項(xiàng)功能。具體的操作是為SystemServer中startSystemUi函數(shù)和StatusBarManagerService服務(wù)增加配置選項(xiàng),同時(shí)禁止SystemU1.apk的開(kāi)機(jī)啟動(dòng)。
      [0039]步驟S514、壁紙相關(guān)服務(wù)插件化。具體的操作一個(gè)是不啟動(dòng)SystemServer進(jìn)程中的WallpaperManagerService服務(wù),另外一個(gè)是處理WindowManagerService的開(kāi)機(jī)流程中等待WallPapaer部分的邏輯。
      [0040]步驟S515、打印相關(guān)服務(wù)插件化。具體的操作是為SystemServer進(jìn)程中啟動(dòng)的PrintManagerService 增加配置選項(xiàng)。
      [0041]步驟S516、鎖屏相關(guān)服務(wù)插件化。具體操作是在PhoneWindowManager中禁止KeyguardServiceDelegate 的啟動(dòng)。同時(shí)禁止 Keyguard.apk 的啟動(dòng)。
      [0042]步驟S517、WAP相關(guān)服務(wù)插件化。隨著智能手機(jī)和網(wǎng)絡(luò)的快速發(fā)展,WAP及WAP瀏覽器似乎會(huì)成為歷史。具體操作是為WapPushOverSms接收開(kāi)機(jī)啟動(dòng)消息增加配置選項(xiàng)。
      [0043]步驟S518、服務(wù)插件化實(shí)現(xiàn)結(jié)束。
      優(yōu)點(diǎn)和積極效果
      本發(fā)明提供的方法能滿(mǎn)足不同客戶(hù)對(duì)Android系統(tǒng)的定制化需求,插件化的服務(wù)可以方便地利用配置文件進(jìn)行系統(tǒng)服務(wù)的深度定制;在滿(mǎn)足
      當(dāng)前第1頁(yè)1 2 
      網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1