JP2017521789A - オペレーティングシステム起動加速 - Google Patents

オペレーティングシステム起動加速 Download PDF

Info

Publication number
JP2017521789A
JP2017521789A JP2017501025A JP2017501025A JP2017521789A JP 2017521789 A JP2017521789 A JP 2017521789A JP 2017501025 A JP2017501025 A JP 2017501025A JP 2017501025 A JP2017501025 A JP 2017501025A JP 2017521789 A JP2017521789 A JP 2017521789A
Authority
JP
Japan
Prior art keywords
vehicle
computing device
stage
service
driver
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017501025A
Other languages
English (en)
Other versions
JP6577566B2 (ja
Inventor
プラカシュ ラマン,
プラカシュ ラマン,
プランジャル チャクラボルティー,
プランジャル チャクラボルティー,
ユージーン バーギーズ,
ユージーン バーギーズ,
Original Assignee
ハーマン インターナショナル インダストリーズ インコーポレイテッド
ハーマン インターナショナル インダストリーズ インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ハーマン インターナショナル インダストリーズ インコーポレイテッド, ハーマン インターナショナル インダストリーズ インコーポレイテッド filed Critical ハーマン インターナショナル インダストリーズ インコーポレイテッド
Publication of JP2017521789A publication Critical patent/JP2017521789A/ja
Application granted granted Critical
Publication of JP6577566B2 publication Critical patent/JP6577566B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W50/04Monitoring the functioning of the control system
    • B60W50/045Monitoring control system parameters

Abstract

コンピューティング装置のオペレーティングシステムの要素を選択的に初期化するための方法及びシステムについて実施形態が開示される。いくつかの実施形態では、コンピューティング装置のためにハードウェアインスタンスを選択的にロードする方法は、ハードウェアインスタンスのためのドライバを識別する通知を受け取ることと、通知で識別されたドライバを初期化することと、ドライバによってサポートされるハードウェアインスタンスごとに、そのハードウェアインスタンスが初期化の第1の段階と関連付けられているかどうかを判断することとを含む。方法は、識別されたハードウェアインスタンス、及び初期化の第1の段階と関連付けられるドライバによってサポートされる他の各ハードウェアインスタンスを初期化することをさらに含んで良い。【選択図】図1

Description

関連出願の相互参照
本願は、全体の内容がすべての目的にために参照することにより本明細書に組み込まれる、2014年7月10日に出願された「OPERATING SYSTEMS STARTUP ACCELERATION」と題するインド特許出願第3428/CHE/2014号の優先権を主張する。
本開示は、コンピューティング装置のオペレーティングシステムのための初期化ルーチンを加速することに関する。
コンピューティング装置のオペレーティングシステムは、コンピューティング装置のハードウェア構成要素を使用するために必要なサービス、リソース、及びドライバを起動するための初期化ルーチンを実行して良い。初期化ルーチンの速度は、ロードされるサービス、リソース、及びドライバの数に基づいて良く、コンピューティング装置の何らかの機能性は、初期化ルーチンが完了するまで使用できないことがある。
コンピューティング装置の電源を投入することと、コンピューティング装置のオペレーティングシステム/アプリケーションを初期化することとの間の許容可能な遅延量は、コンピューティング装置の環境及び/または使用に基づいて変わることがある。例えば、車両の中で活用されるコンピューティング装置は、車両内コンピューティング装置の機能性が車両の機能性、安全特徴等に影響を及ぼすことがあるのでパーソナルコンピューティング装置よりもより厳しい遅延考慮事項(例えば、より少ない許容可能な遅延量)を有することがある。実施形態は、コンピューティング装置のための初期化ルーチンを加速するための方法及びシステムについて開示される。いくつかの実施形態では、コンピューティング装置のためにハードウェアインスタンスを選択的にロードする方法は、ハードウェアインスタンスのためのドライバを識別する通知を受け取ることと、通知で識別されたドライバを初期化することと、ドライバによってサポートされるハードウェアインスタンスごとに、そのハードウェアインスタンスが初期化の第1の段階と関連付けられているかどうかを判断することを含む。方法は、識別されたハードウェアインスタンス、及び初期化の第1の段階と関連付けられるドライバによってサポートされる他の各ハードウェアインスタンスを初期化することをさらに含んで良い。
いくつかの実施形態では、オペレーティングシステムを初期化するための車両内コンピューティング装置は、プロセッサと、それぞれが関連付けられたドライバによってサポートされる複数のハードウェアインスタンスと、車両内コンピューティング装置のドライバを初期化するための命令を記憶する記憶装置とを含んで良く、前記命令は、ハードウェアインスタンスのためのドライバを識別する通知を受け取り、通知で識別されたドライバを初期化し、ドライバによってサポートされるハードウェアインスタンスごとに、そのハードウェアインスタンスが初期化の第1の段階と関連付けられているかどうかを判断するためにプロセッサによって実行可能である。命令は、識別されたハードウェアインスタンス、及び初期化の第1の段階と関連付けられるドライバによってサポートされる他の各ハードウェアインスタンスを初期化するためにさらに実行可能であって良い。
いくつかの実施形態では、コンピューティング装置は、プロセッサ、及びアプリケーションからハードウェアインスタンスのためのドライバを識別する通知を受け取り、通知で識別されたドライバを初期化し、ドライバのハードウェア初期化ルーチンを呼び出すためにプロセッサによって実行可能な命令を記憶する記憶装置を含む。命令は、ドライバによってサポートされるハードウェアインスタンスごとに、そのハードウェアインスタンスが初期化の第1の段階と関連付けられているかどうかを判断し、識別されたハードウェアインスタンス、及び初期化の第1の段階と関連付けられるドライバによってサポートされる他の各ハードウェアインスタンスを初期化し、ドライバによってサポートされ、初期化の第1の段階と関連付けられていないそれぞれの残りのハードウェアインスタンスのエントリを、その残りのハードウェアインスタンスと関連付けられた段階の段階リストに追加し、アプリケーションを起動するためにさらに実行可能であって良い。
本開示は、添付図面を参照して、非制限的な実施形態の以下の説明を読むことによってより良く理解され得る。
本開示の1つまたは複数の実施形態による車両のキャビンの内部の例の部分図を示す。 本開示の1つまたは複数の実施形態によるコンピューティング装置上のアプリケーションバーチャルマシンの初期化を加速する例の方法のフローチャートである。 本開示の1つまたは複数の実施形態による例の車両内コンピューティングシステムのブロック図を示す。 本開示の1つまたは複数の実施形態によるオペレーティングシステムでサービスを選択的にロードするための例の方法のフローチャートである。 本開示の1つまたは複数の実施形態によるコンピューティング装置のオペレーティングシステムのサービスを管理するための例の方法のフローチャートである。 例のドライバ、及び本開示の1つまたは複数の実施形態により異なる段階でロードされて良い関連付けられたハードウェアインスタンスを示す。 本開示の1つまたは複数の実施形態により初期化されたドライバのためにハードウェアインスタンスを選択的に初期化するための例の方法のフローチャートである。 本開示の1つまたは複数の実施形態に従ってコンピューティング装置にアプリケーションをロードするための例の方法のフローチャートである。
上述されたように、初期化ルーチンの速度はコンピューティング装置を起動することと、コンピューティング装置の機能を有効化することとの間の遅延を定義して良い。例えば、車両の中のコンピューティング装置(例えば、車両内コンピューティング装置)は車両を起動することに応えて起動されて良いが、ナビゲーションシステム、音声制御装置等の機能は、コンピューティング装置が初期化ルーチンを完了するまでアクセス可能にならないことがある。本開示は、いくつかの初期化ルーチンがクラス、リソース、サービス/アプリケーション、及びコンピューティング装置の初期動作に必要ではない特定のハードウェアドライバと関連付けられたハードウェアインスタンスをロードして良いことを認識する。これらの要素のそれぞれのロードがコンピューティング装置の初期化時間を増加するので、これらの要素を選択的にロードすることにより、コンピューティング装置をより効率的に初期化し、それによって装置の可用性の遅延を削減できるようになって良い。以下に説明される方法及びシステムは、クラス、リソース、サービス、アプリケーション、及びハードウェアインスタンスの選択を、装置の特性、装置の使用目的、装置の事前使用、要求されている機能、装置/初期化ルーチン/アプリケーション等の機能性に関する要素の重大性/依存性等の検討から引き出された各要素の優先順位に基づいて構成できるようにする。このようにして、特徴のロード/初期化は、コンピューティング装置の機能性を犠牲にすることなく初期化時間を削減するためにインテリジェントに選択されて良い。
図1は、1つのタイプの環境の例の部分図、つまり運転者及び/もしくは1人または複数の乗客が着席し得る車両102のキャビン100の内部を示す。図1の車両102は、駆動輪(不図示)及び内燃機関104を含んだ自動車であって良い。内燃機関104は、吸気路を介して吸気を受け入れ、排出路を介して燃焼ガスを排出して良い1つまたは複数の燃焼室を含んで良い。車両102は、他のタイプの車両の中で道路車両であって良い。いくつかの例では、車両102は、車両の動き及び/またはエンジンからエネルギーを吸収し、エネルギー蓄積装置による蓄積のために適切なエネルギーの形に吸収したエネルギーを変換するよう作動するエネルギー変換装置を含むハイブリッド推進システムを含んで良い。車両102は、燃料電池、太陽エネルギー取込み要素、及び/または車両に動力を供給するための他のエネルギー蓄積装置を取り込んだ完全電気自動車を含んで良い。
図示されるように、計器パネル106は、車両102の運転者(ユーザーとも呼ばれる)がアクセス可能な多様なディスプレイ及び制御装置を含んで良い。例えば、計器パネル106は車両内コンピューティングシステム109(例えば、インフォテインメントシステム)のタッチスクリーン108、音声システム制御パネル、及び計器クラスタ110を含んで良い。図1に示される例のシステムは、別個の音声システム制御パネルのないタッチスクリーン108等の車両内コンピューティングシステム109のユーザーインタフェースを介して実行されて良い音声システム制御装置を含むが、他の実施形態では、車両は無線、コンパクトディスクプレーヤ、MP3プレーヤ等の従来の車両音声システム用の制御装置を含むことがある音声システム制御パネルを含んで良い。音声システム制御装置は車両スピーカシステムのスピーカ112を介して音声出力の1つまたは複数の態様を制御するための機能を含んで良い。例えば、車両内コンピューティングシステムまたは音声システム制御装置は音声出力のボリューム、車両スピーカシステムの個々のスピーカの間の音の分散、音声信号の均等化、及び/または音声出力の任意の他の態様を制御して良い。さらなる例では、車両内コンピューティングシステム109は、タッチスクリーン108を介して直接的に受け取られたユーザー入力に基づいて、または外部装置150及び/またはモバイル機器128を介して受け取られた(ユーザーの身体的な状態及び/または環境等の)ユーザーに関するデータに基づいて、無線局選択、プレイリスト選択、(例えば、無線またはCDまたはMP3からの)音声入力のソース等を調整して良い。
いくつかの実施形態では、タッチスクリーン108、ディスプレイ画面、多様なコントロールダイヤル、コントロールノブ、及びコントロールボタン、メモリ、プロセッサ(複数の場合がある)、並びにあらゆるインタフェース要素(例えば、コネクタまたはポート)等の車両内コンピューティングシステム109の1つまたは複数のハードウェア要素は、車両の計器パネル106に設置される統合ヘッドユニットを形成して良い。ヘッドユニットは計器パネル106に固定してまたは取り外し自在に取り付けられて良い。追加の実施形態または代替実施形態では、車両内コンピューティングシステムの1つまたは複数のハードウェア要素はモジュール式であって良く、車両の複数の場所に取り付けられて良い。車両内コンピューティングシステム109は、プロセッサ及び多様なアクション、タスク等を実行するためにプロセッサによって実行可能な命令を記憶するメモリ(例えば、記憶装置)を含んで良い。例えば、車両内コンピューティングシステム109のメモリは、車両内コンピューティングシステムのアプリケーション、ならびに車両内コンピューティングシステムによって実行される他のデータ処理、データ制御、及びデータアクションを管理するためのオペレーティングシステムを記憶して良い。
計器クラスタ110は、インジケータ及び警告灯だけではなく燃料計、タコメータ、速度計、及びオドメータ等の多様なゲージも含んで良い。ステアリングホイール114は、計器クラスタ110の下方で計器パネルから突出して良い。任意選択で、ステアリングホイール114は、車両内コンピューティングシステムの特徴をナビゲートし、車両内コンピューティングシステムを制御するためにタッチスクリーン108と連動して使用されて良い制御装置116を含んで良い。図1に示される構成要素に加えて、計器パネル106はドア制御装置及び窓制御装置、低圧電源出力として使用されても良いシガレットライター、グローブボックス、及び/または任意の他の適切な要素等の追加の構成要素を含んでも良いことが理解される。1つまたは複数の実施形態では、クライメートコントロールシステムベント118を介した(キャビン温度等の)車両内の環境の制御がタッチスクリーン108を使用し、実行されて良く、したがって別個のクライメートコントロールインタフェースは計器パネル106に含まれないことがある。ただし、代替実施形態では、別個のクライメートコントロールインタフェースが設けられて良い。
キャビン100は、車両、ユーザー、及び/または環境を監視するための1つまたは複数のセンサを含んで良い。例えば、キャビン100は、ユーザーの存在を決定するために座席にかけられた圧力を測定するように構成された1つまたは複数のシート取付け圧力センサ120を含んで良い。キャビン100は、ドアの開放及び/または閉鎖、ドアのロック、ドアの窓の動作、及び/または他の適切なドア活動事象等、ドアの活動を監視するように構成された1つまたは複数のドアセンサ122を含んで良い。湿度センサ124は、キャビンの湿度の容量を測定するために含まれて良い。マイク126は、ユーザーが電話呼を実施する、及び/またはキャビン100の周囲雑音を測定することを可能にするために、音声コマンドの形でユーザー入力を受け取るために含まれて良い。図1に示されるセンサの配置が例示的であり、1つまたは複数の追加のまたは代替のセンサが車両の任意の適切な場所に位置決めされて良いことが理解されるべきである。例えば、追加のセンサは、車両の動作、車両の周囲状況、車両のユーザー等に関する情報を提供するためにエンジンコンパートメント内に、車両の外面上に、及び/または他の適切な場所に位置決めされて良い。また、車両の周囲状況、車両のステータス、または車両運転者に関する情報は、外部装置150及び/またはモバイル機器128に結合されたセンサから等、車両の外部の/車両から離れた(つまり、車両システムの一部ではない)センサから受け取られても良い。
キャビン100は、移動前、移動中、及び/または移動後に車両内に記憶されるモバイル機器128等の1つまたは複数のユーザーオブジェクトを含んでも良い。モバイル機器はスマートフォン、タブレット、ラップトップコンピュータ、ポータブルメディアプレーヤ、及び/または任意の適切なモバイルコンピューティング装置を含んで良い。モバイル機器128は、通信リンク130を介して車両内コンピューティングシステムに接続されて良い。通信リンク130は(例えば、ユニバーサルシリアルバス[USB]、モバイルハイディフィニションリンク[MHL]、ハイディフィニションマルチメディアインタフェース[HDMI(登録商標)]等を介する)有線であることもあれば、(例えば、ブルートゥース(登録商標)、WI−FI、近距離無線通信[NFC]、セルラー接続性等を介する)無線であることもあり、モバイル機器と車両内コンピューティングシステムとの間で双方向通信を提供するように構成されて良い。例えば、通信リンク130は、(車両音声システム、クライメートコントロールシステム等の)多様な車両システム、及びタッチスクリーン108からモバイル機器128にセンサ信号及び/または制御信号を提供して良く、モバイル機器128から車両内システム及びタッチスクリーン108に制御信号及び/または表示信号を提供して良い。通信リンク130は、モバイル機器の内蔵電池を充電するために車両内電源からモバイル機器128に電力を提供しても良い。
モバイル機器128は車両内コンピューティングシステムから空間的に分離され、実質的に外部の通信リンク(例えば、ケーブルまたは無線周波数信号)を介して接続されているとして示されているが、スロット132または他の記憶構造は、特定の場所にモバイル機器を保持するために計器パネル106または車両内の他の場所に形成されて良いことが理解されるべきである。記憶構造は、モバイル機器とコンピューティングシステムとの間に実質的に内部通信リンクを提供するためにモバイル機器128が取り付けられて良い、または「ドッキング」されて良い統合コネクタ134を含んで良い。
また、車両内コンピューティングシステム109は、1つまたは複数の外部装置150等、ユーザーによって操作されるが、車両102にとって外部に位置する追加の装置に通信可能に結合されても良い。代替実施形態では外部装置がキャビン100の内側に位置して良いことが理解されるだろうが、示されている実施形態では外部装置150は車両102の外部に位置する。外部装置はサーバコンピューティングシステム、パーソナルコンピューティングシステム、携帯電子装置、電子リストバンド、電子ヘッドバンド、ポータブルミュージックプレーヤ、電子活動追跡調査装置、歩数計、スマートウォッチ、GPSシステム等を含んで良い。外部装置150は、通信リンク130に関して説明されるように、有線であることもあれば、無線であることもあり、外部装置と車両内コンピューティングシステムとの間で双方向通信を提供するように構成されて良い通信リンク136を介して車両内コンピューティングシステムに接続されて良い。例えば、外部装置150は1つまたは複数のセンサを含んで良く、通信リンク136は外部装置150から車両内コンピューティングシステム109及びタッチスクリーン108にセンサ出力を送信して良い。また、外部装置150はコンテキストデータ、ユーザー挙動/優先順位、操作規則等に関する情報も記憶する及び/または受け取って良く、外部装置150から車両内コンピューティングシステム109及びタッチスクリーン108に係る情報を送信して良い。
車両内コンピューティングシステム109は、外部装置150、モバイル機器128、及び/または他の入力ソースから受け取られた入力を解析し、(クライメートコントロールシステムまたは音声システム等の)多様な車両内システムの設定値を選択し、タッチスクリーン108及び/またはスピーカ112を介して出力を提供し、モバイル機器128及び/または外部装置150を通信し、評価に基づいて他のアクションを実行して良い。いくつかの実施形態では、評価のすべてまたは一部はモバイル機器128及び/または外部装置150によって実行されて良い。
いくつかの実施形態では、外部装置150の1つまたは複数は、モバイル機器128及び/または外部装置150の別なものを介して間接的に車両内コンピューティングシステム109に通信可能に結合されて良い。例えば、通信リンク136は、外部装置150からの出力がモバイル機器128に中継されるようにモバイル機器128に外部装置150を通信可能に結合して良い。外部装置150から受け取られるデータは次いでモバイル機器128で、モバイル機器128によって収集されたデータと集約されて良く、集約されたデータは次いで通信リンク130を介して車両内コンピューティングシステム109及びタッチスクリーン108に送信される。類似するデータ集約はサーバシステムで発生し、次いで通信リンク136/130を介して車両内コンピューティングシステム109及びタッチスクリーン108に送信されて良い。
図2は、図1の車両内コンピューティング装置109等のコンピューティング装置でのアプリケーションバーチャルマシンの初期化を加速する方法200のフローチャートである。例えば、方法200は、ANDROID(登録商標)オペレーティングシステム初期化のためのZygoteプロセスの一部として活用されて良い。202で、方法200はアプリケーションバーチャルマシン(例えば、ANDROID(登録商標)オペレーティングシステムのためのDalvik)を初期化することを含む。例えば、係る初期化は、コンピューティング装置の電源を投入すること、またはそれ以外の場合動作を開始するようにコンピューティング装置に命令することによってトリガされて良い。204で、方法は、CPUスレッドプールを使用し、pre−system_serverクラスリストから選択されたクラスをロードすることを含む。206で示されるように、CPUスレッドプールのスレッドの数は2で乗算されたCPUコアの数に基づく。各スレッドはクラスをロードし、リソースをロードし、及び/または他の適切なタスクを実行するために使用されて良い。
いくつかのシステムでは、system_serverプロセスは、コンピューティング装置を操作するために他のサービスをロードすることを開始するためにすべてのクラス及びリソースをプリロードした後にロードされて良い。system_serverプロセスは、オペレーティングシステムの初期化中に使用されたサービスを初期化し、サービスマネージャにサービスを登録するように構成されるサービスロードプロセスであって良い。また、system_serverプロセスは、オペレーティングシステムの他の活動を管理するためにアクティビティマネージャを開始しても良い。クラスのすべての代わりにpre−system_serverクラスリストのクラスのみをロードすることによって、システムはプリロードされるクラスの数を削減することによってクラスをプリロードすること専用の時間の量を減少して良い。pre−system_serverクラスリストは、各クラスのロード時間、各クラスを使用するプロセス数、及び/または各クラスの優先順位を示す任意の他のパラメータに基づいて生成されて良い。例えば、pre−system_serverクラスリストの中のクラスは、閾値ロード時間(例えば、1つの非制限的な例では1250μs)よりも小さいロード時間を有して良く、プロセスの閾値数(例えば、1つの非制限的な例での10のプロセス)より多くによって使用されて良い。pre−system_serverクラスリストは、system_serverのロードを可能にするためにsystem_serverプロセスを含んで良い。いくつかの例では、system_serverは、pre−system_serverクラスリストの他のすべてのクラスがロードされた後にロードされる最後のプロセスであって良い。ANDROID(登録商標)オペレーティングシステムのためのpre−system_serverクラスの例のリストは、付録Iで以下に示される。例のリストは網羅的でないことがあり、追加のクラスまたは代替のクラスは、コンピューティング装置上のオペレーティングシステム/ソフトウェア、コンピューティング装置/ハードウェア、コンピューティング装置の使用/環境等の要因に基づいて含まれて良い、またはリストから削除されて良い。任意の適切な閾値ロード時間及びプロセスの閾値数が、本開示の範囲から逸脱することなくpre−system_serverクラスリストを生成するために活用されて良いことが理解されるべきである。
208で、方法200は、スレッドプールを使用しリソースをロードすることを含む。リソースは、レイアウト定義、アニメーション命令、ビットマップ、ユーザーインタフェース文字列等の、アプリケーションまたは他のソフトウェアが活用する追加のファイル及びコンテンツを含んで良い。いくつかの例では、初期化中にロードされるすべてのリソースは208でロードされて良い。他の例では、リソースは上述されるようにクラスに類似して段階的にロードされて良い(例えば、pre−system_server段階でロードされたリソースのサブセット、及びpre−system_server段階でロードされるリソースのサブセット)。210で、方法はsystem_serverをロードするためにsystem_serverプロセスに分岐するために進む。分岐は、既存のプロセスをコピーすること、及び既存のプロセスのコピーの上にロードされる新しいプロセスをオーバレイすることを含んで良い。system_serverプロセスは、要求された通りに他のアプリケーションに分岐するために使用されて良い。したがって、方法200は212に進んで、(例えば、アプリケーションを立ち上げる要求に基づいて)アプリケーションに分岐するコマンドを受け取るためにプロセス間通信ソケットで待機する。アプリケーションに分岐する係るコマンドを受け取ると、system_serverプロセスはそれ自体のコピーを作成し、要求されたアプリケーションをロードするためにコピー上に要求されたアプリケーションをオーバレイして良い。
214に示されるように、post−system_serverクラスリストからのクラスは、system_serverプロセスに分岐後にロードされて良い。post−system_serverクラスリストは、pre−system_serverクラスリストに関して上述されたロード時間閾値及び/またはプロセス閾値に基づいて生成されて良い。例えば、post−system_serverクラスリストは、初期化手順の一部としてロードされるが、上述されたロード時間閾値(例えば、1つの非制限例での1250μs)を超えるロード時間を有し、プロセスの閾値数(例えば、1つの非制限例では10プロセス)より多くによって活用されるクラスを含んで良い。ANDOROIDオペレーティングシステムのpost−system_serverクラスの例のリストは、付録IIで以下に示される。例のリストは網羅的でなくてもよく、追加のクラスまたは代替のクラスは、コンピューティング装置上のオペレーティングシステム/ソフトウェア、コンピューティング装置/ハードウェア、コンピューティング装置の使用/環境等の要因に基づいて含まれて良いまたはリストから削除されて良い。任意の適切な閾値ロード時間及びプロセスの閾値数が、本開示の範囲を逸脱することなくpost−system_serverクラスリストを生成するために活用されて良いことが理解されるべきである。いくつかの例では、追加のロード段階が活用されて良い。例えば、pre−system_serverクラスリスト及び/またはpost−system_serverクラスリストは、初期化ルーチンの間の異なる段階でのロードのために追加のリストに分割されて良い。
図3は、車両301の内側で構成及び/または統合された車両内コンピューティングシステム300のブロック図を示す。車両内コンピューティングシステム300は、図1の車両内コンピューティングシステム109の例であって良い、及び/またはいくつかの実施形態では図2の方法200等、本明細書に説明された方法の1つまたは複数を実行して良い。いくつかの例では、車両内コンピューティングシステムは、オペレータの車両内での経験を充実させるために車両ユーザーに情報をベースにしたメディアコンテンツ(エンターテインメントコンテンツ、ナビゲーションサービス等を含んだ音声メディアコンテンツ及び/または視覚メディアコンテンツ)を提供するように構成された車両インフォテインメントシステムであって良い。車両インフォテインメントシステムは、運転者及び/または乗客にとっての車両内の経験を充実させるために、車両301に統合されるまたは統合可能であるソフトウェアアプリケーション及びシステムだけではなく、多様な車両システム、サブシステム、ハードウェア構成要素も含んで良い、またはソフトウェアアプリケーション及びシステムだけではなく、多様な車両システム、サブシステム、ハードウェア構成要素にも結合されて良い。
車両内コンピューティングシステム300は、オペレーティングシステムプロセッサ314及びインタフェースプロセッサ320を含む1つまたは複数のプロセッサを含んで良い。オペレーティングシステムプロセッサ314は、車両内コンピューティングシステムでオペレーティングシステムを実行し、車両内コンピューティングシステムの入出力操作、表示操作、プレイバック操作、及び他の操作を制御して良い。インタフェースプロセッサ320は、車両間システム通信モジュール322を介して車両制御システム330とインタフェースで接続して良い。
車両間システム通信モジュール322は、例えば車両制御システム330を介して他の車両構成要素及びシステム331、361からデータ入力を受け取りながら、他の車両システム331及び車両制御要素361にデータを出力して良い。データ出力時、車両間システム通信モジュール322は、車両の任意のステータス、車両の周囲の状況、または車両に接続された任意の他の情報源の出力に対応してバスを介して信号を提供して良い。車両データ出力は、例えば(現在の速度等の)アナログ信号、(クロック、温度計、グローバルポジショニングシステム[GPS]センサ等の場所センサ等の)個々の情報源によって提供されるデジタル信号、(エンジン関係の情報がそれを通って通信されて良いエンジンコントローラエリアネットワーク[CAN]バス、クライメートコントロール関係の情報がそれを通って通信されて良いクライメートコントロールCANバス、及び車両内のマルチメディア構成要素間でマルチメディアデータがそれを通して通信されるマルチメディアデータネットワーク等の)車両データネットワークを通して伝播されるデジタル信号を含んで良い。例えば、車両内コンピューティングシステムはエンジンCANバスから、車輪センサにより推定される車両の現在の速度、車両のバッテリ及び/または配電システムを介した車両の電力状態、車両のイグニションの状態等を取り出して良い。さらに、イーサネット(登録商標)等の他のインタフェース手段も本開示の範囲から逸脱することなく使用されて良い。
不揮発性記憶装置308は、不揮発性の形でプロセッサ314及び320によって実行可能な命令等のデータを記憶するために車両内コンピューティングシステム300に含まれて良い。記憶装置308は、クラウドベースのサーバに接続する、及び/またはクラウドベースのサーバへの伝送のために情報を収集するためのアプリケーションを車両内コンピューティングシステム300が実行できるようにするためにアプリケーションデータを記憶して良い。アプリケーションは、車両システム/センサ、入力装置(例えば、ユーザーインタフェース318)、車両内コンピューティングシステムと通信する装置(例えば、ブルートゥース(登録商標)リンクを介して接続されたモバイル機器)等によって収集された情報を取り出して良い。車両内コンピューティングシステム300は、揮発性メモリ316をさらに含んで良い。揮発性メモリ316はランダムアクセスメモリ(RAM)であって良い。不揮発性記憶装置308及び/または揮発性メモリ316等の非一過性記憶装置は、プロセッサ(例えば、オペレーティングシステムプロセッサ314及び/またはインタフェースプロセッサ320)によって実行されるときに、本開示に説明されるアクションの1つまたは複数の実行するために車両内コンピューティングシステム300を制御する命令及び/コードを記憶して良い。
マイク302は、ユーザーからコマンドを受け取って、車両内の周囲雑音を測定し、車両のスピーカからの音声が車両の音響環境に従って調整されるかどうか等を判断するために車両内コンピューティングシステム300に含まれて良い。音声処理ユニット304は、マイク302から受け取られた音声コマンド等の音声コマンドを処理して良い。また、いくつかの実施形態では、車両内コンピューティングシステム300は、音声コマンドを受け取り、車両の音声システム332に含まれたマイクを使用し、周囲車両雑音をサンプリングできることもある。
1つまたは複数の追加のセンサは車両内コンピューティングシステム300のセンササブシステム310に含まれて良い。例えば、センササブシステム310は、車両を駐車する際にユーザーを支援するためのリヤビューカメラ及び/または(例えば、顔認識及び/またはユーザージェスチャを使用し)ユーザーを識別するためのキャビンカメラ等のカメラを含んで良い。車両内コンピューティングシステム300のセンササブシステム310は、多様な車両センサと通信し、多様な車両センサから入力を受け取って良く、さらにユーザー入力を受け取って良い。例えば、センササブシステム310によって受け取られる入力は、(伝熱流体温度、不凍液温度、ファン速度、乗客コンパートメント温度、所望される乗客コンパートメント温度、周囲湿度等の)クライメートコントロールシステムセンサ、ユーザーによって発せられる音声コマンドを検出するための音声センサ、車両のフォブからコマンドを受け取り、任意選択で車両のフォブの地理的な位置/近接性を追跡調査するフォブセンサからの入力だけではなく、変速機歯車位置、トランスミッションクラッチ位置、アクセルペダル入力、ブレーキ入力、トランスミッションセレクタ位置、車両速度、エンジン速度、エンジンを通る塊の空気の流れ、周囲温度、吸気温度等も含んで良い。特定の車両システムセンサはセンササブシステム310単独と通信して良いが、他のセンサはセンササブシステム310と車両制御システム330の両方と通信して良い、または車両制御システム330を介して間接的にセンササブシステム310と通信して良い。車両内コンピューティングシステム300のナビゲーションサブシステム311は、(例えば、GPSセンサ及び/またはセンササブシステム310からの他のセンサを介して)場所情報、経路誘導、交通情報、ポイントオブインタレスト(POI)識別等のナビゲーション情報を生成及び/または受信して良い、ならびに/または運転者に他のナビゲーションサービスを提供して良い。
車両内コンピューティングシステム300の外部装置インタフェース312は、車両301の外部に位置する1つまたは複数の外部装置340に結合可能であって良い、及び/または1つまたは複数の外部装置340と通信して良い。外部装置は車両301に外部に位置するとして示されているが、例えばユーザーが車両301を操作中に外部装置を操作しているとき等、外部装置が車両301に一時的に収容されて良いことが理解されるべきである。言い換えると、外部装置340は車両301に不可欠ではない。外部装置340は(ブルートゥース(登録商標)接続を介して接続された)モバイル機器342または代替のブルートゥース(登録商標)で有効化された装置352を含んで良い。モバイル機器342は、携帯電話、スマートフォン、有線通信及び/もしくは無線通信を介して車両内コンピューティングシステムと通信して良いウェアラブル装置/センサ、または他の携帯用電子機器(複数の場合がある)であって良い。他の外部装置は外部サービス346を含む。例えば、外部装置は、車両と分離し、車両にとって外部に位置する車外装置を含んで良い。さらに他の外部装置は、ソリッドステートドライブ、ペンドライブ、USBドライブ等の外部記憶装置354を含む。外部装置340は、本開示の範囲から逸脱することなく無線でまたはコネクタを介してのどちらかで車両内コンピューティングシステム300と通信して良い。例えば、外部装置340は、ネットワーク360、ユニバーサルシリアルバス(USB)接続、直接有線接続、直接無線接続、及び/または他の通信リンクを介して外部装置インタフェース312を通して車両内コンピューティングシステム300と通信して良い。外部装置インタフェース312は、車両内コンピューティングシステムがドライバの接点と関連付けられたモバイル機器と通信できるようにするために通信インタフェースを提供して良い。例えば、外部装置インタフェース312は、電話呼を確立する、及び/または(例えば、図2のSMSサーバ202、電話サービス204、及び/またはeメールサービス206を介して)テキストメッセージ(例えば、SMS、MMS等)をドライバの接点と関連付けられたモバイル機器に(例えば、セルラー通信網を介して)送信できるようにして良い。
1つまたは複数のアプリケーション344は、モバイル機器342で操作可能であって良い。一例として、モバイル機器アプリケーション344は、ユーザーのモバイル機器との対話に関するユーザーデータを集約するために操作されて良い。例えば、モバイル機器アプリケーション344は、モバイル機器でユーザーによって聞かれる音楽のプレイリスト、(ユーザーによって受け入れられた通話の周波数及び持続時間を含む)通話ログ、ユーザーによってしばしば訪れられる場所及び各場所で過ごされた時間の量を含む位置情報等に関するデータを集約して良い。収集されたデータは、アプリケーション344によってネットワーク360を介して外部装置インタフェース312に転送されて良い。さらに、特定のユーザーデータ要求は、外部装置インタフェース312を介して車両内コンピューティングシステム300からモバイル機器342で受け取られて良い。特定のデータ要求は、ユーザーが地理的にどこに位置するのか、ユーザーの場所での周囲雑音レベル及び/または音楽ジャンル、ユーザーの場所での周囲気象状態(温度、湿度等)等を判断するための要求を含んで良い。モバイル機器アプリケーション344は、要求されたデータをモバイル機器で取集できるようにするために構成要素(例えば、マイク等)またはモバイル機器342の他のアプリケーション(例えばナビゲーションアプリケーション)に制御命令を送信して良い。モバイル機器アプリケーション344は次に収集された情報を車両内コンピューティングシステム300に中継し直して良い。
同様に、1つまたは複数のアプリケーション348は、外部サービス346で操作可能であって良い。例として、外部サービスアプリケーション348は、複数のデータソースからデータを集約する及び/または解析するために操作されて良い。例えば、外部サービスアプリケーション348は、ユーザーの1つまたは複数のソーシャルメディアアカウントからのデータ、車両内コンピューティングシステムからのデータ(例えば、センサデータ、ログファイル、ユーザー入力等)、インターネットクエリーからのデータ(例えば、天気データ、POIデータ)等を集約して良い。収集されたデータは、運転者、車両、及び環境の状況を判断し、状況(例えば、データを要求すること/他の装置にデータを送信すること)に基づいてアクションを実行するために別の装置に送信されて良い及び/またはアプリケーションによって解析されて良い。
車両制御システム330は、異なる車両内機能に関与する多様な車両システム331の態様を制御するための制御装置を含んで良い。これらは、例えば車両占有者が他者との電気通信リンクを確立できるようにするための電気通信システム336の態様だけではなく、例えば車両占有者に音声エンターテインメントを提供するための車両音声システム332の態様、車両占有者のキャビン冷房または暖房のニーズを満たすためのクライメートコントロールシステム334の態様を制御することも含んで良い。
音声システム332は、スピーカ等の電磁変換器を含む1つまたは複数の音響再現装置を含んで良い。車両音声システム332は、例えば電力増幅器を含むことによって受動的または能動的であって良い。いくつかの例では、車両内コンピューティングシステム300は音響再現装置の唯一の音声ソースであって良い、または音響再現システム(例えば、携帯電話等の外部装置)に接続される他の音声ソースがあって良い。あらゆる係る外部装置の音響再現装置への接続は、アナログ、デジタル、またはアナログ技術及びデジタル技術の任意の組合せであって良い。
クライメートコントロールシステム334は、車両301のキャビンまたは乗客コンパートメントの中に快適な環境を提供するように構成されて良い。クライメート制御システム334は、換気口、加熱器、エアコン、統合加熱器及びエアコンシステム等の制御されている換気を可能にする構成要素を含む。加熱及び空調セットアップにリンクされた他の構成要素は、フロントガラスをきれいにできるフロントガラス除霜及び除霧システム、ならびに吸気口を通して乗客コンパートメントに進入する外部空気を清潔にするための換気フィルタを含んで良い。
また、車両制御システム330は、ステアリングホイール制御装置362(例えば、ステアリングホイールに取り付けられた音声システム制御装置、クルーズコントロール、風防ワイパー制御装置、ヘッドライト制御装置、方向指示器制御装置等)、計器パネル制御装置、マイク(複数の場合がある)、アクセルペダル/ブレーキペダル/クラッチペダル、ギアシフト、運転者ドアまたは乗客ドアに位置決めされたドア制御装置/窓制御装置、座席制御装置、キャビンライト制御装置、音声システム制御装置、キャビン温度制御装置等の車両のキャビンの中のエンジン及び/または補助要素に関係する多様な車両制御装置361(または車両システム制御要素)の設定値を調整するための制御装置を含んでも良い。また、制御信号は車両の音声システム332の1つまたは複数のスピーカで音声出力を制御しても良い。例えば、制御信号は、ボリューム、均等化、音声画像(例えば、1つまたは複数の画定された場所から生じるためにユーザーに対して表示される音声出力を生じさせるための音声信号の構成)、複数のスピーカの間の音声分散等の音声出力特性を調整して良い。同様に、制御信号は、クライメートコントロールシステム334のベント、エアコン、及び/または加熱器を制御して良い。例えば、制御信号は、キャビンの特定の区域への冷却された空気の送達を増して良い。
また、車両の外部に位置決めされた制御要素(例えば、セキュリティシステムのための制御装置)は、通信モジュール322を介して等、コンピューティングシステム300に接続されても良い。車両制御システムの制御要素は、ユーザー入力を受け取るために車両の上及び/または中に物理的に且つ恒久的に位置決めされて良い。車両内コンピューティングシステム300から制御命令を受け取ることに加えて、車両制御システム330は、モバイル機器342から等、ユーザーによって操作される1つまたは複数の外部装置340から入力を受け取っても良い。これは、車両システム331及び車両制御装置361の態様を、外部装置340から受け取られたユーザー入力に基づいて制御できるようにする。
車両内コンピューティングシステム300は、アンテナ306をさらに含んで良い。アンテナ306は単一アンテナとして示されているが、いくつかの実施形態では1つまたは複数のアンテナを含んで良い。車両内コンピューティングシステムはアンテナ306を介して広帯域無線インターネットアクセスを入手して良く、無線、テレビ、天気、交通等の放送信号をさらに受信して良い。車両内コンピューティングシステムは、1つまたは複数のアンテナ306を介してGPS信号等の位置決め信号を受信して良い。また、車両内コンピューティングシステムは、アンテナ(複数の場合がある)306を介してまたは適切な受信装置を通して赤外線手段若しくは他の手段を介して等、RFを介して無線コマンドを受け取っても良い。いくつかの実施形態では、アンテナ306は音声システム332または電気通信システム336の一部として含まれて良い。さらに、アンテナ306は外部装置インタフェース312を介して(例えば、モバイル機器342へ等)外部装置340へAM/FM無線信号を提供して良い。
車両内コンピューティングシステム300の1つまたは複数の要素は、ユーザーインタフェース318を介してユーザーによって制御されて良い。ユーザーインタフェース318は、図1のタッチスクリーン108等のタッチスクリーンに提示されるグラフィックユーザーインタフェース、及び/またはユーザーによって作動されるボタン、スイッチ、ノブ、ダイヤル、スライダ等を含んで良い。例えば、ユーザーによって作動される要素はステアリングホイール制御装置、ドア制御装置及び/または窓制御装置、計器パネル制御装置、音声システム設定値、クライメートコントロールシステム設定値等を含んで良い。また、ユーザーは、ユーザーインタフェース318を介して車両内コンピューティングシステム300及びモバイル機器342の1つまたは複数のアプリケーションと対話しても良い。ユーザーインタフェース318でユーザーの車両設定の好みを受け取ることに加えて、車両内制御システムによって選択された車両設定値はユーザーインタフェース318でユーザーに表示されて良い。ナビゲーション支援だけではなく通知メッセージ及び他のメッセージ(例えば、受信されたメッセージ)は、ユーザーインタフェースのディスプレイでユーザーに表示されて良い。ユーザーの好み/ユーザー情報及び/または提示されたメッセージに対する応答はユーザーインタフェースへのユーザー入力を介して実行されて良い。
図4は、オペレーティングシステムで選択的にサービスをロードするための方法400のフローチャートである。方法400は、図1の車両内コンピューティング装置109等のコンピューティング装置によって実行されて良い。402で、方法はsystem_serverを起動することを含む。例えば、方法400は、コンピューティング装置のオペレーティングシステム及び/または他のソフトウェアを初期化し、操作するために図2の方法200の間及び/または後210に実行されて良い。system_serverは、404に示されるように、重大なサービス(例えば、システムの機能にとって重大であり、それがないと、システムが機能しない可能性がある、または不十分に機能する可能性があるサービス)をロードするために活用されて良い。例えば、パッケージマネージャ、ウィンドウマネージャ、入力マネージャ、及び取付けサービス等のサービスは、ANDROID(登録商標)オペレーティングシステムの機能にとって重大である場合があるサービスの例である。404に示されるように重大なサービスをロードすることは、重大なサービスだけをロードすること、及び任意の他のサービスをロードしないこと(例えば、それがなくてもシステムが依然として機能できる重大ではないサービスはロードしないこと)を含んで良い。(後にロードされて良い及び/またはサービスの使用の要求に応えてのみロードされて良い)重大ではないサービスの例は(音声認識のための)UISpeechchService、BLUETOOTH(登録商標)マネージャ、(車両無線制御装置を調整するための)チューナーサービス等を含んで良い。
406で、方法は、ヒューマンマシンインタフェース(HMI)を立ち上げることを含む。例えば、ヒューマンマシンインタフェースは、ユーザーインタフェース(UI)及び/またはユーザーが初期化されているオペレーティングシステムと対話できるようにするコンピューティング装置及び/もしくはグラフィックユーザーインタフェース(GUI)を含んで良い。HMIは、408で示されるように、前回使用されたアプリケーションを含むアプリケーションを立ち上げるために活用されて良い。例えば、コンピューティング装置は車両内コンピューティング装置であって良く、前回使用されたアプリケーションは、車両及び/または車両内コンピューティングシステムが停止される前にアクティブであった最後のアプリケーション(例えば、ナビゲーションアプリケーション)であって良い。410で示されるように、前回使用されたアプリケーションを立ち上げることは、あらゆる従属サービス(複数の場合がある)、アプリケーション(複数の場合がある)、リソース(複数の場合がある)、クラス(複数の場合がある)等を立ち上げる及び/または初期化することを含んで良い。例えば、ナビゲーションアプリケーションは、車両の位置を突き止めるためのGPSサービス等の従属サービスを活用して良い。したがって、ナビゲーションは、立ち上げられるときにナビゲーションアプリケーションの適切な動作を保証するために、GPSサービスが410で立ち上げられることを要求して良い。いくつかの実施形態では、前回使用されたアプリケーションは、すべての従属サービス(複数の場合がある)等が立ち上げられた後に立ち上げられて良い。他の実施形態では、前回使用されたアプリケーションは従属サービス(複数の場合がある)等と並行して(例えば、従属サービスと同時に)立ち上げられて良い。412で、方法は要求に応えて残りのサービスを立ち上げることを含む。このようにして、サービス及び関連付けられた従属サービス/アプリケーションは、効率的で要求によって駆動される初期化プロセスを可能にするために、要求時に動的に立ち上げられて良い。
図5は、コンピューティング装置のオペレーティングシステムのサービスを管理する方法500のフローチャートである。例えば、方法500は、車両内コンピューティングシステムでロードされることを試みているアプリケーションによって発行されるサービス要求を処理するために図1の車両内コンピューティングシステム109によって実行されて良い。502で、方法はコンピューティング装置のサービスマネージャでサービスの要求を受け取ることを含む。要求は、504に示されるようにサービスを活用するアプリケーションから受け取られて良い。例えば、方法500は図4の方法400の410に関して説明されるように、立ち上げられることを試みているアプリケーションのための従属サービスを立ち上げるために実行されて良い。506で、方法500は、要求されたサービスがコンピューティング装置ですでに実行中であるかどうかを判断することを含む。サービスがすでに実行中ではない場合(例えば、506で「いいえ」)、方法は508に進んで、system_serviceプロセスに要求されたサービスを開始するように通知し、510に進んでサービスが開始するのを待機する。サービス開始時(またはサービスがすでに実行していた場合、506で「はい」)、方法は512に進んで、サービスの要求者(例えば、サービスを要求したアプリケーション)にサービスハンドルを返す。サービスハンドルは、サービスが開始される/開始された、及び/またはサービスを呼び出すためにアプリケーションによって活用されて良い旨の確認として役立って良い。
図6は、ドライバと異なる段階でロードされて良い関連付けられたハードウェアインスタンスとの関係性を示すブロック図である。図2に関して上述された異なる段階(例えば、pre―system_server段階及びpost‐system_server段階)でロードされて良いクラスと同様に、コンピューティング装置/オペレーティングシステムの初期化は、使用特性に基づいて段階的にドライバ及び関連付けられたハードウェアをロードすることによって加速されて良い。例えば、第1のドライバ、Driver1は、ハードウェアインスタンス602の第1のグループをサポートして良く、第2のドライバ、Driver2はハードウェアインスタンス604の第2のグループをサポートして良い。各ハードウェアインスタンスは、ハードウェアインスタンス602a‐d及び604a‐cのそれぞれの内側の番号によって示される初期化の特定の段階で使用されているとして指定されて良い。例えば、(Driver1によってサポートされる)ハードウェアインスタンス602b及び(Driver2によってサポートされる)ハードウェアインスタンス604aは、これらのハードウェアインスタンスの優先順位に基づいて段階1と関連付けられて良い。段階1ハードウェアインスタンスはシステムにとって最も重大なハードウェアインスタンスであって良い。言い換えると、段階1ハードウェアインスタンスは、システムの動作に影響を及ぼすことがある、及び/またはオペレーティングシステム初期化の間またはオペレーティングシステム初期化の直後に開始されるアプリケーションまたは他のプロセスによって活用されて良い。例えば、段階1ハードウェアインスタンスは、重大なサービスをロードするために活用されて良い、及び/または図4の方法400の404で参照された重大なサービスによって活用されて良い。
図6に示されるように、段階ごとに、陰影が付けられたハードウェアインスタンスは、その段階の間に初期化される、及び/またはその段階に進入するとすでに初期化されているハードウェアインスタンスを表す。例えば、段階1で、段階1として示されているすべてのハードウェアインスタンスは初期化されている(例えば、ハードウェアインスタンス602b及び604a)。段階2で、段階1として示されているハードウェアインスタンスはすでに初期化され、段階2として示されているハードウェアインスタンス(例えば、ハードウェアインスタンス602c及び604c)は新規に初期化されている。段階3で、すべてのハードウェアインスタンスはすでに初期化されている(段階1及び段階2のインスタンス)または新規に初期化されている(例えば、段階3ハードウェアインスタンス602a、602d、及び604b)かのどちらかである。いくつかのオペレーティングシステムは、関連付けられたカーネルに、どのハードウェア構成要素がシステムで利用できるのかを告げるためにデバイスツリーを活用して良い。ハードウェアインスタンスごとの初期化の段階の表示は、カーネルが段階に従ってハードウェアインスタンスを選択的にロードできるようにするためにデバイスツリーの新規エントリとして追加されて良い。
図7は、初期化されたドライバのためにハードウェアインスタンスを選択的に初期化する方法700のフローチャートである。方法700は、装置のために加速された起動速度を可能にするために、図1の車両内コンピューティングシステム109等の車両内コンピューティングシステムによって実行されて良い。702で、方法700は、オペレーティングシステムによって使用されるドライバを識別する通知を受け取ることを含む。ドライバの使用は、704で示されるようにアプリケーション及び/またはプロセスによって要求されて良い。例えば、system_serverプロセス及び/または他の初期化アプリケーション/プロセスは起動中にフラッシュメモリハードウェアをサポートするドライバの使用を要求して良い。706で、方法は702の通知で識別されたドライバを初期化することを含む。上述された例を続けると、フラッシュメモリは、コンピューティング装置の複数のメモリ管理回路コントローラ(MMCコントローラ)のうちの1つによって制御されて良い。すべてのMMCコントローラが単一のドライバによってサポートされるので、そのドライバは要求され、その後フラッシュメモリを使用する要求に応えて初期化されて良い。
708で、方法はドライバのハードウェア初期化ルーチンを呼び出すことを含む。ハードウェア初期化ルーチンは、ドライバによってサポートされるハードウェアインスタンスごとに、そのハードウェアインスタンスが、710で示されるように第1の段階で初期化されるかどうかを判断することを含む。例えば、図6に関して上述されるように、各ハードウェアインスタンスは、ハードウェアインスタンスがシステムによって使用され(したがって、初期化される)相対的な時間を示す、特定の段階と関連付けられて良い。所与のハードウェアインスタンスが第1の段階と関連付けられていない場合、次いで方法は、712に示されるように、関連付けられた段階リストでそのハードウェアインスタンスのエントリを追加すること(例えば、ハードウェアインスタンスが第2の段階と関連付けられている場合、第2の段階リストでハードウェアインスタンスのエントリを追加すること)を含む。逆に、所与のハードウェアインスタンスが第1の段階と関連付けられる場合、方法は、714に示されるようにそのハードウェアインスタンスを初期化することを含む。このようにして、ドライバによってサポートされる各ハードウェアインスタンスは評価されて良く、第1の段階で活用されるハードウェアインスタンスのみが、初期化ロード時間を削減するためにロードされる。
上述された例を続行すると、すべてのMMCコントローラは同じドライバによってサポートされるので、フラッシュメモリのためにMMCコントローラをサポートするドライバを初期化することにより、各MMCコントローラ(及び関連付けられたハードウェア)は評価されて良い。例えば、別のMMCコントローラは、第3の段階と関連付けられて良い、WiFiチップ等のネットワーキングハードウェアを制御して良い(例えば、WiFiチップは、初期化プロセスでフラッシュメモリよりもはるかに遅くまで、または初期化プロセスがすでに完了した後には必要とされない/要求されないことがある)。したがって、MMCコントローラドライバをロードするとき、(第1の段階と関連付けられた)フラッシュメモリのためのMMCコントローラが初期化されて良い。一方、(第3の段階と関連付けられた)WiFiカードのためのMMCコントローラは、第3の段階に到達すると初期化されるために第3の段階リストに追加されて良い。このようにして、複数のハードウェアインスタンスをサポートするドライバがロードされる場合にも、要求されたハードウェアインスタンスのみがロードされ、それによって初期化ロード時間を削減し得る。
716で、方法は、すべてのドライバが完了されたかどうかを判断することを含む。例えば、706〜714に説明されたプロセスは、使用のために要求されるすべてのドライバについて繰り返されて良い。いくつかの実施形態では、システムのすべてのドライバはステップ706〜714を介して評価されて良い。いずれかの例では、(使用及び/またはシステムのすべてのドライバのために要求される)すべてのドライバが完了されていない場合(例えば、716で「いいえ」)、方法は706に戻って、次のドライバを初期化し、その次のドライバのためにハードウェア初期化ルーチンを通って進む。(使用及び/またはシステムのすべてのドライバのために要求される)すべてのドライバが完了されている場合(例えば、716で「はい」)、方法は718に進んで、アプリケーション/プロセス(例えば、702/704でドライバ/ハードウェアインスタンスの使用を要求したアプリケーション/プロセス)を開始する。方法700の前のステップは、第1の初期化段階の間にオペレーティングシステムのカーネルを介して完了された可能性がある。アプリケーションを開始後、システムは車両、コンピューティング装置、及び/またはユーザー入力の状態を管理/監視し、カーネルに段階の遷移を知らせて良い。720で、方法は段階変更通知(例えば、初期化の第1の段階から第2の段階へ変更すること)を待機することを含む。例えば、段階変更通知は、現在の段階のためにすべてのロードタスク及び他のタスクを完了することに応えて、または新しいアプリケーションロード要求に応えて提供されて良い。段階変更に応えて、方法は、722に示されるように通知で識別された段階と関連付けられたハードウェアインスタンスのリストを取り出すことを含む。例えば、712で関連付けられた段階リストに第1の段階でただちに初期化されない各ハードウェアインスタンスを追加することにより、722で参照されて良い、段階ごとのハードウェアインスタンスのリストの生成及び更新が可能になる。取り出されたリストのすべてのハードウェアインスタンスは724で初期化される。
所与の段階のための各ハードウェアインスタンスを初期化することに応えて、方法は726に進んで、すべての段階が完了されているかどうかを評価する。例えば、システムは、初期化されていない追加のハードウェアインスタンスがさらなる段階リストに存在するかどうかを判断して良い。すべての段階が完了されていない場合(例えば、726で「いいえ」)、方法は720に戻って、段階が次の段階に変化するのを待機する。すべての段階が完了されている場合(例えば、726で「はい」)、方法は終了する、またはさらなる初期化要求を待機するために戻る。
MMCコントローラ及び関連付けられたハードウェア要素(例えば、フラッシュメモリ及びWiFiチップ)に関して上述された例に加えて、他のドライバ/ハードウェア要素の組合せが、方法700の一部として評価され、初期化されて良い。追加の非制限例として、コンピューティング装置は、それぞれがタッチスクリーンセンサ、無線チューニング制御装置、及び電力管理チップのうちの1つに接続される、集積回路間コントローラ(12Cコントローラ)の3つのインスタンスを含んで良い。コンピューティング装置は、ブルートゥース(登録商標)チップ、車両インタフェース処理チップ等に接続するために使用されて良いシリアルバスインタフェース(例えば、万能非同期送受信機‐UART)の4つのインスタンスを含んで良い。係るコントローラのインスタンスは、上述されたMMCコントローラの例と同様にブートする段階に基づいて有効化されて良い。他の例では、ハードウェア要素(例えば、USBインタフェース/チップ、ディスプレイ等)は、関連付けられた段階でロードされて良い単一のドライバと関連付けられた単一のインスタンスとして存在して良い。例えば、ディスプレイは、1つのハードウェアインスタンス(ディスプレイ)しかサポートしないディスプレイドライバと関連付けられて良い。したがって、ディスプレイが(例えば)段階2と関連付けられる場合、ディスプレイドライバは段階2までロード/初期化されないことがある。ドライバ初期化時、1つのハードウェアインスタンスだけがドライバによってサポートされるので、ハードウェアインスタンスはドライバの初期化に応えて初期化されて良い。
図8は、コンピューティング装置に前回使用されたアプリケーションをロードするための方法800のフローチャートである。例えば、方法800は、図1の車両内コンピューティング装置109等の車両内コンピューティング装置によって実行されて良い。802で、方法800はコンピューティング装置を起動することを含む。804で、方法は、ナビゲーションアプリケーションがコンピューティング装置での前回使用されたアプリケーションであったと判断することを含む。例えば、ナビゲーションアプリケーションは、コンピューティング装置の前回の停止イベント時に実行していた最後のアプリケーションであった可能性がある、及び/またはユーザー入力を受け取る及び/またはコンピューティング装置の停止イベントの前にアクションを実行するための最後のアプリケーションであることがある。806で、方法は、ナビゲーションアプリケーションによって使用されるサービスの要求を受け取ることを含む。コンピューティング装置ですでに実行中ではない要求からのあらゆるサービスは、808で示されるようにロードされて良い。要求されたサービスごとのサービスハンドルは、810でナビゲーションアプリケーションに返される。812で、方法はGPSセンサのためのドライバ(複数の場合がある)のユーザーに対する要求を受け取ることを含む。例えば、ナビゲーションアプリケーションは動作するためにGPSセンサを活用して良く、したがってアプリケーションはGPSセンサのためのドライバがロードされて、この要素へのアクセスを可能にすることを要求して良い。
814で、方法は、GPSセンサをサポートするあらゆるドライバと関連付けられたハードウェア初期化ルーチンを呼び出すことを含む。GPSセンサは816で初期化され、初期化の現在の(または前の)段階と関連付けられ、ドライバによってサポートされたあらゆる残りのハードウェアインスタンスが818でロードされる。例えば、初期化ルーチンが段階1にあり、GPSセンサをサポートするドライバも段階1と関連付けられた(例えば、段階1の間に初期化される/使用されるとして示される)他のハードウェアインスタンスをサポートする場合、係るハードウェアインスタンスは818でロードされる。820で、方法は、ドライバによってサポートされるが、初期化の現在の段階または前の段階と関連付けられていないハードウェアインスタンスのための関連付けられた段階リストにエントリを追加することを含む。GPSセンサ及び従属サービスを初期化すると、ナビゲーションアプリケーションは822でHMIを介して立ち上げられて良い。
上記システム及び方法は、プロセッサと、それぞれが関連付けられたドライバによってサポートされる複数のハードウェアインスタンスと、車両内コンピューティング装置のドライバを初期化するための命令を記憶する記憶装置とを含む車両内コンピューティング装置を提供し、命令は、ハードウェアインスタンスのためのドライバを識別する通知を受け取り、通知で識別されたドライバを初期化し、ドライバによってサポートされるハードウェアインスタンスごとに、そのハードウェアインスタンスが初期化の第1の段階と関連付けられるかどうかを判断し、識別されたハードウェアインスタンス、及び初期化の第1の段階と関連付けられるドライバによってサポートされる他の各ハードウェアインスタンスを初期化するためにプロセッサによって実行可能である。車両内コンピューティング装置の第1の例では、命令は、さらにまたは代わりに、ドライバによってサポートされ、初期化の第1の段階と関連付けられていない残りのハードウェアインスタンスごとのエントリを、その残りのハードウェアインスタンスと関連付けられた段階の段階リストの中に追加するためにさらに実行可能である。車両内コンピューティング装置の第2の例は任意選択で第1の例を含み、命令が、それぞれの残りのハードウェアインスタンスを、その残りのハードウェアインスタンスと関連付けられた段階の間に、その段階と関連付けられた取り出された段階リストに基づいて初期化するためにさらに実行可能であることをさらに含む。車両内コンピューティング装置の第3の例は、第1の例及び第2の例のうちの1つまたは複数を任意選択で含み、命令が、バーチャルマシンを初期化し、第1のクラスリストから選択されたクラスをロードし、コンピューティング装置のリソースをロードし、オペレーティングシステムのサービスを初期化し、サービスマネージャにサービスを登録するように構成されたサービスロードプロセスをロードするためにさらに実行可能であることをさらに含む。車両内コンピューティング装置の第4の例は、第1の例から第3の例のうちの1つまたは複数を任意選択で含み、命令が、サービスロードプロセスをロード後に第2のクラスリストから選択されたクラスをロードするためにさらに実行可能であることをさらに含む。車両内コンピューティング装置の第5の例は、第1の例から第4の例のうちの1つまたは複数を任意選択で含み、第1のクラスリストの各クラスは、ロード時間閾値未満であるロード時間を有し、プロセス閾値よりも大きいプロセスの数によって活用されること、及び第2のクラスリストの各クラスがロード時間閾値よりも大きいロード時間を有し、プロセス閾値よりも大きいプロセスの数によって活用されることをさらに含む。車両内コンピューティング装置の第6の例は、第1の例から第5の例のうちの1つまたは複数を任意選択で含み、命令が、ソケット上で待機して、アプリケーションに分岐するコマンドを受け取るためにさらに実行可能であること、及び要求されたアプリケーションに分岐するコマンドを受け取ることに応えて、要求されたアプリケーションをロードするために要求されたアプリケーションに分岐することをさらに含む。車両内コンピューティング装置の第7の例は、第1の例から第6の例のうちの1つまたは複数を任意選択で含み、サービスロードプロセスをロードすることが、ヒューマンマシンインタフェースを立ち上げる前にサービスロードプロセスで重大なサービスだけをロードすることをさらに含むことをさらに含む。車両内コンピューティング装置の第8の例は、第1の例から第7の例のうちの1つまたは複数を任意選択で含み、命令が、ヒューマンマシンインタフェースを立ち上げ、ヒューマンマシンインタフェースを介して前回使用されたアプリケーションを立ち上げるためにさらに実行可能であることをさらに含む。車両内コンピューティング装置の第9の例は、第1の例から第8の例のうちの1つまたは複数を任意選択で含み、コンピューティング装置のサービスマネージャで要求されたサービスのためにアプリケーションから要求を受け取ることと、要求されたサービスがコンピューティング装置ですでに実行中であるかどうかを判断することと、要求されたサービスがすでに実行中ではない場合、要求されたサービスを開始することと、要求されたサービスが実行中である場合にアプリケーションに要求されたサービスと関連付けられたサービスハンドルを返すこととをさらに含む。
また、上記のシステム及び方法は、コンピューティング装置でハードウェアインスタンスを選択的に初期化するための方法を提供し、方法は、ハードウェアインスタンスのためのドライバを識別する通知を受け取ることと、通知で識別されたドライバを初期化することと、ドライバによってサポートされるハードウェアインスタンスごとに、そのハードウェアインスタンスが初期化の第1の段階と関連付けられているかどうかを判断することと、識別されたハードウェアインスタンス、及び初期化の第1の段階と関連付けられるドライバによってサポートされる他の各ハードウェアインスタンスを初期化することとを含む。方法の第1の例は、ドライバによってサポートされ、初期化の第1の段階と関連付けられないそれぞれの残りのハードウェアインスタンスのためのエントリを、その残りのハードウェアインスタンスと関連付けられた段階の段階リストに追加することをさらに含む。方法の第2の例は任意選択で第1の例を含み、そのハードウェアインスタンスがどの段階で初期化されるのかを示すためにコンピューティング装置が利用できるハードウェアインスタンスごとに、記憶装置に記憶されるデバイスツリーにエントリを追加することをさらに含む。方法の第3の例は、第1の例及び第2の例のうちの1つまたは複数を任意選択で含み、バーチャルマシンを初期化すること、第1のクラスリストから選択されたクラスをロードすること、コンピューティング装置のリソースをロードすること、オペレーティングシステムのサービスを初期化し、サービスマネージャにサービスを登録するように構成されたサービスロードプロセスをロードすること、及びサービスロードプロセスのロード後に、第2のクラスリストから選択されたクラスをロードすることをさらに含む。方法の第4の例は、第1の例から第3の例のうちの1つまたは複数を任意選択で含み、第1のクラスリストの各クラスがロード時間閾値未満であるロード時間を有し、プロセス閾値よりも大きいプロセスの数によって活用されること、及び第2のクラスリストの各クラスがロード時間閾値よりも大きいロード時間を有し、プロセス閾値よりも大きいプロセスの数によって活用されることをさらに含む。方法の第5の例は、第1の例から第4の例のうちの1つまたは複数を任意選択で含み、サービスロードプロセスをロードすることが、ヒューマンマシンインタフェースを立ち上げる前にサービスロードプロセスで重大なサービスだけをロードすることと、ヒューマンマシンインタフェースを立ち上げることと、ヒューマンマシンインタフェースを介して前回使用されたアプリケーションを立ち上げることとをさらに含むことをさらに含む。
また、上記のシステム及び方法は、プロセッサ、及びアプリケーションから、ハードウェアインスタンスのためのドライバを識別する通知を受け取り、通知で識別されたドライバを初期化し、ドライバのハードウェア初期化ルーチンを呼び出し、ドライバによってサポートされるハードウェアインスタンスごとに、そのハードウェアインスタンスが初期化の第1の段階と関連付けられているかどうかを判断し、識別されたハードウェアインスタンス、及び初期化の第1の段階と関連付けられるドライバによってサポートされる他の各ハードウェアインスタンスを初期化し、ドライバによってサポートされ、初期化の第1の段階と関連付けられないそれぞれの残りのハードウェアインスタンスのエントリを、その残りのハードウェアインスタンスと関連付けられた段階の段階リストに追加し、アプリケーションを起動するためにプロセッサによって実行可能な命令を記憶する記憶装置を含むコンピューティング装置も提供する。コンピューティング装置の第1の例では、命令は、さらにまたは代わりに、段階変更通知を待機し、段階変更通知で識別された段階と関連付けられたハードウェアインスタンスのリストを取り出し、取り出された段階リストに含まれるすべてのハードウェアインスタンスを初期化するためにさらに実行可能であり、アプリケーションの起動することは起動されていない状態からアプリケーションを起動することを含む。コンピューティング装置の第2の例は第1の例を任意選択で含み、バーチャルマシンを初期化し、第1のクラスリストから選択されたクラスをロードし、コンピューティング装置のリソースをロードし、オペレーティングシステムのサービスを初期化し、サービスマネージャにサービスを登録するように構成されたサービスロードプロセスをロードし、サービスロードプロセスのロード後に第2のクラスリストから選択されたクラスをロードするためにさらに実行可能な命令をさらに含む。コンピューティング装置の第3の例は、第1の例及び第2の例のうちの1つまたは複数を任意選択で含み、サービスロードプロセスをロードすることがヒューマンマシンインタフェースを立ち上げる前にサービスロードプロセスで重大なサービスだけをロードすることと、ヒューマンマシンインタフェースを立ち上げることと、ヒューマンマシンインタフェースを介して前回使用されたアプリケーションを立ち上げることとをさらに含む。
実施形態の説明は、図示及び説明のために提示されている。実施形態に対する適切な変更形態及び変形形態は、上記説明を鑑みて実行されて良い、または方法を実施することから取得されて良い。例えば、特に記載のない限り、説明された方法のうちの1つまたは複数は、図1に関して説明された車両内コンピューティングシステム109等の適切な装置及び/または装置の組合せによって実行されて良い。方法は、記憶装置、メモリ、ハードウェアネットワークインタフェース/アンテナ、スイッチ、アクチュエータ、クロック回路等の1つまたは複数の追加のハードウェア要素と組み合わせて、1つまたは複数の論理装置(例えば、プロセッサ)を用いて記憶されている命令を実行することによって実行されて良い。説明されている方法及び関連付けられたアクションはまた、本願に説明される順序に加えて、並行して及び/または同時に、多様な順序で実行されても良い。説明されているシステムは本来例示的であり、追加の要素を含んで良い、及び/または要素を省略して良い。例えば、多くの例示的な例はANDOROIDオペレーティングシステム及び車両内コンピューティング装置を参照して説明されているが、上述された方法及びシステムが任意の適切なハードウェア(例えば、携帯コンピューティング装置、スマートフォン、タブレット、ラップトップ、デスクトップコンピューティング装置、サーバコンピューティングシステム等)及び/またはオペレーティングシステムに含まれて良い、及び/または任意の適切なハードウェア(例えば、携帯コンピューティング装置、スマートフォン、タブレット、ラップトップ、デスクトップコンピューティング装置、サーバコンピューティングシステム等)及び/またはオペレーティングシステムによって活用されて良いことが理解されるべきである。本開示の主題は、多様なシステム及び構成、ならびに開示されている他の特徴、機能、及び/または特性のすべての新規且つ非自明の組合せ及びサブコンビネーションを含む。
本願で使用されるように、単数で列挙され、単語「a」または「an」が先行する要素またはステップは、係る除外が明記されない限り、複数の該要素またはステップを除外しないとして解釈されるべきである。さらに、本開示の「一実施形態」または「一例」に対する参照は列挙された特徴も取り込む追加の実施形態の存在を除外するとして解釈されることを意図していない。用語「第1の」、「第2の」、及び「第3の」等はラベルとして使用されるにすぎず、それらのオブジェクトに対する数的要件または特定の位置的な順序を課すことを意図していない。以下の特許請求の範囲は、新規且つ非自明と見なされる上記開示の主題を特に指摘する。

Claims (15)

  1. 車両内コンピューティング装置であって、
    プロセッサと、
    それぞれが関連付けられたドライバによってサポートされる、複数のハードウェアインスタンスと、
    前記車両内コンピューティング装置のドライバを初期化するための命令を記憶する記憶装置であって、前記命令が、前記プロセッサによって、
    ハードウェアインスタンスのためのドライバを識別する通知を受け取る、
    前記通知で識別された前記ドライバを初期化する、
    前記ドライバによってサポートされるハードウェアインスタンスごとに、そのハードウェアインスタンスが初期化の第1の段階と関連付けられているかどうかを判断する、
    前記識別されたハードウェアインスタンス、及び初期化の第1の段階と関連付けられる前記ドライバによってサポートされる他の各ハードウェアインスタンスを初期化する
    ために実行可能である、前記記憶装置と、
    を備える、前記車両内コンピューティング装置。
  2. 前記命令が、前記ドライバによってサポートされ、初期化の前記第1の段階と関連付けられないそれぞれの残りのハードウェアインスタンスのエントリを、その残りのハードウェアインスタンスと関連付けられた段階の段階リストに追加するためにさらに実行可能である、請求項1に記載の車両内コンピューティング装置。
  3. 前記命令が、それぞれの残りのハードウェアインスタンスを、その残りのハードウェアインスタンスと関連付けられた前記段階の間に、その段階と関連付けられた取り出された段階リストに基づいて初期化するためにさらに実行可能である、請求項2に記載の車両内コンピューティング装置。
  4. 前記命令が、バーチャルマシンを初期化し、第1のクラスリストから選択されたクラスをロードし、前記コンピューティング装置のリソースをロードし、前記オペレーティングシステムのサービスを初期化し、サービスマネージャに前記サービスを登録するように構成されたサービスロードプロセスをロードするためにさらに実行可能である、請求項1から3のいずれか1項に記載の車両内コンピューティング装置。
  5. 前記命令が、前記サービスロードプロセスをロード後に第2のクラスリストから選択されたクラスをロードするためにさらに実行可能であり、前記第1のクラスリストの各クラスが、ロード時間閾値未満であるロード時間を有し、プロセス閾値よりも大きいプロセスの数によって活用され、第2のクラスリストの各クラスが前記ロード時間閾値よりも大きいロード時間を有し、前記プロセス閾値よりも大きいプロセス数によって活用される、請求項4に記載の車両内コンピューティング装置。
  6. 前記命令が、ソケットで待機してアプリケーションに分岐するコマンドを受け取り、要求されたアプリケーションに分岐するコマンドを受け取ったことに応えて、前記要求されたアプリケーションに分岐して、前記要求されたアプリケーションをロードするためにさらに実行可能である、請求項1から5のいずれか1項に記載の車両内コンピューティング装置。
  7. 前記サービスロードプロセスをロードすることが、ヒューマンマシンインタフェースを立ち上げる前に前記サービスロードプロセスで重大なサービスだけをロードすることをさらに含む、請求項4から6のいずれか1項に記載の車両内コンピューティング装置。
  8. 前記命令が、前記ヒューマンマシンインタフェースを立ち上げ、前記ヒューマンマシンインタフェースを介して前回使用されたアプリケーションを立ち上げるためにさらに実行可能である、請求項4から7のいずれか1項に記載の車両内コンピューティング装置。
  9. 前記命令が、アプリケーションから前記コンピューティング装置のサービスマネージャで要求されたサービスのために要求を受け取り、前記要求されたサービスが前記コンピューティング装置ですでに実行中であるかどうかを判断し、前記要求されたサービスがすでに実行中ではない場合、前記要求されたサービスを開始し、前記要求されたサービスが実行中である場合前記アプリケーションに前記要求されたサービスと関連付けられたサービスハンドルを返すためにさらに実行可能である、請求項1から8のいずれか1項に記載の車両内コンピューティング装置。
  10. コンピューティング装置でハードウェアインスタンスを選択的に初期化するための方法であって、
    ハードウェアインスタンスのためのドライバを識別する通知を受け取ることと、
    前記通知で識別された前記ドライバを初期化することと、
    前記ドライバによってサポートされるハードウェアインスタンスごとに、そのハードウェアインスタンスが初期化の第1の段階と関連付けられているかどうかを判断することと、
    前記識別されたハードウェアインスタンス、及び初期化の第1の段階に関連付けられる前記ドライバによってサポートされる他の各ハードウェアインスタンスを初期化することと、
    を含む前記方法。
  11. 前記ドライバによってサポートされ、初期化の前記第1の段階と関連付けられないそれぞれの残りのハードウェアインスタンスのエントリを、その残りのハードウェアインスタンスと関連付けられる段階の段階リストに追加することをさらに含む、請求項10に記載の方法。
  12. ハードウェアインスタンスがどの段階で初期化されるのかを示すために、前記コンピューティング装置が利用できるハードウェアインスタンスごとに、前記記憶装置に記憶されたデバイスツリーにエントリを追加することをさらに含む、請求項11に記載の方法。
  13. バーチャルマシンを初期化することと、第1のクラスリストから選択されたクラスをロードすることと、前記コンピューティング装置のリソースをロードすることと、前記オペレーティングシステムのサービスを初期化し、サービスマネージャに前記サービスを登録するように構成されたサービスロードプロセスをロードすることと、前記サービスロードプロセスをロード後に第2のクラスリストから選択されたクラスをロードすることをさらに含む、請求項10から12のいずれか1項に記載の方法。
  14. 前記第1のクラスリストの各クラスが、ロード時間閾値未満であるロード時間を有し、プロセス閾値よりも大きいプロセスの数で活用され、前記第2のクラスリストの各クラスが前記ロード時間閾値よりも大きいロード時間を有し、前記プロセス閾値よりも大きいプロセスの数で活用される、請求項13に記載の方法。
  15. 前記サービスロードプロセスをロードすることが、ヒューマンマシンインタフェースを立ち上げる前に前記サービスロードプロセスで重大なサービスだけをロードすることと、前記ヒューマンマシンインタフェースを立ち上げることと、前記ヒューマンマシンインタフェースを介して前回使用されたアプリケーションを立ち上げることとをさらに含む、請求項13または14のいずれか1項に記載の方法。
JP2017501025A 2014-07-10 2015-07-09 オペレーティングシステム起動加速 Active JP6577566B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
IN3428/CHE/2014 2014-07-10
IN3428CH2014 2014-07-10
PCT/US2015/039750 WO2016007748A1 (en) 2014-07-10 2015-07-09 Operating system startup acceleration

Publications (2)

Publication Number Publication Date
JP2017521789A true JP2017521789A (ja) 2017-08-03
JP6577566B2 JP6577566B2 (ja) 2019-09-18

Family

ID=53776954

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017501025A Active JP6577566B2 (ja) 2014-07-10 2015-07-09 オペレーティングシステム起動加速

Country Status (6)

Country Link
US (1) US10776130B2 (ja)
EP (1) EP3167360B1 (ja)
JP (1) JP6577566B2 (ja)
KR (1) KR102388840B1 (ja)
CN (1) CN106663009B (ja)
WO (1) WO2016007748A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020149317A (ja) * 2019-03-13 2020-09-17 株式会社デンソー 車両用装置

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102372644B1 (ko) * 2017-08-23 2022-03-17 삼성전자주식회사 운영 체제의 운용 방법 및 이를 지원하는 전자 장치
EP3991033A1 (en) * 2019-06-27 2022-05-04 Clark Equipment Company Methods and apparatus for startup processes for a power machine
CN110795153A (zh) * 2019-09-16 2020-02-14 武汉融卡智能信息科技有限公司 电子设备及其硬件配置方法和装置

Citations (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05250168A (ja) * 1992-03-06 1993-09-28 Fujitsu Ltd プログラム起動方式及びプログラムインストール方式
JPH08155145A (ja) * 1994-12-02 1996-06-18 Namco Ltd ゲームプログラムおよびデータの読込み方法、ならびにこれを用いたゲーム装置
JP2000322264A (ja) * 1999-05-12 2000-11-24 Mitsubishi Electric Corp 電子機器
JP2006172305A (ja) * 2004-12-17 2006-06-29 Nec Corp 無線基地局装置及びプログラムダウンロード方法並びにそのプログラム
JP2006338664A (ja) * 2005-06-03 2006-12-14 Qnx Software Systems Gmbh & Co Kg オペレーティングシステム初期化中においてコードを実行するためのシステム
JP2009217711A (ja) * 2008-03-12 2009-09-24 Mitsubishi Electric Corp 情報処理装置
JP2010079566A (ja) * 2008-09-25 2010-04-08 Alpine Electronics Inc 情報処理装置およびアプリケーション起動方法
JP2011039745A (ja) * 2009-08-10 2011-02-24 Ricoh Co Ltd 情報処理装置、情報処理方法、及び情報処理プログラム
JP2011043932A (ja) * 2009-08-20 2011-03-03 Ricoh Co Ltd 情報処理装置
JP2011096145A (ja) * 2009-10-30 2011-05-12 Pioneer Electronic Corp 情報処理装置、起動制御方法、起動制御プログラムおよび記録媒体
JP2011186657A (ja) * 2010-03-05 2011-09-22 Aisin Aw Co Ltd 車載機器制御装置、車載機器制御方法、及び車載機器制御プログラム
JP2012234539A (ja) * 2011-04-29 2012-11-29 Lenovo Singapore Pte Ltd ブート・パフォーマンスを向上させたシステム及び方法
JP2013033369A (ja) * 2011-08-02 2013-02-14 Lenovo Singapore Pte Ltd メイン・メモリのフリー・メモリ量を拡大する方法およびコンピュータ
US20130054945A1 (en) * 2011-08-24 2013-02-28 Microsoft Corporation Adaptive sensing for early booting of devices
CN103092656A (zh) * 2013-01-23 2013-05-08 深圳市航盛电子股份有限公司 一种导航系统及导航方法
US20130198502A1 (en) * 2012-01-30 2013-08-01 Michael A. Rothman Method For Reducing Platform Boot Times By Providing Lazy Input/Output Abstractions
CN103324506A (zh) * 2013-06-24 2013-09-25 上海天奕达电子科技有限公司 一种控制Android应用程序安装的方法及手机
CN103488478A (zh) * 2013-09-03 2014-01-01 厦门雅迅网络股份有限公司 基于android平台的设备管理框架

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5752032A (en) * 1995-11-21 1998-05-12 Diamond Multimedia Systems, Inc. Adaptive device driver using controller hardware sub-element identifier
US20030115443A1 (en) * 2001-12-18 2003-06-19 Cepulis Darren J. Multi-O/S system and pre-O/S boot technique for partitioning resources and loading multiple operating systems thereon
US7174447B2 (en) * 2003-11-14 2007-02-06 Intel Corporation Providing a pre-boot driver for use during operating system runtime of a computer system
US7154658B2 (en) * 2005-04-08 2006-12-26 The Boeing Company Wavefront correction system
US20060252466A1 (en) * 2005-05-05 2006-11-09 Isabell Gene P Jr Mechanism for using a laptop in an automobile
JP2006323549A (ja) * 2005-05-18 2006-11-30 Hitachi Ltd システムの起動方法
KR100772867B1 (ko) * 2006-02-23 2007-11-02 삼성전자주식회사 복수의 애플리케이션에 대해 부분적으로 분리된 수행환경을 제공하는 방법 및 이를 이용한 디지털 정보 기기
EP1944690A3 (de) * 2006-12-19 2009-05-20 Continental Automotive GmbH Verfahren, Vorrichtung und System
DE102007010763A1 (de) 2007-03-06 2008-09-11 Zf Friedrichshafen Ag Verfahren zur adaptiven Konfigurationserkennung
US7996666B2 (en) * 2007-09-04 2011-08-09 Apple Inc. User influenced loading sequence of startup applications
CN101794249B (zh) * 2009-03-06 2012-02-08 威盛电子股份有限公司 微处理器及初始化微处理器的方法
CN102693136B (zh) * 2011-03-23 2016-06-01 联想(北京)有限公司 计算机的快速启动方法、快速启动系统及启动系统
US20130311762A1 (en) * 2012-05-17 2013-11-21 International Business Machines Corporation Providing user access to specific programs and documents before the booting process is completed
TWI479421B (zh) * 2013-02-04 2015-04-01 Wistron Corp 開機方法與電子裝置
CN103744700A (zh) * 2013-12-23 2014-04-23 乐视致新电子科技(天津)有限公司 一种系统启动方法及电子设备
WO2015150871A1 (en) * 2014-04-02 2015-10-08 Continental Automotive Gmbh Early rear view camera video display in a multiprocessor architecture
EP3126989B1 (en) * 2014-04-02 2019-07-03 Continental Automotive GmbH Early logo display in a multiprocessor architecture

Patent Citations (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05250168A (ja) * 1992-03-06 1993-09-28 Fujitsu Ltd プログラム起動方式及びプログラムインストール方式
JPH08155145A (ja) * 1994-12-02 1996-06-18 Namco Ltd ゲームプログラムおよびデータの読込み方法、ならびにこれを用いたゲーム装置
JP2000322264A (ja) * 1999-05-12 2000-11-24 Mitsubishi Electric Corp 電子機器
JP2006172305A (ja) * 2004-12-17 2006-06-29 Nec Corp 無線基地局装置及びプログラムダウンロード方法並びにそのプログラム
JP2006338664A (ja) * 2005-06-03 2006-12-14 Qnx Software Systems Gmbh & Co Kg オペレーティングシステム初期化中においてコードを実行するためのシステム
JP2009217711A (ja) * 2008-03-12 2009-09-24 Mitsubishi Electric Corp 情報処理装置
JP2010079566A (ja) * 2008-09-25 2010-04-08 Alpine Electronics Inc 情報処理装置およびアプリケーション起動方法
JP2011039745A (ja) * 2009-08-10 2011-02-24 Ricoh Co Ltd 情報処理装置、情報処理方法、及び情報処理プログラム
JP2011043932A (ja) * 2009-08-20 2011-03-03 Ricoh Co Ltd 情報処理装置
JP2011096145A (ja) * 2009-10-30 2011-05-12 Pioneer Electronic Corp 情報処理装置、起動制御方法、起動制御プログラムおよび記録媒体
JP2011186657A (ja) * 2010-03-05 2011-09-22 Aisin Aw Co Ltd 車載機器制御装置、車載機器制御方法、及び車載機器制御プログラム
JP2012234539A (ja) * 2011-04-29 2012-11-29 Lenovo Singapore Pte Ltd ブート・パフォーマンスを向上させたシステム及び方法
JP2013033369A (ja) * 2011-08-02 2013-02-14 Lenovo Singapore Pte Ltd メイン・メモリのフリー・メモリ量を拡大する方法およびコンピュータ
US20130054945A1 (en) * 2011-08-24 2013-02-28 Microsoft Corporation Adaptive sensing for early booting of devices
US20130198502A1 (en) * 2012-01-30 2013-08-01 Michael A. Rothman Method For Reducing Platform Boot Times By Providing Lazy Input/Output Abstractions
CN103092656A (zh) * 2013-01-23 2013-05-08 深圳市航盛电子股份有限公司 一种导航系统及导航方法
CN103324506A (zh) * 2013-06-24 2013-09-25 上海天奕达电子科技有限公司 一种控制Android应用程序安装的方法及手机
CN103488478A (zh) * 2013-09-03 2014-01-01 厦门雅迅网络股份有限公司 基于android平台的设备管理框架

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ZIGURD MEDNIEKS, LAIRD DORNIN, G.BLAKE MEIKE, MASUMI NAKAMURA, プログラミングANDROID, vol. 第1版, JPN6019010125, 16 February 2012 (2012-02-16), JP, pages 91 - 92, ISSN: 0004002740 *
安藤ろいど, ANDROIDアプリケーション開発のためのやさしいJAVA入門, vol. 第1版, JPN6019010123, 25 February 2012 (2012-02-25), JP, pages 298 - 300, ISSN: 0004002739 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020149317A (ja) * 2019-03-13 2020-09-17 株式会社デンソー 車両用装置

Also Published As

Publication number Publication date
EP3167360A1 (en) 2017-05-17
WO2016007748A1 (en) 2016-01-14
KR102388840B1 (ko) 2022-04-20
CN106663009B (zh) 2021-08-17
JP6577566B2 (ja) 2019-09-18
CN106663009A (zh) 2017-05-10
US10776130B2 (en) 2020-09-15
KR20170032283A (ko) 2017-03-22
EP3167360B1 (en) 2022-02-09
US20170206092A1 (en) 2017-07-20

Similar Documents

Publication Publication Date Title
JP6567642B2 (ja) オペレーティングシステム起動加速
EP3482344B1 (en) Portable personalization
CN108284840B (zh) 结合乘员偏好的自主车辆控制系统和方法
US9910660B2 (en) Operating system replacement for in-vehicle computing system
EP3502862A1 (en) Method for presenting content based on checking of passenger equipment and distraction
US20160214621A1 (en) Controlling vehicle systems with mobile devices
US10379871B2 (en) Operating system startup acceleration
JP2015129753A (ja) 車内通知提示のスケジューリング
JP2015032314A5 (ja)
JP6577566B2 (ja) オペレーティングシステム起動加速
US20170364138A1 (en) In-vehicle computing system with power conserving maintenance tasks
WO2023241185A1 (zh) 人机交互方法和装置
WO2023096659A1 (en) Method for power states in vehicles

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180510

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190325

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190625

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190723

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190822

R150 Certificate of patent or registration of utility model

Ref document number: 6577566

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250