本申請(qǐng)要求于2014年7月10日提交的標(biāo)題為“OPERATING SYSTEM STARTUP ACCELERATION”的印度專利申請(qǐng)?zhí)?426/CHE/2014的優(yōu)先權(quán),所述專利申請(qǐng)的全部?jī)?nèi)容出于所有目的以引用的方式并入本文。
技術(shù)領(lǐng)域
本公開涉及加速用于計(jì)算裝置的操作系統(tǒng)的初始化例程。
背景技術(shù):
用于計(jì)算裝置的操作系統(tǒng)可以執(zhí)行初始化例程以啟動(dòng)必要的服務(wù)、資源和驅(qū)動(dòng)程序,以便使用計(jì)算裝置的硬件組件。初始化例程速度可以是基于加載的服務(wù)、資源和驅(qū)動(dòng)程序的數(shù)目,并且在初始化例程完成之前,計(jì)算裝置的一些功能性可能不可用。
技術(shù)實(shí)現(xiàn)要素:
對(duì)計(jì)算裝置通電與初始化計(jì)算裝置的操作系統(tǒng)/應(yīng)用程序之間的可接受的延時(shí)量可以基于計(jì)算裝置的環(huán)境和/或用途而變化。例如,在車輛內(nèi)利用的計(jì)算裝置可能具有比個(gè)人計(jì)算裝置更嚴(yán)格的延時(shí)考量(例如,更小的可接受的延時(shí)量),因?yàn)檐囕d計(jì)算裝置的功能性可能會(huì)影響車輛的功能性、安全特性等。本文公開了用于加速計(jì)算裝置的初始化例程的方法和系統(tǒng)的實(shí)施方案。在一些實(shí)施方案中,在計(jì)算裝置的操作系統(tǒng)的初始化期間選擇性地加載類別的方法包括:起始服務(wù)加載進(jìn)程,通過所述服務(wù)加載進(jìn)程加載關(guān)鍵服務(wù)以及啟動(dòng)人機(jī)接口。所述方法還可以包括:通過所述人機(jī)接口啟動(dòng)最后一次使用的應(yīng)用程序,以及響應(yīng)于使用其余服務(wù)的請(qǐng)求而啟動(dòng)所述其余服務(wù)。
在一些實(shí)施方案中,車載計(jì)算裝置可以包括處理器和存儲(chǔ)裝置,所述存儲(chǔ)裝置存儲(chǔ)用于初始化車載計(jì)算裝置的操作系統(tǒng)的指令,所述指令可由處理器執(zhí)行來起始服務(wù)加載進(jìn)程,通過服務(wù)加載進(jìn)程加載關(guān)鍵服務(wù),以及啟動(dòng)人機(jī)接口。所述指令可以進(jìn)一步被執(zhí)行來通過人機(jī)接口啟動(dòng)最后一次使用的應(yīng)用程序,并且響應(yīng)于使用其余服務(wù)的請(qǐng)求而啟動(dòng)其余服務(wù)。
在一些實(shí)施方案中,車載計(jì)算裝置包括處理器和存儲(chǔ)裝置,所述存儲(chǔ)裝置存儲(chǔ)用于初始化車載計(jì)算裝置的操作系統(tǒng)的指令,所述指令可由處理器執(zhí)行來起始服務(wù)加載進(jìn)程,通過服務(wù)加載進(jìn)程加載關(guān)鍵服務(wù),啟動(dòng)人機(jī)接口并且通過人機(jī)接口啟動(dòng)最后一次使用的應(yīng)用程序。所述指令可以進(jìn)一步被執(zhí)行來在服務(wù)管理器處接收對(duì)由最后一次使用的應(yīng)用程序所使用的服務(wù)的請(qǐng)求,起始包括在所述請(qǐng)求中的尚未在計(jì)算裝置上運(yùn)行的任何服務(wù),并且針對(duì)包括在請(qǐng)求中的每一項(xiàng)服務(wù)將服務(wù)句柄返回給最后一次使用的應(yīng)用程序。
附圖說明
通過參考附圖閱讀以下對(duì)非限制性實(shí)施方案的描述可以更好地理解本公開,其中在下文中:
圖1示出根據(jù)本公開的一個(gè)或多個(gè)實(shí)施方案的車輛的車廂內(nèi)部的示例部分視圖;
圖2是根據(jù)本公開的一個(gè)或多個(gè)實(shí)施方案的加速計(jì)算裝置上的應(yīng)用虛擬機(jī)的初始化的示例方法的流程圖;
圖3示出根據(jù)本公開的一個(gè)或多個(gè)實(shí)施方案的示例車載計(jì)算系統(tǒng)的方框圖;
圖4是根據(jù)本公開的一個(gè)或多個(gè)實(shí)施方案的用于在操作系統(tǒng)中選擇性地加載服務(wù)的示例方法的流程圖;
圖5是根據(jù)本公開的一個(gè)或多個(gè)實(shí)施方案的用于管理計(jì)算裝置中的操作系統(tǒng)的服務(wù)的示例方法的流程圖;
圖6示出根據(jù)本公開的一個(gè)或多個(gè)實(shí)施方案的可以在不同階段加載的示例驅(qū)動(dòng)程序和相關(guān)聯(lián)的硬件實(shí)例;
圖7是根據(jù)本公開的一個(gè)或多個(gè)實(shí)施方案的用于選擇性地初始化初始化的驅(qū)動(dòng)程序的硬件實(shí)例的示例方法的流程圖;以及
圖8是根據(jù)本公開的一個(gè)或多個(gè)實(shí)施方案的用于在計(jì)算裝置上加載應(yīng)用程序的示例方法的流程圖。
具體實(shí)施方式
如上所述,初始化例程的速度可以限定啟動(dòng)計(jì)算裝置與啟用計(jì)算裝置的功能性之間的延時(shí)。例如,車輛內(nèi)的計(jì)算裝置(例如,車載計(jì)算裝置)可以響應(yīng)于起動(dòng)車輛而起始,然而在計(jì)算裝置完成初始化例程之前,諸如導(dǎo)航系統(tǒng)、音頻控制件等功能性可能不可用。本公開認(rèn)識(shí)到,一些初始化例程可能會(huì)加載對(duì)于計(jì)算裝置的初始操作而言不必要的類別、資源、服務(wù)/應(yīng)用程序以及與特定硬件驅(qū)動(dòng)程序相關(guān)聯(lián)的硬件實(shí)例。由于這些元件中的每一個(gè)的加載會(huì)增加計(jì)算裝置的初始化時(shí)間,所以選擇性地加載這些元件可以允許計(jì)算裝置更高效地初始化,由此縮短裝置可用性的延時(shí)。下文描述的方法和系統(tǒng)使得能夠基于來源于以下考慮因素的每個(gè)元件的優(yōu)先級(jí)來選擇類別、資源、服務(wù)、應(yīng)用程序以及待配置的硬件實(shí)例,所述考慮因素諸如:裝置特征、裝置的預(yù)期用途、裝置的早先用途、請(qǐng)求的功能性、有關(guān)裝置功能性/初始化例程/應(yīng)用程序的元件的關(guān)鍵性/相關(guān)性等。以此方式,可以智能地選擇特征的加載/初始化,以縮短初始化時(shí)間而無需犧牲計(jì)算裝置的功能性。
圖1示出一種類型環(huán)境的示例部分視圖:車輛102的車廂100的內(nèi)部,其中可能乘坐了駕駛員和/或一名或多名乘客。圖1的車輛102可以是包括驅(qū)動(dòng)輪(未示出)和內(nèi)燃機(jī)104的機(jī)動(dòng)車。內(nèi)燃機(jī)104可以包括一個(gè)或多個(gè)燃燒室,所述一個(gè)或多個(gè)燃燒室可以通過進(jìn)氣通道接收進(jìn)入的空氣并且通過排氣通道排放燃燒氣體。車輛102可以是公路汽車,以及其他類型的車輛。在一些實(shí)例中,車輛102可以包括混合推進(jìn)系統(tǒng),所述混合推進(jìn)系統(tǒng)包括能量轉(zhuǎn)換裝置,所述能量轉(zhuǎn)換裝置可操作來從車輛運(yùn)動(dòng)和/或發(fā)動(dòng)機(jī)吸收能量并且將所吸收的能量轉(zhuǎn)換成適合于由能量存儲(chǔ)裝置存儲(chǔ)的能量形式。車輛102可以包括完全電動(dòng)車輛,合并式燃料電池、太陽能捕獲元件和/或用于為車輛提供動(dòng)力的其他能量存儲(chǔ)系統(tǒng)。
如圖所示,儀表板106可以包括車輛102的駕駛員(也稱為用戶)可接近的各種顯示器和控制件。例如,儀表板106可以包括車載計(jì)算系統(tǒng)109(例如,信息娛樂系統(tǒng))的觸摸屏108、音頻系統(tǒng)控制面板和儀表組110。雖然圖1所示的示例系統(tǒng)包括可以通過車載計(jì)算系統(tǒng)109的用戶界面執(zhí)行的音頻系統(tǒng)控制件,諸如無單獨(dú)音頻系統(tǒng)控制面板的觸摸屏108,但是在其他實(shí)施方案中,車輛可以包括音頻系統(tǒng)控制面板,所述音頻系統(tǒng)控制面板可以包括用于諸如收音機(jī)、光盤播放器、MP3播放器等常規(guī)車輛音頻系統(tǒng)的控制件。音頻系統(tǒng)控制件可以包括用于控制通過車輛揚(yáng)聲器系統(tǒng)的揚(yáng)聲器112輸出的音頻的一個(gè)或多個(gè)方面的特征。例如,車載計(jì)算系統(tǒng)或音頻系統(tǒng)控制件可以控制:音頻輸出的音量;車輛揚(yáng)聲器系統(tǒng)的個(gè)別揚(yáng)聲器當(dāng)中的聲音分布;音頻信號(hào)的均衡化;和/或音頻輸出的任何其他方面。在另外的實(shí)例中,車載計(jì)算系統(tǒng)109可以基于直接通過觸摸屏108接收的用戶輸入或者基于通過外部裝置150和/或移動(dòng)裝置128接收的有關(guān)用戶(諸如用戶的身體狀態(tài)和/或環(huán)境)的數(shù)據(jù)來調(diào)節(jié)無線電臺(tái)選擇、播放列表選擇、音頻輸入的來源(例如,來自收音機(jī)或CD或MP3)等。
在一些實(shí)施方案中,車載計(jì)算系統(tǒng)109的一個(gè)或多個(gè)硬件元件,諸如觸摸屏108、顯示屏、各種控制撥輪、旋鈕和按鈕、存儲(chǔ)器、處理器以及任何接口元件(例如,連接器或端口),可以形成安裝在車輛的儀表板106中的集成音響本體(integrated head unit)。音響本體可以固定地或可移除地附接在儀表板106中。在附加或替代實(shí)施方案中,車載計(jì)算系統(tǒng)的一個(gè)或多個(gè)硬件單元可以是模塊化的,并且可以安裝在車輛的多個(gè)位置處。車載計(jì)算系統(tǒng)109可以包括處理器和存儲(chǔ)器(例如,存儲(chǔ)裝置),所述存儲(chǔ)器存儲(chǔ)可由處理器執(zhí)行的指令以執(zhí)行各種動(dòng)作、任務(wù)等。例如,車載計(jì)算系統(tǒng)109的存儲(chǔ)器可以存儲(chǔ)用于管理車載計(jì)算系統(tǒng)的應(yīng)用程序以及由車載計(jì)算系統(tǒng)執(zhí)行的其他數(shù)據(jù)處理、控制和動(dòng)作的操作系統(tǒng)。
儀表組110可以包括諸如燃油表、轉(zhuǎn)速表、速度計(jì)和里程表等各種計(jì)量器以及指示器和警告燈。方向盤114可以在儀表組110下方從儀表板突出。任選地,方向盤114可以包括控制件116,所述控制件116可以與觸摸屏108結(jié)合使用來操縱車載計(jì)算系統(tǒng)的特征并且控制車載計(jì)算系統(tǒng)。除了圖1所描畫的組件之外,應(yīng)了解,儀表板106還可以包括附加組件,諸如門窗控制件、也可以用作低壓電源插座的點(diǎn)煙器、置物箱和/或任何其他合適的元件。在一個(gè)或多個(gè)實(shí)施方案中,通過氣候控制系統(tǒng)通風(fēng)口118對(duì)車載氣候(諸如,車廂溫度)進(jìn)行控制可以使用觸摸屏108來執(zhí)行,并且因此儀表板106中可能不包括單獨(dú)的氣候控制接口。然而,在替代實(shí)施方案中,可以提供單獨(dú)的氣候控制接口。
車廂100可以包括用于監(jiān)測(cè)車輛、用戶和/或環(huán)境的一個(gè)或多個(gè)傳感器。例如,車廂100可以包括一個(gè)或多個(gè)座椅安裝式壓力傳感器120,所述一個(gè)或多個(gè)座椅安裝式壓力傳感器120被配置來測(cè)量施加至座椅的壓力以確定用戶的存在。車廂100可以包括一個(gè)或多個(gè)門傳感器122,所述一個(gè)或多個(gè)門傳感器122被配置來監(jiān)測(cè)門活動(dòng),諸如門的打開和/或關(guān)閉、門的上鎖、門的窗戶的操作和/或任何其他合適的門活動(dòng)事件。濕度傳感器124可以被包括來測(cè)量車廂的含水量。麥克風(fēng)126可以被包括來接收呈語音命令形式的用戶輸入,以使得用戶能夠進(jìn)行電話呼叫和/或測(cè)量車廂100中的環(huán)境噪聲。應(yīng)理解,圖1所示的傳感器的放置是示例性的,并且一個(gè)或多個(gè)附加或可替代的傳感器可以定位在車輛的任何合適的位置處。例如,附加傳感器可以定位在發(fā)動(dòng)機(jī)艙中、車輛的外表面上和/或其他合適的位置處,以便提供有關(guān)車輛的操作、車輛的環(huán)境條件、車輛的用戶等的信息。有關(guān)車輛的環(huán)境條件、車輛狀況或車輛駕駛員的信息也可以從位于車輛外部/與所述車輛分開(也就是說,不為車輛系統(tǒng)的一部分)的傳感器接收,諸如從耦合至外部裝置150和/或移動(dòng)裝置128的傳感器接收。
車廂100還可以包括在行進(jìn)之前、在行進(jìn)期間和/或在行進(jìn)之后存儲(chǔ)在車輛中的一個(gè)或多個(gè)用戶對(duì)象,諸如移動(dòng)裝置128。移動(dòng)裝置可以包括智能手機(jī)、平板計(jì)算機(jī)、膝上型計(jì)算機(jī)、便攜式媒體播放器和/或任何合適的移動(dòng)計(jì)算裝置。移動(dòng)裝置128可以通過通信鏈路130連接至車載計(jì)算系統(tǒng)。通信鏈路130可以是有線的(例如,通過通用串行總線[USB]、移動(dòng)高清鏈路[MHL]、高清多媒體接口[HDMI]等)或者無線的(例如,通過BLUETOOTH、WI-FI、近場(chǎng)通信[NFC]、蜂窩連接等),并且被配置來在移動(dòng)裝置與車載計(jì)算系統(tǒng)之間提供雙向通信。例如,通信鏈路130可以從各種車輛系統(tǒng)(諸如車輛音頻系統(tǒng)、氣候控制系統(tǒng)等)和觸摸屏108向移動(dòng)裝置128提供傳感器和/或控制信號(hào),并且可以從移動(dòng)裝置128向車載系統(tǒng)和觸摸屏108提供控制和/或顯示信號(hào)。通信鏈路130還可以從車載電源向移動(dòng)裝置128提供電力,以便于為移動(dòng)裝置的內(nèi)置電池充電。
雖然移動(dòng)裝置128被示出為在空間上與車載計(jì)算系統(tǒng)分離并且通過大致外部通信鏈路(例如,電纜或射頻信號(hào))來連接,但是應(yīng)理解,插槽132或其他存儲(chǔ)結(jié)構(gòu)可以形成在車輛的儀表板106中或其他位置處,以將移動(dòng)裝置固持在特定位置處。存儲(chǔ)結(jié)構(gòu)可以包括集成連接器134,所述集成連接器134可以附接或“對(duì)接”移動(dòng)裝置128,以便在移動(dòng)裝置與計(jì)算系統(tǒng)之間提供大致內(nèi)部通信鏈路。
車載計(jì)算系統(tǒng)109還可以通信地耦合至由用戶操作的但位于車輛102外部的附加裝置,諸如一個(gè)或多個(gè)外部裝置150。在所描畫的實(shí)施方案中,外部裝置150位于車輛102的外側(cè),但是將了解,在替代實(shí)施方案中,外部裝置可以位于車廂100內(nèi)側(cè)。外部裝置可以包括服務(wù)器計(jì)算系統(tǒng)、個(gè)人計(jì)算系統(tǒng)、便攜式電子裝置、電子手環(huán)、電子頭帶、便攜式音樂播放器、電子活動(dòng)跟蹤裝置、計(jì)步器、智能手表、GPS系統(tǒng)等。外部裝置150可以通過通信鏈路136來連接至車載計(jì)算系統(tǒng),所述通信鏈路136如參考通信鏈路130所討論可以是有線的或無線的,并且被配置來在外部裝置與車載計(jì)算系統(tǒng)之間提供雙向通信。例如,外部裝置150可以包括一個(gè)或多個(gè)傳感器,并且通信鏈路136可以從外部裝置150向車載計(jì)算系統(tǒng)109和觸摸屏108傳輸傳感器輸出。外部裝置150還可以存儲(chǔ)和/或接收有關(guān)上下文數(shù)據(jù)、用戶行為/偏好、操作規(guī)則等的信息,并且可以從外部裝置150向車載計(jì)算系統(tǒng)109和觸摸屏108傳輸這類信息。
車載計(jì)算系統(tǒng)109可以分析從外部裝置150、移動(dòng)裝置128和/或其他輸入源接收的輸入,并且為各種車載系統(tǒng)(諸如氣候控制系統(tǒng)或音頻系統(tǒng))選擇設(shè)定,通過觸摸屏108和/或揚(yáng)聲器112提供輸出,與移動(dòng)裝置128和/或外部裝置150通信,和/或基于評(píng)估來執(zhí)行其他動(dòng)作。在一些實(shí)施方案中,所述評(píng)估的全部或一部分可以由移動(dòng)裝置128和/或外部裝置150執(zhí)行。
在一些實(shí)施方案中,外部裝置150的一個(gè)或多個(gè)可以間接地通過移動(dòng)裝置128和/或外部裝置150中的另一個(gè)通信地耦合至車載計(jì)算系統(tǒng)109。例如,通信鏈路136可以將外部裝置150通信地耦合至移動(dòng)裝置128,以使得來自外部裝置150的輸出被轉(zhuǎn)送至移動(dòng)裝置128。然后,可以將從外部裝置150接收的數(shù)據(jù)與由移動(dòng)裝置128收集的數(shù)據(jù)聚集在移動(dòng)裝置128處,所述聚集的數(shù)據(jù)之后通過通信鏈路130傳輸至車載計(jì)算系統(tǒng)109和觸摸屏108。類似數(shù)據(jù)聚集可以在服務(wù)器系統(tǒng)處發(fā)生,并且然后通過通信鏈路136/130傳輸至車載計(jì)算系統(tǒng)109和觸摸屏108。
圖2是加速諸如圖1的車載計(jì)算裝置109的計(jì)算裝置上的應(yīng)用虛擬機(jī)的初始化的方法200的流程圖。例如,方法200可以被利用作為用于ANDROID操作系統(tǒng)初始化的Zygote進(jìn)程的一部分。在202處,方法200包括初始化應(yīng)用虛擬機(jī)(例如,用于ANDROID操作系統(tǒng)的Dalvik)。例如,這種初始化可以通過為計(jì)算裝置通電或以其他方式指導(dǎo)計(jì)算裝置開始操作來觸發(fā)。在204處,所述方法包括使用CPU線程池來加載選自pre-system_server類別列表的類別。如206處所指示,CPU線程池中的線程的數(shù)目是基于CPU內(nèi)核的數(shù)目乘以二。每個(gè)線程可以用于加載類別、加載資源和/或執(zhí)行任何其他合適的任務(wù)。
在一些系統(tǒng)中,可以在預(yù)加載所有類別和資源之后加載system_server進(jìn)程,以便于開始加載其他服務(wù)來操作計(jì)算裝置。system_server進(jìn)程可以是服務(wù)加載進(jìn)程,所述服務(wù)加載進(jìn)程被配置來將操作系統(tǒng)的初始化期間使用的服務(wù)初始化,并且向服務(wù)管理器注冊(cè)所述服務(wù)。system_server進(jìn)程還可以起始活動(dòng)管理器,以管理操作系統(tǒng)的其他活動(dòng)。通過僅加載pre-system_server類別列表中的類別而不是所有類別,系統(tǒng)可以通過減少預(yù)加載的類別的數(shù)目來減少專門用于預(yù)加載類別的時(shí)間量。pre-system_server類別列表可以基于以下各項(xiàng)來生成:每個(gè)類別的加載時(shí)間、使用每個(gè)類別的進(jìn)程的數(shù)目和/或指示每個(gè)類別的優(yōu)先級(jí)的任何其他參數(shù)。例如,pre-system_server類別列表內(nèi)的類別可以具有小于閾值加載時(shí)間(例如,在一個(gè)非限制性實(shí)例中是1250μs)的加載時(shí)間,并且可能被超過閾值數(shù)目的進(jìn)程(例如,在一個(gè)非限制性實(shí)例中是10個(gè)進(jìn)程)使用。pre-system_server類別列表可以包括用以實(shí)現(xiàn)對(duì)system_server的加載的system_server進(jìn)程。在一些實(shí)例中,system_server可以是在pre-system_server類別列表中的所有其他類別都被加載之后加載的最后一個(gè)進(jìn)程。下文在附錄I中提供了用于ANDROID操作系統(tǒng)的pre-system_server類別的示例列表。所述示例列表可能不是窮舉的,并且基于諸如計(jì)算裝置上的操作系統(tǒng)/軟件、計(jì)算裝置/硬件、計(jì)算裝置的用途/環(huán)境等因素,可以包括附加類別或替代類別,或者從所述列表去除附加類別或替代類別。應(yīng)理解,可以在不脫離本公開的范圍的情況下利用任何合適的閾值加載時(shí)間和閾值數(shù)目的進(jìn)程來生成pre-system_server類別列表。
在208處,方法200包括使用線程池來加載資源。資源可以包括應(yīng)用程序或其他軟件利用的附加文件和內(nèi)容,諸如布局定義、動(dòng)畫指令、位圖、用戶界面字符串等。在一些實(shí)例中,可以在208處加載初始化期間加載的所有資源。在其他實(shí)例中,可以與如上所述的類別類似的方式分階段加載資源(例如,在pre-system_server階段加載的資源的子集,以及在post-system_server階段加載的資源的子集)。在210處,所述方法進(jìn)行到將system_server進(jìn)程分叉,以便于加載system_server。分叉可以包括復(fù)制現(xiàn)有進(jìn)程,并且將待加載的新進(jìn)程覆蓋在現(xiàn)有進(jìn)程的副本上。system_server進(jìn)程可以根據(jù)需要用于對(duì)其他應(yīng)用程序進(jìn)行分叉。因此,方法200進(jìn)行到212,以等待進(jìn)程間通信套接字(inter-process communication socket),從而接收將應(yīng)用程序分叉(例如,基于啟動(dòng)應(yīng)用程序的請(qǐng)求)的命令。在接收到將應(yīng)用程序分叉的這種命令之后,system_server進(jìn)程可以創(chuàng)建其自身的副本,并且將所請(qǐng)求的應(yīng)用程序覆蓋在所述副本上以加載所請(qǐng)求的應(yīng)用程序。
如214處所指示,可以在將system_server進(jìn)程分叉之后從post-system_server類別列表加載類別。post-system_server類別列表可以基于上文相對(duì)于pre-system_server類別列表所描述的加載時(shí)間閾值和/或進(jìn)程閾值來生成。例如,post-system_server類別列表可以包括以下類別,所述類別將被加載作為初始化程序的一部分但是具有超過上文描述的加載時(shí)間閾值(例如,在一個(gè)非限制性實(shí)例中是1250μs)的加載時(shí)間,并且被超過閾值數(shù)目的進(jìn)程(例如,在一個(gè)非限制性實(shí)例中是10個(gè)進(jìn)程)利用。下文在附錄II中提供了用于ANDROID操作系統(tǒng)的post-system_server類別的示例列表。所述示例列表可能不是窮舉的,并且基于諸如計(jì)算裝置上的操作系統(tǒng)/軟件、計(jì)算裝置/硬件、計(jì)算裝置的用途/環(huán)境等因素,可以包括附加類別或替代類別,或者可以從所述列表去除附加類別或替代類別。應(yīng)理解,可以在不脫離本公開的范圍的情況下利用任何合適的閾值加載時(shí)間和閾值數(shù)目的進(jìn)程來生成post-system_server類別列表。在一些實(shí)例中,可以利用附加加載階段。例如,pre-system_server類別列表和/或post-system_server類別列表可以被劃分成附加列表,以便在初始化例程期間的不同階段進(jìn)行加載。
圖3示出在車輛301內(nèi)配置和/或集成在所述車輛301內(nèi)的車載計(jì)算系統(tǒng)300的方框圖。車載計(jì)算系統(tǒng)300可以是圖1的車載計(jì)算系統(tǒng)109的實(shí)例,和/或可以執(zhí)行本文描述的方法中的一種或多種,諸如在一些實(shí)施方案中為圖2的方法200。在一些實(shí)例中,車載計(jì)算系統(tǒng)可以是車輛信息娛樂系統(tǒng),所述信息娛樂系統(tǒng)被配置來向車輛用戶提供基于信息的媒體內(nèi)容(音頻和/或視覺媒體內(nèi)容,包括娛樂內(nèi)容、導(dǎo)航服務(wù)等),從而增強(qiáng)操作人員的車載體驗(yàn)。車輛信息娛樂系統(tǒng)可以包括或者耦合至各種車輛系統(tǒng)、子系統(tǒng)、硬件組件以及集成在或可集成到車輛301中的軟件應(yīng)用程序和系統(tǒng),以便于增強(qiáng)駕駛員和/或乘客的車載體驗(yàn)。
車載計(jì)算系統(tǒng)300可以包括一個(gè)或多個(gè)處理器,所述一個(gè)或多個(gè)處理器包括操作系統(tǒng)處理器314和接口處理器320。操作系統(tǒng)處理器314可以在車載計(jì)算系統(tǒng)上執(zhí)行操作系統(tǒng),并且控制車載計(jì)算系統(tǒng)的輸入/輸出、顯示、播放以及其他操作。接口處理器320可以通過車輛系統(tǒng)間通信模塊322與車輛控制系統(tǒng)330對(duì)接。
車輛系統(tǒng)間通信模塊322可以向其他車輛系統(tǒng)331和車輛控制元件361輸出數(shù)據(jù),同時(shí)還例如借助于車輛控制系統(tǒng)330從其他車輛組件和系統(tǒng)331、361接收數(shù)據(jù)輸入。當(dāng)輸出數(shù)據(jù)時(shí),車輛系統(tǒng)間通信模塊322可以通過總線提供對(duì)應(yīng)于以下各項(xiàng)的信號(hào):車輛的任何狀態(tài)、車輛周圍環(huán)境或連接至車輛的任何其他信息源的輸出。車輛數(shù)據(jù)輸出可以包括例如模擬信號(hào)(諸如,電流速度);由個(gè)別信息源(諸如,時(shí)鐘、溫度計(jì)、諸如全球定位系統(tǒng)[GPS]傳感器的位置傳感器等)提供的數(shù)字信號(hào);通過車輛數(shù)據(jù)網(wǎng)絡(luò)(諸如,發(fā)動(dòng)機(jī)控制器局域網(wǎng)[CAN]總線,發(fā)動(dòng)機(jī)相關(guān)信息可以通過所述總線來傳遞;氣候控制CAN總線,氣候控制相關(guān)信息可以通過所述總線來傳遞;以及多媒體數(shù)據(jù)網(wǎng)路,多媒體數(shù)據(jù)通過所述網(wǎng)絡(luò)在車輛中的多媒體組件之間傳遞)傳播的數(shù)字信號(hào)。例如,車載計(jì)算系統(tǒng)可以從發(fā)動(dòng)機(jī)CAN總線取回以下信息:由車輪傳感器估計(jì)的車輛的當(dāng)前速度;由電池供電的車輛和/或車輛的功率分布系統(tǒng)的功率狀態(tài);車輛的點(diǎn)火狀態(tài)等。除此之外,在不脫離本公開的范圍的情況下,還可以使用諸如以太網(wǎng)等其他對(duì)接手段。
非易失性存儲(chǔ)裝置308可以被包括在車載計(jì)算系統(tǒng)300中以存儲(chǔ)呈非易失性形式的數(shù)據(jù),諸如可由處理器314和320執(zhí)行的指令。存儲(chǔ)裝置308可以存儲(chǔ)應(yīng)用程序數(shù)據(jù),以使得車載計(jì)算系統(tǒng)300能夠運(yùn)行應(yīng)用程序以便連接至基于云的服務(wù)器,和/或收集用于傳輸至基于云的服務(wù)器的信息。所述應(yīng)用程序可以取回由以下各項(xiàng)收集的信息:車輛系統(tǒng)/傳感器;輸入裝置(例如,用戶接口318);與車載計(jì)算系統(tǒng)通信的裝置(例如,通過藍(lán)牙鏈路連接的移動(dòng)裝置)等。車載計(jì)算系統(tǒng)300還可以包括易失性存儲(chǔ)器316。易失性存儲(chǔ)器316可以是隨機(jī)存取存儲(chǔ)器(RAM)。諸如非易失性存儲(chǔ)裝置308和/或易失性存儲(chǔ)器316等非暫態(tài)存儲(chǔ)裝置可以存儲(chǔ)指令和/或代碼,所述指令和/或代碼在由處理器(例如,操作系統(tǒng)處理器314和/或接口處理器320)執(zhí)行時(shí)控制車載計(jì)算裝置300以執(zhí)行本公開中所描述的動(dòng)作中的一個(gè)或多個(gè)。
麥克風(fēng)302可以被包括在車載計(jì)算系統(tǒng)300中,以從用戶接收語音命令,測(cè)量車輛中的環(huán)境噪聲,確定是否根據(jù)車輛的聲學(xué)環(huán)境對(duì)來自車輛的揚(yáng)聲器的音頻進(jìn)行調(diào)諧等。語音處理單元304可以處理語音命令,諸如從麥克風(fēng)302接收的語音命令。在一些實(shí)施方案中,車載計(jì)算系統(tǒng)300可能也能夠接收語音命令,并且使用包括在車輛的音頻系統(tǒng)332中的麥克風(fēng)來對(duì)環(huán)境車輛噪聲進(jìn)行取樣。
一個(gè)或多個(gè)附加傳感器可以被包括在車載計(jì)算系統(tǒng)300的傳感器子系統(tǒng)310中。例如,傳感器子系統(tǒng)310可以包括攝像頭,諸如用于協(xié)助用戶??寇囕v的后視攝像頭和/或用于識(shí)別用戶(例如,使用面部識(shí)別和/或用戶姿勢(shì))的車廂攝像頭。車載計(jì)算系統(tǒng)300的傳感器子系統(tǒng)310可以與各種車輛傳感器通信并且從其接收輸入,并且可以進(jìn)一步接收用戶輸入。例如,由傳感器子系統(tǒng)310接收的輸入可以包括:變速箱齒輪位置、變速箱離合器位置、氣動(dòng)踏板輸入、制動(dòng)器輸入、變速箱選擇器位置、車輛速度、發(fā)動(dòng)機(jī)速度、經(jīng)過發(fā)動(dòng)機(jī)的空氣質(zhì)量流量、環(huán)境溫度、進(jìn)入的空氣溫度等,以及來自以下各項(xiàng)的輸入:氣候控制系統(tǒng)傳感器(諸如,傳熱流體溫度、防凍劑溫度、風(fēng)扇速度、乘客艙溫度、所需的乘客艙溫度、環(huán)境濕度等)、檢測(cè)由用戶發(fā)出的語音命令的音頻傳感器、從車輛的小型終端(fob)接收命令且任選地跟蹤所述小型終端的地理位置/接近度的小型終端傳感器等。雖然某些車輛系統(tǒng)傳感器可以單獨(dú)與傳感器子系統(tǒng)310通信,但是其他傳感器可以與傳感器子系統(tǒng)310和車輛控制系統(tǒng)330兩者通信,或者可以間接地通過車輛控制系統(tǒng)330與傳感器子系統(tǒng)310通信。車載計(jì)算系統(tǒng)300的導(dǎo)航子系統(tǒng)311可以生成和/或接收導(dǎo)航信息,諸如位置信息(例如,通過GPS傳感器和/或來自傳感器子系統(tǒng)310的其他傳感器)、路線引導(dǎo)、交通信息、興趣點(diǎn)(POI)識(shí)別和/或?yàn)轳{駛員提供其他導(dǎo)航服務(wù)。
車載計(jì)算系統(tǒng)300的外部裝置接口312可能可耦合至位于車輛301外部的一個(gè)或多個(gè)外部裝置340,和/或與所述一個(gè)或多個(gè)外部裝置340通信。雖然所述外部裝置被示出為位于車輛301的外部,但是應(yīng)理解,所述外部裝置可以臨時(shí)地容納在車輛301中,諸如當(dāng)用戶在操作車輛301的同時(shí)操作外部裝置時(shí)。換句話說,外部裝置340不與車輛301形成一體。外部裝置340可以包括移動(dòng)裝置342(例如,通過藍(lán)牙連接來連接)或替代的啟用藍(lán)牙的裝置352。移動(dòng)裝置342可以是移動(dòng)電話、智能手機(jī)、可以通過有線和/或無線通信與車載計(jì)算系統(tǒng)通信的佩戴式裝置/傳感器或者其他便攜式電子裝置。其他外部裝置包括外部服務(wù)346。例如,外部裝置可以包括與車輛分開且位于車輛外部的額外車輛裝置。其他外部裝置包括外部存儲(chǔ)裝置354,諸如固態(tài)驅(qū)動(dòng)器、筆式驅(qū)動(dòng)器、USB驅(qū)動(dòng)器等。在不脫離本公開的范圍的情況下,外部裝置340可以無線地或者通過連接器而與車載計(jì)算系統(tǒng)300通信。例如,外部裝置340可以通過外部裝置接口312經(jīng)由網(wǎng)絡(luò)360、通用串行總線(USB)連接、直接有線連接、直接無線連接和/或其他通信鏈路來與車載計(jì)算系統(tǒng)300通信。外部裝置接口312可以提供通信接口,以使得車載計(jì)算系統(tǒng)能夠與同駕駛員的聯(lián)系人相關(guān)聯(lián)的移動(dòng)裝置通信。例如,外部裝置接口312可以針對(duì)與駕駛員的聯(lián)系人相關(guān)聯(lián)的移動(dòng)裝置實(shí)現(xiàn)待建立的電話呼叫和/或待發(fā)送(例如,通過蜂窩通信網(wǎng)絡(luò))的文本消息(例如,SMS、MMS等)(例如,通過圖2的SMS服務(wù)202、電話服務(wù)204和/或電子郵件服務(wù)206)。
一個(gè)或多個(gè)應(yīng)用程序344可能可在移動(dòng)裝置342上操作。舉例來說,移動(dòng)裝置應(yīng)用程序344可以被操作來聚集有關(guān)用戶與移動(dòng)裝置的交互的用戶數(shù)據(jù)。例如,移動(dòng)裝置應(yīng)用程序344可以聚集有關(guān)以下各項(xiàng)的數(shù)據(jù):由用戶在移動(dòng)裝置上收聽的音樂播放列表、電話通話記錄(包括由用戶接聽的電話通話的頻率和持續(xù)時(shí)間)、包括用戶頻繁光顧的位置以及在每個(gè)位置處花費(fèi)的時(shí)間量的位置信息等。收集的數(shù)據(jù)可以由應(yīng)用程序344通過網(wǎng)絡(luò)360傳送至外部裝置接口312。除此之外,可以在移動(dòng)裝置342處通過外部裝置接口312從車載計(jì)算系統(tǒng)300接收特定用戶數(shù)據(jù)請(qǐng)求。特定數(shù)據(jù)請(qǐng)求可以包括有關(guān)以下各項(xiàng)的請(qǐng)求:確定用戶所處地理位置;用戶的位置處的環(huán)境噪聲級(jí)和/或音樂類型;用戶的位置處的環(huán)境天氣條件(溫度、濕度等)等。移動(dòng)裝置應(yīng)用程序344可以向移動(dòng)裝置342的組件(例如,麥克風(fēng)等)或其他應(yīng)用程序(例如,導(dǎo)航應(yīng)用程序)發(fā)送控制指令,以使得所請(qǐng)求的數(shù)據(jù)能夠被收集到移動(dòng)裝置上。移動(dòng)裝置應(yīng)用程序344然后可以將收集的信息轉(zhuǎn)送回到車載計(jì)算系統(tǒng)300。
類似地,一個(gè)或多個(gè)應(yīng)用程序348可能可在外部服務(wù)346上操作。舉例來說,外部服務(wù)應(yīng)用程序348可以被操作來聚集和/或分析來自多個(gè)數(shù)據(jù)源的數(shù)據(jù)。例如,外部服務(wù)應(yīng)用程序348可以聚集來自用戶的一個(gè)或多個(gè)社交媒體賬戶的數(shù)據(jù)、來自車載計(jì)算系統(tǒng)的數(shù)據(jù)(例如,傳感器數(shù)據(jù)、日志文件、用戶輸入等)、來自互聯(lián)網(wǎng)查詢的數(shù)據(jù)(例如,天氣數(shù)據(jù)、POI數(shù)據(jù))等。收集的數(shù)據(jù)可以傳輸至另一裝置和/或由應(yīng)用程序分析來確定駕駛員、車輛和環(huán)境的情況并且基于所述情況來執(zhí)行動(dòng)作(例如,向其他裝置請(qǐng)求數(shù)據(jù)/發(fā)送數(shù)據(jù))。
車輛控制系統(tǒng)330可以包括用于控制不同車載功能中所涉及的各種車輛系統(tǒng)331的多個(gè)方面的控制件。這些可以包括例如控制以下各項(xiàng):用于向車輛乘員提供音頻娛樂的車輛音頻系統(tǒng)332的方面;用于滿足車輛乘員的車廂制冷或供暖需求的氣候控制系統(tǒng)334的方面;以及用于使得車輛乘員能夠與他人建立電信鏈接的電信系統(tǒng)336的方面。
音頻系統(tǒng)332可以包括一個(gè)或多個(gè)聲音再現(xiàn)裝置,所述聲音再現(xiàn)裝置包括諸如揚(yáng)聲器等電磁換能器。車輛音頻系統(tǒng)332可以是無源的或諸如通過包括功率放大器而變?yōu)橛性吹?。在一些?shí)例中,車載計(jì)算系統(tǒng)300可以是用于聲音再現(xiàn)裝置的唯一音頻源,或者可能存在連接至音頻再現(xiàn)系統(tǒng)的其他音頻源(例如,外部裝置諸如移動(dòng)電話)。任何此類外部裝置到音頻再現(xiàn)裝置的連接可以是模擬的、數(shù)字的或模擬技術(shù)和數(shù)字技術(shù)的任何組合。
氣候控制系統(tǒng)334可以被配置來在車輛301的車廂或乘客艙內(nèi)提供舒適的環(huán)境。氣候控制系統(tǒng)334包括實(shí)現(xiàn)受控的通風(fēng)的組件,諸如通風(fēng)口、取暖器、空調(diào)、集成取暖器以及空調(diào)系統(tǒng)等。鏈接至供暖和空調(diào)設(shè)置的其他組件可以包括:擋風(fēng)玻璃除霜和除霧系統(tǒng),其能夠清潔擋風(fēng)玻璃;以及通風(fēng)空氣過濾器,其用于凈化通過新鮮空氣入口進(jìn)入乘客艙的外部空氣。
車輛控制系統(tǒng)330還可以包括用于調(diào)節(jié)各種車輛控制件361(或車輛系統(tǒng)控制元件)的與車輛的車廂內(nèi)的發(fā)動(dòng)機(jī)和/或輔助元件有關(guān)的設(shè)定的控制件,所述控制件諸如方向盤控制件362(例如,方向盤安裝式音頻系統(tǒng)控制件、巡航控制件、擋風(fēng)玻璃雨刮器控制件、頂燈控制件、轉(zhuǎn)向燈控制件等)、儀表板控制件、麥克風(fēng)、加速器/制動(dòng)器/離合器踏板、變速裝置、定位在駕駛員或乘客車門中的門/窗控制件、座椅控制件、車廂燈控制件、音頻系統(tǒng)控制件、車廂溫度控制件等??刂菩盘?hào)還可以控制車輛的音頻系統(tǒng)332的一個(gè)或多個(gè)揚(yáng)聲器處的音頻輸出。例如,控制信號(hào)可以調(diào)節(jié)音頻輸出特征,諸如音量、均衡化、音頻圖像(例如,用以產(chǎn)生在用戶看來是源自一個(gè)或多個(gè)限定位置的音頻輸出的音頻信號(hào)的配置)、多個(gè)揚(yáng)聲器當(dāng)中的音頻分布等。類似地,控制信號(hào)可以控制氣候控制系統(tǒng)334的通風(fēng)口、空調(diào)和/或取暖器。例如,控制信號(hào)可以增加對(duì)車廂的特定部段的冷空氣的遞送。
定位在車輛的外側(cè)上的控制元件(例如,用于安全系統(tǒng)的控制件)也可以諸如通過通信模塊322連接至計(jì)算系統(tǒng)300。車輛控制系統(tǒng)的控制元件可以物理地且永久地定位在車輛上和/或車輛中,以便接收用戶輸入。除了從車載計(jì)算系統(tǒng)300接收控制指令之外,車輛控制系統(tǒng)330還可以從由用戶操作的一個(gè)或多個(gè)外部裝置340,諸如從移動(dòng)裝置342接收輸入。這允許基于從外部裝置340接收的用戶輸入來對(duì)車輛系統(tǒng)331和車輛控制件361的多個(gè)方面進(jìn)行控制。
車載計(jì)算系統(tǒng)300還可以包括天線306。雖然天線306被示出為是單個(gè)天線,但是在一些實(shí)施方案中可以包括一個(gè)或多個(gè)天線。車載計(jì)算系統(tǒng)可以通過天線306獲得寬帶無線互聯(lián)網(wǎng)訪問,并且可以進(jìn)一步接收諸如收音機(jī)、電視、天氣、交通等廣播信號(hào)。車載計(jì)算系統(tǒng)可以通過一個(gè)或多個(gè)天線306來接收諸如GPS信號(hào)等定位信號(hào)。車載計(jì)算系統(tǒng)還可以通過適當(dāng)?shù)慕邮昭b置經(jīng)由RF,諸如經(jīng)由天線306或者經(jīng)由紅外線或其他手段來接收無線命令。在一些實(shí)施方案中,天線306可以被包括作為音頻系統(tǒng)332或電信系統(tǒng)336的一部分。另外,天線306可以通過外部裝置接口312來向外部裝置340(諸如移動(dòng)裝置342)提供AM/FM無線電信號(hào)。
車載計(jì)算系統(tǒng)300的一個(gè)或多個(gè)元件可以由用戶通過用戶接口318來控制。用戶接口318可以包括呈現(xiàn)在諸如圖1的觸摸屏108的觸摸屏上的圖形用戶界面和/或用戶致動(dòng)式按鈕、開關(guān)、旋鈕、撥輪、滑塊等。例如,用戶致動(dòng)式元件可以包括方向盤控制件、門和/或窗控制件、儀表板控制件、音頻系統(tǒng)設(shè)定、氣候控制系統(tǒng)設(shè)定等。用戶還可以通過用戶接口318與車載計(jì)算系統(tǒng)300和移動(dòng)裝置342的一個(gè)或多個(gè)應(yīng)用程序交互。除了在用戶接口318上接收用戶的車輛設(shè)定偏好之外,還可以在用戶接口318上向用戶顯示由車載控制系統(tǒng)選擇的車輛設(shè)定??梢栽谟脩艚涌诘娘@示器上向用戶顯示通知和其他消息(例如,接收的消息)以及導(dǎo)航輔助。用戶偏好/信息和/或?qū)Τ蔬f的消息的響應(yīng)可以通過用戶接口的用戶輸入來執(zhí)行。
圖4是用于在操作系統(tǒng)中選擇性地加載服務(wù)的方法400的流程圖。方法400可以由諸如圖1的車載計(jì)算裝置109等計(jì)算裝置執(zhí)行。在402處,所述方法包括起始system_server。例如,方法400可以在圖2的方法200的210期間和/或之后執(zhí)行,以初始化和操作計(jì)算裝置的操作系統(tǒng)和/或其他軟件。如404處所指示,可以利用system_server來加載關(guān)鍵服務(wù)(例如,對(duì)于系統(tǒng)的運(yùn)行而言關(guān)鍵的服務(wù),沒有所述關(guān)鍵服務(wù),系統(tǒng)可能無法運(yùn)行或可能運(yùn)行欠佳)。例如,諸如包管理器、窗口管理器、輸入管理器和安裝服務(wù)等服務(wù)是對(duì)于ANDROID操作系統(tǒng)的運(yùn)行而言可能關(guān)鍵的服務(wù)的實(shí)例。如404處所指示的加載關(guān)鍵服務(wù)可以包括僅加載關(guān)鍵服務(wù),而不加載任何其他服務(wù)(例如,不加載非關(guān)鍵服務(wù),沒有所述非關(guān)鍵服務(wù),系統(tǒng)仍然能夠運(yùn)行)。非關(guān)鍵服務(wù)(可以在稍后時(shí)間加載,和/或可以僅響應(yīng)于使用服務(wù)的請(qǐng)求而被加載)的實(shí)例可以包括UI語音服務(wù)(用于語音識(shí)別)、BLUETOOTH管理器、調(diào)諧器服務(wù)(用于調(diào)節(jié)車輛無線電控制件)等。
在406處,所述方法包括啟動(dòng)人機(jī)接口(HMI)。例如,人機(jī)接口可以包括使得用戶能夠與計(jì)算裝置和/或正被初始化的操作系統(tǒng)交互的用戶界面(UI)和/或圖形用戶界面(GUI)??梢岳肏MI來啟動(dòng)應(yīng)用程序,包括最后一次使用的應(yīng)用程序,如408處所指示。例如,計(jì)算裝置可以是車載計(jì)算裝置,并且最后一次使用的應(yīng)用程序可以是在車輛和/或車載計(jì)算系統(tǒng)被關(guān)閉之前活躍的,至此之后未使用任何其他應(yīng)用程序直到當(dāng)前啟動(dòng)為止的最后一個(gè)應(yīng)用程序(例如,導(dǎo)航應(yīng)用程序)。如410處所指示,啟動(dòng)最后一次使用的應(yīng)用程序可以包括啟動(dòng)和/或初始化任何依賴性服務(wù)(dependent service(s))、應(yīng)用程序、資源、類別等。例如,導(dǎo)航應(yīng)用程序可以利用諸如用于定位車輛的GPS服務(wù)等依賴性服務(wù)。因此,導(dǎo)航可以請(qǐng)求在410處啟動(dòng)GPS服務(wù),以確保導(dǎo)航應(yīng)用程序在啟動(dòng)時(shí)的正確操作。在一些實(shí)施方案中,可以在啟動(dòng)所有依賴性服務(wù)等之后啟動(dòng)最后一次使用的應(yīng)用程序。在其他實(shí)施方案中,可以連同依賴性服務(wù)等一起(例如,與依賴性服務(wù)同時(shí))啟動(dòng)最后一次使用的應(yīng)用程序。在412處,所述方法包括響應(yīng)于請(qǐng)求而啟動(dòng)其余服務(wù)。以此方式,當(dāng)請(qǐng)求時(shí),可以動(dòng)態(tài)地啟動(dòng)服務(wù)和相關(guān)聯(lián)的依賴性服務(wù)/應(yīng)用程序,以實(shí)現(xiàn)高效、請(qǐng)求驅(qū)動(dòng)的初始化進(jìn)程。
圖5是在計(jì)算裝置中管理操作系統(tǒng)的服務(wù)的方法500的流程圖。例如,方法500可以由圖1的車載計(jì)算系統(tǒng)109執(zhí)行,以處理由車載計(jì)算系統(tǒng)處正嘗試加載的應(yīng)用程序發(fā)出的服務(wù)請(qǐng)求。在502處,所述方法包括在計(jì)算裝置的服務(wù)管理器處接收對(duì)服務(wù)的請(qǐng)求??梢詮睦梅?wù)的應(yīng)用程序接收所述請(qǐng)求,如504處所指示。例如,可以如參考圖4中的方法400的410所描述執(zhí)行方法500以便于啟動(dòng)正在嘗試啟動(dòng)的應(yīng)用程序的依賴性服務(wù)。在506處,方法500包括確定所請(qǐng)求的服務(wù)是否已經(jīng)在計(jì)算裝置上運(yùn)行。如果服務(wù)尚未運(yùn)行(例如,506處為“否”),那么方法進(jìn)行到508以通知system_service進(jìn)程來起始所請(qǐng)求的服務(wù),并且進(jìn)行到510以等待服務(wù)起始。在起始服務(wù)(或者如果服務(wù)已經(jīng)在運(yùn)行,506處為“是”)之后,所述方法進(jìn)行到512,以將服務(wù)句柄返回至服務(wù)的請(qǐng)求者(例如,請(qǐng)求所述服務(wù)的應(yīng)用程序)。服務(wù)句柄可以充當(dāng)以下確認(rèn):服務(wù)正在/已經(jīng)起始,和/或所述服務(wù)可以由應(yīng)用程序利用來調(diào)用服務(wù)。
圖6是示出可能會(huì)在不同階段處加載的驅(qū)動(dòng)程序與相關(guān)聯(lián)的硬件實(shí)例之間的關(guān)系的方框圖。類似于如上文相對(duì)于圖2所描述的可能會(huì)在不同階段(例如,pre-system_server階段和post-system_server階段)中加載的類別,可以通過基于用途特征分階段加載驅(qū)動(dòng)程序和相關(guān)聯(lián)的硬件實(shí)例來加速計(jì)算裝置/操作系統(tǒng)初始化。例如,第一驅(qū)動(dòng)程序Driver1可以支持第一組硬件實(shí)例602,并且第二驅(qū)動(dòng)程序Driver2可以支持第二組硬件實(shí)例604。每個(gè)硬件實(shí)例可以被指定成在初始化的特定階段中使用,這由硬件實(shí)例602a-d和604a-c中的每一個(gè)內(nèi)部的編號(hào)示出。例如,基于這些硬件實(shí)例的優(yōu)先級(jí),硬件實(shí)例602b(由Driver1支持)和硬件實(shí)例604a(由Driver2支持)可以與階段1相關(guān)聯(lián)。階段1硬件實(shí)例可以是用于系統(tǒng)的最關(guān)鍵的硬件實(shí)例。換句話說,階段1硬件實(shí)例可能會(huì)影響系統(tǒng)的操作,和/或可以被在操作系統(tǒng)初始化期間或之后不久起始的應(yīng)用程序或其他進(jìn)程所利用。例如,階段1硬件實(shí)例可以被利用來加載關(guān)鍵服務(wù),和/或可以被圖4的方法400中的404處提及的關(guān)鍵服務(wù)所利用。
如圖6所示,對(duì)于每個(gè)階段,陰影硬件實(shí)例表示在所述階段期間被初始化和/或在進(jìn)入所述階段時(shí)已經(jīng)被初始化的硬件實(shí)例。例如,在階段1中,被指定為階段1的所有硬件實(shí)例都已被初始化(例如,硬件實(shí)例602b和604a)。在階段2中,被指定為階段1的硬件實(shí)例已經(jīng)被初始化,并且被指定為階段2的硬件實(shí)例(例如,硬件實(shí)例602c和604c)剛被初始化。在階段3中,所有硬件實(shí)例已經(jīng)被初始化(階段1實(shí)例和階段2實(shí)例)或剛被初始化(例如,階段3硬件實(shí)例602a、602d和604b)。一些操作系統(tǒng)可以利用裝置樹來告知與系統(tǒng)中可用的硬件組件相關(guān)聯(lián)的內(nèi)核??梢詫?duì)每個(gè)硬件實(shí)例的初始化階段的指示添加作為裝置樹的新條目,以使得內(nèi)核能夠根據(jù)階段來選擇性地加載硬件實(shí)例。
圖7是選擇性地對(duì)初始化的驅(qū)動(dòng)程序的硬件實(shí)例進(jìn)行初始化的方法700的流程圖。方法700可以由諸如圖1的車載計(jì)算系統(tǒng)109等車載計(jì)算系統(tǒng)執(zhí)行,以實(shí)現(xiàn)裝置的提高的啟動(dòng)速度。在702處,方法700包括接收識(shí)別將被操作系統(tǒng)使用的驅(qū)動(dòng)程序的通知。應(yīng)用程序和/或進(jìn)程可以請(qǐng)求使用驅(qū)動(dòng)程序,如704處所指示。例如,system_server進(jìn)程和/或其他初始化應(yīng)用程序/進(jìn)程可以在啟動(dòng)期間請(qǐng)求使用支持快閃存儲(chǔ)器硬件的驅(qū)動(dòng)程序。在706處,所述方法包括將在702的通知中識(shí)別的驅(qū)動(dòng)程序初始化。繼續(xù)上文描述的實(shí)例,快閃存儲(chǔ)器可以由計(jì)算裝置中的多個(gè)存儲(chǔ)器管理電路控制器(MMC控制器)中的一個(gè)來控制。由于單個(gè)驅(qū)動(dòng)程序支持所有MMC控制器,所以可以請(qǐng)求所述驅(qū)動(dòng)程序并且隨后響應(yīng)于使用快閃存儲(chǔ)器的請(qǐng)求而將所述驅(qū)動(dòng)程序初始化。
在708處,所述方法包括調(diào)用驅(qū)動(dòng)程序的硬件初始化例程。對(duì)于由驅(qū)動(dòng)程序支持的每個(gè)硬件實(shí)例,硬件初始化例程包括確定是否將在第一階段中初始化所述硬件實(shí)例,如710處所指示。例如,如上文相對(duì)于圖6所描述,每個(gè)硬件實(shí)例可以與特定階段相關(guān)聯(lián),從而指示硬件實(shí)例將被系統(tǒng)使用(并且因此將被初始化)所處的相對(duì)時(shí)間。如712處所指示,如果給定硬件實(shí)例不與第一階段相關(guān)聯(lián),那么所述方法包括在相關(guān)聯(lián)的階段列表中添加所述硬件實(shí)例的條目(例如,如果硬件實(shí)例與第二階段相關(guān)聯(lián),則在第二階段列表中添加所述硬件實(shí)例的條目等)。相反地,如714處所指示,如果給定硬件實(shí)例與第一階段相關(guān)聯(lián),則所述方法包括初始化所述硬件實(shí)例。以此方式,可以對(duì)由驅(qū)動(dòng)程序支持的每個(gè)硬件實(shí)例進(jìn)行評(píng)估,并且僅加載將在第一階段中利用的硬件實(shí)例,以便于縮短初始化加載時(shí)間。
繼續(xù)上文描述的實(shí)例,由于同一個(gè)驅(qū)動(dòng)程序支持所有MMC控制器,所以初始化支持快閃存儲(chǔ)器的MMC控制器的驅(qū)動(dòng)程序可能會(huì)引起對(duì)每個(gè)MMC控制器(和相關(guān)聯(lián)的硬件)進(jìn)行評(píng)估。例如,另一個(gè)MMC控制器可以控制可能與第三階段相關(guān)聯(lián)的聯(lián)網(wǎng)硬件,諸如WiFi芯片(例如,直到初始化進(jìn)程中比快閃存儲(chǔ)器晚得多的時(shí)間或者在初始化進(jìn)程已經(jīng)完成之后才可能需要/請(qǐng)求所述WiFi芯片)。因此,當(dāng)加載MMC控制器驅(qū)動(dòng)程序時(shí),可以初始化快閃存儲(chǔ)器的MMC控制器(與第一階段相關(guān)聯(lián)),同時(shí)可以將WiFi卡的MMC控制器(與第三階段相關(guān)聯(lián))添加至第三階段列表,從而在到達(dá)第三階段時(shí)進(jìn)行初始化。以此方式,即使已經(jīng)加載了支持多個(gè)硬件實(shí)例的驅(qū)動(dòng)程序,也可以僅加載所請(qǐng)求的硬件實(shí)例,從而縮短初始化加載時(shí)間。
在716處,所述方法包括確定所有驅(qū)動(dòng)程序是否已經(jīng)完成。例如,可以針對(duì)請(qǐng)求使用的所有驅(qū)動(dòng)程序重復(fù)706-714處所描述的過程。在一些實(shí)施方案中,可以通過步驟706-714來評(píng)估系統(tǒng)的所有驅(qū)動(dòng)程序。在任一個(gè)實(shí)例中,如果所有驅(qū)動(dòng)程序(請(qǐng)求使用的驅(qū)動(dòng)程序和/或系統(tǒng)的所有驅(qū)動(dòng)程序)尚未完成(例如,716處為“否”),則所述方法返回至706以初始化下一個(gè)驅(qū)動(dòng)程序并且進(jìn)行所述下一個(gè)驅(qū)動(dòng)程序的硬件初始化例程。如果所有驅(qū)動(dòng)程序(請(qǐng)求使用的驅(qū)動(dòng)程序和/或系統(tǒng)的所有驅(qū)動(dòng)程序)已經(jīng)完成(例如,716處為“是”),則所述方法進(jìn)行到718以起始應(yīng)用程序/進(jìn)程(例如,在702/704處請(qǐng)求使用驅(qū)動(dòng)程序/硬件實(shí)例的應(yīng)用程序/進(jìn)程)。在第一初始化階段期間,可能已經(jīng)通過操作系統(tǒng)的內(nèi)核完成了方法700的先前步驟。在起始應(yīng)用程序之后,系統(tǒng)可以管理/監(jiān)測(cè)車輛、計(jì)算裝置和/或用戶輸入的狀態(tài),并且向內(nèi)核通知階段過渡在720處,所述方法包括等待階段變更通知(例如,從初始化的第一階段變更為第二階段)。例如,可以響應(yīng)于完成當(dāng)前階段的所有加載和其他任務(wù)或者響應(yīng)于新的應(yīng)用程序加載請(qǐng)求而提供階段變更通知。響應(yīng)于階段變更,所述方法包括如722處所指示取回與所述通知中識(shí)別的階段相關(guān)聯(lián)的硬件實(shí)例的列表。例如,在712處將在第一階段中未立即初始化的每個(gè)硬件實(shí)例添加到相關(guān)聯(lián)的階段列表使得能夠生成和更新可能在722處提及的每個(gè)階段的硬件實(shí)例的列表。在724處,初始化所取回的列表中的所有硬件實(shí)例。
響應(yīng)于初始化給定階段的每個(gè)硬件實(shí)例,所述方法進(jìn)行到726以評(píng)估是否已經(jīng)完成所有階段。例如,系統(tǒng)可以確定尚未被初始化的附加硬件實(shí)例是否存在于另外的階段列表中。如果所有階段尚未完成(例如,726處為“否”),則所述方法返回至720以等待階段變更為下一階段。如果所有階段已經(jīng)完成(例如,726處為“是”),則所述方法結(jié)束或者返回以等待另外的初始化請(qǐng)求。
除了上文針對(duì)MMC控制器和相關(guān)聯(lián)的硬件元件(例如,快閃存儲(chǔ)器和WiFi芯片)所描述的實(shí)例之外,還可以評(píng)估其他驅(qū)動(dòng)程序/硬件元件組合并且將其初始化作為方法700的一部分。作為附加的非限制性實(shí)例,計(jì)算裝置可以包括內(nèi)置集成電路控制器(I2C控制器)的三個(gè)實(shí)例,每個(gè)實(shí)例連接至觸摸屏傳感器、無線電調(diào)諧控制件和功率管理芯片中的一個(gè)。計(jì)算裝置可以包括串行總線接口(例如,通用異步接收器/發(fā)射器-UART)的四個(gè)實(shí)例,所述實(shí)例可以用于連接至BLUETOOTH芯片、車輛接口處理芯片等。類似于上文描述的MMC控制器實(shí)例,可以基于啟動(dòng)的階段來實(shí)現(xiàn)控這類制器的實(shí)例。在其他實(shí)例中,硬件元件(例如,USB接口/芯片、顯示器等)可以存在作為與可以在相關(guān)聯(lián)的階段加載的單個(gè)驅(qū)動(dòng)程序相關(guān)聯(lián)的單個(gè)實(shí)例。例如,顯示器可以與顯示器驅(qū)動(dòng)程序相關(guān)聯(lián),所述顯示器驅(qū)動(dòng)程序僅支持一個(gè)硬件實(shí)例(所述顯示器)。因此,如果顯示器與(例如)階段2相關(guān)聯(lián),則可以不加載/初始化顯示器驅(qū)動(dòng)程序直到階段2為止。在初始化驅(qū)動(dòng)程序時(shí),由于驅(qū)動(dòng)程序僅支持一個(gè)硬件實(shí)例,所以可以響應(yīng)于初始化所述驅(qū)動(dòng)程序而將所述硬件實(shí)例初始化。
圖8是用于在計(jì)算裝置上加載最后一次使用的應(yīng)用程序的方法800的流程圖。例如,方法800可以由諸如圖1的車載計(jì)算裝置109等車載計(jì)算裝置執(zhí)行。在802處,方法800包括啟動(dòng)計(jì)算裝置。在804處,所述方法包括確定導(dǎo)航應(yīng)用程序是否是計(jì)算裝置上最后一次使用的應(yīng)用程序。例如,導(dǎo)航應(yīng)用程序可能是在計(jì)算裝置的最后關(guān)機(jī)事件時(shí)正在運(yùn)行的最后一個(gè)應(yīng)用程序,和/或可能是在計(jì)算裝置的關(guān)機(jī)事件之前接收用戶輸入和/或執(zhí)行動(dòng)作的最后一個(gè)應(yīng)用程序。在806處,所述方法包括接收對(duì)由導(dǎo)航應(yīng)用程序所使用的服務(wù)的請(qǐng)求。如808處所指示,可以加載來自所述請(qǐng)求的尚未在計(jì)算裝置上運(yùn)行的任何服務(wù)。在810處,將每個(gè)請(qǐng)求的服務(wù)的服務(wù)句柄返回給導(dǎo)航應(yīng)用程序。在812處,所述方法包括接收對(duì)使用GPS傳感器的驅(qū)動(dòng)程序的請(qǐng)求。例如,導(dǎo)航應(yīng)用程序可以利用GPS傳感器來操作,因此所述應(yīng)用程序可以請(qǐng)求加載GPS傳感器的驅(qū)動(dòng)程序,以允許訪問這個(gè)元件。
在814處,所述方法包括調(diào)用與支持GPS傳感器的任何驅(qū)動(dòng)程序相關(guān)聯(lián)的硬件初始化例程。在816處初始化GPS傳感器,并且在818處加載與當(dāng)前(或先前)初始化階段相關(guān)聯(lián)的且由驅(qū)動(dòng)程序支持的任何其余硬件實(shí)例。例如,如果初始化例程處于階段1,并且支持GPS傳感器的驅(qū)動(dòng)程序也支持與階段1相關(guān)聯(lián)(例如,被指定成在所述階段1期間初始化/使用)的其他硬件實(shí)例,則在818處加載這類硬件實(shí)例。在820處,所述方法包括將條目添加至由驅(qū)動(dòng)程序支持的但是與當(dāng)前或先前初始化階段不相關(guān)聯(lián)的硬件實(shí)例的相關(guān)聯(lián)階段列表。在初始化GPS傳感器和依賴性服務(wù)之后,在822處可以通過HMI啟動(dòng)導(dǎo)航應(yīng)用程序。
上文描述的系統(tǒng)和方法提供用于車載計(jì)算裝置,所述車載計(jì)算裝置包括處理器和存儲(chǔ)裝置,所述存儲(chǔ)裝置存儲(chǔ)用于初始化車載計(jì)算裝置的操作系統(tǒng)的指令,所述指令可被處理器執(zhí)行來起始服務(wù)加載進(jìn)程,通過服務(wù)加載進(jìn)程加載關(guān)鍵服務(wù),啟動(dòng)人機(jī)接口,通過人機(jī)接口啟動(dòng)最后一次使用的應(yīng)用程序,并且響應(yīng)于使用其余服務(wù)的請(qǐng)求而啟動(dòng)其余服務(wù)。在車載計(jì)算裝置的第一實(shí)例中,通過人機(jī)接口啟動(dòng)最后一次使用的應(yīng)用程序可以另外地或可替代地包括啟動(dòng)最后一次使用的應(yīng)用程序的依賴性服務(wù)和/或應(yīng)用程序。車載計(jì)算裝置的第二實(shí)例任選地包括第一實(shí)例,并且還包括其中指令可被進(jìn)一步執(zhí)行來初始化虛擬機(jī),從第一類別列表加載類別,并且在起始服務(wù)加載進(jìn)程之前選擇性地加載車載計(jì)算裝置的資源,第一類別列表中的類別的每一個(gè)具有小于加載時(shí)間閾值的加載時(shí)間并且被多于進(jìn)程閾值的多個(gè)進(jìn)程所利用。車載計(jì)算裝置的第三實(shí)例任選地包括第一實(shí)例和第二實(shí)例中的一個(gè)或多個(gè),并且還包括其中指令可被進(jìn)一步執(zhí)行來在起始服務(wù)加載進(jìn)程之后從第二類別列表加載類別,第二類別列表中的每個(gè)類別具有大于加載時(shí)間閾值的加載時(shí)間并且被多于進(jìn)程閾值的多個(gè)進(jìn)程所利用。車載計(jì)算裝置的第四實(shí)例任選地包括第一實(shí)例至第三實(shí)例中的一個(gè)或多個(gè),并且還包括其中指令可被進(jìn)一步執(zhí)行來通過進(jìn)程間通信套接字接收將人機(jī)接口分叉的命令。車載計(jì)算裝置的第五實(shí)例任選地包括第一實(shí)例至第四實(shí)例中的一個(gè)或多個(gè),并且還包括其中指令可被進(jìn)一步執(zhí)行來在計(jì)算裝置的服務(wù)管理器處從應(yīng)用程序接收對(duì)請(qǐng)求的服務(wù)的請(qǐng)求,確定所請(qǐng)求的服務(wù)是否已經(jīng)在計(jì)算裝置上運(yùn)行,如果所請(qǐng)求的服務(wù)尚未運(yùn)行則起始所請(qǐng)求的服務(wù)。車載計(jì)算裝置的第六實(shí)例任選地包括第一實(shí)例至第五實(shí)例中的一個(gè)或多個(gè),并且還包括其中指令可被進(jìn)一步執(zhí)行來在所請(qǐng)求的服務(wù)正在運(yùn)行的情況下將與所請(qǐng)求的服務(wù)相關(guān)聯(lián)的服務(wù)句柄返回至應(yīng)用程序。車載計(jì)算裝置的第七實(shí)例任選地包括第一實(shí)例至第六實(shí)例中的一個(gè)或多個(gè),并且還包括其中指令可被進(jìn)一步執(zhí)行來接收將被使用的驅(qū)動(dòng)程序的通知、初始化驅(qū)動(dòng)程序并且選擇性地初始化由驅(qū)動(dòng)程序支持的硬件實(shí)例。車載計(jì)算裝置的第八實(shí)例任選地包括第一實(shí)例至第七實(shí)例中的一個(gè)或多個(gè),并且還包括其中選擇性地初始化由驅(qū)動(dòng)程序支持的硬件實(shí)例包括:確定與由驅(qū)動(dòng)程序支持的每個(gè)硬件實(shí)例相關(guān)聯(lián)的初始化階段,并且針對(duì)與第一初始化階段相關(guān)聯(lián)的每個(gè)硬件實(shí)例,初始化所述硬件實(shí)例。車載計(jì)算裝置的第九實(shí)例任選地包括第一實(shí)例至第八實(shí)例中的一個(gè)或多個(gè),并且還包括其中選擇性地初始化由驅(qū)動(dòng)程序支持的硬件實(shí)例還包括:對(duì)于不與第一初始化階段相關(guān)聯(lián)的每個(gè)硬件實(shí)例,將所述硬件實(shí)例的條目添加在同與硬件實(shí)例相關(guān)聯(lián)的階段匹配的相關(guān)聯(lián)的階段列表中。車載計(jì)算裝置的第十實(shí)例任選地包括第一實(shí)例至第九實(shí)例中的一個(gè)或多個(gè),并且還包括其中指令可被進(jìn)一步執(zhí)行來針對(duì)第一初始化階段之后的每個(gè)初始化階段,檢索與所述初始化階段相關(guān)聯(lián)的階段列表,并且初始化包括在與所述初始化階段相關(guān)聯(lián)的階段列表中的每個(gè)硬件實(shí)例。車載計(jì)算裝置的第十一實(shí)例任選地包括第一實(shí)例至第十實(shí)例中的一個(gè)或多個(gè),并且還包括其中所述人機(jī)接口包括在車載計(jì)算裝置的顯示裝置上顯示的圖形用戶界面。
以上系統(tǒng)和方法提供用于一種用于初始化計(jì)算裝置的操作系統(tǒng)中的應(yīng)用程序的方法,所述方法包括:起始服務(wù)加載進(jìn)程,通過服務(wù)加載進(jìn)程加載關(guān)鍵服務(wù),啟動(dòng)人機(jī)接口,通過人機(jī)接口啟動(dòng)最后一次使用的應(yīng)用程序,以及響應(yīng)于使用其余服務(wù)的請(qǐng)求而啟動(dòng)其余服務(wù)。所述方法的第一實(shí)例還包括另外地或可替代地初始化虛擬機(jī),加載選自第一類別列表的類別,以及在起始服務(wù)加載進(jìn)程之前加載計(jì)算裝置的資源,所述第一類別列表中的每個(gè)類別具有小于加載時(shí)間閾值的加載時(shí)間并且被多于進(jìn)程閾值的多個(gè)進(jìn)程所利用。所述方法的第二實(shí)例任選地包括所述第一實(shí)例,并且還包括在起始服務(wù)加載進(jìn)程之后加載選自第二類別列表的類別,所述第二類別列表中的每個(gè)類別具有大于加載時(shí)間閾值的加載時(shí)間并且被多于進(jìn)程閾值的多個(gè)進(jìn)程所利用。所述方法的第三實(shí)例任選地包括第一實(shí)例和第二實(shí)例中的一個(gè)或多個(gè),并且還包括其中所述服務(wù)加載進(jìn)程被配置來初始化操作系統(tǒng)的服務(wù),并且向服務(wù)管理器注冊(cè)所述服務(wù)。所述方法的第四實(shí)例任選地包括第一實(shí)例至第三實(shí)例中的一個(gè)或多個(gè),并且還包括其中所述虛擬機(jī)是Dalvik虛擬機(jī),并且其中所述方法還包括調(diào)用Zygote進(jìn)程來加載選自所述第一類別列表的類別。
以上系統(tǒng)和方法還提供用于一種車載計(jì)算裝置,所述車載計(jì)算裝置包括處理器和存儲(chǔ)裝置,所述存儲(chǔ)裝置存儲(chǔ)用于初始化車載計(jì)算裝置的操作系統(tǒng)的指令,所述指令可由處理器執(zhí)行來起始服務(wù)加載進(jìn)程,通過服務(wù)加載進(jìn)程加載關(guān)鍵服務(wù),啟動(dòng)人機(jī)接口,通過人機(jī)接口啟動(dòng)最后一次使用的應(yīng)用程序,在服務(wù)管理器處接收對(duì)由最后一次使用的應(yīng)用程序所使用的服務(wù)的請(qǐng)求,起始包括在所述請(qǐng)求中的尚未在計(jì)算裝置上運(yùn)行的任何服務(wù),并且針對(duì)包括在請(qǐng)求中的每一項(xiàng)服務(wù)將服務(wù)句柄返回給最后一次使用的應(yīng)用程序。在車載計(jì)算裝置的第一實(shí)例中,所述指令可以另外地或可替代地可被進(jìn)一步執(zhí)行來初始化虛擬機(jī),加載選自第一類別列表的類別,并且在起始服務(wù)加載進(jìn)程之前加載計(jì)算裝置的資源,所述第一類別列表中的每個(gè)類別具有小于加載時(shí)間閾值的加載時(shí)間并且被多于進(jìn)程閾值的多個(gè)進(jìn)程所利用。車載計(jì)算裝置的第二實(shí)例任選地包括第一實(shí)例,并且還包括其中指令可被進(jìn)一步執(zhí)行來接收將被使用的驅(qū)動(dòng)程序的通知、初始化驅(qū)動(dòng)程序并且選擇性地初始化由驅(qū)動(dòng)程序支持的硬件實(shí)例。
出于說明和描述的目的,已經(jīng)呈現(xiàn)了對(duì)實(shí)施方案的描述。對(duì)實(shí)施方案的合適的修改和變化可以根據(jù)以上描述來執(zhí)行,或者可以通過實(shí)踐所述方法來獲得。例如,除非另有說明,否則所描述的方法中的一種或多種可以由諸如參考圖1所描述的車載計(jì)算系統(tǒng)109等合適的裝置和/或裝置的組合執(zhí)行。所述方法可以通過以下方式來執(zhí)行:用一個(gè)或多個(gè)邏輯裝置(例如,處理器)與一個(gè)或多個(gè)附加硬件元件的組合來執(zhí)行存儲(chǔ)的指令,所述一個(gè)或多個(gè)附加硬件元件諸如存儲(chǔ)裝置、存儲(chǔ)器、硬件網(wǎng)絡(luò)接口/天線、開關(guān)、致動(dòng)器、時(shí)鐘電路等。所描述的方法和相關(guān)聯(lián)的動(dòng)作還可以除了本申請(qǐng)中所描述的次序之外的各種次序、并行地和/或同時(shí)執(zhí)行所描述的系統(tǒng)在本質(zhì)上是示例性的,并且可以包括附加外元件和/或省略元件。例如,雖然參考ANDROID操作系統(tǒng)和車載計(jì)算裝置描述了許多說明性實(shí)例,但是應(yīng)理解,上文描述的方法和系統(tǒng)可以被包括在任何合適的硬件(例如,便攜式計(jì)算裝置、智能手機(jī)、平板計(jì)算機(jī)、漆上型計(jì)算機(jī)、臺(tái)式計(jì)算裝置、服務(wù)器計(jì)算系統(tǒng)等)和/或操作系統(tǒng)中,和/或被其所利用。本公開的主題包括各種系統(tǒng)和配置,以及所公開的其他特征、功能和/或特性的所有新穎的和非顯而易見的組合和子組合。
如本申請(qǐng)中所使用,以單數(shù)形式敘述且用措詞“一個(gè)”或“一種”修飾的元件或步驟應(yīng)理解為不排除多個(gè)所述元件或步驟,除非陳述這種排除。另外,對(duì)本公開的“一個(gè)實(shí)施方案”或“一個(gè)實(shí)例”的提及并不意在被解釋成排除也合并有所敘述的特征的附加實(shí)施方案的存在。術(shù)語“第一”、“第二”和“第三”等僅用作標(biāo)記,而并非意在對(duì)其客體施加數(shù)值要求或特定位置次序。以下權(quán)利要求具體指明以上公開的被視為是新穎的和非顯而易見的主題。