(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-03-10
(45)【発行日】2025-03-18
(54)【発明の名称】プロセス制御方法及び装置
(51)【国際特許分類】
G06F 11/07 20060101AFI20250311BHJP
【FI】
G06F11/07 196
(21)【出願番号】P 2023518240
(86)(22)【出願日】2021-09-16
(86)【国際出願番号】 CN2021118827
(87)【国際公開番号】W WO2022057863
(87)【国際公開日】2022-03-24
【審査請求日】2023-05-23
(31)【優先権主張番号】202010993180.3
(32)【優先日】2020-09-21
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】503433420
【氏名又は名称】華為技術有限公司
【氏名又は名称原語表記】HUAWEI TECHNOLOGIES CO.,LTD.
【住所又は居所原語表記】Huawei Administration Building, Bantian, Longgang District, Shenzhen, Guangdong 518129, P.R. China
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】チェン,ミーン
(72)【発明者】
【氏名】イー,プオンシアーン
(72)【発明者】
【氏名】ホゥ,ホゥイフオン
【審査官】円子 英紀
(56)【参考文献】
【文献】特開2014-160295(JP,A)
【文献】中国特許出願公開第111381952(CN,A)
【文献】中国特許出願公開第109992376(CN,A)
【文献】特開2017-097462(JP,A)
【文献】野村 駿,AndroidにおけるLRUを用いた終了プロセスの選定,情報処理学会論文誌 コンシューマ・デバイス&システム(CDS),情報処理学会,2015年02月12日,第5巻,第1号,pp.9-19
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/07
(57)【特許請求の範囲】
【請求項1】
プロセス制御方法であって、
端末デバイス上で実行中の第1のアプリケーションの第1のプロセス及び第3のプロセスに関する情報を取得することと、
前記第1のプロセス及び前記第3のプロセスの情報に基づいて、前記第1のプロセスをキルし、前記第3のプロセスを保持することと、
前記第1のアプリケーションの第2のプロセスを制御することであって、前記第2のプロセスは一度キルされている、ことと、を含
み、
前記第1のアプリケーションの第2のプロセスを制御することは、
前記第2のプロセスが、ユーザ知覚可能なプロセスであるかどうかを判定することと、
前記第2のプロセスがユーザ知覚可能なプロセスである場合、前記第2のプロセスが起動されることを許可することと、を含む、方法。
【請求項2】
前記第1のプロセスに関する前記情報は、メイン・プロセス、フォアグラウンド・プロセス若しくはバックグラウンド・プロセス、オーディオ対話プロセス、ナビゲーション・プロセス、アップロード若しくはダウンロード・プロセス、歩数プロセス、adj情報、又はadjType情報のうちの1つを含む、請求項1に記載の方法。
【請求項3】
前記方法は、
前記第2のプロセスのパッケージ名及びプロセス名をマーキングすることをさらに含み、
前記第1のアプリケーションの第2のプロセスを制御することは、
前記第2のプロセスのマーキング結果に基づいて、前記第2のプロセスを制御することを含む、請求項1又は2に記載の方法。
【請求項4】
前記制御することの持続時間は、第1の期間である
、請求項1~3のいずれか一項に記載の方法。
【請求項5】
前記第1のアプリケーションの第2のプロセスを制御することは、
前記第2のプロセスが、一度キルされたプロセスであると判定することと、
前記第2のプロセスが起動されることを禁止することと、を含む、請求項1~4のいずれか一項に記載の方法。
【請求項6】
前記第1のアプリケーションの前記第2のプロセスを制御することは
、
前記第2のプロセスがユーザ知覚可能なプロセスでない場合、前記第2のプロセスが起動されることを禁止すること
を含む、請求項1~4のいずれか一項に記載の方法。
【請求項7】
前記ユーザ知覚可能なプロセスは、フォアグラウンド・プロセス、インターフェース上で視認可能なプロセス、警告プロセス、アップロード・プロセス、ダウンロード・プロセス、又はフォアグラウンド・プロセスと関係するプロセスのうちの1つを含む、請求項6に記載の方法。
【請求項8】
前記方法は、
前記第2のプロセスがキルされた第1の瞬間をマーキングすることをさらに含み、
前記第2のプロセスが起動されることを許可することは、
前記第2のプロセスが起動される第2の瞬間を取得することと、
前記第2の瞬間と前記第1の瞬間の間隔が、第1の閾値未満である場合、前記第2のプロセスの有効再起動回数を1増加させることと、を含む、請求項6又は7に記載の方法。
【請求項9】
前記方法は、
前記第2のプロセスの前記有効再起動回数を取得することと、
前記有効再起動回数が第2の閾値よりも大きい場合、前記第2のプロセスを保持すると判定することと、さらに含む、請求項8に記載の方法。
【請求項10】
電子デバイスであって、
プログラムを記憶するように構成されているメモリと、
前記メモリに記憶された前記プログラムを実行するように構成されたプロセッサと、を含み、前記メモリに記憶された前記プログラムが実行されるときに、前記プロセッサは、請求項1~9のいずれか一項に記載の方法を実行することが可能となる、電子デバイス。
【請求項11】
プログラム・コードを記憶するコンピュータ可読記憶媒体であって、前記プログラム・コードが、プロセッサによって実行されるときに、前記プロセッサは、請求項1~9のいずれか一項に記載の方法を実行することが可能となる、コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
この出願は、2020年9月21日に中国国家知識産権局に出願された「PROCESS CONTROL METHOD AND APPARATUS」と題する中国特許出願第202010993180.3号に対する優先権を主張し、その全体が参照により本明細書に組み込まれる。
【0002】
この出願は、端末分野に関係し、より具体的には、プロセス制御方法及び装置に関係する。
【背景技術】
【0003】
Androidシステムでネイティブのロー・メモリ・キラー(low memory killer、LMK)がトリガされると、ユーザにとって重要なアプリケーションがこれに従ってキルされることがある。したがって、オリジナル機器メーカ(original equipment manufacturer、OEM)のアプリケーション制御が、デバイスがメモリ不足であるときに、アプリケーションを積極的にキルし、LMKトリガの頻度を減少させている。
【0004】
システムがアップグレードされると、システムとアプリケーションにおいてメモリ・ブロートが発生する。したがって、デバイスがメモリ不足であるときに、より多くのアプリケーションをキルする必要がある。従来技術では、アプリケーション全体がキルされるので、次回はコールド・スタートによってユーザによってアプリケーションが起動され、ユーザ体験に影響を与える。例えば、ゲームで遊ぶときに、ユーザはメッセージに応答するためにWeChatアプリケーションに切り替える。時間が非常に短い場合でも、ゲーム・アプリケーションはシステムによってキルされる。結果として、ユーザは、ゲームを再起動する必要があり、これは、ユーザ体験を大きく劣化させる。
【0005】
したがって、メモリとアプリケーションのキープ・アライブをバランスさせる方法は特に重要である。
【発明の概要】
【0006】
この出願は、端末デバイスにおける各プロセスに対してインテリジェント制御を実装し、メモリが解放されている間にユーザにとって重要なプロセスがキルされることを防止するためのプロセス制御方法及び装置を提供して、ユーザ体験を向上させる。
【0007】
第1の態様によれば、端末デバイス上で実行中の第1のアプリケーションの第1のプロセスに関する情報、パッケージ名、及びプロセス名を取得することと、第1のプロセスに関する情報に基づいて、第1のプロセスをキルすると判定することと、第1のプロセスのパッケージ名及びプロセス名をマーキングすることと、第2のプロセスのパッケージ名及びプロセス名のマーキング結果に基づいて、第2のプロセスを制御することと、を含むプロセス制御方法が提供される。
【0008】
既存の制御方法は、アプリケーション・レベルの制御のみを実行することがある。しかしながら、この出願の実施形態におけるプロセス制御方法は、プロセスレベル制御を実装してもよい。プロセスがユーザにとって重要であるかどうかは、プロセスの1つ以上の特徴の複数の判定結果に基づいて判定され、プロセスを保持するか、又はキルするかを決定するようにする。このようにして、アプリケーション内の複数のプロセスに対して、アプリケーション全体を保持し、過剰にメモリを占有する代わりに、又はメモリのためにユーザにとって重要なアプリケーション全体をキルする代わりに、いくつかのプロセスが保持されてもよく、いくつかのプロセスがキルされてもよく、ユーザ体験に影響を与える。プロセスがキルされるときに、この出願の実施形態におけるプロセス制御方法は、プロセスのパッケージ名及びプロセス名をマーキングすることをさらに含み、マーキング結果に基づいてプロセスをその後制御するようにする。
【0009】
第1の態様のいくつかの可能な実装では、第1のプロセスに関する情報は、メイン・プロセス、フォアグラウンド・プロセス又はバックグラウンド・プロセス、オーディオ対話プロセス、ナビゲーション・プロセス、アップロード又はダウンロード・プロセス、歩数プロセス、adj情報、及びadjType情報を含む。
【0010】
この出願の実施態様におけるプロセス制御方法によれば、訓練することによって取得された決定木が使用されて、前述を含むプロセス情報に基づいて、プロセスがキルされるか、保持されるかを判定する。プロセスがユーザにとって重要であるかどうかは、前述のプロセス情報に基づいて判定され、プロセスをキルするかどうかを決定するようにする。
【0011】
第1の態様のいくつかの可能な実装では、制御の持続時間は、第1の時間である。
【0012】
この出願の実施態様におけるプロセス制御方法によれば、プロセスは、連続期間にわたって制御され、例えば、プロセスのアプリケーションが端末デバイスによってアンインストールされるまで制御が実行される。
【0013】
第1の態様のいくつかの可能な実装では、第1のプロセスのパッケージ名及びプロセス名をマーキングすることは、第1のプロセスがキルされる第1の瞬間をマーキングすることをさらに含む。
【0014】
第1の態様のいくつかの可能な実装では、第2のプロセスのパッケージ名及びプロセス名のマーキング結果に基づいて、第2のプロセスを制御することは、第2のプロセスを起動することと、第2のプロセスのパッケージ名及びプロセス名に基づいて、第2のプロセスが、キルされたプロセスであると判定することと、第2のプロセスが起動されることを禁止することと、を含む。
【0015】
第1の態様のいくつかの可能な実装では、第2のプロセスのパッケージ名及びプロセス名のマーキング結果に基づいて、第2のプロセスを制御することは、第2のプロセスを起動することと、第2のプロセスのパッケージ名及びプロセス名のマーキング結果に基づいて、第2のプロセスが、キルされたプロセスであると判定することと、第2のプロセスが、ユーザ知覚可能なプロセスであるかどうかを判定することであって、ユーザ知覚可能なプロセスは、フォアグラウンド・プロセス及び/又はインターフェース及び/又は警告プロセス上で視認可能なプロセスを含む、ことと、第2のプロセスがユーザ知覚可能なプロセスである場合、第2のプロセスが起動されることを許可することか、又は第2のプロセスがユーザ知覚可能なプロセスでない場合、第2のプロセスが起動されることを禁止することと、を含む。
【0016】
キルされた後、多くのプロセスが不可避的に、自動的に再起動される。プロセスが制御されない場合、以前のキル作業は期待外れになるだろう。したがって、この出願の実施形態におけるプロセス制御方法は、キルされた後に自動的に再起動されるプロセスの制御をさらに含む。この出願の実施態様におけるプロセス制御方法によれば、プロセスが、キルされた後に再起動されるプロセスであるかどうかは、プロセスのパッケージ名及びプロセス名のマーキング結果に基づいて判定される。プロセスが、キルされた後に再起動されるプロセスである場合、そのプロセスが起動されることは禁止される。代替的には、この出願の実施形態におけるプロセス制御方法は、再起動されるプロセスがユーザ知覚可能なプロセスであるかどうかを判定することによって、プロセスの再起動を禁止又は実行することを決定してもよい。プロセスがユーザ知覚可能なプロセスである場合、プロセスの再起動が必要であるとみなされる。プロセスがユーザ知覚不可能なプロセスである場合、プロセスの再起動が不必要であるとみなされる。
【0017】
第1の態様のいくつかの可能な実装では、第1のプロセスが再起動されることを許可することは、第1のプロセスが起動される第2の瞬間を取得することと、第2の瞬間と第1の瞬間の間隔が、第1の閾値未満である場合、第1のプロセスの有効再起動回数を1増加させることと、をさらに含む。
【0018】
第1の態様のいくつかの可能な実装では、第1のプロセスをキルする前に、方法は、第1のプロセスの有効再起動回数を取得することと、有効再起動回数が第2の閾値よりも大きい場合、第1のプロセスを保持することと、をさらに含む。
【0019】
インテリジェント決定エンジンによって判定されるプロセスの特徴は限定されるので、ユーザにとって重要なプロセスが誤ってキルされることを防止するために、この出願の実施形態におけるプロセス制御方法は、インテリジェント決定エンジンのフォールト・トレランス・メカニズムをさらに含む。すなわち、制御決定結果がキルすることであるときに、プロセスの有効再起動回数が取得され、プロセスが本当にキルされる必要があるかどうかは、有効再起動回数に基づいて判定される。
【0020】
第2の態様によれば、端末デバイス上で実行中の第1のアプリケーションの第1のプロセスの情報、パッケージ名及びプロセス名を取得するように構成されている取得モジュールと、第1のプロセスに関する情報に基づいて、第1のプロセスをキルすると判定するように構成されている判定モジュールと、第1のプロセスのパッケージ名及びプロセス名をマーキングするように構成されている実行モジュールと、を含むプロセス制御装置が提供される。実行モジュールは、第2のプロセスのパッケージ名及びプロセス名のマーキング結果に基づいて、第2のプロセスを制御するようにさらに構成されている。
【0021】
第2の態様のいくつかの可能な実装では、第1のプロセスに関する情報は、メイン・プロセス、フォアグラウンド・プロセス又はバックグラウンド・プロセス、オーディオ対話プロセス、ナビゲーション・プロセス、アップロード又はダウンロード・プロセス、歩数プロセス、adj情報、及びadjType情報を含む。
【0022】
第2の態様のいくつかの可能な実装では、制御の持続時間は、第1の期間である。
【0023】
第2の態様のいくつかの可能な実装では、実行モジュールが、第1のプロセスのパッケージ名及びプロセス名をマーキングすることは、第1のプロセスがキルされる第1の瞬間をマーキングすることをさらに含む。
【0024】
第1の態様のいくつかの可能な実装では、実行モジュールが、第2のプロセスのパッケージ名及びプロセス名のマーキング結果に基づいて、第2のプロセスを制御することは、第2のプロセスを起動することと、第2のプロセスのパッケージ名及びプロセス名に基づいて、第2のプロセスが、キルされたプロセスであると判定することと、第2のプロセスが起動されることを禁止することと、を含む。
【0025】
第2の態様のいくつかの可能な実装では、実行モジュールが、第2のプロセスのパッケージ名及びプロセス名のマーキング結果に基づいて、第2のプロセスを制御することは、第2のプロセスを起動することと、第2のプロセスのパッケージ名及びプロセス名のマーキング結果に基づいて、第2のプロセスが、キルされたプロセスであると判定することと、第2のプロセスが、ユーザ知覚可能なプロセスであるかどうかを判定することであって、ユーザ知覚可能なプロセスは、フォアグラウンド・プロセス及び/又はインターフェース及び/又は警告プロセス上で視認可能なプロセスを含む、ことと、第2のプロセスがユーザ知覚可能なプロセスである場合、第2のプロセスが起動されることを許可することか、又は第2のプロセスがユーザ知覚可能なプロセスでない場合、第2のプロセスが起動されることを禁止することと、を含む。
【0026】
第2の態様のいくつかの可能な実装では、実行モジュールが、第1のプロセスが再起動されることを許可することは、第1のプロセスが起動される第2の瞬間を取得することと、第2の瞬間と第1の瞬間の間隔が、第1の閾値未満である場合、第1のプロセスの有効再起動回数を1増加させることと、をさらに含む。
【0027】
第2の態様のいくつかの可能な実装では、実行モジュールが、第1のプロセスをキルする前に、方法は、第1のプロセスの有効再起動回数を取得することと、有効再起動回数が第2の閾値よりも大きい場合、第1のプロセスを保持することと、をさらに含む。
【0028】
第3の態様によれば、電子デバイスは、プログラムを記憶するように構成されているメモリと、メモリに記憶されたプログラムを実行するように構成されているプロセッサと、を含み、メモリに記憶されたプログラムが実行されるときに、プロセッサは、第1の態様及び第1の態様の可能な実装における方法、並びに第2の態様及び第2の態様の可能な実装における方法を実行するように構成されている。
【0029】
第4の態様によれば、コンピュータ可読記憶媒体が提供され、コンピュータ可読記憶媒体は、プログラム・コードを記憶する。プログラム・コードは、第1の態様及び第1の態様の可能な実装における方法、並びに第2の態様及び第2の態様の可能な実装における方法の一部又は全部のステップを実行するための命令を含む。
【0030】
第5の態様によれば、この技術的解決策は、コンピュータ・プログラム製品を提供する。コンピュータ・プログラム製品が電子デバイス上で実行されるときに、電子デバイスは、第1の態様及び第1の態様の可能な実装におけるプロセス制御方法、並びに第2の態様及び第2の態様の可能な実装における方法を実行することが可能になる。
【0031】
第6の態様によれば、この技術的解決策は、チップ・システムが少なくとも1つのプロセッサを含むチップ・システムを提供する。少なくとも1つのプロセッサにおいてプログラム命令が実行されるときに、第1の態様及び第1の態様の可能な実装における可能な方法、並びに第2の態様及び第2の態様の可能な実装における可能な方法の機能が電子デバイス上に実装される。
【図面の簡単な説明】
【0032】
【
図1】この出願の一実施形態による電子デバイスの構造の概略図である。
【0033】
【
図2】この出願の一実施形態によるユーザ・インターフェースの概略ブロック図である。
【0034】
【
図3】この出願の一実施形態によるプロセス制御方法が適用されるシステム・アーキテクチャの概略図である。
【0035】
【
図4】この出願の一実施形態によるプロセス制御方法の概略フローチャートである。
【0036】
【
図5】この出願の一実施形態によるインテリジェント決定エンジンの概略ブロック図である。
【0037】
【
図6】この出願の一実施形態によるインテリジェント決定エンジンの再起動プロセス及び修正の制御の概略ブロック図である。
【0038】
【
図7】この出願の一実施形態によるプロセス制御装置の概略ブロック図である。
【0039】
【
図8】この出願の一実施形態によるプロセス制御装置の構造の概略図である。
【発明を実施するための形態】
【0040】
以下、この出願の実施形態における添付図面を参照して、この出願の実施形態における技術的解決策を簡潔に説明する。説明される実施形態は、この出願の実施形態のうちの一部であり、全部ではないことが明らかである。創造的努力を伴わずにこの出願の実施形態に基づいて当業者によって取得される他の実施態様はすべて、この出願の保護範囲に入るものとする。
【0041】
以下の実施形態で使用される用語は、単に特定の実施形態を説明することを目的にしているにすぎず、この出願を限定することを意図するものではない。この出願及び添付の特許請求の範囲の明細書で使用される場合、単数形の表現「a」、「an」、「the」、「the foregoing」、「such a」及び「this」は、文脈において別段の明確な指示がない限り、「1つ以上」のような表現も含むことを意図するものである。この出願の以下の実施態様において、「少なくとも1つ」又は「1つ以上」は、1つ、2つ又はそれ以上を意味するとさらに理解されたい。「及び/又は」は、関連するオブジェクト間の関連する関係を説明し、3つの関係が存在し得ることを示す。例えば、A及び/又はBは、Aのみが存在するケース、A及びBの両方が存在するケース、Bのみが存在するケースを示してもよく、A及びBは単数又は複数であってもよい。文字「/」は、一般に、関連するオブジェクト間の「又は」関係を示す。
【0042】
この出願のこの明細書で説明される「一実施形態」、「いくつかの実施形態」などを参照することは、実施形態を参照して説明される特定の特徴、構造、又は特徴が1つ以上の実施形態に含まれることを意味する。したがって、この明細書における異なる箇所に現れる「一実施形態において」、「いくつかの実施形態において」、「いくつかの他の実施形態において」、「他の実施形態において」などの記載は、必ずしも同じ実施形態を参照することを意味しない。その代わりに、その記載は、他の方法で特に強調しない限り、「すべてではなく1つ以上の実施形態」を意味する。用語「含む」、「有する」、及びそれらの変形はすべて、他の方法で特に強調しない限り、「含むが、それらに限定されない」を意味する。
【0043】
この出願の実施形態で提供されるプロセス制御方法は、電子デバイスに適用されてもよい。電子デバイスは、端末デバイスであってもよく、端末デバイスは、ユーザ機器(User Equipment、UE)、移動局(Mobile Station、MS)、移動端末(Mobile Terminal)などとも呼ばれる。任意選択で、端末デバイス(端末と呼ばれる)は、無線アクセス・ネットワーク(Radio Access Network、RAN)を使用して、1つ以上のコア・ネットワークと通信する能力を有してもよい。例えば、端末は、携帯電話(又は「セルラー」と呼ばれる)、セットトップ・ボックス、ウェアラブル・デバイス、モノのインターネット(Internet of Things、IOT)デバイス、移動性質を有するコンピュータなどであってもよい。例えば、端末は、代替的には、携帯可能な、ポケットサイズの、ハンドヘルドの、コンピュータ内蔵の、又は車載の移動装置であってもよい。端末デバイスに加えて、この出願の実施形態で提供されるプロセス制御方法は、別のタイプのコンピュータシステムにも適用可能であり得ると理解されたい。
【0044】
図1を参照する。
図1は、この出願の一実施形態による電子デバイスの構造の概略図である。
図1に示すように、電子デバイス100は、メモリ180、プロセッサ150、及び表示デバイス140を含む。メモリ180は、コンピュータ・プログラムを記憶し、コンピュータ・プログラムは、オペレーティング・システム・プログラム182、アプリケーション181などを含む。プロセッサ150は、メモリ180内のコンピュータ・プログラムを読み出し、コンピュータ・プログラムによって定義された方法を実行するように構成されている。例えば、プロセッサ150は、オペレーティング・システム・プログラム182を読み出して、電子デバイス100上でオペレーティング・システムを実行し、オペレーティング・システムの様々な機能を実行すること、又は1つ以上のアプリケーション181を読み出して、電子デバイス上でアプリケーションを実行すること、若しくはアプリケーションのブロードキャスト・メッセージを処理することなどを行う。
【0045】
プロセッサ150は、1つ以上のプロセッサを含んでもよい。例えば、プロセッサ150は、1つ以上の中央処理ユニットを含んでもよいし、1つ以上の中央処理ユニット及び1つ以上のアプリケーション・プロセッサを含んでもよい。プロセッサ150が複数のプロセッサを含むときに、複数のプロセッサは、同じチップに統合されてもよく、又は、複数のプロセッサの各々は、独立したチップであってもよい。1つのプロセッサは、1つ以上のプロセッサ・コア(又は処理コアと呼ばれる)を含んでもよい。以下の実施形態は、マルチコアを一例に取って説明される。しかしながら、この出願の実施形態で提供されるプロセス制御方法は、シングルコア・プロセッサにも適用されてもよい。シングルコア・プロセッサのタイム・シェアリング・ワーキング原理は、複数のアプリケーションを並列に実行するために使用される。
【0046】
追加的に、メモリ180は、コンピュータ・プログラムに加えて、他のデータ183をさらに記憶する。他のデータ183は、オペレーティング・システム182又はアプリケーション181が実行された後に生成されるデータなどを含んでもよい。データは、システム・データ(例えば、オペレーティング・システムの設定パラメータ)及びユーザ・データを含み、例えば、各アプリケーションに関するリソース使用量情報は、典型的なユーザ・データである。
【0047】
メモリ180は、一般に、内部メモリ及び外部メモリを含む。内部メモリは、ランダム・アクセス・メモリ、読み出し専用メモリ、キャッシュなどであってもよい。外部メモリは、ハード・ディスク、光ディスク、ユニバーサル・シリアル・バス(Universal Serial Bus、USB)ディスク、フロッピー・ディスク、テープ・ドライブなどであってもよい。コンピュータ・プログラムは、一般に、外部メモリに記憶され、プロセッサは、コンピュータ・プログラムを処理する前に、外部メモリから内部メモリにコンピュータ・プログラムをロードする。
【0048】
オペレーティング・システム・プログラム182は、この出願の実施形態で提供されるプロセス制御方法を実装し得るコンピュータ・プログラムを含む。したがって、プロセッサ150がオペレーティング・システム・プログラム182を読み出し、オペレーティング・システムを実行した後に、オペレーティング・システムには、この出願の実施形態で提供されるプロセス制御方法が提供され得る。
【0049】
電子デバイス100は、入力デジタル情報、文字情報、又は接触タッチ操作/非接触ジェスチャを受信し、電子デバイス100のユーザ・セッティング及び機能制御に関係する信号入力を生成するための入力デバイス130を含んでもよい。具体的には、この出願の実施形態では、入力デバイス130は、タッチ・パネル131を含んでもよい。タッチ・パネル131は、タッチ画面とも呼ばれ、タッチ・パネル131上又はその近くでユーザによって実行されたタッチ操作(例えば、ユーザによって、タッチ・パネル131上で、又は指又はスタイラスのような任意の好適なオブジェクト又はアクセサリを使用してタッチ・パネル131上で実行される操作)を収集し、プリセットされたプログラムに基づいて、対応する接続装置を駆動してもよい。任意選択で、タッチ・パネル131は、2つの部品、すなわち、タッチ検出装置及びタッチ・コントローラを含んでもよい。タッチ検出装置は、ユーザのタッチ方向を検出し、タッチ操作によってもたらされた信号を検出し、タッチ・コントローラに信号を伝送する。タッチ・コントローラは、タッチ検出装置からタッチ情報を受信し、タッチ情報をタッチ点座標に変換し、タッチ点座標をプロセッサ150に送信し、プロセッサ150によって送信されたコマンドを受信及び実行することが可能である。例えば、ユーザは、指を使用して、タッチ・パネル131上でアプリケーションのアイコンをダブルタップする。タッチ検出装置は、ダブルタップによってもたらされた信号を検出し、タッチ・コントローラに信号を伝送する。次いで、タッチ・コントローラは、信号を座標に変換し、座標をプロセッサ150に送信する。プロセッサ150は、信号の座標及びタイプ(例えば、ダブルタップ)に基づいて、アプリケーションを起動するなどの操作を実行する。最後に、アプリケーションの操作インターフェースが表示パネル141上に表示され、アプリケーションを「開く」ようにする。
【0050】
タッチ・パネル131は、抵抗タイプ、容量タイプ、赤外線タイプ、表面音波タイプなどの複数のタイプで実装されてもよい。タッチ・パネル131に加えて、入力デバイス130は、別の入力デバイス132をさらに含んでもよい。別の入力デバイス132は、物理キーボード、ファンクション・キー(音量制御キー、電源オン/オフ・キーなど)、トラックボール、マウス、ジョイスティックなどのうちの1つ以上を含み得るが、これらに限定されない。
【0051】
電子デバイス100に含まれる表示デバイス140は、表示パネル141を含み、ユーザによって入力された情報又はユーザに提供された情報、電子デバイス100の様々なメニュー・インターフェースなどを表示するように構成されており、この出願の実施形態では、主に、アプリケーションのユーザ操作インターフェースのような情報を表示するように構成されている。任意選択で、表示パネル141は、液晶ディスプレイ(Liquid Crystal Display、LCD)、有機発光ダイオード(Organic Light-Emitting Diode、OLED)などの形態で構成されてもよい。いくつかの他の実施形態では、タッチ・パネル131は、タッチ表示スクリーンを形成するために、表示パネル141を覆ってもよい。
【0052】
前述のものに加えて、電子デバイス100は、別のモジュールに電力を供給するための電源190と、写真又はビデオを撮影するためのカメラ160と、をさらに含んでもよい。電子デバイス100は、1つ以上のセンサ120、例えば、重力センサ、加速度センサ、光センサなどをさらに含んでもよい。電子デバイス100は、無線ネットワーク・デバイスとのネットワーク通信を実行するように構成された無線周波数(英語:Radio Frequency、RF)回路110をさらに含んでもよく、別のデバイスとのWi-Fi通信を実行するように構成されたWi-Fiモジュール170をさらに含んでもよい。
【0053】
以下の実施形態では、本出願の実施形態で提供されるプロセス制御方法を、電子デバイスを実行体として使用して説明する。この出願の実施形態で提供されるプロセス制御方法は、
図1に示すオペレーティング・システム・プログラム182において実装されてもよい。
【0054】
電子デバイスのアプリケーションの実行中プロセスでは、実行中のアプリケーションは比較的多数のリソースを占有し、実行速度が過度に遅くなるか、又はオペレーティング・システム・プログラムのスタックした実行が遅くなるか、若しくはスタックが発生するという問題をもたらす。アプリケーションの開発は、マルチプロセス・メカニズムを採用する。アプリケーションが起動された後に、通常、複数のアクティブ・プロセスが存在し、各プロセスは、いくらかメモリを占有する。たとえば、WeChatが起動された後、6つのアクティブ・プロセスが存在し、合計600MB以上のメモリを占有する。アプリケーションは複雑であるので、アプリケーション内のプロセスの相互起動、メイン・プロセスのブレークダウンなどの問題が、アプリケーションがキルされた後に発生することがある。したがって、OEMの現在のアプリケーション制御(アプリケーション・キル、自動立ち上げ制御など)は、アプリケーションの寸法に基づく制御である。つまり、アプリケーションのプロセスは、保護要件を満たしており、この場合、アプリケーション全体が保護される。LMKがトリガされた場合でも、アプリケーションはキルされず、アプリケーション・メモリは解放され得ない。結果として、不十分なメモリを補うためにより多くのアプリケーションがキルされる必要がある。
【0055】
例えば、ユーザがTaobao、JD.com、Pindeuoduoのアプリケーションを切り替えることによって価格比較を実行するとき、及び携帯電話のメモリが比較的不足するときに、携帯電話で実行されているアプリケーションがキルされる。ブラウザがバックグラウンドでダウンロードするプロセスを有すると仮定すると、スムーズなダウンロードを確保するために、従来の技術はブラウザ・アプリケーションのプロセス全体を保護し、Taobao、Jingdong、又はPindeuoduoのアプリケーションのみのメモリをキルすることがある。結果として、ユーザは、価格比較のためのアプリケーション切り替えを実装することができず、ユーザ体験を劣化させる。
【0056】
既存のアプリケーション制御は、アプリケーションの寸法に基づく制御であり、アプリケーションの一部のメモリを取り戻すことができない。追加的に、キルされた後に自動的にアプリケーションが起動されるという問題を解決することができない。したがって、この出願の一実施形態は、プロセス制御方法を提供し、プロセス寸法に基づいて制御を実装してもよく、その結果、制御は、より洗練される。追加的に、キルされた後に単一のプロセスが繰り返し起動されるという問題を解決することができ、ユーザ体験を改善する。
【0057】
図2は、この出願の一実施形態によるユーザ・インターフェースの概略ブロック図である。
図2の電子デバイスは、
図1の電子デバイス100であってもよく、
図2に示すユーザ・インターフェースは、表示デバイス140を使用して表示される。
図2に示すように、ユーザは、プロセス表示を使用して、電子デバイス内のプロセス状態を視認してもよい。プロセス表示は、電子デバイス内で実行中の1つ以上のアプリケーションを表示してもよい。例えば、ヘルス、カメラ、アルバム、セッティングなどである。アプリケーションの実行中プロセスの状態は、指定されたアプリケーションをタップすることによって、特に視認され得る。たとえば、ヘルスをタップして、アプリケーションの3つのプロセスが実行中であることを視認し、各プロセスは、異なるCPU及びメモリを占有している。この出願の実施形態におけるプロセス制御方法によれば、アプリケーション・プロセスは自動的に制御されてもよい。プロセスがキルされた後に、プロセスは、プロセス表示に表示されない。
【0058】
図3は、この出願の一実施形態によるプロセス制御方法が適用されるシステム・アーキテクチャの概略図である。
【0059】
識別モジュールは、アプリケーション状態及びプロセス状態に関する情報を識別するように構成されている。
【0060】
実行モジュールは、単一のプロセスをキルするように構成されている。
【0061】
決定モジュールは、単一のプロセスをキルするかどうかを決定するか、又は単一のプロセスのスタートアップをインターセプトするかどうかを決定するように構成されている。
【0062】
インターセプト・モジュールは、キルされたプロセスの自動起動をインターセプトするように構成されている。
【0063】
メモリ状態マシンは、間隔を置いて端末デバイスの現在のメモリ状態をチェックし、その間隔は、手動でプリセットされた時間値であってもよい。例えば、端末デバイスのメモリがメモリ不足に達するときに、例えば、プリセットされたメモリ不足値に達するときに、実行モジュールは、端末デバイス上で現在実行されている全てのプロセスを取得し、意思決定のためにこれらのプロセスを別個に決定モジュールに入れる。プロセス決定を行うときに、決定モジュールは、識別モジュールのアプリケーション状態識別結果及びプロセス状態識別結果を照会し、システム状態及びユーザ・セッティングに基づいて、単一のプロセスをキルするかどうかを決定し、決定結果を実行モジュールに返す。実行モジュールは、決定結果に基づいて、キルを実行するかどうかを判定する。単一のプロセスをキルする必要がある場合、実行モジュールは、単一のプロセスをキルする。単一のプロセスをキルする必要がない場合、実行モジュールは、次のプロセスに対する判定を実行する。単一のプロセスをキルした後に、その単一のプロセスが再び自動的に起動される場合、Androidプロセスのスタートアップは、4つの大きなコンポーネント(アクティビティ、サービス、コンテンツ・プロバイダ、及びブロードキャスト受信側)に依存する。したがって、4つの大きなコンポーネントの各々が起動されるインターセプト・ポイントがマーキングされ、4つの大きなコンポーネントが起動されるときに、インターセプトを実行すべきかどうかが決定される。プロセスをインターセプトする必要がある場合、4つの大きなコンポーネントの各々が起動されるところから直接戻る。決定は、プロセスがユーザ知覚可能なプロセスであるかどうかに基づいて、単一のプロセスの自動起動をインターセプトするかどうかを決定することである。単一のプロセスがユーザ知覚可能なプロセスである場合、その単一のプロセスは起動されることが許可される。単一のプロセスがユーザ知覚可能なプロセスでない場合、インターセプト・モジュールは、そのプロセスをインターセプトし、その単一のプロセスが起動されることを禁止する。
【0064】
図4は、この出願の一実施形態によるプロセス制御方法の概略フローチャートである。
図4に示すように、ステップ401~ステップ403が含まれ、これらのステップは、以下に詳細に説明される。
【0065】
S401.端末デバイス上で実行中の第1のアプリケーションの第1のプロセスの情報、パッケージ名、及びプロセス名を取得する。
【0066】
この出願の実施形態におけるプロセス制御方法によれば、端末デバイスにおける全ての実行中のプロセスが制御され得る。ここでは、アプリケーション内のプロセスが説明のための一例として取られる。別のプロセスの制御プロセスについては、そのプロセスの制御プロセスを参照のこと。パッケージ名は、Androidアプリケーションパッケージの固有の識別子である。Androidシステムがアプリケーションを管理するときに、パッケージ名もインデックス付けに使用される。パッケージ名は、Androidアプリケーション・プロジェクトの作成の開始時に判定される。Androidアプリケーションが起動されるときには、一般に、対応するプロセスのプロセス名はパッケージ名である。
【0067】
S402.第1のプロセスに関する情報に基づいて、第1のプロセスをキルすると判定する。
【0068】
具体的には、第1のプロセスに関する特徴情報は、第1のプロセスがフォアグラウンド/バックグラウンド・プロセスであるかどうか、第1のプロセスがメイン・プロセスであるかどうか、adjであるかどうか、adjTypeであるかどうか、第1のプロセスが音声対話プロセスであるかどうか、第1のプロセスがヘルス・ステップ・カウント・プロセスであるかどうか、第1のプロセスがGPSを使用するプロセスであるかどうか、第1のプロセスのトラフィック使用量状態などを含む。前述は、この出願の実施形態におけるプロセス制御方法におけるプロセスに関する特徴情報の一例にすぎず、この出願の実施形態に対する限定を構成しないと理解されたい。前述の例に加えて、この出願の実施形態における特徴情報は、別の可能なプロセスに関する特徴情報をさらに含んでもよい。
【0069】
第1のプロセスに関する情報に基づいて、第1のプロセスをキルすると判定する。具体的には、第1のプロセスに関する情報は、インテリジェント決定エンジンに入力され得る。インテリジェント決定エンジンは、第1のプロセスに関する情報に基づいて第1のプロセスの制御決定結果を出力し、制御決定結果は、キル及び保持を含む。インテリジェント決定エンジンは、サンプル・データに基づく事前訓練によって取得され、サンプル・データは、サンプル・プロセスに関する情報及びサンプル・プロセスの制御決定結果を含む。例えば、インテリジェント決定エンジンは、決定木アルゴリズムに基づいて取得され得る。サンプル・プロセスに関する情報は、前述の例におけるプロセス情報であってもよい。サンプル・プロセスの制御決定結果は、手動で判定されてもよい。例えば、サンプル・プロセスがフォアグラウンド・プロセスである場合、制御決定結果は、サンプル・プロセスを保持することであり、サンプル・プロセスがバックグラウンド・プロセスである場合、サンプル・プロセスに関する他の特徴情報が判定される。インテリジェント決定エンジンは、第1のプロセスに関する情報に基づいて、第1のプロセスの制御決定結果を出力し、これは、具体的には、
図5のインテリジェント決定エンジンの決定木の説明を参照のこと。簡潔にするために、この出願の実施形態において詳細はここでは説明しない。具体的には、インテリジェント決定エンジンは、第1のプロセスの複数の特徴を逐次的に判定し、複数の特徴を逐次的に判定した後に、制御決定結果を出力し得る。制御決定結果がキルすることである場合、第1のプロセスがキルされ、制御決定結果が保持することである場合、第1のプロセスが保持される。特に、ここでは、第1のプロセスの制御決定結果は、第1のプロセスをキルすることであり、次いで、以下のステップが実行される。
【0070】
S403.第1のプロセスのパッケージ名及びプロセス名をマーキングする。
【0071】
具体的には、第1のプロセスがキルされた後、第1のプロセスのパッケージ名及びプロセス名がマーキングされ、プロセスは、キルされたプロセスとしてマーキングされる。
【0072】
S404.第2のプロセスのパッケージ名及びプロセス名のマーキング結果に基づいて、第2のプロセスを制御する。
【0073】
第2のプロセスは、キルされた後に再起動される第1のプロセスであってもよいし、キルされなかった別のプロセスであってもよい。第2のプロセスがキルされたどうかは、第2のプロセスのパッケージ名及びプロセス名を使用して判定され得る。
【0074】
既存の制御方法は、アプリケーション・レベルの制御のみを実行することができる。しかしながら、この出願の実施形態におけるプロセス制御方法は、プロセスレベル制御を実装することができる。プロセスがユーザにとって重要であるかどうかは、プロセスの1つ以上の特徴の複数の判定結果に基づいて判定され、プロセスを保持するか、又はキルするかを決定するようにする。このようにして、アプリケーション内の複数のプロセスに対して、アプリケーション全体を保持し、過剰にメモリを占有する代わりに、又はメモリのためにユーザにとって重要なアプリケーション全体をキルする代わりに、いくつかのプロセスが保持されてもよく、いくつかのプロセスがキルされてもよく、ユーザ体験に影響を与える。
【0075】
任意選択で、第2のプロセスの制御の持続時間は、第1の期間である。例えば、第1の期間は、第2のプロセスのパッケージ名及びプロセス名がマーキングされた時点から、第2のプロセスが電子デバイスからアンインストールされる時点までであってもよい。
【0076】
任意選択で、第1のプロセスの制御決定結果がキルすることである場合、第1のプロセスのパッケージ名及びプロセス名は、第1のプロセスをキルすることを判定した後にマーキングされる。この出願の実施形態における方法は、第1のプロセスがキルされる瞬間をマーキングすることを含み、その瞬間は、第1の瞬間としてマーキングされ、第1のプロセスが、第1のプロセスがその後再び起動されるときに判定されるようにする。
【0077】
任意選択で、第2のプロセスのパッケージ名及びプロセス名のマーキング結果に基づいて、第2のプロセスを制御することは、第2のプロセスが起動されるときに、第2のプロセスのパッケージ名及びプロセス名のマーキング結果に基づいて、第2のプロセスがキルされたプロセスであるかどうかを判定することを含む。第2のプロセスがキルされたプロセスである場合、第2のプロセスは、起動されることが直接席に禁止される。
【0078】
任意選択で、この出願の実施形態における方法は、第2のプロセスが起動されるときに、第2のプロセスのパッケージ名及びプロセス名のマーキング結果に基づいて、第2のプロセスがキルされたプロセスであるかどうかを判定することをさらに含む。第2のプロセスがキルされたプロセスである場合、第2のプロセスがユーザ知覚可能なプロセスであるかどうかが、さらに判定される。ユーザ知覚可能なプロセスは、プロセスが、フォアグラウンド・プロセスであること、プロセスが、視認可能なインターフェースを有すること、プロセスはが、警告プロセスのタイプであることなどを含むが、これらの場合に限定されない。起動される第2のプロセスがユーザ知覚可能なプロセスでない場合、第2のプロセスの再起動されることが禁止され、第2のプロセスがユーザ知覚可能なプロセスである場合、第2のプロセスが再起動されることが許可され、第2のプロセスの再起動瞬間が記録され、第2の瞬間として記録される。
【0079】
任意選択で、第2のプロセスが起動されることが許可されるときに、この出願の実施形態における方法は、第2の瞬間を第1の瞬間と比較することと、第2の瞬間と第1の瞬間の間隔が、第1の閾値未満である場合、第1のプロセスの有効再起動回数を1増加させることと、をさらに含む。第1の閾値は、手動で指定された時間値であってもよい。
【0080】
キルされた後、多くのプロセスが不可避的に、自動的に再起動される。プロセスが制御されない場合、以前のキル作業は期待外れになるだろう。したがって、この出願の実施形態におけるプロセス制御方法は、キルされた後に自動的に再起動されるプロセスの制御をさらに含む。再起動されるプロセスがユーザ知覚可能なプロセスであるかどうかを判定することによって、プロセスの再起動を禁止又は実行することを決定する。プロセスがユーザ知覚可能なプロセスである場合、プロセスの再起動が必要であるとみなされる。プロセスがユーザ知覚不可能なプロセスである場合、プロセスの再起動が不必要であるとみなされる。
【0081】
任意選択で、S402では、第1のプロセスの制御決定結果が、キルすることであると判定される場合、第1のプロセスをキルする前に、この出願の実施形態における方法は、第1のプロセスの有効再起動回数を取得することと、第1のプロセスの有効再起動回数が第2の閾値よりも大きい場合、この場合、第1のプロセスがユーザにとって重要であるとみなされ、第1のプロセスが保持される。第2の閾値は、手動で指定される回数であってもよい。
【0082】
インテリジェント決定エンジンによって判定されるプロセスの特徴は限定されるので、ユーザにとって重要なプロセスが誤ってキルされることを防止するために、この出願の実施形態におけるプロセス制御方法は、インテリジェント決定エンジンのフォールト・トレランス・メカニズムをさらに含む。すなわち、制御決定結果がキルすることであるときに、プロセスの有効再起動回数が取得され、プロセスが本当にキルされる必要があるかどうかは、有効再起動回数に基づいて判定される。
【0083】
したがって、この出願の実施形態によるプロセス制御方法は、実行中のプロセスの制御、再起動されたプロセスの制御、及びプロセス制御の修正を含み、その結果、端末デバイスにおける各プロセスのインテリジェント制御が実装され得、メモリが解放されている間にユーザにとって重要なプロセスがキルされることが防止され得、ユーザ体験を向上させる。
【0084】
この出願の実施形態におけるプロセス制御方法は、プロセス・キル及びプロセス再開インターセプトを含む。以下、
図5及び
図6を参照して、この出願の実施形態におけるプロセス制御方法を詳細に説明する。
【0085】
この出願の実施形態におけるプロセス制御方法では、最初に、決定木アルゴリズムに基づく訓練によってインテリジェント決定エンジンが取得される。インテリジェント決定エンジンの訓練方法は、以下のステップを含む。
【0086】
(1)決定木特徴選択
【0087】
最近の期間におけるベータ・ログを分析し、かつ情報利得に基づいて、進行中のフォアグラウンド・プロセス及びバックグラウンド・プロセス並びにメイン・プロセスの状態、adj、adjType、オーディオ対話、ヘルス歩数、トラフィック使用量状態などを含む、決定木特徴が選択される。最近の期間は、手動で指定された期間、例えば、3ヶ月であってもよい。adjは、Androidシステムのプロセスの重要度を示すフラグであり、adjの小さい値はプロセスの重要度が低いことを示す。adjTypeは、プロセスの重要度を定義するためにも使用され、同じadj条件で異なるシナリオを区別するために使用される。例えば、adjの値が0である場合、プロセスの重要度が高いことを示す。この場合、adjTypeがtop-activityである場合、プロセスがフォアグラウンド・プロセスであることを示し、adjtypeがexec-serviceである場合、プロセスがフォアグラウンドによってコールバックされているプロセスであることを示す。
【0088】
(2)決定木生成
【0089】
この出願の実施形態におけるプロセス制御方法では、情報利得率は、C4.5アルゴリズムを使用して計算され、情報利得率は、ノード分裂ルールとして使用される。情報利得率は、以下のように計算される。
【数1】
【0090】
Dは、訓練データセットを表し、aは、決定木特徴を表し、Vは、特徴数を表し、Dvは、訓練データセットにおける特徴aの数を表し、Ent()は、情報エントロピーを表す。
【0091】
(3)プルーニング
【0092】
C4.5アルゴリズムに基づいて生成された完全な決定木は、訓練サンプルに対してオーバーフィッティングである。完全な決定木は、訓練サンプルの特徴をあまりにも正確に記述して、新しいサンプルの合理的な分析を実施できないため、決定木をプルーニングする必要がある。この出願の実施態様におけるプロセス制御方法では、ポストプルーニング(postpruning)法における悲観的誤差プルーニング(pessimistic error pruning、PEP)アルゴリズムが使用される。ポストプルーニング法は、最初に、完全な決定木を構築し、訓練データをオーバーフィッティングするように決定木を実行し、次いで、低い信頼性を有するノード部分木をリーフ・ノードに置き換える。プルーニング法では、いつ決定木の成長を止めるかを正確に推定することが難しいため、ポストプルーニング法の方が便利である。PEPアルゴリズムは、プルーニング前後のエラー率に基づいて部分木のプルーニングを判定する。このアルゴリズムは、トップダウン方式を使用する。非リーフ・ノードが次の不等式を満たす場合、リーフ・ノードは、プルーニングされる。
【数2】
【0093】
tは、決定木におけるノードを表し、Ttは、ノードtを含む部分木を表し、e()は、…e′()を表し、Se()は、標準偏差を表す。
【0094】
図5に示すインテリジェント決定エンジン木は、前述の訓練によって取得され得る。アプリケーション内の単一のプロセスをキルする必要があるかどうかは、インテリジェント決定エンジンツリーに基づいて判定され得る。例えば、指定されたアプリケーション内の単一のプロセスの場合、プロセスがフォアグラウンドで実行されるか、バックグラウンドで実行されるかが、インテリジェント決定エンジン木に基づいて、最初に判定される。プロセスがフォアグラウンドで実行される場合、プロセスは保持され(キルされない)、プロセスがバックグラウンドで実行される場合、プロセスがメイン・プロセスであるかどうかが判定される。プロセスがメイン・プロセスである場合、プロセスが保持され、プロセスがメイン・プロセスでない場合、プロセスのadj値が判定される。プロセスのadj値が900未満である場合、プロセスが保持され、プロセスのadj値が1000よりも大きい場合、プロセスがキルされる。プロセスのadj値が区間[900,1000]内である場合、プロセスのadjTypeが判定される。プロセスのadjTypeが別のプロセスである場合、プロセスが保持される。プロセスのadjtTypeが、プロセスが空であることを示すcch-emptyである場合、プロセスがキルされる。プロセスのadjTypeが、フォアグラウンドにバインドされたサービスを示すcch-bound-servicesである場合、又はプロセスのadjTypeが、フォアグラウンド・インターフェースに関連付けられたプロセスを示すcch-client-actである場合、プロセスが、オーディオ対話のためのものであるかどうかが判定される。プロセスが、例えば、音声記録又は再生のための音声対話のためのものである場合、プロセスが保持される。プロセスがオーディオ対話のためのものでない場合、プロセスが、ヘルス歩数のためのものであるかどうかがさらに判定される。プロセスがヘルス歩数のためのものである場合、プロセスが保持される。プロセスがヘルス歩数のためのものではない場合、プロセスのトラフィック使用量状態が判定される。トラフィック使用量状態が高フロー・レートを示す場合、プロセスは保持され、トラフィック使用量状態が低フロー・レートを示す場合、プロセスはキルされる。
【0095】
したがって、アプリケーションのプロセスをキルすべきかどうかは、訓練されたインテリジェント決定エンジン木に基づいて判定され得る。従来の技術と比較して、この出願の実施形態におけるプロセス制御方法は、アプリケーションの単一のプロセスの制御を実装してもよい。
【0096】
プロセスがキルされた後、プロセスが自動的に再起動されてもよい。プロセスがインターセプトされない場合、プロセスがメモリを占有する。したがって、この出願の実施形態におけるプロセス制御方法は、プロセス再起動のインターセプトをさらに含む。
【0097】
図6に示すように、キルされたプロセスが再起動の準備が整ったときに、この出願の実施形態におけるプロセス制御方法は、プロセスがユーザ知覚可能なプロセスであるかどうかを判定する。ユーザ知覚可能なプロセスは、プロセスが、フォアグラウンド・プロセスであること、プロセスが、視認可能なインターフェースを有すること、プロセスはが、警告プロセスのタイプであることなどを含むが、これらの場合に限定されない。プロセスがユーザ知覚可能なプロセスでない場合、プロセスの再起動がインターセプトされる。プロセスがユーザ知覚可能なプロセスである場合、プロセスの再起動が許可され、プロセスに関する再起動情報が記録される。
【0098】
この出願の実施形態におけるプロセス制御方法は、インテリジェント決定エンジンの補正メカニズムをさらに含む。
図5に示すインテリジェント決定エンジンが、プロセスが保持されないと判定するときに、プロセスをキルする前に、プロセスがキルされる瞬間を示すために、プロセスに対するタイムスタンプがマーキングされる。処理を再起動される場合、プロセスは終了する。プロセスが自動的に再起動され、上述のようにプロセスがユーザ知覚可能なプロセスであると判定される場合、プロセスの再起動が許可される。プロセスの再起動時刻とマーキングされたタイムスタンプとの間の時間間隔が判定される。時間間隔が10秒未満である場合、プロセスの再起動回数が1増加され、そうでなければ、プロセスが終了する。プロセスの有効再起動回数が3よりも大きい場合、プロセスは、キルされるべきではないプロセスであると判定され、判定結果は、エンジンによって修正された学習結果に更新され、そうでなければ、プロセスは終了する。インテリジェント決定エンジンの次の判定結果が、指定のプロセスが保持されないことを示すとき、プロセスをキルする前に、インテリジェント決定エンジンは、プロセスが、キルされるべきではなく、かつ学習結果にあるプロセスであるかどうかを判定する。プロセスが、キルされるべきではなく、かつ学習結果にあるプロセスである場合、プロセスが保持される。プロセスが、キルされるべきではなく、かつ学習結果にあるプロセスではない場合、プロセスが依然としてキルされる。アプリケーションのアップグレードによるロジックの変化を回避するために、学習結果及びマーキングの持続時間は、マーキングが実行された時点からアプリケーションがアンインストールされる時点までである。
【0099】
この出願の実施形態におけるプロセス制御方法におけるインターセプト・メカニズムは、プロセスがキルされた後に自動的に再起動されるため、プロセスがメモリを占有するという問題を解決してもよい。インテリジェント決定エンジンの補正メカニズムは、インテリジェント決定エンジンをよりインテリジェントにし、誤った判定により、ユーザにとって重要なプロセスをキルし、ユーザ体験を劣化させることを防止する。
【0100】
この出願の実施形態におけるプロセス制御方法によれば、6G上の端末デバイスのキープ・アライブ・アプリケーション数は、0.6増加し、8.5%増加する。前回使用されたアプリケーションのキープ・アライブ率は95.85%から98.50%に増加した。最後の2回で使用されたアプリケーションのキープ・アライブ率は、87.15%から94.12%に増加した。ベータ・ビッグ・データは、元のキルをトリガした回数が大幅に減少されたことを示す。WeChatがキルされる回数は、約40%減少する。
【0101】
図7は、この出願の一実施形態によるプロセス制御装置の概略ブロック図である。
図7に示すように、プロセス制御装置は、取得モジュール701、判定モジュール702、及び実行モジュール703を含む。
【0102】
取得モジュール701は、端末デバイス上で実行中の第1のアプリケーションの第1のプロセスの情報、パッケージ名、及びプロセス名を取得するように構成されている。
【0103】
判定モジュール702は、第1のプロセスに関する情報に基づいて、第1のプロセスをキルすると判定するように構成されている。
【0104】
実行モジュール703は、第1のプロセスのパッケージ名及びプロセス名をマーキングするように構成されている。
【0105】
実行モジュール703は、第2のプロセスのパッケージ名及びプロセス名のマーキング結果に基づいて、第2のプロセスを制御するようにさらに構成されている。
【0106】
任意選択で、第1のプロセスに関する情報は、メイン・プロセス、フォアグラウンド・プロセス又はバックグラウンド・プロセス、オーディオ対話プロセス、ナビゲーション・プロセス、アップロード又はダウンロード・プロセス、歩数プロセス、adj情報、及びadjType情報を含む。
【0107】
任意選択で、実行モジュール703が、第2のプロセスを制御する持続時間は、第1の期間である。例えば、第1の期間は、第2のプロセスのパッケージ名及びプロセス名がマーキングされた時点から、第2のプロセスが電子デバイスからアンインストールされる時点までの期間であってもよい。
【0108】
任意選択で、実行モジュール703が、第1のプロセスのパッケージ名及びプロセス名をマーキングすることは、第1のプロセスがキルされる第1の瞬間をマーキングすることをさらに含む。
【0109】
任意選択で、実行モジュール703が、第2のプロセスのパッケージ名及びプロセス名のマーキング結果に基づいて、第2のプロセスを制御することは、第2のプロセスを起動することと、第2のプロセスのパッケージ名及びプロセス名のマーキング結果に基づいて、第2のプロセスが、キルされたプロセスであると判定することと、第2のプロセスが起動されることを禁止することと、を含む。
【0110】
任意選択で、実行モジュール703が、第2のプロセスのパッケージ名及びプロセス名のマーキング結果に基づいて、第2のプロセスを制御することは、第2のプロセスを起動することと、第2のプロセスのパッケージ名及びプロセス名のマーキング結果に基づいて、第2のプロセスが、キルされたプロセスであると判定することと、第2のプロセスが、ユーザ知覚可能なプロセスであるかどうかを判定することであって、ユーザ知覚可能なプロセスは、フォアグラウンド・プロセス及び/又はインターフェース及び/又は警告プロセス上で視認可能なプロセスを含む、ことと、第2のプロセスがユーザ知覚可能なプロセスである場合、第2のプロセスが起動されることを許可することか、又は第2のプロセスがユーザ知覚可能なプロセスでない場合、第2のプロセスが起動されることを禁止することと、を含む。
【0111】
任意選択で、第2のプロセスが起動されることを許可することは、第1のプロセスが起動される第2の瞬間を取得することと、第2の瞬間と第1の瞬間の間隔が、第1の閾値未満である場合、第1のプロセスの有効再起動回数を1増加させることと、をさらに含む。
【0112】
任意選択で、判定モジュール702が提供される。
【0113】
判定モジュールが、第1のプロセスをキルする前に、方法は、第1のプロセスの有効再起動回数を取得することと、有効再起動回数が第2の閾値よりも大きい場合、第1のプロセスを保持することと、をさらに含む。
【0114】
図8は、この出願の一実施形態によるプロセス制御装置の構造の概略図である。
図8に示すプロセス制御装置800は、メモリ801、プロセッサ802、通信インターフェース803、及びバス804を含む。メモリ801、プロセッサ802、及び通信インターフェース803の相互通信接続は、バス804を使用して実装される。
【0115】
通信インターフェース803は、プロセス制御装置700における取得モジュール701と等価であり、プロセッサ802は、プロセス制御装置700における判定モジュール702及び実行モジュール703と等価である。プロセス制御装置800におけるモジュール及びユニットは、以下に詳細に説明される。
【0116】
メモリ801は、読み出し専用メモリ(read only memory、ROM)、スタティック記憶デバイス、ダイナミック記憶デバイス、又はランダム・アクセス・メモリ(random access memory、RAM)であってもよい。メモリ801は、プログラムを記憶してもよい。メモリ801に記憶されたプログラムがプロセッサ802によって実行されるときに、プロセッサ802及び通信インターフェース803は、この出願の実施形態におけるプロセス制御方法のステップを実行するように構成されている。具体的には、通信インターフェース803は、プロセスの情報、パッケージ名、及びプロセス名をメモリ又は別のデバイスから取得してもよく、プロセッサ802は、プロセスに対してプロセス制御を実行する。
【0117】
プロセッサ802は、汎用中央処理ユニット(central processing unit、CPU)、マイクロプロセッサ、特定用途向け集積回路(application-specific integrated circuit、ASIC)、グラフィック処理ユニット(graphics processing unit、GPU)、又は1つ以上の集積回路であってもよく、関係するプログラムを実行して、この出願の実施形態におけるプロセス制御装置内のユニットによって実行される必要のある機能を実装する(例えば、プロセッサ802は、前述のプロセス制御装置700における判定モジュール702及び実行モジュール703によって実行される必要のある機能を実行してもよい)か、又はこの出願の実施形態におけるプロセス制御方法を実行するように構成されている。
【0118】
プロセッサ802は、集積回路チップであってもよく、信号処理能力を有する。実装プロセスでは、この出願の実施形態におけるプロセス制御方法のステップは、プロセッサ802内のハードウェア集積論理回路を使用することによって、又はソフトウェアの形態の命令を使用することによって、実装されてもよい。
【0119】
前述のプロセッサ802は、汎用プロセッサ、デジタル信号プロセッサ(digital signal processor、DSP)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(field programmable gate array、FPGA)若しくは別のプログラマブル論理デバイス、ディスクリート・ゲート若しくはトランジスタ論理デバイス、又はディスクリート・ハードウェア・コンポーネントであってもよい。前述の汎用プロセッサは、マイクロプロセッサであってもよいし、プロセッサは、任意の従来のプロセッサなどであってもよい。この出願の実施形態を参照して開示された方法のステップは、ハードウェア復号プロセッサによって直接的に実行及び達成されてもよいし、復号プロセッサ内のハードウェア及びソフトウェア・モジュールの組み合わせによって実行及び達成されてもよい。ソフトウェア・モジュールは、ランダム・アクセス・メモリ、フラッシュ・メモリ、読み出し専用メモリ、プログラマブル読み出し専用メモリ、電気的に消去可能なプログラマブル・メモリ、レジスタなど、本技術分野における成熟した記憶媒体に位置し得る。記憶媒体は、メモリ801に位置し得る。プロセッサ802は、メモリ801から情報を読み出し、プロセッサ802のハードウェアと組み合わせて、この出願の実施形態におけるプロセス制御装置に含まれるユニットによって実行される必要のある機能を実行するか、又はこの出願の方法の実施形態におけるプロセス制御方法を実行する。
【0120】
限定されるものではないが、トランシーバのようなトランシーバ装置が、通信インターフェース803において使用されて、装置800と別のデバイス又は通信ネットワークとの間の通信を実装する。例えば、プロセスに関する情報、パッケージ名、及びプロセス名は、通信インターフェース803によって取得されてもよい。
【0121】
バス804は、装置800の様々な部品(例えば、メモリ801、プロセッサ802、及び通信インターフェース803)間で情報を伝送するチャネルを含んでもよい。
【0122】
メモリ、プロセッサ、及び通信インターフェースのみが、前述の装置800に示されているが、しかしながら、特定の実装プロセスでは、当業者であれば、装置800が、通常の動作に必要な別のコンポーネントをさらに含み得ると当業者は理解すべきである。追加的に、特定の要件によれば、当業者であれば、装置800が、他の追加の機能を実装するためのハードウェアコンポーネントをさらに含み得ると理解すべきである。追加的に、当業者であれば、装置800が、この出願の実施形態を実装するために必要なコンポーネントのみを含み得るが、必ずしも
図8に示す全てのコンポーネントを含む必要はないと理解すべきである。
【0123】
一実施形態では、処理モジュールがプロセッサ1602であり、記憶モジュールがメモリであるとき、この実施形態における電子デバイスは、
図1に示す構造を有するデバイスであってもよい。
【0124】
この実施形態は、コンピュータ記憶媒体をさらに提供する。コンピュータ記憶媒体は、コンピュータ命令を記憶する。コンピュータ命令が電子デバイス上で実行されるときに、電子デバイスは、前述の関係する方法のステップを実行して、前述の実施形態におけるプロセス制御方法を実装することが可能となる。
【0125】
この実施形態は、コンピュータ・プログラム製品をさらに提供する。コンピュータ・プログラム製品がコンピュータ上で実行されるときに、コンピュータは、前述の関係するステップを実行して、前述の実施形態におけるプロセス制御方法を実装することが可能となる。
【0126】
追加的に、この出願の一実施形態は、装置をさらに提供する。装置は、特に、チップ、コンポーネント、又はモジュールであってもよく、装置は、接続されたプロセッサ及びメモリを含んでもよい。メモリは、コンピュータ実行可能な命令を記憶するように構成されている。装置が実行されるときに、プロセッサが、メモリに記憶されたコンピュータ実行可能な命令を実行してもよく、その結果、チップが、前述の方法の実施形態におけるプロセス制御方法を実行する。
【0127】
実施形態で提供される電子デバイス、コンピュータ記憶媒体、コンピュータ・プログラム製品、又はチップは、上記に提供された対応する方法を実行するように構成されている。したがって、電子デバイス、コンピュータ記憶媒体、コンピュータ・プログラム製品によって達成され得る有益な効果については、上記に提供された対応する方法の有益な効果を参照のこと。詳細は、ここでは再度説明されない。
【0128】
当業者であれば、本明細書に開示された実施形態を参照して、説明された例におけるユニット及びアルゴリズム・ステップが、電子ハードウェア又はコンピュータ・ソフトウェアと電子ハードウェアの組み合わせによって実装され得ると認識するであろう。機能がハードウェアによって実行されるのか、ソフトウェアによって実行されるのかは、特定の用途と技術的解決策の設計上の制約に依存する。当業者であれば、特定のアプリケーションごとに、説明された機能を実装するために異なる方法を使用してもよいが、その実装がこの出願の範囲を超えると考えられるべきでない。
【0129】
便利で簡単な説明のために、前述のシステム、装置、及びユニットの詳細な作業プロセスについては、前述の方法の実施形態の対応するプロセスが参照されてもよく、詳細は、ここでは再度説明されないことが当業者によって明らかに理解されよう。
【0130】
この出願で提供されるいくつかの実施形態では、開示されたシステム、装置、及び方法は、他の方式で実装され得ると理解されたい。例えば、説明された装置の実施形態は、一例にすぎない。例えば、ユニット分割は、論理サービス分割にすぎず、実際の実装においては他の分割であってもよい。例えば、複数のユニット又はコンポーネントが別のシステムに組み合わされたり、統合されたりしてもよいし、いくつかの特徴が無視されてもよいし、実行されなくてもよい。追加的に、表示又は議論された相互結合、直接結合、又は通信接続は、いくつかのインターフェースを使用することによって実装されてもよい。装置又はユニット間の間接結合又は通信接続は、電子的、機械的、又は別の形式で実装されてもよい。
【0131】
別々の部分として説明されたユニットは、物理的に別個であってもなくてもよいし、ユニットとして表示されている部分が、物理的ユニットであってもなくてもよいし、1つの位置に位置していてもよいし、複数のネットワーク・ユニットに分散されていてもよい。ユニットの一部又は全部は、実施形態の解決策の目的を達成するために実際の要件に基づいて選択されてもよい。
【0132】
追加的に、この出願の実施形態における機能ユニットは、1つの処理ユニットに統合されてもよいし、ユニットの各々は、物理的に単独で存在してもよいし、又は2つ以上のユニットが1つのユニットに統合される。
【0133】
機能がソフトウェア機能ユニットの形態で実装され、独立した製品として販売又は使用されるときに、機能は、コンピュータ可読記憶媒体に記憶されてもよい。このような理解に基づいて、この出願の技術的解決策が、本質的にソフトウェア製品の形態で実装されてもよいし、従来技術に寄与する部分が、ソフトウェア製品の形態で実装されてもよいし、技術的解決策の一部が、ソフトウェア製品の形態で実装されてもよい。ソフトウェア製品は、記憶媒体に記憶され、コンピュータ・デバイス(パーソナル・コンピュータ、サーバ、又はネットワーク・デバイスなどであってもよい)に、この出願の実施形態で説明された方法のステップの全部又は一部を実行させるように指示するための複数の命令を含む。前述の記憶媒体は、USBフラッシュ・ドライブ、リムーバブル・ハード・ディスク、読み出し専用メモリ(read-only Memory、ROM)、ランダム・アクセス・メモリ(random access memory、RAM)、磁気ディスク、又は光ディスクなど、プログラム・コードを記憶し得る任意の媒体を含む。
【0134】
前述の説明は、この出願の単に具体的な実装に過ぎないが、この出願の保護範囲を限定することを意図したものではない。この出願に開示された技術的範囲内で、当業者によって容易に理解することができる変更又は代替は、この出願の保護範囲に含まれるものとする。したがって、この出願の保護範囲は、特許請求の範囲の保護範囲に従うものとする。