JP2024515462A - アプリケーションによる描画操作を実行する方法及び電子装置 - Google Patents

アプリケーションによる描画操作を実行する方法及び電子装置 Download PDF

Info

Publication number
JP2024515462A
JP2024515462A JP2023558327A JP2023558327A JP2024515462A JP 2024515462 A JP2024515462 A JP 2024515462A JP 2023558327 A JP2023558327 A JP 2023558327A JP 2023558327 A JP2023558327 A JP 2023558327A JP 2024515462 A JP2024515462 A JP 2024515462A
Authority
JP
Japan
Prior art keywords
electronic device
application program
frequency
application
vertical synchronization
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.)
Pending
Application number
JP2023558327A
Other languages
English (en)
Inventor
シエ,ビン
ジョウ,シュアイ
タン,チョンカイ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of JP2024515462A publication Critical patent/JP2024515462A/ja
Pending legal-status Critical Current

Links

Images

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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
    • 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/451Execution arrangements for user interfaces
    • 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/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • G06F9/449Object-oriented method invocation or resolution
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Digital Computer Display Output (AREA)

Abstract

本発明は、アプリケーションによる描画操作を実行する方法及び電子装置を提供する。アプリケーションによる描画操作を実行する方法は、アプリケーションプログラムのバックグラウンド描画頻度を決定するステップと、アプリケーションプログラムがバックグラウンドアプリケーションに切り替わったときに、アプリケーションプログラムの描画操作をインターセプトして、アプリケーションプログラムがバックグラウンド描画頻度で描画操作を実行するステップと、を含む。これにより、バックグラウンドアプリケーションが無効な描画操作を実行する頻度を低減することができる。本願で提供されるアプリケーションによる描画操作を実行する方法によれば、バックグラウンドアプリケーションによるシステムリソースの占有を低減することができ、電子装置の消費電力を低減することができる。

Description

[関連出願]
本出願は、2021年3月24日に出願された中国特許出願第202110316341.X号の優先権を主張しており、その名称は「METHOD FOR PERFORMING DRAWING OPERATION BY APPLICATION AND ELECTRONIC DEVICE」であり、その全体が参照により本明細書に組み込まれる。
[技術分野]
本出願は、電子技術の分野に関するものであり、特に、アプリケーションによる描画操作を実行する方法及び電子装置に関する。
スマートフォン、タブレット、ウェアラブル装置などの電子機器の普及に伴い、スマートフォンなどの電子装置を使用する際に、ユーザが意図せず複数又は数十のアプリケーションプログラムを起動してしまうことが多い。使用中、スマート装置の画面には、ユーザが閲覧したり操作したりするための小数のアプリケーションプログラムしか表示できない。ユーザが適時にバックグラウンドにあるアプリケーションプログラムを完全に終了しない場合、ユーザは一定時間使用した後、明らかなフレームフリーズ、発熱、消費電力の増加を感じることになる。
これは、アプリケーションプログラムがフォアグラウンドアプリケーションからバックグラウンドアプリケーションに変更された後も、アプリケーションプログラムがメモリやCPU計算負荷などの電子装置のシステムリソースを占有し、描画操作を実行するためである。バックグラウンドアプリケーションの場合、バックグラウンドアプリケーションはユーザに視覚的なインタフェースやビューを提供しないため、描画操作は無意味に実行される。しかしながら、無意味な描画操作は電子装置のシステムリソースを占有したままである。その結果、電子装置の電力消費が増加し、フォアグラウンドアプリケーションのシステムリソースが占有される。
バックグラウンドアプリケーションによるシステムリソースの占有を低減するために、アプリケーションプログラムがバックグラウンドアプリケーションになったとき、又は一定時間後に、電子装置はアプリケーションを積極的にフリーズし、アプリケーションがシステムリソースを継続的に占有しないようにすることができる。
しかし、通常、フリーズしたアプリケーションは、ブロードキャストやサービスなどによって覚醒される。フリーズしていない別のバックグラウンドアプリケーションと同様に、覚醒されたバックグラウンドアプリケーションはシステムリソースを占有し、無意味な描画操作を実行する。その結果、バックグラウンドアプリケーションはフォアグラウンドアプリケーションのシステムリソースを占有し、電子装置の電力消費の増加をもたらす。
本願の実施形態は、アプリケーションによる描画操作を実行する方法を提供する。バックグラウンドアプリケーションが無意味な描画操作を実行する頻度は、コレオグラファー(Choreographer)における垂直同期信号又はコールバックメソッドをインターセプト(intercept)するか、又はコレオグラファーによって保存されたアニメーションイベントタスクを削除することによって低減される。これにより、バックグラウンドアプリケーションによるシステムリソースの占有が低減され、電子装置の消費電力が低減される。
第1態様によれば、本願は、アプリケーションによる描画操作を実行する方法を提供する。前記方法は、
電子装置が、第1アプリケーションプログラムを起動するステップと、
前記電子装置が、前記第1アプリケーションプログラムがフォアグラウンドアプリケーションである場合に、第1頻度で描画操作を実行するステップであって、前記描画操作は、前記第1アプリケーションプログラムのためのビューを描画する、ステップと、
前記電子装置が、前記第1アプリケーションプログラムが前記フォアグラウンドアプリケーションからバックグラウンドアプリケーションに切り換えられた後に、第2頻度で前記描画操作を実行するステップであって、前記第2頻度は前記第1頻度より小さく、前記第1頻度は前記第1アプリケーションプログラムが垂直同期信号を受信する頻度である、ステップと、
を含む。
前述の実施形態では、アプリケーションプログラムがフォアグラウンドアプリケーションからバックグラウンドアプリケーションに切り換えられたと決定した後、電子装置は、アプリケーションプログラムの描画頻度を下げ、描画頻度はアプリケーションプログラムが垂直同期信号を受信する頻度よりも低くなる。これにより、バックグラウンドアプリケーションによるシステムリソースの占有を低減することができ、電子装置の発熱や消費電力を低減することができる。
第1態様の幾つかの実施例を参照し、幾つかの実施形態では、前記第1アプリケーションプログラムが前記フォアグラウンドアプリケーションから前記バックグラウンドアプリケーションに切り換えられた後に、前記電子装置は、前記第1アプリケーションプログラムのコレオグラファーに、K個の受信した垂直同期信号のうちN個の垂直同期信号のみに応答するよう指示し、その結果、前記電子装置が前記第2頻度で前記描画操作を実行し、Kは正の整数であり、NはKより小さい正の整数である。
前述の実施形態では、電子装置は、アプリケーションプログラムのコレオグラファーに、受信された垂直同期信号の一部のみに応答するよう指示する。これにより、描画動作を実行する頻度が低減され、バックグラウンドアプリケーションによるシステムリソースの占有、電子装置の発熱及び消費電力が更に低減される。
第1態様の幾つかの実施例を参照し、幾つかの実施形態では、前記第1アプリケーションプログラムが前記フォアグラウンドアプリケーションから前記バックグラウンドアプリケーションに切り換えられた後に、前記電子装置は、前記第1アプリケーションプログラムのコレオグラファーに、K個の受信した垂直同期信号のうちN個の垂直同期信号に対応するアニメーションイベントタスクのみを処理するよう指示し、その結果、前記電子装置が前記第2頻度で前記描画操作を実行し、Kは正の整数であり、NはKより小さい正の整数である。
前述の実施形態では、電子装置は、アプリケーションプログラムのコレオグラファーに、受信した垂直同期信号のうち一部の垂直同期信号に対応するアニメーションイベントタスクのみを処理するよう指示する。これにより、描画動作を実行する頻度が低減され、バックグラウンドアプリケーションによるシステムリソースの占有、電子装置の発熱及び消費電力が更に低減される。
第1態様の幾つかの実施例を参照し、幾つかの実施形態では、前記第1アプリケーションプログラムが前記フォアグラウンドアプリケーションから前記バックグラウンドアプリケーションに切り換えられた後に、前記電子装置は、前記第1アプリケーションプログラムのコレオグラファーにより受信されたK個の垂直同期信号のうちK-N個の垂直同期信号に対応するアニメーションイベントタスクを削除するよう指示し、その結果、前記電子装置が前記第2頻度で前記描画操作を実行し、Kは正の整数であり、NはKより小さい正の整数である。
前述の実施形態では、電子装置は、アプリケーションプログラムのコレオグラファーが保存したアニメーションイベントタスクを削除し、その結果、バックグラウンドアプリケーションが実行する描画操作がヌル操作となるようにする。これにより、バックグラウンドアプリケーションによるシステムリソースの占有、及び電子装置の発熱や消費電力を低減する。
第1態様の幾つかの実施形態を参照すると、幾つかの実施形態において、Kに対するNの比が、前記第1頻度に対する前記第2頻度の比に対応する。
第1態様の幾つかの実施形態を参照すると、幾つかの実施形態において、Kに対するNの比が、前記第1頻度に対する前記第2頻度の比と等しい。
第1態様の幾つかの実施形態を参照すると、幾つかの実施形態において、前記第1アプリケーションプログラムが前記フォアグラウンドアプリケーションから前記バックグラウンドアプリケーションに切り換えられた後、前記アプリケーションプログラムが前記第1頻度で垂直同期信号を受信せず、第3頻度で垂直同期信号を受信すると、前記電子装置は、第4の頻度より低い頻度で描画操作を行い、前記第3頻度が前記第1頻度より小さく、前記第4頻度が前記第3頻度以下かつ0より大きい。
上述の実施形態では、アプリケーションプログラムは、特定の値を超えない頻度で描画操作を実行できる。これにより、描画動作を実行する頻度が低減され、バックグラウンドアプリケーションによるシステムリソースの占有、電子装置の発熱及び消費電力が更に低減される。
第1態様の幾つかの実施形態を参照すると、幾つかの実施形態において、前記第1アプリケーションプログラムが第1垂直同期信号を受信すると、前記電子装置は、前記第1アプリケーションプログラムが前記第1垂直同期信号を受信した時間と、前記第1アプリケーションプログラムが最後に前記描画操作を実行した時間との間の時間差が前記第4頻度の逆数より小さいかどうかを決定する。前記時間差が前記逆数より小さい場合、前記電子装置は、前記第1描画操作をインターセプトし、前記第1描画操作は、前記第1垂直同期信号に応答して前記第1アプリケーションプログラムによって実行される描画操作である。前記時間差が前記逆数より小さくない場合、前記電子装置は、前記第1描画操作を実行する。
上述の実施形態では、前記アプリケーションプログラムがインタフェースをリフレッシュしない目的で前記描画操作を実行する場合、前記アプリケーションプログラムは、特定の値を超えない頻度で前記描画操作を実行することができる。これにより、描画動作を実行する頻度が低減され、バックグラウンドアプリケーションによるシステムリソースの占有、電子装置の発熱及び消費電力が更に低減される。更に、システムの停止と実行の間の動的バランスが達成される。
第1態様の幾つかの実施形態を参照すると、幾つかの実施形態では、前記電子装置は、描画頻度制限ポリシー及び前記第1アプリケーションプログラムに従って前記第2頻度を決定する。
前述の実施形態では、電子装置は、描画頻度制限ポリシーに従って、異なるアプリケーションプログラムによって描画操作を実行する頻度を決定することができる。これにより、システムリソースの差別化された配分を同時に実現することができ、電子装置の発熱及び消費電力を低減することができる。
第1態様の幾つかの実施形態を参照すると、幾つかの実施形態において、前記電子装置は、前記第1アプリケーションプログラムのプロセスのアクティビティマネジャサービス及び/又はcpusetパラメータに基づいて、前記第1アプリケーションプログラムが前記フォアグラウンドアプリケーション又は前記バックグラウンドアプリケーションであることを決定する。
前述の実施形態では、アプリケーションプログラムのプロセスのアクティビティマネジャサービス及び/又はcpusetパラメータに基づいて、アプリケーションプログラムがフォアグラウンドアプリケーションからバックグラウンドアプリケーションに切り換えられたかどうかを決定することができ、バックグラウンドアプリケーションの認識精度を向上させ、バックグラウンドアプリケーションが描画操作を実行する頻度をより正確に低減し、電子装置の発熱及び消費電力を更に低減する。
第1態様の幾つかの実施形態を参照すると、幾つかの実施形態において、Nは0に等しい。
前述の実施形態では、アプリケーションプログラムがバックグラウンドアプリケーションである場合、電子装置は、描画操作を行わないようにアプリケーションプログラムに指示し、アプリケーションプログラムがシステムリソースを解放するようにして、電子装置の発熱及び消費電力を低減することができる。
第1態様の幾つかの実施形態を参照すると、幾つかの実施形態において、NはKに等しい。
前述の実施形態では、アプリケーションプログラムがバックグラウンドアプリケーションである場合、アプリケーションプログラムが垂直同期信号を受信したとき/後に、アプリケーションプログラムによって保存されたアニメーションイベントタスクを削除して、アプリケーションプログラムによって実行されるすべての描画操作をヌル操作とし、より多くのシステムリソースを解放し、電子装置の発熱及び消費電力を更に低減することができる。
第2態様によれば、本願は、アプリケーションによる描画操作を実行する方法を提供する。前記方法は、
電子装置が、第1アプリケーションプログラムを起動するステップと、
前記電子装置が、前記第1アプリケーションプログラムのインタフェースを表示し、前記電子装置が、第1頻度で描画操作を実行するステップであって、前記描画操作は、前記第1アプリケーションプログラムのためのビューを描画する、ステップと、
前記電子装置が、前記第1アプリケーションプログラムの前記インタフェースの表示を閉じ、前記電子装置が、第2頻度で前記描画操作を実行するステップであって、前記第2頻度は前記第1頻度より小さく、前記第1頻度は前記第1アプリケーションプログラムが垂直同期信号を受信する頻度である、ステップと、
を含む。
前述の実施形態では、アプリケーションプログラムがインタフェースの表示を閉じるとき、描画操作を行ってインタフェースをリフレッシュする必要がない。アプリケーションが描画操作を行う頻度を低減することができるため、バックグラウンドアプリケーションによるシステムリソースの占有を低減することができ、電子装置の発熱や消費電力を低減することができる。
第2態様の幾つかの実施形態を参照すると、幾つかの実施形態において、電子装置は、第1アプリケーションプログラムがバックグラウンドアプリケーションである第1アプリケーションプログラムのインタフェースの表示を閉じる。
前述の実施形態では、アプリケーションプログラムがインタフェースを表示せず、バックグランドアプリケーションであるとき、描画操作を行ってインタフェースをリフレッシュする必要がない。電子装置はアプリケーションが描画操作を行う頻度を低減することができるため、バックグラウンドアプリケーションによるシステムリソースの占有を低減することができ、電子装置の発熱や消費電力を低減することができる。
第2態様の幾つかの実施例を参照し、幾つかの実施形態では、前記電子装置は、前記第1アプリケーションプログラムのコレオグラファーに、K個の受信した垂直同期信号のうちN個の垂直同期信号のみに応答するよう指示し、その結果、前記電子装置が前記第2頻度で前記描画操作を実行し、Kは正の整数であり、NはKより小さい正の整数である。
前述の実施形態では、前記電子装置が、前記第1アプリケーションプログラムのコレオグラファーに、K個の受信した垂直同期信号のうちN個の垂直同期信号に対応するアニメーションイベントタスクのみを処理するよう指示し、その結果、前記電子装置が前記第2頻度で前記描画操作を実行し、Kは正の整数であり、NはKより小さい正の整数である。
第2態様の幾つかの実施形態を参照し、幾つかの実施形態では、前記電子装置が前記第1アプリケーションプログラムのインタフェースを表示しないとき、前記電子装置は、前記第1アプリケーションプログラムのコレオグラファーに、K個の受信した垂直同期信号のうちN個の垂直同期信号に対応するアニメーションイベントタスクのみを処理するよう指示し、その結果、前記電子装置が前記第2頻度で前記描画操作を実行し、Kは正の整数であり、NはKより小さい正の整数である。
前述の実施形態では、電子装置は、アプリケーションプログラムのコレオグラファーに、受信した垂直同期信号のうち一部の垂直同期信号に対応するアニメーションイベントタスクのみを処理するよう指示する。これにより、描画動作を実行する頻度が低減され、バックグラウンドアプリケーションによるシステムリソースの占有、電子装置の発熱及び消費電力が更に低減される。
第2態様の幾つかの実施形態を参照し、幾つかの実施形態では、前記電子装置は、前記第1アプリケーションプログラムのコレオグラファーにより受信されたK個の垂直同期信号のうちK-N個の垂直同期信号に対応するアニメーションイベントタスクを削除するよう指示し、その結果、前記電子装置が前記第2頻度で前記描画操作を実行し、Kは正の整数であり、NはKより小さい正の整数である。
前述の実施形態では、電子装置は、アプリケーションプログラムのコレオグラファーが保存したアニメーションイベントタスクを削除し、その結果、バックグラウンドアプリケーションが実行する描画操作がヌル操作となるようにする。これにより、バックグラウンドアプリケーションによるシステムリソースの占有、及び電子装置の発熱や消費電力を低減する。
第2態様の幾つかの実施形態を参照すると、幾つかの実施形態において、Kに対するNの比が、前記第1頻度に対する前記第2頻度の比に対応する。
第2態様の幾つかの実施形態を参照すると、幾つかの実施形態において、Kに対するNの比が、前記第1頻度に対する前記第2頻度の比と等しい。
第2態様の幾つかの実施形態を参照すると、幾つかの実施形態において、前記電子装置が前記第1アプリケーションプログラムのインタフェースを表示した後、前記アプリケーションプログラムが前記第1頻度で垂直同期信号を受信せず、第3頻度で垂直同期信号を受信すると、前記電子装置は、第4の頻度より低い頻度で描画操作を行い、前記第3頻度が前記第1頻度より小さく、前記第4頻度が前記第3頻度以下かつ0より大きい。
上述の実施形態では、アプリケーションプログラムは、特定の値を超えない頻度で描画操作を実行できる。これにより、描画動作を実行する頻度が低減され、バックグラウンドアプリケーションによるシステムリソースの占有、電子装置の発熱及び消費電力が更に低減される。
第2態様の幾つかの実施形態を参照すると、幾つかの実施形態において、前記第1アプリケーションプログラムが第1垂直同期信号を受信すると、前記電子装置は、前記第1アプリケーションプログラムが前記第1垂直同期信号を受信した時間と、前記第1アプリケーションプログラムが最後に前記描画操作を実行した時間との間の時間差が前記第4頻度の逆数より小さいかどうかを決定する。前記時間差が前記逆数より小さい場合、前記電子装置は、前記第1描画操作をインターセプトし、前記第1描画操作は、前記第1垂直同期信号に応答して前記第1アプリケーションプログラムによって実行される描画操作である。前記時間差が前記逆数より小さくない場合、前記電子装置は、前記第1描画操作を実行する。
上述の実施形態では、前記アプリケーションプログラムがインタフェースをリフレッシュしない目的で前記描画操作を実行する場合、前記アプリケーションプログラムは、特定の値を超えない頻度で前記描画操作を実行することができる。これにより、描画動作を実行する頻度が低減され、バックグラウンドアプリケーションによるシステムリソースの占有、電子装置の発熱及び消費電力が更に低減される。
第2態様の幾つかの実施形態を参照すると、幾つかの実施形態では、前記電子装置は、描画頻度制限ポリシー及び前記第1アプリケーションプログラムに従って前記第2頻度を決定する。
前述の実施形態では、電子装置は、描画頻度制限ポリシーに従って、異なるアプリケーションプログラムによって描画操作を実行する頻度を決定することができる。これにより、システムリソースの差別化された配分を同時に実現することができ、電子装置の発熱及び消費電力を低減することができる。
第2態様の幾つかの実施形態を参照すると、幾つかの実施形態において、前記電子装置は、前記第1アプリケーションプログラムのプロセスのアクティビティマネジャサービス及び/又はcpusetパラメータに基づいて、前記電子装置が前記第1アプリケーションプログラムを表示するかどうか、又は前記第1アプリケーションプログラムが前記フォアグラウンドアプリケーション又は前記バックグラウンドアプリケーションであるかを決定する。
前述の実施形態では、アプリケーションプログラムのプロセスのアクティビティマネジャサービス及び/又はcpusetパラメータに基づいて、アプリケーションプログラムがフォアグラウンドアプリケーションからバックグラウンドアプリケーションに切り換えられたかどうかを決定することができ、バックグラウンドアプリケーションの認識精度を向上させ、バックグラウンドアプリケーションが描画操作を実行する頻度をより正確に低減し、電子装置の発熱及び消費電力を更に低減する。
第2態様の幾つかの実施形態を参照すると、幾つかの実施形態において、Nは0に等しい。
前述の実施形態では、アプリケーションプログラムがバックグラウンドアプリケーションである場合、電子装置は、描画操作を行わないようにアプリケーションプログラムに指示し、アプリケーションプログラムがシステムリソースを解放するようにして、電子装置の発熱及び消費電力を低減することができる。
第2態様の幾つかの実施形態を参照すると、幾つかの実施形態において、NはKに等しい。
前述の実施形態では、アプリケーションプログラムがバックグラウンドアプリケーションである場合、アプリケーションプログラムが垂直同期信号を受信したとき/後に、アプリケーションプログラムによって保存されたアニメーションイベントタスクを削除して、アプリケーションプログラムによって実行されるすべての描画操作をヌル操作とし、より多くのシステムリソースを解放し、電子装置の発熱及び消費電力を更に低減することができる。
第3態様によれば、本願の実施形態は、電子装置を提供する。前記電子装置は1つ以上のプロセッサとメモリとを含み、
前記メモリは前記1つ以上のプロセッサに結合され、前記メモリはコンピュータプログラムコードを格納するように構成され、前記コンピュータプログラムコードはコンピュータ命令を含み、前記1つ以上のプロセッサは前記コンピュータ命令を呼び出すことにより、前記電子装置は以下の動作:
第1アプリケーションプログラムの開始するステップと、
前記第1アプリケーションプログラムがフォアグラウンドアプリケーションである場合に、第1頻度で描画操作を実行するステップであって、前記描画操作が前記第1アプリケーションプログラムのビューを描画する、ステップと、
前記第1アプリケーションプログラムが前記フォアグラウンドアプリケーションからバックグラウンドアプリケーションに切り換えられた後に、第2頻度で前記描画操作を実行するステップであって、前記第2頻度は前記第1頻度より小さく、前記第1頻度は前記第1アプリケーションプログラムが垂直同期信号を受信する頻度である、ステップと、
を実行する。
第3態様の幾つかの実施例を参照し、幾つかの実施形態では、前記第1アプリケーションプログラムが前記フォアグラウンドアプリケーションから前記バックグラウンドアプリケーションに切り換えられた後に、前記第1アプリケーションプログラムのコレオグラファーは、K個の受信した垂直同期信号のうちN個の垂直同期信号のみに応答するよう指示され、その結果、前記電子装置が前記第2頻度で前記描画操作を実行し、Kは正の整数であり、NはKより小さい正の整数である。
第3態様の幾つかの実施形態を参照し、幾つかの実施形態では、前記第1アプリケーションプログラムが前記フォアグラウンドアプリケーションから前記バックグラウンドアプリケーションに切り換えられた後に、前記第1アプリケーションプログラムのコレオグラファーは、K個の受信した垂直同期信号のうちN個の垂直同期信号に対応するアニメーションイベントタスクのみを処理するよう指示され、その結果、前記電子装置が前記第2頻度で前記描画操作を実行し、NはKより小さい正の整数である。
第3態様の幾つかの実施例を参照し、幾つかの実施形態では、前記第1アプリケーションプログラムが前記フォアグラウンドアプリケーションから前記バックグラウンドアプリケーションに切り換えられた後に、前記第1アプリケーションプログラムのコレオグラファーにより受信されたK個の垂直同期信号のうちK-N個の垂直同期信号に対応するアニメーションイベントタスクは削除され、その結果、前記電子装置が前記第2頻度で前記描画操作を実行し、Kは正の整数であり、NはKより小さい正の整数である。
第3態様の幾つかの実施形態を参照すると、Kに対するNの比が、前記第1頻度に対する前記第2頻度の比に対応する。
第3態様の幾つかの実施形態を参照すると、Kに対するNの比が、前記第1頻度に対する前記第2頻度の比と等しい。
第3態様の幾つかの実施形態を参照すると、幾つかの実施形態において、前記第1アプリケーションプログラムが前記フォアグラウンドアプリケーションから前記バックグラウンドアプリケーションに切り換えられた後、前記アプリケーションプログラムが前記第1頻度で垂直同期信号を受信せず、第3頻度で垂直同期信号を受信すると、前記電子装置は、第4の頻度より低い頻度で描画操作を行い、前記第3頻度が前記第1頻度より小さく、前記第4頻度が前記第3頻度以下かつ0より大きい。
第3態様の幾つかの実施形態を参照すると、幾つかの実施形態において、前記第1アプリケーションプログラムが第1垂直同期信号を受信すると、前記電子装置は、前記第1アプリケーションプログラムが前記第1垂直同期信号を受信した時間と、前記第1アプリケーションプログラムが最後に前記描画操作を実行した時間との間の時間差が前記第4頻度の逆数より小さいかどうかを決定する。前記時間差が前記逆数より小さい場合、前記電子装置は、前記第1描画操作をインターセプトし、前記第1描画操作は、前記第1垂直同期信号に応答して前記第1アプリケーションプログラムによって実行される描画操作である。前記時間差が前記逆数より小さくない場合、前記電子装置は、前記第1描画操作を実行する。
第3態様の幾つかの実施形態を参照すると、幾つかの実施形態では、描画頻度制限ポリシー及び前記第1アプリケーションプログラムに従って前記第2頻度が決定される。
第3態様の幾つかの実施形態を参照すると、幾つかの実施形態において、前記第1アプリケーションプログラムのプロセスのアクティビティマネジャサービス及び/又はcpusetパラメータに基づいて、前記第1アプリケーションプログラムが前記フォアグラウンドアプリケーション又は前記バックグラウンドアプリケーションであることが決定される。
第3態様の幾つかの実施形態を参照すると、幾つかの実施形態において、Nは0に等しい。
第3態様の幾つかの実施形態を参照すると、幾つかの実施形態において、NはKに等しい。
第4の態様によれば、本願の実施形態は、電子装置を提供する。前記電子装置は1つ以上のプロセッサとメモリとを含み、
前記メモリは前記1つ以上のプロセッサに結合され、前記メモリはコンピュータプログラムコードを格納するように構成され、前記コンピュータプログラムコードはコンピュータ命令を含み、前記1つ以上のプロセッサは前記コンピュータ命令を呼び出すことにより、前記電子装置は以下の動作:
第1アプリケーションプログラムを起動するステップと、
前記電子装置により、前記第1アプリケーションプログラムのインタフェースを表示するステップと、
第1頻度で描画操作を実行するステップであって、前記描画操作が前記第1アプリケーションプログラムのビューを描画する、ステップと、
前記第1アプリケーションプログラムの前記インタフェースの表示を閉じ、第2頻度で前記描画操作を実行するステップであって、前記第2頻度は前記第1頻度より小さく、前記第1頻度は前記第1アプリケーションプログラムが垂直同期信号を受信する頻度である、ステップと、
を実行する。
第4態様の幾つかの実施形態を参照すると、電子装置は、前記第1アプリケーションプログラムのインタフェースの表示が閉じられ、前記第1アプリケーションプログラムはバックグラウンドアプリケーションである。
第4態様の幾つかの実施形態を参照し、幾つかの実施形態では、前記電子装置が前記第1アプリケーションプログラムのインタフェースを表示しないとき、前記第1アプリケーションプログラムのコレオグラファーは、K個の受信した垂直同期信号のうちN個の垂直同期信号のみに応答するよう指示され、その結果、前記電子装置が前記第2頻度で前記描画操作を実行し、Kは正の整数であり、NはKより小さい正の整数である。
第4態様の幾つかの実施形態を参照し、幾つかの実施形態では、前記電子装置が前記第1アプリケーションプログラムのインタフェースを表示しないとき、前記第1アプリケーションプログラムのコレオグラファーは、K個の受信した垂直同期信号のうちN個の垂直同期信号に対応するアニメーションイベントタスクのみを処理するよう指示され、その結果、前記電子装置が前記第2頻度で前記描画操作を実行し、Kは正の整数であり、NはKより小さい正の整数である。
第4態様の幾つかの実施例を参照し、幾つかの実施形態では、前記電子装置が前記第1アプリケーションプログラムのインタフェースを表示しないとき、前記描画操作は前記第2頻度で実行され、前記電子装置は、前記第1アプリケーションプログラムのコレオグラファーにより受信されたK個の垂直同期信号のうちK-N個の垂直同期信号に対応するアニメーションイベントタスクを削除するよう指示し、その結果、前記電子装置が前記第2頻度で前記描画操作を実行し、Kは正の整数であり、NはKより小さい正の整数である。
第4態様の幾つかの実施形態を参照すると、幾つかの実施形態において、Kに対するNの比が、前記第1頻度に対する前記第2頻度の比に対応する。
第4態様の幾つかの実施形態を参照すると、幾つかの実施形態において、Kに対するNの比が、前記第1頻度に対する前記第2頻度の比と等しい。
第4態様の幾つかの実施形態を参照すると、幾つかの実施形態において、前記第1アプリケーションプログラムのインタフェースの表示が閉じられた後、前記アプリケーションプログラムが前記第1頻度で垂直同期信号を受信せず、第3頻度で垂直同期信号を受信すると、前記電子装置は、第4の頻度より低い頻度で描画操作を行い、前記第3頻度が前記第1頻度より小さく、前記第4頻度が前記第3頻度以下かつ0より大きい。
第4態様の幾つかの実施形態を参照すると、幾つかの実施形態において、前記第1アプリケーションプログラムが第1垂直同期信号を受信すると、前記電子装置は、前記第1アプリケーションプログラムが前記第1垂直同期信号を受信した時間と、前記第1アプリケーションプログラムが最後に前記描画操作を実行した時間との間の時間差が前記第4頻度の逆数より小さいかどうかを決定する。前記時間差が前記逆数より小さい場合、前記電子装置は、前記第1描画操作をインターセプトし、前記第1描画操作は、前記第1垂直同期信号に応答して前記第1アプリケーションプログラムによって実行される描画操作である。前記時間差が前記逆数より小さくない場合、前記電子装置は、前記第1描画操作を実行する。
第4態様の幾つかの実施形態を参照すると、幾つかの実施形態では、描画頻度制限ポリシー及び前記第1アプリケーションプログラムに従って前記第2頻度が決定される。
第4態様の幾つかの実施形態を参照すると、幾つかの実施形態において、前記第1アプリケーションプログラムのプロセスのアクティビティマネジャサービス及び/又はcpusetパラメータに基づいて、前記電子装置が前記第1アプリケーションプログラムを表示するかどうか、又は前記第1アプリケーションプログラムが前記フォアグラウンドアプリケーション又は前記バックグラウンドアプリケーションであるかが決定される。
第4態様の幾つかの実施形態を参照すると、幾つかの実施形態において、Nは0に等しい。
第4態様の幾つかの実施形態を参照すると、幾つかの実施形態において、NはKに等しい。
第5の態様によると、本願の一実施形態は、チップシステムを提供する。前記チップシステムは電子装置に適用される。前記チップシステムは1つ以上のプロセッサを含む。前記プロセッサは、コンピュータ命令を呼び出し、その結果、前記電子装置は、第1態様又は第1態様の可能な実装、又は第2態様に記載された方法又は第2態様の可能な実装を実行するように構成される。
第6の態様によると、本願の実施形態は、命令を含むコンピュータプログラムプロダクトを提供する。前記コンピュータプログラムプロダクトが電子装置上で実行すると、前記電子装置は、第1態様又は第1態様の任意の可能な実装に記載された方法、又は第2態様又は第2態様の任意の可能な実装を実行することが可能となる。
第7の態様によると、本願の実施形態は、命令を含むコンピュータ可読記憶媒体を提供する。前記命令が電子装置上で実行されると、前記電子装置は、第1態様又は第1態様の任意の可能な実装に記載された方法、又は第2態様又は第2態様の任意の可能な実装を実行することが可能となる。
第3態様又は第4の態様に記載された電子装置、第5の態様に記載されたチップシステム、第6の態様に記載されたコンピュータプログラムプロダクト、及び第7の態様に記載されたコンピュータ記憶媒体は、すべて、本願の実施形態に記載された方法を実行するように構成されていることが理解される。従って、達成できる有利な効果については、対応する方法における有利な効果を参照のこと。詳細は、ここでは再度説明しない。
本願におけるフォアグラウンドアプリケーションとバックグラウンドアプリケーション間の変換例の概略図である。
本願におけるアクティビティのライフサイクルの例の概略図である。
本願における4つのイベントタスクの例の概略図である。
本願による、コレオグラファーが描画操作を実行する例の概略図である。
本願においてフォアグラウンドアプリケーション及びバックグラウンドアプリケーションによって描画操作を行う例の概略図である。
本願におけるバックグラウンドアプリケーションのシステムスケジューリング方法の例の概略図である。
本願におけるバックグラウンドアプリケーションのシステムスケジューリング方法の別の例の概略図である。
本願の実施形態による電子装置100の構造の概略図である。
本願の実施形態による電子装置100の別の構造の概略図である。
本願の実施形態による電子装置100のソフトウェア構造の概略ブロック図である。
本願の実施形態による電子装置100の別のソフトウェア構造の概略図である。
本願による、アプリケーションにより描画操作を実行する方法の例の概略図である。
本願による描画頻度制限ポリシーのインタフェースの例の概略図である。 本願による描画頻度制限ポリシーのインタフェースの例の概略図である。 本願による描画頻度制限ポリシーのインタフェースの例の概略図である。 本願による描画頻度制限ポリシーのインタフェースの例の概略図である。 本願による描画頻度制限ポリシーのインタフェースの例の概略図である。
本願の実施形態によるコレオグラファーが垂直同期信号を受信することをインターセプトする方法の一例の概略図である。
本願の実施形態によるコレオグラファーがアニメーションイベントタスクを処理することをインターセプトする方法の例の概略図である。
本願の実施形態によるコレオグラファーの描画操作をインターセプトする例の概略図である。
本願の実施形態によるバックグラウンドアプリケーションの無意味な描画操作を管理及び制御するシナリオの例の概略図である。
本願の実施形態によるバックグラウンドアプリケーションの無意味な描画操作を管理及び制御するシナリオの別の例の概略図である。
本願の以下の実施形態で使用される用語は、単に特定の実施形態を説明することを意図したものであるが、本願を限定することを意図しない。本願の明細書及び添付の特許請求の範囲において使用されているように、単数形の用語「a」、「one」、「the」、「the foregoing」、「this」及び「the one」は、文脈において特に明確に指定されない限り、複数形も含むことを意図している。本願で使用されている「及び/又は」という用語はリストされた項目の1つ以上の項目の任意又はすべての可能な組み合わせを示し、含むことをさらに理解すべきである。
以下の用語「第1」及び「第2」は、単に説明のために使用されており、相対的な重要性の指示又は示唆、又は示される技術的特徴の量の暗示的示唆として理解されるべきではない。従って、「第1」又は「第2」により限定される特徴は、明示的又は暗示的に1つ以上の特徴を含んでよい。本願の実施形態の説明では、特に断りの無い限り、「複数の」は、2つ又は2より多くを意味する。
ここでは、わかりやすくするために、本願の実施形態における関連する用語及び関連する概念について説明する。本発明の実施形態の説明で使用される用語は、単に本発明の特定の実施形態を説明するために使用され、本発明を限定することを意図しない。
(1)フォアグラウンドアプリケーション及びバックグラウンドアプリケーション
アプリケーションプログラムがユーザと直接相互作用できるかどうかによって、アプリケーションプログラムは、以下の種類:フォアグラウンドアプリケーションとバックグラウンドアプリケーションに分類できる。フォアグラウンドアプリケーションとバックグラウンドアプリケーションは、アプリケーションプログラムの実行状態を表す。フォアグラウンドアプリケーションは、ユーザによってフォアグラウンドに配置され、互いに直接相互作用できるアプリケーションプログラムであり、バックグラウンドアプリケーションは、ユーザによってバックグラウンドに配置され、互いに直接相互作用できないアプリケーションプログラムである。
本願の実施形態では、アプリケーションがフォアグラウンドアプリケーションであるかバックグラウンドアプリケーションであるかは、アプリケーションプログラムが直接表示されるかどうかに基づいて決定できる。具体的には、アプリケーションプログラムが見えている場合、それはフォアグラウンドアプリケーションであり、アプリケーションプログラムが見えない場合、それはバックグラウンドアプリケーションである。
例えば、アプリケーションのインタフェースが電子装置の画面に表示されている場合、そのアプリケーションはフォアグラウンドアプリケーションである。アプリケーションのインタフェースが電子装置の画面に表示されていない場合、そのアプリケーションはフォアグラウンドアプリケーションである。アプリケーションのインタフェースには、オペレーティングシステムのトップステータスバー又は通知バーは含まれない。
オプションとして、本願の幾つかの実施形態では、アプリケーションプログラムがフォアグラウンドアプリケーションであるかバックグラウンドアプリケーションであるかは、アプリケーションプログラムが幾つかの条件を満たすかどうかに基づいて決定できる。具体的には、アプリケーションプログラムが次の3つの条件のいずれかを満たす場合、アプリケーションプログラムはフォアグラウンドアプリケーションである。それ以外の場合、アプリケーションプログラムはバックグラウンドアプリケーションである。3つの条件は次の通りである。アプリケーションに可視アクティビティ(Activity)があり、アプリケーションにフォアグラウンドサービスがあり、別のフォアグラウンドアプリケーションがアプリケーションに関連付けられている。アクティビティの概念については、用語説明(2)アクティビティの説明を参照し、詳細はここでは説明しない。
電子装置は、アプリケーションが多くの方法でその時点で可視アクティビティを持つかどうかを決定し、更に、アプリケーションがフォアグラウンドアプリケーションであるかバックグラウンドアプリケーションであるかを決定することができる。これは、ここでは限定されない。
例えば、アプリケーションプログラムがフォアグラウンドアプリケーションであるかバックグラウンドアプリケーションであるかは、アプリケーションプログラムの主要なアクティビティのライフサイクルに基づいて決定することができる。具体的には、アプリケーションプログラムの主要なアクティビティがonStopメソッド、onResumeメソッド、及びtopResumedActivityChangedItemメソッドなどの各種メソッドを実行するかどうかに基づいて、アプリケーションがフォアグラウンドアプリケーションであるかバックグラウンドアプリケーションであるかを決定することができる。アプリケーションのアクティビティがonStopメソッドを実行した後、アプリケーションはバックグラウンドアプリケーションと見なされる。アプリケーションのアクティビティがonResumeメソッドとtopResumedActivityChangedItemメソッドを実行した後、アプリケーションはフォアグラウンドアプリケーションと見なされる。onStopメソッド、onResumeメソッド、及びtopResumedActivityChangedItemメソッドなどの用語の概念については、次の用語説明の(2)アクティビティの説明を参照のこと。詳細は、ここでは再度説明しない。
例えば、アプリケーションプログラムがフォアグラウンドアプリケーションであるかバックグラウンドアプリケーションであるかは、cpusetパラメータを使用して決定することができる。具体的には、アプリケーションプログラムに対応するプロセスのcpusetパラメータがbackground又はkey-backgroundの場合、アプリケーションプログラムはバックグラウンドアプリケーションである。従って、アプリケーションプログラムに対応するプロセスのcpusetパラメータがbackground又はkey-backgroundの場合、アプリケーションプログラムはフォアグラウンドアプリケーションである。
なお、ユーザの操作に応じて、アプリケーションプログラムがフォアグラウンドアプリケーションとバックグラウンドアプリケーションとの間で変換される場合がある。
なお、ユーザにとって、ユーザがアプリケーションプログラムのインタフェースを見ることができる場合、そのアプリケーションはフォアグラウンドアプリケーションとみなされる。ユーザがアプリケーションプログラムのインタフェースを表示しない場合、そのアプリケーションはバックグラウンドアプリケーションとみなされる。
次に、図1(A)~図1(F)に示す内容を例として使用して、装置がアプリケーションプログラムのインタフェースを表示するかどうかに基づき、アプリケーションプログラムがフォアグラウンドアプリケーションかバックグラウンドアプリケーションかを決定する方法について説明する。
図1(A)~図1(F)は、本願におけるフォアグラウンドアプリケーションとバックグラウンドアプリケーション間の変換例の概略図である。
図1(A)に示すように、現在のユーザが音楽を聴くためにMusicを起動すると、携帯電話に表示されるインタフェースはMusicのインタフェースである。この場合、Musicはフォアグラウンドアプリケーションである。図1(B)に示されているコンテンツを参照すると、ユーザがマルチタスクバーを開いて、3つのアプリケーションプログラム:Music、Gallery、及びBrowserが、現在携帯電話上で実行されていることを知ることができる。図1(A)に示されているシナリオでは、電子装置はGallery及びBrowserのインタフェースを表示しない。この場合、Gallery及びBrowserはバックグラウンドアプリケーションである。図1(C)に示すように、ユーザの操作に応じて、ユーザはMusicをバックグラウンドに、Galleryをフォアグラウンドに切り換え、電子装置はGalleryのインタフェースを表示する。この場合、Galleryはフォアグラウンドアプリケーションであり、Music及びBrowserはバックグラウンドアプリケーションである。図1(D)に示すように、ユーザの操作に応じて、ユーザは図1(C)に基づくブラウザの小ウィンドウを開いてウェブページと写真を同時に閲覧することができ、携帯電話はBrowserとGalleryのインタフェースを同時に表示する。この場合、Gallery及びBrowserはフォアグラウンドアプリケーションであり、Musicはバックグラウンドアプリケーションである。
図1(E)に示すように、ユーザがビデオアプリケーションを開いたとき、ユーザは小ウィンドウモードを有効にした後、アプリケーションをバックグラウンドに切り換えることができる。図1(F)に示すように、電子装置は、デスクトップとビデオアプリケーションの小ウィンドウを表示する。この場合、ビデオアプリケーションはフォアグラウンドアプリケーションである。
なお、本願の本実施形態では、ユーザによってアプリケーションのメインインタフェースがバックグラウンドに切り換えられたにもかかわらず、装置がそのアプリケーションの小ウィンドウインタフェース(アプリケーションのメインインタフェース又は他のインタフェース)を表示したままである場合、そのアプリケーションはフォアグラウンドアプリケーションとみなされる。
なお、本願の幾つかの実施形態では、電子装置がアプリケーションプログラムの幾つかのインタフェースの表示を閉じる場合、電子装置はそのアプリケーションプログラムのインタフェース表示を閉じていないとみなされる。従って、電子装置がアプリケーションプログラムの全てのインタフェースの表示を閉じる場合、電子装置はそのアプリケーションプログラムのインタフェース表示を閉じるとみなされる。
図1(A)に示すシナリオでは、ユーザは、電子装置によって表示されるMusicのインタフェースを見ることができる。従って、Musicはフォアグラウンドアプリケーションである。図1(B)に示すシナリオでは、ユーザは、電子装置によって表示されるGalleryのインタフェースを見ることができる。従って、Galleryはフォアグラウンドアプリケーションである。図1(D)に示すシナリオでは、ユーザは、電子装置によって表示されるGallery及びBrowserのインタフェースを見ることができる。この場合、Gallery及びBrowserはフォアグラウンドアプリケーションである。図1(E)及び図1(F)に示すシナリオでは、ユーザは、電子装置によって表示される前記ビデオのインタフェースを見ることができる。従って、ビデオソフトウェアはフォアグラウンドアプリケーションである。
(2)アクティビティ
アクティビティは、Androidオペレーティングシステムの基本コンポーネントの1つであり、アプリケーションプログラムでユーザに対話型インタフェース又はビューを提供するために使用できる。1つのアプリケーションプログラムは複数のアクティビティを持つことができ、アプリケーションはタスクスタックを使用してアクティビティをロード(load)する。タスクスタックの最上位にあるアクティビティは、ユーザが直接操作できるアクティビティである。
アクティビティにはライフサイクルがある。アプリケーションプログラムのメインアクティビティ(Main Activity)のライフサイクルは、アプリケーションがフォアグラウンドアプリケーションかバックグラウンドアプリケーションかを決定するために決定される。メインアクティビティは、アプリケーションの開発時に開発者によって指定されたアクティビティであり、アプリケーションプログラムのメインインタフェースを担うために使用されることがある。
図2は、本願におけるアクティビティのライフサイクルの例の概略図である。
図2に示すように、アプリケーションプログラムの開発者は、アプリケーションプログラムのアクティビティを開発する際に、少なくとも7つのコールバックメソッド(Method)を実装する必要がある。コールバックメソッドは、コールバック関数とも呼ばれ、特定の関数を実装するために呼び出されることがある。7つのコールバックメソッドは、onCreateコールバックメソッド、onStartコールバックメソッド、onResumeコールバックメソッド、onPausedコールバックメソッド、onStopコールバックメソッド、onDestroyコールバックメソッド、及びonRestartコールバックメソッドである。アクティビティは、前述の7つのコールバックメソッドを呼び出すことによって、アクティビティのライフサイクルを実装できる。
具体的には、アクティビティが初めて作成されるとき、アクティビティはonCreateコールバックメソッドを呼び出してアクティビティを初期化する。アクティビティが非表示から表示に変更されると、アクティビティはonStartコールバックメソッドを呼び出す。アクティビティがユーザと対話する準備ができると、アクティビティはonResumeコールバックメソッドを呼び出す。アクティビティがタスクスタックの最上位からいなくなるとき、アクティビティはonPauseコールバックメソッドを呼び出して、キーデータを保存し、リソースを解放する。アクティビティが完全に非表示になると、アクティビティはonStartコールバックメソッドを呼び出す。アクティビティが自身を破棄する前に、アクティビティはonDestroyコールバックメソッドを呼び出してリソースを解放する。アクティビティが停止状態から実行状態に変わると、アクティビティはonRestartコールバックメソッドを呼び出す。
アクティビティのライフサイクルを参照して、アクティビティが属するアプリケーションプログラムがフォアグラウンドアプリケーションであるかバックグラウンドアプリケーションであるかを決定できる。アプリケーションのメインアクティビティがonStopコールバックメソッドを実行した後、アプリケーションがバックグラウンドアプリケーションになると考えることができる。これに対応して、アプリケーションのメインアクティビティがonResumeコールバックメソッドを実行した後、アプリケーションがフォアグラウンドアプリケーションになると考えることができる。
場合によっては、アプリケーションプログラムがフォアグラウンドを再開すると、アプリケーションプログラムのメインアクティビティがTopResumedActivityChangeItemコールバックメソッドを実行することに注意する。したがって、アプリケーションプログラムのメインアクティビティがTopResumedActivityChangeItemコールバックメソッドを実行したかどうかを決定して、現在のアプリケーションがフォアグラウンドアプリケーションになるかどうかを決定できる。
本願の実施形態では、オペレーティングシステムによって提供されるアクティビティマネジャサービス(Activity Manager Service, AMS)を使用して、現在実行されているアプリケーションプログラムのメインアクティビティのライフサイクルを監視し、アプリケーションプログラムが現在フォアグラウンドアプリケーションであるかバックグラウンドアプリケーションであるかをアクティビティマネジャサービスを使用して決定できる。
オプションとして、本願の幾つかの実施形態では、アプリケーションプログラムを開発するときに、アプリケーションプログラムの開発者は、メインアクティビティのライフサイクルにインタフェースを追加して、アプリケーションプログラムのコレオグラファー又は他のモジュール又はオブジェクトに情報を転送し、アプリケーションプログラムがフォアグラウンドアプリケーションであるかバックグラウンドアプリケーションであるかを決定することができる。
(3)コレオグラファー(Choreographer)及び描画操作
コレオグラファーは、オペレーティングシステムにおけるクラスであり、垂直同期信号を要求し、要求された垂直同期信号に応答して描画操作を行うためのものである。クラスは、オブジェクトの状態と動作を定義するデータ構造である。垂直同期信号は、コレオグラファー操作とSurfaceFlinger操作を調整及び同期するためにオペレーティングシステムによって提供される信号である。
アプリケーションプログラムが起動されると、コレオグラファーは初期化される。コレオグラファーを初期化するプロセスは次のとおりである。アクティビティは、コレオグラファークラスに基づいてインスタンス化されたコレオグラファーオブジェクトを生成する。コレオグラファーは描画操作を実行できる。描画操作には、次のものが含まれる。コレオグラファーは、入力イベントタスク、アニメーションイベントタスク、レイアウトイベントタスク、及びサブミッションイベントタスクを処理する。描画操作を実行した後、コレオグラファーは、描画操作の結果をアプリケーションプログラムの別のモジュールにサブミットして、電子装置の画面にリフレッシュされたインタフェース又はビューを表示することができる。
以下は、コレオグラファーの詳細な生成とコレオグラファーが描画操作を実行するためのトリガ条件について説明する。
ユーザによって各アプリケーションプログラムが起動された後、そのアプリケーションプログラムが初めてビジュアルインタフェース又はビューを表示する必要があるときに、そのアプリケーションプログラムに属する少なくとも1つのコレオグラファーが生成される。コレオグラファーの数は、アプリケーションプログラムによって使用されるスレッドの数に関連することができる。スレッドは、オペレーティングシステムによってスケジュールされる最小リソースである。例えば、アプリケーションプログラムのUIスレッドは、スレッドにバインドされたコレオグラファーを生成する。UIスレッドはメインスレッドと呼ばれることもあり、主に、インタフェースの表示、更新、制御対話などの機能を実装するための計算オーバヘッドを担うために使用される。
アプリケーションプログラムがインタフェース又はビューをリフレッシュする必要がある場合、コレオグラファーはSurfaceFlingerから垂直同期信号(Vsync)を要求して、描画操作を実行するための適切なタイミングを見つける。SurfaceFlingerから送信された垂直同期信号を受信した後に、コレオグラファーは描画操作の実行を開始する。コレオグラファーは、OnVsyncコールバックメソッドを使用して垂直同期信号を受信する。OnVsyncコールバックメソッドは、コレオグラファーの内部クラスFrameDisplayEventReceiverによって提供されるコールバックメソッドである。コレオグラファーがOnVsyncコールバックメソッドを使用して垂直同期信号の受信に成功すると、描画操作を開始できることがコレオグラファーに通知される。
アプリケーションプログラムがフォアグラウンドアプリケーション/バックグラウンドアプリケーションの場合、コレオグラファーがSurfaceFlingerから垂直同期信号を要求する頻度は不変のままである。
SurfaceFlingerは、オペレーティングシステムの最下層で提供されるサービスであり、異なるアプリケーションプログラムのコレオグラファーの要求を受信し、要求に応じてアプリケーションプログラムに垂直同期信号を配信するように構成されている。垂直同期信号は、ソフトウェアシミュレーションを通じて生成されてもよく、又は電子装置のハードウェアによって生成されてもよい。例えば、垂直同期信号は、ハードウェアコンポーザ(Hardware Composer、HWC)によって生成されてもよい。垂直同期信号を生成した後、HWCはコールバックメソッドを使用してSurfaceFlingerに垂直同期信号を送信してもよい。したがって、SurfaceFlingerはコレオグラファーに垂直同期信号を転送できる。SurfaceFlingerから送信された垂直同期信号を受信した後に、コレオグラファーは描画操作の実行を開始する。
電子装置が垂直同期信号を生成する頻度は、電子装置の画面のリフレッシュレートに関連してもよい。例えば、電子装置が垂直同期信号を生成する頻度が90Hzであるとき、電子装置の画面のリフレッシュレートは90Hzであってよい。
以下は、描画操作に含まれる内容について説明する。
具体的には、コレオグラファーが生成された後、アプリケーションプログラムは、コレオグラファーに設定された4つの一方向リンクリスト(CallbackQueue)に4つのイベントタスクを時系列で保存する。垂直同期信号を受信した後、コレオグラファーは、doFrameコールバックメソッドを使用して、現在の時刻に対応する4つの対応するイベントタスクを処理する。4つのイベントタスクは、CALLBACK_INPUT、CALLBACK_ANIMATION、CALLBACK_TRAVERSAL、及びCALLBACK_COMMITである。
doFrameコールバックメソッドには、前述の4つのイベントタスクを処理するために各々使用される4つのdoCallBacksコールバックメソッドが含まれる。
CALLBACK_INPUTは入力イベントタスクであり、入力イベントタスクは、アプリケーションプログラムが入力イベントをカプセル化してコレオグラファーに配信するためのデータである。入力イベントは、アプリケーションプログラムによって受信されるユーザとアプリケーションプログラムの間の対話である場合がある。例えば、入力イベントは、アプリケーションプログラムの対話型制御に対するユーザのタップ、又はアプリケーションプログラムにおけるユーザのスワイプ(例えば、上下にスワイプしたり、左右にスライドしたりする)であってよい。これは、ここでは限定されない。アプリケーションプログラムは、入力イベントを決定した後、入力イベントを予備的に処理し、入力イベントに対応する入力イベントタスクを生成し、コレオグラファーに入力イベントタスクを転送する。
CALLBACK_ANIMATIONはアニメーションイベントタスクであり、アニメーションイベントタスクはアプリケーションプログラムがアニメーション(Animation)を計算するために必要なデータである。アニメーションには、ビューアニメーション(View Animation)、フレームアニメーション(Drawable Animation)、プロパティアニメーション(Property Animation)などが含まれる。
CALLBACK_TRAVERSALはレイアウトイベントタスクであり、コレオグラファーがビュー又はインタフェースの描画データを計算するために使用される。計算されて決定された描画データは、ビューに表示されるコンテンツの幅、高さ、位置、形状などを決定するために、アプリケーションプログラムの別のモジュールに送信される。
CALLBACK_COMMITは、サブミッションイベントタスクであり、コレオグラファーが垂直同期信号に対応する描画操作を完了したことを示す。
次に、図3に示す内容を例として用いて、上記4つのイベントタスクについて再度具体的に説明する。
図3は、本願における4つのイベントタスクの例の概略図である。
アプリケーションプログラムのメインインタフェースを図3(A)に示す。メインインタフェースは、第1矩形制御301、第2矩形制御302、第3矩形制御303の3つの矩形制御を含む。第1矩形制御301及び第2矩形制御302は、ユーザのタップ操作に対応してよく、第3矩形制御303は、現在の数値をユーザに表示してもよい。ユーザが第1矩形制御301をタップすると、第3矩形制御303に表示される数値が1増加する。ユーザが第2矩形制御302をタップすると、第3矩形制御303に表示される数値が1減少する。また、ユーザが第1矩形制御301又は第2矩形制御302をタップすると、ユーザがタップした矩形制御は、タップが成功したことをユーザに通知するために、段階的にグレーのアニメーションを表示する。
図3の(B)に示す内容は、ユーザが第2矩形制御302をタップした後に表示されるインタフェースである。図3の(A)に示すアプリケーションプログラムのインタフェースと比較すると、第2矩形制御302がグレーになり、第3矩形制御303に表示される数値が4から3に変化する。
図3に示す内容では、第1矩形制御301又は第2矩形制御302のタップイベントが入力イベントであると考えることができる。入力イベントを取得した後、電子装置の画面は、入力イベントを対応するドライバに報告し、入力イベントを対応するアプリケーションプログラムに配信する。入力イベントを取得した後、アプリケーションプログラムは、イベントを入力イベントタスクにパッケージ化し、コレオグラファーにタスクを配信する。同様に、表示する必要がある濃度勾配式グレーのアニメーションはアニメーションイベントであり、アニメーションイベントタスクとしてパッケージ化され、コレオグラファーに配信される。同様に、レイアウトイベントタスクを用いて、ビュー内の第2矩形制御302の位置、サイズ、及び形状を決定する。同様に、サブミッションイベントタスクを用いて、描画操作の完了を決定する。
最後に、図4に示す内容を例として用いて、コレオグラファーが描画操作を行うデータ処理について説明する。
図4は、本願による、コレオグラファーが描画操作を実行する例の概略図である。
図4に示すように、アプリケーションプログラムが最初に起動された後、アプリケーションプログラムのメインアクティビティは、アクティビティのライフサイクルに基づいてonStartコールバックメソッド及びonResumeコールバックメソッドなどのコールバックメソッドを実行する。アプリケーションプログラムがonResumeコールバックメソッドを実行した後、ビジュアルインタフェース又はビューを表示する必要がある場合は、Activity.makeVisibleコールバックメソッドを使用してインタフェース又はビューを描画することができる。アクティビティがActivity.makeVisibleコールバックメソッドを使用してインタフェース又はビューを描画している間、コレオグラファーは初期化される。
コレオグラファーが初期化された後、アプリケーションプログラムがビューをリフレッシュする必要がある場合、scheduleTraversalsコールバックメソッドを使用してコレオグラファーに描画要求が送信される。scheduleTraversalsコールバックメソッドによって覚醒されたコレオグラファーは、イベントタスクを継続的に時系列で受信し、対応するイベントタスクを格納するために様々な一方向のリンクリストを使用する。
更に、描画要求を受信した後、コレオグラファーはSurfaceFlingerから垂直同期信号を要求する。SurfaceFlingerによって送信された垂直同期信号を受信した後、コレオグラファーは、doFrameコールバックメソッドを使用して描画操作を実行することができる。具体的には、入力イベントタスク、アニメーションイベントタスク、レイアウトイベントタスク、及びサブミッションイベントタスクは、doFrameコールバックメソッドを使用して処理される。
以下は、本願に関連するシナリオを記載する。
オペレーティングシステムは、垂直同期信号を要求するアプリケーションが本当に描画操作を実行する必要があるかどうかを決定するコールバックメソッドを提供しない。アプリケーションプログラムがSurfaceFlingerから垂直同期信号を要求した後、垂直同期信号が配信される。スマートフォンなどの電子装置を使用する場合、ユーザは複数のアプリケーションプログラムを起動することができる。しかし、電子装置の画面サイズの制限により、ユーザは特定の瞬間に、対話のために1つ又は少数のアプリケーションのみを画面に表示することができ(例えば、スプリットスクリーン)、他のアプリケーションプログラムはバックグラウンドアプリケーションに変換される。バックグラウンドアプリケーションの場合、バックグラウンドアプリケーションは破棄されず、コレオグラファーを保持したままであるため、バックグラウンドで幾つかの操作を実行すると、バックグラウンドアプリケーションは描画操作を実行するようにコレオグラファーをトリガする。
第1に、バックグラウンドアプリケーションには、ユーザに提示するために使用できるビュー又はインタフェースがないため、バックグラウンドアプリケーションによって描画操作を実行した結果は、ユーザによって認識されない。第2に、アニメーションイベントタスクのみがバックグラウンドアプリケーションのコレオグラファーに配信されるため、バックグラウンドアプリケーションは、描画操作を実行するときに、実際にはアニメーションイベントタスクのみを処理する。
以上の2点から、バックグラウンドアプリケーションによる描画操作は無意味な描画操作であると考えられる。
なお、どのアプリケーションプログラムにおいても、アプリケーションプログラムがフォアグラウンドアプリケーションである場合には、入力イベントタスク、アニメーションイベントタスク、レイアウトイベントタスク、及びサブミッションイベントタスクがアプリケーションプログラムのコレオグラファーに配信される。アプリケーションプログラムがバックグラウンドアプリケーションである場合には、アプリケーションプログラムが相互に対話可能なインタフェース又はビューを提供しないため、入力イベントタスク、レイアウトイベントタスク、及びサブミッションイベントタスクはアプリケーションプログラムに配信されない。
なお、ユーザにとっては、電子装置がアプリケーションプログラムのインタフェースを表示するとき、アプリケーションプログラムは描画操作を行ってインタフェースをリフレッシュする必要がある。しかし、電子装置がアプリケーションプログラムのインタフェースの表示を終了した後、電子装置が再びアプリケーションプログラムのインタフェースを表示するまでの間に、インタフェースをリフレッシュするためにアプリケーションプログラムにより行われる描画操作は、オペレーティングシステムのリソースを浪費し、電子装置の発熱や消費電力を増大させる。
図5は、本願においてフォアグラウンドアプリケーション及びバックグラウンドアプリケーションによって描画操作を行う例の概略図である。
図5に示すように、電子装置上では、Gallery、Music、及びBrowserを含む複数のアプリケーションプログラムが実行する。Galleryがフォアグラウンドアプリケーションであるとき、Music及びBrowserはバックグラウンドアプリケーションである。Gallery、Music、及びBrowserのコレオグラファーは各々垂直同期信号を受信し、垂直同期信号に応答して、Gallery、Music、及びBrowserのコレオグラファーは各々描画操作を行う。コレオグラファーが行う描画操作の計算リソースはUIスレッドによって提供される。
バックグラウンドアプリケーションが無意味な描画操作を行うと、フォアグラウンドアプリケーションのシステムリソースが占有され、電子装置の発熱や消費電力が増加し、それにより電子装置のフレームフリーズやユーザ経験の低下を引き起こすことが理解される。
以下は、本願におけるバックグラウンドアプリケーションの2つのシステムスケジューリング方法について説明する。
図5に示す内容を参照すると、アプリケーションプログラムがバックグラウンドアプリケーションに変換された後も、アプリケーションプログラムはコレオグラファーを保持しているため、アプリケーションのコレオグラファーはSurfaceFlingerから送信される垂直同期信号を依然として受信し、無意味な描画操作を行う。バックグラウンドアプリケーションによって実行される無意味な描画操作を減少させるために、バックグラウンドアプリケーションの2つの主なシステムスケジューリング方法がある。
バックグラウンドアプリケーションに関連する第1システムスケジューリング方法は、主に、電子装置のCPUのハードウェアアーキテクチャの特徴を参照して、フォアグラウンドアプリケーションとバックグラウンドアプリケーションにシステムリソースを異なる方法で割り当てることである。
図6は、本願におけるバックグラウンドアプリケーションのシステムスケジューリング方法の例の概略図である。
図6に示すように、CPU Kirin9000が例として使用される。Kirin9000は、A77アーキテクチャの1個の大コア、A77アーキテクチャの3個の中コア、A55アーキテクチャの4個の小コアを含む。電子装置のCPUのハードウェアアーキテクチャの特徴を参照すると、アプリケーションプログラムがフォアグラウンドアプリケーションである場合、アプリケーションの計算リソースを支えるために大コアが優先的に使用される。アプリケーションプログラムがバックグラウンドアプリケーションである場合、アプリケーションの計算リソースを支えるために中コアと小コアが優先的に使用される。
アプリケーションプログラムが描画操作を行うとき、CPUの計算リソースが消費されることが理解できる。したがって、フォアグラウンドアプリケーションとバックグラウンドアプリケーションにシステムリソースを異なる方法で割り当てることは、バックグラウンドアプリケーションによるフォアグラウンドアプリケーションの計算リソースの占有を低減するのに役立つ。しかし、ユーザが多数のアプリケーションを起動する場合や、ユーザが現在使用しているフォアグラウンドアプリケーションが大量のシステムリソースを占有する必要がある場合、すなわち、CPUの中コア又は小コアが幾つかの計算リソースを提供する必要がある場合には、バックグラウンドアプリケーションの無意味な描画操作がシステムの計算リソースを占有する。その結果、フォアグラウンドアプリケーションでフレームフリーズが発生し、ユーザ経験が低下する。更に、CPUを例に取ると、異なる電子装置は異なるハードウェア機能を持つため、システムスケジューリング方法は異なる製造者の異なるモデルのCPUに適応できない。
上述したバックグラウンドアプリケーションのシステムスケジューリング方法では、可能な限りフォアグラウンドアプリケーションのシステムリソースを確保するために、電子装置のハードウェア機能を参照して異なるスケジューリングを行うことが理解される。
しかし、システムスケジューリング方法は、バックグラウンドアプリケーションが無意味な描画操作を実行することを防止するものではない。これは、システムリソースを浪費し、電子装置の電力消費を増加させる。
バックグラウンドアプリケーションに関連する第2システムスケジューリング方法では、バックグラウンドアプリケーションがシステムリソースを占有できないように、バックグラウンドアプリケーションを適時にフリーズする。
図7は、本願におけるバックグラウンドアプリケーションのシステムスケジューリング方法の別の例の概略図である。
アプリケーションプログラムがフォアグラウンドアプリケーションからバックグラウンドアプリケーションに変換されると、電子装置はアプリケーションプログラムをフリーズできる。アプリケーションプログラムは描画操作を実行するために電子装置からシステムリソースを要求する必要があるが、電子装置はフリーズしたアプリケーションプログラムにシステムリソースを割り当てない。したがって、フリーズしたアプリケーションプログラムは無意味な描画操作を実行しない。しかし、フリーズしたバックグラウンドアプリケーションは、ブロードキャストやサービスなどによって覚醒される場合が多い。覚醒されたバックグラウンドアプリケーションは、依然として無意味な描画操作を実行し、システムリソースを占有し、電子装置の電力消費を増加させる。
図7に示すように、ブラウザアプリケーションがバックグラウンドに切り替わると、Browserアプリケーションはフリーズする。フリーズしたブラウザアプリケーションは、電子装置のシステムリソースを占有できないため、描画操作を行うことができない。しかし、フリーズしたブラウザアプリケーションは、オペレーティングシステムや他のアプリケーションのブロードキャストやサービスによって覚醒されることが多く、覚醒されたブラウザアプリケーションは依然として無意味な描画操作を実行する。
バックグラウンドアプリケーションが無意味な描画操作を実行できないように、バックグラウンドアプリケーションをフリーズすることができることが理解できる。
しかし、フリーズされたバックグラウンドアプリケーションはしばしば覚醒され、覚醒されたバックグラウンドアプリケーションは依然として無意味な描画操作を実行でき、システムリソースを占有し、電子装置の電力消費を増加させる。
本願は、バックグラウンドアプリケーションが無意味な描画操作を実行することを防止して、システムリソースの占有を減らし、電子装置の消費電力を削減するために、アプリケーション及び電子装置による描画操作を実行する方法を提供する。アプリケーションプログラムがフォアグラウンドアプリケーションからバックグラウンドアプリケーションに変更されると、アプリケーションプログラムは、描画頻度制限ポリシーに従ってバックグラウンド描画頻度を決定し、決定されたバックグラウンド描画頻度に基づいて垂直同期信号をインターセプトしたり、コレオグラファーがアニメーションイベントタスクを処理するのをインターセプトしたりして、バックグラウンドアプリケーションが実行する無意味な描画操作を効果的に減らし、バックグラウンドアプリケーションによるシステムリソースの占有を更に減らし、電子装置の消費電力を削減する。
以下は、本願で提供される電子装置を説明する。
本願の実施形態では、電子装置は、携帯電話やタブレットコンピュータなどのモバイル電子装置であってもよく、スマートテレビやパーソナルコンピュータ(personal computer, PC)などの装置であってもよい。これは、ここでは限定されない。
例えば、図8は、本願の実施形態による電子装置100の構造の概略図である。
以下では、電子装置100を例として用いて、本実施形態について詳細に説明する。なお、電子装置100は、図に示す構成要素よりも構成要素が多くても少なくてもよく、2つ以上の構成要素を組み合わせてもよく、構成要素が異なっていてもよい。図に示す様々な構成要素は、ハードウェア、ソフトウェア、又は1つ以上の信号処理及び/又は特定用途向け集積回路を含むハードウェアとソフトウェアの組み合わせで実装されてもよい。
電子装置100は、プロセッサ110、外部メモリインタフェース120、内部メモリ121、ユニバーサルシリアルバス(universal serial bus, USB)インタフェース130、充電管理モジュール140、電力管理モジュール141、バッテリ142、アンテナ1、アンテナ2、移動通信モジュール150、無線通信モジュール160、オーディオモジュール170、スピーカ170A、受信機170B、マイクロフォン170C、ヘッドセットジャック170D、センサモジュール180、キー190、モータ191、インジケータ192、カメラ193、ディスプレイ194、加入者識別モジュール(subscriber identification module, SIM)カードインタフェース195等を含んでよい。センサモジュール180は、圧力センサ180A、ジャイロスコープセンサ180B、気圧センサ180C、磁気センサ180D、加速度センサ180E、距離センサ180F、光学近接センサ180G、指紋センサ180H、温度センサ180J、タッチセンサ180K、周囲光センサ180L、骨伝導センサ180Mなどを含んでよい。
本発明の本実施形態で示された構造は、電子装置100に対する特定の制限を構成しないことが理解され得る。本願の幾つかの他の実施形態では、電子装置100は、図示のものより多くの又はより少ないコンポーネントを含んでよく、又は幾つかのコンポーネントは結合されてよく、又は幾つかのコンポーネントは分離されてよく、又は異なるコンポーネント配置が使用されてよい。図中の構成要素は、ハードウェア、ソフトウェア、又はソフトウェアとハードウェアの組合せにより実装されてよい。
プロセッサ110は、1つ以上の処理ユニットを含んでもよい。例えば、プロセッサ110は、アプリケーションプロセッサ(application processor, AP)、モデムプロセッサ、グラフィック処理ユニット(graphics processing unit, GPU)、画像信号プロセッサ(image signal processor, ISP)、制御部、メモリ、ビデオコーデック、デジタル信号プロセッサ(digital signal processor, DSP)、ベースバンドプロセッサ、及び/又はニューラルネットワーク処理ユニット(neural-network processing unit, NPU)等を含んでもよい。異なる処理ユニットは、独立したコンポーネントであってもよく、又は1つ以上のプロセッサに統合されてもよい。
コントローラは、電子装置100の中枢部及びコマンドセンタであってもよい。制御部は、命令フェッチ及び命令実行の完全な制御を行うために、命令演算コード及び時間シーケンス信号に基づいて演算制御信号を生成することができる。
メモリは、更に、プロセッサ110内に配置されてもよく、命令及びデータを記憶するように構成される。幾つかの実施形態では、プロセッサ110内のメモリはキャッシュである。メモリは、プロセッサ110によって直ぐに使用される又は周期的に使用される命令又はデータを記憶することができる。プロセッサ110が命令又はデータを再度使用する必要がある場合、プロセッサは、メモリから命令又はデータを直接呼び出すことができる。これは、繰り返されるアクセスを回避し、プロセッサ110の待ち時間を短縮し、それによって、システム効率を向上する。
幾つかの実施形態では、プロセッサ110は、1つ以上のインタフェースを含むことができる。インタフェースは、集積回路間(inter-integrated circuit, I2C)インタフェース、集積回路間サウンド(inter-integrated circuit sound, I2S)インタフェース、パルス符号変調(pulse code modulation, PCM)インタフェース、汎用非同期受信機/送信機(universal asynchronous receiver/transmitter, UART)インタフェース、モバイルインダストリープロセッサインタフェース(mobile industry processor interface, MIPI)、汎用入出力(general-purpose input/output, GPIO)インタフェース、加入者識別モジュール(subscriber identity module, SIM)インタフェース、汎用シリアルバス(universal serial bus, USB)インタフェースなどを含むことができる。
I2Cインタフェースは双方向同期シリアルバスであり、1つのシリアルデータライン(serial data line, SDA)と1つのシリアルクロックライン(serial clock line, SCL)を含む。幾つかの実施形態では、プロセッサ110は、I2Cバスの複数のグループを含むことができる。プロセッサ110は、異なるI2Cバスインタフェースを介して、タッチセンサ180K、充電器、フラッシュ、カメラ193などに個別に結合することができる。例えば、プロセッサ110は、I2Cインタフェースを介してタッチセンサ180Kに結合され、プロセッサ110がI2Cバスインタフェースを介してタッチセンサ180Kと通信し、電子装置100のタッチ機能を実現することができる。
I2Sインタフェースは、オーディオ通信を実行するように構成することができる。幾つかの実施形態では、プロセッサ110は、I2Sバスの複数のグループを含むことができる。プロセッサ110は、I2Sバスを介してオーディオモジュール170に結合され、プロセッサ110とオーディオモジュール170との間の通信を実現することができる。幾つかの実施形態では、オーディオモジュール170は、Bluetoothヘッドセットを介して通話に応答する機能を実現するために、I2Sインタフェースを介して無線通信モジュール160にオーディオ信号を送信することができる。
PCMインタフェースは、オーディオ通信を実行し、アナログ信号をサンプリングし、量子化し、符号化するために使用することもできる。幾つかの実施形態では、オーディオモジュール170は、PCMバスインタフェースを介して無線通信モジュール160に結合することができる。幾つかの実施形態では、オーディオモジュール170は、Bluetoothヘッドセットを介して通話に応答する機能を実現するために、PCMインタフェースを介して無線通信モジュール160にオーディオ信号を送信することもできる。I2SインタフェースとPCMインタフェースの両方をオーディオ通信に使用することができる。
UARTインタフェースはユニバーサルシリアルデータバスであり、非同期通信を実行するように構成されている。バスは双方向通信バスであってもよい。バスはシリアル通信とパラレル通信の間で送信データを変換する。幾つかの実施形態では、UARTインタフェースは、プロセッサ110を無線通信モジュール160に接続するように一般的に構成される。例えば、プロセッサ110は、Bluetooth機能を実装するために、UARTインタフェースを介して無線通信モジュール160内のBluetoothモジュールと通信する。幾つかの実施形態では、オーディオモジュール170は、Bluetoothヘッドセットを介して音楽を再生する機能を実現するために、UARTインタフェースを介して無線通信モジュール160にオーディオ信号を送信することができる。
MIPIインタフェースは、プロセッサ110をディスプレイ194又はカメラ193のような周辺構成要素に接続するように構成することができる。MIPIインタフェースは、カメラシリアルインタフェース(camera serial interface, CSI)、ディスプレイシリアルインタフェース(display serial interface, DSI)などを含む。幾つかの実施形態では、プロセッサ110はCSIを介してカメラ193と通信し、電子装置100の撮影機能を実現する。プロセッサ110はDSIを介してディスプレイ194と通信し、電子装置100の表示機能を実現する。
GPIOインタフェースは、ソフトウェアによって構成することができる。GPIOインタフェースは、制御信号又はデータ信号として構成することができる。幾つかの実施形態では、GPIOインタフェースは、プロセッサ110をカメラ193、ディスプレイ194、無線通信モジュール160、オーディオモジュール170、センサモジュール180などに接続するように構成することができる。GPIOインタフェースは、I2Cインタフェース、I2Sインタフェース、UARTインタフェース、MIPIインタフェースなどとして構成することもできる。
SIMインタフェースは、SIMカードにデータを送信する機能又はSIMカード内のデータを読み取る機能を実現するために、SIMカードインタフェース195と通信するために使用することができる。
USBインタフェース130は、USB標準仕様に準拠するインタフェースであり、具体的には、ミニUSBインタフェース、マイクロUSBインタフェース、USB Type-Cインタフェースなどであってもよい。USBインタフェース130は、電子装置100を充電するために充電器に接続するように構成されてもよく、又は電子装置100と周辺装置との間でデータを送信するように構成されてもよい。あるいは、USBインタフェースは、ヘッドセットを介してオーディオを再生するためにヘッドセットに接続するように構成してもよい。インタフェースは、AR装置などの別の電子装置に接続するように更に構成してもよい。
なお、本発明の本実施形態で示すモジュール間のインタフェース接続関係は、説明のための一例にすぎず、電子装置100の構造を制限するものではないことが理解できる。本願の幾つかの他の実施形態では、電子装置100は、上記実施形態とは異なるインタフェース接続方法を用いてもよいし、複数のインタフェース接続方法を組み合わせて用いてもよい。
充電管理モジュール140は、充電器からの充電入力を受信するように構成される。充電器は、無線充電器又は有線充電器であってよい。
電力管理モジュール141は、バッテリ142及び充電管理モジュール140をプロセッサ110に接続するように構成される。電力管理モジュール141は、バッテリ142及び/又は充電管理モジュール140の入力を受け取り、プロセッサ110、内部メモリ121、外部メモリ、ディスプレイ194、カメラ193、無線通信モジュール160などに電力を供給する。
電子装置100の無線通信機能は、アンテナ1、アンテナ2、移動通信モジュール150、無線通信モジュール160、モデムプロセッサ、ベースバンドプロセッサなどを介して実現することができる。
アンテナ1及びアンテナ2は、電磁波信号を送受信するように構成される。電子装置100内の各アンテナは、1つ以上の通信周波数帯域をカバーするように構成することができる。アンテナ利用率を向上するために、異なるアンテナを更に再利用することができる。例えば、アンテナ1は、無線ローカルエリアネットワークのダイバーシチアンテナとして多重化されてもよい。幾つかの他の実施形態において、アンテナは、同調スイッチと組み合わせて使用されてもよい。
移動通信モジュール150は/2G/3G/4G、5G等を含む、電子装置100に適用される無線通信ソリューションを提供することができる。移動通信モジュール150は、少なくとも1つのフィルタ、スイッチ、電力増幅器、低ノイズ増幅器(low noise amplifier, LNA)などを含むことができる。移動通信モジュール150は、アンテナ1を介して電磁波を受信し、受信電磁波に対するフィルタリング又は増幅などの処理を行い、電磁波を復調のためにモデムプロセッサに送信することができる。移動通信モジュール150は、モデムプロセッサによって変調された信号を更に増幅し、アンテナ1を介して放射するために信号を電磁波に変換することができる。幾つかの実施形態では、移動通信モジュール150内の少なくとも幾つかの機能モジュールは、プロセッサ110内に配置されてもよい。幾つかの実施形態では、移動通信モジュール150の少なくとも幾つかの機能モジュール、及びプロセッサ110の少なくとも幾つかのモジュールは、同じ装置内に配置されてもよい。
モデムプロセッサは、変調器及び復調器を含むことができる。変調器は、送信される低周波数ベースバンド信号を中及び高周波数信号に変調するように構成される。復調器は、受信した電磁波信号を低周波数ベースバンド信号に復調するように構成される。そして、復調器は、復調によって得られた低周波数ベースバンド信号を処理のためにベースバンドプロセッサに送信する。低周波数ベースバンド信号は、ベースバンドプロセッサによって処理された後、アプリケーションプロセッサに送信される。アプリケーションプロセッサは、オーディオ装置(スピーカ170A、受信機170B等に限らない)によって音声信号を出力したり、又はディスプレイ194によって画像や映像を表示したりする。幾つかの実施形態では、モデムプロセッサは独立した構成要素であってもよい。幾つかの他の実施形態では、モデムプロセッサはプロセッサ110から独立していてもよく、移動通信モジュール150又は他の機能モジュールと同じ装置内に配置される。
無線通信モジュール160は、無線ローカルエリアネットワーク(wireless local area networks, WLAN)(例えば、ワイヤレスフィデリティ(wireless fidelity, Wi-Fi)ネットワーク)、ブルートゥース(登録商標)(Bluetooth, BT)、グローバルナビゲーション衛星システム(global navigation satellite system, GNSS)、周波数変調(frequency modulation, FM)、近距離通信(near field communication, NFC)技術、赤外線(infrared, IR)技術などを含む、電子装置100に適用される無線通信ソリューションを提供することができる。無線通信モジュール160は、少なくとも1つの通信処理モジュールを統合する1つ以上の装置であってよい。無線通信モジュール160は、アンテナ2を介して電磁波を受信し、電磁波信号に対して周波数変調及びフィルタ処理を行い、処理された信号をプロセッサ110に送信する。無線通信モジュール160は、更に、プロセッサ110から送信されるべき信号を受信し、その信号に対して周波数変調及び増幅を行い、処理された信号を、アンテナ2を介して放射するために電磁波に変換することができる。
幾つかの実施形態では、電子装置100において、アンテナ1と移動通信モジュール150とが結合され、アンテナ2と無線通信モジュール160とが結合されることにより、電子装置100は、無線通信技術を使用することによって、ネットワーク及び他の装置と通信することができる。無線通信技術には、移動通信用グローバルシステム(global system for mobile communications, GSM)、汎用パケット無線サービス(general packet radio service, GPRS)、符号分割多重アクセス(code division multiple access, CDMA)、広帯域符号分割多重アクセス(wideband code division multiple access, WCDMA)、時分割同期符号分割多重アクセス(time-division code division multiple access, TD-SCDMA)、ロングタームエボリューション(long term evolution, LTE)、BT、GNSS、WLAN、NFC、FM、IR技術などが含まれる。GNSSは、全地球測位システム(global positioning system, GPS)、全地球ナビゲーション衛星システム(global navigation satellite system, GLONASS)、北斗衛星測位システム(BeiDou navigation satellite system, BDS)、準天頂衛星システム(quasi-zenith satellite system, QZSS)、及び/又は静止衛星型補強システム(satellite based augmentation systems, SBAS)を含んでもよい。
電子装置100は、GPU、ディスプレイ194、アプリケーションプロセッサ等を通じて表示機能を実装する。GPUは、画像処理のためのマイクロプロセッサであり、ディスプレイ194及びアプリケーションプロセッサに接続される。GPUは、算述的及び幾何学的計算を実行し、画像をレンダリングするよう構成される。プロセッサ110は、プログラム命令を実行して表示情報を生成し又は変更する1つ以上のGPUを含んでよい。
ディスプレイ194は、画像、ビデオ、等を表示するよう構成される。ディスプレイ194は、ディスプレイパネルを含む。ディスプレイパネルは、液晶ディスプレイ(liquid crystal display, LCD)、有機発光ダイオード(organic light-emitting diode, OLED)、アクティブマトリクス有機発光ダイオード(active-matrix organic light emitting diode, AMOLED)、フレキシブル発光ダイオード(flexible light-emitting diode, FLED)、Miniled、MicroLed、Micro-oLed、量子ドット発光ダイオード(quantum dot light emitting diode, QLED)などであり得る。幾つかの実施形態では、電子装置100は、1つ又はN個のディスプレイ194を含んでもよく、ここで、Nは、1を超える正の整数である。
電子装置100は、カメラ193、ISP、ビデオコーデック、GPU、ディスプレイ194、アプリケーションプロセッサなどを介して写真機能を実現することができる。
ISPは、カメラ193によってフィードバックされたデータを処理するように構成される。例えば、撮影中、シャッタが押され、光が、レンズを通じてカメラの感光素子へと送信される。光信号が電気信号に変換され、カメラの感光体がISPに処理のために電気信号を送って、電気信号を可視画像に変換する。ISPは更に、画像のノイズ、輝度、及び顔色に関してアルゴリズム最適化を実行することができる。ISPは更に、撮影シナリオの露出及び色温度などのパラメータを最適化することができる。幾つかの実施形態において、ISPは、カメラ193に配置されてもよい。
カメラ193は、静止画像又はビデオをキャプチャするように構成されている。被写体の光学画像は、レンズを通して生成され、感光体上に投影される。感光体は、電荷結合素子(charge coupled device, CCD)又は相補型金属-酸化物-半導体(complementary metal-oxide-semiconductor, CMOS)フォトトランジスタであってよい。感光素子は、光信号を電気信号に変換し、次に、電気信号をデジタル画像信号に変換するために、電気信号をISPに送信する。ISPは、デジタル画像信号を処理のためにDSPに出力する。DSPは、デジタル画像信号をRGB又はYUVのような標準フォーマットの画像信号に変換する。幾つかの実施形態では、電子装置100は、1つ又はN個のカメラ193を含んでもよく、ここで、Nは、1を超える正の整数である。
デジタル信号プロセッサは、デジタル信号を処理するように構成され、デジタル画像信号に加えて別のデジタル信号を処理することができる。例えば、電子装置100が周波数を選択すると、デジタル信号プロセッサは、周波数エネルギに対してフーリエ変換を実行するように構成される。
ビデオコーデックは、デジタルビデオを圧縮又は解凍するように構成される。電子装置100は、1つ以上のビデオコーデックをサポートすることができる。このように、電子装置100は、複数のコーディングフォーマット、例えば、動画専門家グループ(moving picture experts group, MPEG)-1、MPEG-2、MPEG-3、及びMPEG-4でビデオを再生又は記録することができる。
NPUは、ニューラルネットワーク(neural-network, NN)計算プロセッサである。NPUは、例えば、ヒトの脳のニューロン間の伝達様式を参照することにより、生物学的ニューラルネットワークの構造を参照することにより入力情報を迅速に処理し、自己学習を継続的に実行する。NPUを介して、電子装置100の知的認識などのアプリケーションを実現することができる。例えば、画像認識、顔認識、音声認識、テキスト理解などである。
内部メモリ121は、1つ以上のランダムアクセスメモリ(random access memory, RAM)及び1つ以上の不揮発性メモリ(non-volatile memory, NVM)を含むことができる。
ランダムアクセスメモリは、静的ランダムアクセスメモリ(static random access memory, SRAM)、動的ランダムアクセスメモリ(dynamic random access memory, DRAM)、同期動的ランダムアクセスメモリ(synchronous dynamic random access memory, SDRAM)、ダブルデータレート同期動的ランダムアクセスメモリ(double data rate synchronous dynamic random access memory, DDR SDRAM、例えば、第5世代DDR SDRAMは、一般にDDR5 SDRAMと呼ばれる)などを含むことができる。
不揮発性メモリは、磁気ディスク記憶装置とフラッシュメモリ(flash memory)とを含むことができる。
フラッシュメモリは、動作原理によって分割され、NOR FLASH、NAND FLASH、3D NAND FLASHなどを含むことができ、記憶ユニットの潜在レベルによって分割され、単一レベル記憶ユニット(single-level cell, SLC)、複数レベル記憶ユニット(multi-level cell, MLC)、3レベル記憶ユニット(triple-level cell, TLC)、4レベル記憶ユニット(quad-level cell, QLC)などを含むことができ、又は記憶仕様に従って分割され、ユニバーサルフラッシュストレージ(universal flash storage, UFS)、埋め込みマルチメディアカード(embedded multi media Card, eMMC)などを含むことができる。
ランダムアクセスメモリは、プロセッサ110によって直接読み書きされてもよく、オペレーティングシステム又は他の実行中のプログラムの実行可能プログラム(例えば、機械命令)を記憶するように構成されてもよく、更に、ユーザ及びアプリケーションプログラム等のデータを記憶するように構成されてもよい。
不揮発性メモリは、プロセッサ110によって直接読み書きされるように、あらかじめランダムアクセスメモリにロードされることができる実行可能プログラム、ユーザのデータ、アプリケーションプログラムのデータなども記憶してよい。
外部メモリインタフェース120は、外部不揮発性メモリに接続して、電子装置100の記憶容量を拡張するように構成することができる。外部不揮発性メモリは、外部メモリインタフェース120を介してプロセッサ110と通信し、データ記憶機能を実現する。例えば、音楽やビデオなどのファイルは外部不揮発性メモリに格納される。
電子装置100は、オーディオモジュール170、スピーカ170A、受信機170B、マイクロフォン170C、ヘッドセットジャック170D、アプリケーションプロセッサなどを介して、例えば音楽再生及び録音などのオーディオ機能を実現し、音楽再生機能及び録音機能を実現することができる。
オーディオモジュール170は、デジタルオーディオ情報を出力のためにアナログオーディオ信号に変換するよう構成され、また、アナログオーディオ入力をデジタルオーディオ信号へと変換するよう構成される。オーディオモジュール170は、オーディオ信号をコーディング及び復号するよう更に構成されてよい。幾つかの実装では、オーディオモジュール170がプロセッサ110内に配置されるか、又はオーディオモジュール170内の幾つかの機能モジュールがプロセッサ110内に配置される。
スピーカ170Aは、「ラウドスピーカ」とも呼ばれ、オーディオ電気信号を音声信号に変換するよう構成される。電子装置100は、スピーカ170Aにより、音楽を聴くために又はハンズフリーモードで呼に応答するために使用されてよい。
受信機170Bは、「イアピース」とも呼ばれ、電気オーディオ信号を音声信号に変換するよう構成される。電子装置100を介して呼に応答する場合又は音声情報を受信する場合、受信機170Bを人間の耳に近づけて音声を聞くことができる。
マイクロフォン170Cは、「マイク」又は「mic」とも呼ばれ、音声信号を電気信号に変換するよう構成される。発呼する又は音声メッセージを送信するとき、ユーザは、ユーザの口を通じてマイクロフォン170Cの近くで音声を生成して、音声信号をマイクロフォン170Cに入力してよい。電子装置100には、少なくとも1つのマイク170Cが配置されていてもよい。他の幾つかの実施形態では、2つのマイク170Cが電子装置100に配置され、音声信号を収集し、ノイズ低減機能を実現してもよい。他の幾つかの実施形態では、代替的に、3つ、4つ又はより多くのマイクロフォン170Cが電子装置100に配置され、音声信号を収集し、ノイズ低減を実現し、音源を識別して、指向性録音機能などを実現してもよい。
ヘッドセットジャック170Dは、有線ヘッドセットに接続するように構成される。ヘッドセットジャック170Dは、USBインタフェース130であってもよく、3.5mmオープンモバイル端末プラットフォーム(open mobile terminal platform, OMTP)標準インタフェース又は米国携帯電話通信業界団体(cellular telecommunications industry association of the USA, CTIA)標準インタフェースであってもよい。
圧力センサ180Aは、圧力信号を感知するように構成され、圧力信号を電気信号に変換できる。幾つかの実施形態において、圧力センサ180Aは、ディスプレイ194上に配置されてもよい。抵抗性圧力センサ、誘導性圧力センサ、及び容量性圧力センサのような多くの種類の圧力センサ180Aがある。容量性圧力センサは、導電性材料で作られた少なくとも2つの平行板を含むことができる。圧力センサ180Aに力が加えられると、電極間の容量が変化する。電子装置100は、この容量の変化に基づいて圧力強度を決定する。電子装置100は、ディスプレイ194に対してタッチ操作が行われると、圧力センサ180Aを介してタッチ操作の強度を検出する。また、電子装置100は、圧力センサ180Aの検出信号に基づいてタッチ位置を算出してもよい。幾つかの実施形態では、同じタッチ位置で実行されるが、異なるタッチ操作強度を有するタッチ操作は、異なる操作命令に対応してもよい。例えば、SMSメッセージアプリケーションアイコン上で、タッチ操作強度が第1圧力閾値未満のタッチ操作が実行された場合、SMSメッセージを閲覧するための命令が実行される。SMSメッセージアプリケーションアイコン上で、タッチ操作強度が第1圧力閾値以上のタッチ操作が実行された場合、新しいSMSメッセージを作成するための命令が実行される。
ジャイロセンサ180Bは、電子装置100の運動姿勢を決定するように構成されてもよい。幾つかの実施形態において、3つの軸(すなわち、軸x、y、及びz)を中心とする電子装置100の角速度は、ジャイロセンサ180Bを介して決定されてもよい。ジャイロセンサ180Bは、撮影中に手ぶれを補正するように構成されてもよい。例えば、シャッタが押されたときに、ジャイロセンサ180Bは、電子装置100がジッターする角度を検出し、その角度に基づいてレンズモジュールが補償する必要のある距離を算出し、レンズが電子装置100のジッターを逆の運動によりキャンセルすることにより、手ぶれ補正を実施する。ジャイロセンサ180Bは、ナビゲーション及びモーション制御ゲームシナリオにも使用することができる。
気圧センサ180Cは、気圧を測定するように構成される。幾つかの実施形態では、電子装置100は、位置決め及びナビゲーションを支援するために、気圧センサ180Cによって測定された気圧を通じて高度を計算する。
磁気センサ180Dは、ホールセンサを含む。電子装置100は、磁気センサ180Dを使用することによって、フリップカバーの開閉を検出することができる。幾つかの実施形態において、電子装置100がクラムシェル電話機である場合、電子装置100は、磁気センサ180Dに基づきフリップカバーの開閉を検出することができる。また、フリップカバーを自動的にロック解除する機能は、革ケースの検出した開閉状態やフリップカバーの検出した開閉状態に基づいて設定される。
加速度センサ180Eは、電子装置100の様々な方向(一般的に、3軸)の加速度を検出することができる。電子装置100が静止しているとき、重力の大きさと方向を検出することができる。加速度センサ180Eは、更に、電子装置の姿勢を識別するように構成されてもよく、景観モードとポートレートモードとの間切り換え又は歩数計のようなアプリケーションで使用される。
距離センサ180Fは、距離を測定するように構成される。電子装置100は、距離を赤外線又はレーザ方式で測定してよい。幾つかの実施形態において、撮影シナリオにおいて、電子装置100は、迅速な焦点合わせを実現するために距離センサ180Fを通じて距離を測定してもよい。
光学近接センサ180Gは、例えば発光ダイオード(LED)、及び光学検出器、例えばフォトダイオードを含んでもよい。発光ダイオードは赤外線発光ダイオードであってもよい。電子装置100は発光ダイオードを通じて赤外線を発光する。電子装置100は、近傍の被写体からの赤外線反射光をフォトダイオードを通じて検出する。十分な反射光が検出される場合、電子装置100の近くに被写体が存在すると決定されてもよい。不十分な反射光が検出される場合、電子装置100は、電子装置100の近くに被写体が存在しないと決定してもよい。電子装置100は、光学近接センサ180Gを使用することによって、ユーザが通話のために電子装置100を耳の近くに保持することを検出し、電力節約のためにスクリーンを自動的にオフにすることができる。光学近接センサ180Gはまた、スマートカバーモード又はポケットモードで使用して、スクリーンのロック解除又はロックを自動的に実行してもよい。
周囲光センサ180Lは、周囲光の輝度を感知するように構成される。電子装置100は、感知された周囲光の明るさに基づいてディスプレイ194の明るさを適応的に調整することができる。また、周囲光センサ180Lは、撮影中にホワイトバランスを自動的に調整するように構成されてもよい。また、周囲光センサ180Lは、偶発的な接触を回避するために、電子装置100がポケットに入っているかどうかを検出するために、光学近接センサ180Gと協働してもよい。
指紋センサ180Hは、指紋を収集するように構成される。電子装置100は、収集された指紋の特徴を使用して、指紋ベースのロック解除、アプリケーションロックアクセス、指紋ベースの撮影、指紋ベースの呼応答などを実行することができる。
温度センサ180Jは、温度を検出するように構成される。幾つかの実施形態では、電子装置100は、温度センサ180Jによって検出された温度を通じて温度処理ポリシーを実行する。例えば、温度センサ180Jによって報告された温度が閾値を超えると、電子装置100は、温度センサ180Jの近傍にあるプロセッサの性能を低下させて、熱保護のために電力消費を低減する。幾つかの他の実施形態では、温度が別の閾値未満である場合、電子装置100は、低温のために電子装置100の電源が異常にシャットダウンするのを防止するために、バッテリ142を加熱する。幾つかの他の実施形態では、温度が更に別の閾値未満である場合、電子装置100は、低温によって引き起こされる異常なシャットダウンを回避するためにバッテリ142の出力電圧を上昇させる。
タッチセンサ180Kは、「タッチパネル」とも呼ばれる。タッチセンサ180Kは、ディスプレイ194上に配置されてもよく、タッチセンサ180K及びディスプレイ194は、「接触画面」とも呼ばれるタッチスクリーンを構成する。タッチセンサ180Kは、タッチセンサ上又はその近傍で実行されるタッチ操作を検出するように構成される。タッチセンサは、検出されたタッチ操作をアプリケーションプロセッサに転送して、タッチイベントのタイプを決定してよい。タッチ操作に関連する視覚出力は、ディスプレイ194を介して提供することができる。幾つかの他の実施形態では、タッチセンサ180Kは、ディスプレイ194の表面とは異なる位置に電子装置100の表面上に配置されてもよい。
キー190は、電源キー、音量キー等を含む。キー190は、機械的キーであってもよく、又はタッチキーであってもよい。電子装置100は、キー入力を受け取り、電子装置100のユーザ設定及び機能制御に関連する信号入力を生成することができる。
モータ191は、振動プロンプトを生成することができる。モータ191は、着呼振動プロンプト又はタッチ振動フィードバックを提供するように構成することができる。例えば、異なるアプリケーションで実行されるタッチ操作(例えば、撮影及びオーディオ再生)は、異なる振動フィードバック効果に対応し得る。また、モータ191は、ディスプレイ194の異なる領域で実行されるタッチ操作に対する異なる振動フィードバック効果に対応してもよい。また、異なる適用シナリオ(例えば、タイムリマインダ、情報受信、目覚まし時計、ゲーム)は、異なる振動フィードバック効果に対応してもよい。タッチ振動フィードバック効果は更にカスタマイズすることができる。
インジケータ192は、指示灯であってもよく、充電状態及び電力変化を示すように構成されてもよく、又はメッセージ、不在着信、通知などを示すように構成されてもよい。
SIMカードインタフェース195は、SIMカードに接続するように構成される。SIMカードは、電子装置100との接触又は電子装置100からの分離を実現するために、SIMカードインタフェース195に挿入されてもよく、又はSIMカードインタフェース195から取り外されてもよい。電子装置100は、1つ又はN個のSIMカードインタフェースをサポートしてよく、ここで、Nは、1を超える正の整数である。SIMカードインタフェース195は、nano-SIMカード、micro-SIMカード、SIMカード、等をサポートしてよい。複数のカードを同じSIMカードインタフェース195に同時に挿入することができる。複数のカードは、同じタイプ又は異なるタイプであってもよい。SIMカードインタフェース195は、異なるタイプのSIMカードと互換性があってもよい。SIMカードインタフェース195は、外部ストレージカードとも互換性がある。電子装置100は、SIMカードを介してネットワークと相互作用し、会話やデータ通信などの機能を実現する。
本願の本実施形態では、プロセッサ110は、内部メモリ121に格納されたコンピュータ命令を呼び出して、電子装置100が本願の実施形態におけるアプリケーションによる描画操作を実行する方法を実行できるようにする。
例えば、図9は、本願の実施形態による電子装置100の別の構造の概略図である。
電子装置100は以下を含む:入力装置201、出力装置202、プロセッサ203、メモリ204(ここで、電子装置100内には1つ以上のプロセッサ203があってもよく、図9では1つのプロセッサ203が例として用いられている)。本願の幾つかの実施形態では、入力装置201、出力装置202、プロセッサ203、及びメモリ204は、バス又は別の方法で接続することができる。
プロセッサ203は、メモリ204に格納された操作命令を呼び出し、電子装置200が本願の実施形態におけるアプリケーションによる描画操作を実行する方法を実行できるようにする。
例えば、図10は、本願の実施形態による電子装置100のソフトウェア構造の概略ブロック図である。
階層アーキテクチャでは、ソフトウェアは幾つかの層に分けられ、各層は明確な役割とタスクを持つ。層は、ソフトウェアインタフェース介して互いに通信する。幾つかの実施形態では、システムは、上から下へ4つの層:アプリケーションプログラム層、アプリケーションプログラムフレームワーク層、ランタイム、システムライブラリ、及びカーネル層、に分割される。
アプリケーションプログラム層は、一連のアプリケーションパッケージを含むことができる。
図10に示すように、アプリケーションパッケージは、カメラ(Camera)、ギャラリ(Gallery)、カレンダー(Calendar)、電話(Phone)、マップ(Maps)、ナビゲーション(Navigation)、WLAN、Bluetooth、音楽(Music)、ビデオ(Videos)、及びメッセージ(Messages)などのアプリケーションプログラム(又はアプリケーションと呼ばれる)を含むことができる。
アプリケーションプログラム層は、性能最適化アプリケーションを更に含むことができる。性能最適化アプリケーションは、視覚的なインタフェース又はビューを提供する場合もあれば、視覚的なインタフェース又はビューを提供しない場合もある。電子装置の起動後、性能最適化アプリケーションは、ユーザ操作を伴わずに自動的に起動できる。性能最適化アプリケーションは、アプリケーションプログラムとバックグラウンド描画頻度との間の対応を決定するために使用される描画頻度制限ポリシーを格納する。起動後、性能最適化アプリケーションは、ネットワークを介してサーバにアクセスして描画頻度制限ポリシー内のパラメータを決定することができ、又はオペレーティングシステムのローカル構成ファイルを読み取って描画頻度制限ポリシー内のパラメータを決定することができる。性能最適化アプリケーションはインタフェースを設けられ、別のアプリケーションがインタフェースを介して性能最適化アプリケーションにアクセスして、アプリケーションのバックグラウンド描画頻度を決定することができる。
代替として、起動後、アプリケーションプログラムは、描画頻度制限ポリシーを取得するためにシステムのローカル構成ファイルを読み取る描画頻度制限モジュールを生成し、描画頻度制限ポリシーに従ってアプリケーションプログラムのバックグラウンド描画頻度を決定する。
アプリケーションプログラムフレームワーク層は、アプリケーションプログラム層におけるアプリケーションのためのアプリケーションプログラミングインタフェース(application programming interface (API))及びプログラミングフレームワークを提供する。アプリケーションプログラムフレームワーク層は、幾つかの所定の機能を含む。
図10に示すように、アプリケーションプログラムフレームワーク層は、ウィンドウマネジャ、コンテンツプロバイダ、ビューシステム、電話マネジャ、リソースマネジャ、通知マネジャ、ローカルプロフィールアシスタント(Local Profile Assistant, LPA)などを含んでもよい。
ウィンドウマネジャは、ウィンドウプログラムを管理するように構成されている。ウィンドウマネジャは、ディスプレイのサイズを取得し、ステータスバーがあるかどうかを決定し、スクリーンをロックし、及びスクリーンをキャプチャすることができる。
コンテンツプロバイダは、データを格納し読み出し、及びデータをアプリケーションによりアクセス可能にするように構成される。データは、ビデオ、画像、オーディオ、発信及び受信した呼、閲覧履歴、ブックマーク、アドレス帳などを含んでもよい。
電話マネジャは、電子装置100の通信機能、例えば、通話状態管理(呼接続及び終了を含む)を提供するように構成される。
リソースマネジャは、ローカライズされた文字列、アイコン、ピクチャ、レイアウトファイル、及びビデオファイルなどの様々なリソースをアプリケーションプログラムに提供する。
通知マネジャは、アプリケーションプログラムが通知情報をステータスバーに表示することを可能にし、通知メッセージを伝達するように設定することができる。表示された通知情報は、短い一時停止の後、ユーザ相互作用無しに消えてもよい。例えば、通知マネジャは、ダウンロード完了、メッセージリマインダ、等を通知するように構成されている。代替として、通知マネジャは、システムステータスバーの上にチャート又はスクロールバーテキストの形式で現れる通知、例えば、アプリケーションプログラムがバックグラウンドで実行していることの通知であってよく、又はダイアログインタフェースの形式でスクリーンに現れる通知であってもよい。例えば、テキスト情報がステータスバー内でプロンプト表示されたり、プロンプト音が再生されたり、電子装置が振動したり、又は指示灯が点滅したりする。
ビューシステムは、テキストを表示するための制御及びピクチャを表示するための制御のような視覚的制御を含む。ビューシステムは、アプリケーションプログラムを構築するために使用できる。ディスプレイインタフェースは、1つ以上のビューにより形成されてもよい。例えば、ショートメッセージ通知アイコンを含むディスプレイインタフェースは、テキストを表示するビュー及び画像を表示するビューを含むことができる。
アプリケーションプログラムフレームワーク層は、更に、性能最適化システムを含み、描画頻度制限ポリシーは、性能最適化システムに格納することができる。アプリケーションプログラムが起動した後、オペレーティングシステムによって提供されるコールバックメソッドを使用して、性能最適化システムに直接アクセスして、アプリケーションプログラムのバックグラウンド描画頻度を決定することができる。
ランタイムには、コアライブラリと仮想マシンが含まれる。ランタイムは、Androidシステムのスケジューリングと管理を担当する。
コアライブラリには、次の2つの部分が含まれている。1つの部分はJava(登録商標)言語が呼び出す必要がある機能関数で、もう1つの部分はコアライブラリである。
アプリケーションプログラム層とアプリケーションフレームプログラムワーク層は、仮想マシンで動作する。仮想マシンは、アプリケーションプログラム層とアプリケーションフレームプログラムワーク層のJavaファイルをバイナリファイルとして実行する。仮想マシンは、オブジェクトライフサイクル管理、スタック管理、スレッド管理、セキュリティと例外管理、ガーベジコレクションなどの機能を実装するように構成されている。
システムライブラリは、複数の機能モジュール、例えば、サーフェスマネジャ、メディアライブラリ(Media Library)、3次元グラフィック処理ライブラリ(例えば、OpenGL ES)、及び2次元グラフィックエンジン(例えば、SGL)を含んでもよい。
サーフェスマネジャは、ディスプレイサブシステムを管理するように構成され、複数のアプリケーションプログラムのために2次元(2-Dimensional, 2D)及び3次元(3-Dimensional, 3D)層の融合を提供する。
メディアライブラリは、複数の一般的に使用されるオーディオ及びビデオフォーマット、静止画像ファイル等の再生及び記録をサポートする。メディアライブラリは、複数のオーディオ及びビデオ符号化フォーマット、例えばMPEG4、H.264、MP3、AAC、AMR、JPG、及びPNGをサポートする。
3次元グラフィック処理ライブラリは、3Dグラフィック描画、画像レンダリング、合成、及びレイヤ処理を実現するように構成されている。
2Dグラフィックエンジンは2D描画用の描画エンジンである。
カーネル層は、ハードウェアとソフトウェアの間の層である。カーネル層は、少なくともディスプレイドライバ、カメラドライバ、オーディオドライバ、センサドライバ、及び仮想カードドライバを含む。
本願におけるコレオグラファーは、アプリケーションプログラムフレームワーク層のビューシステムに配置することができる。アプリケーションプログラムがインタフェースをリフレッシュする必要がある場合、アプリケーションプログラムはビューシステムでコレオグラファーを呼び出し、アプリケーションプログラムに固有のコレオグラファーオブジェクトを生成し、描画操作を実行する。描画操作を実行する場合、コレオグラファーは、コールバックメソッドを使用して、コアライブラリ内のサーフェスマネジャ、2次元グラフィックエンジンなどを使用して描画操作を実施できる。
オペレーティングシステムのバージョンが更新されると、サーバは、新しいバージョンのファイル内の構成ファイルを更新して、描画頻度制限ポリシーを更新することができることに注意する。
例えば、図11は、本願の実施形態による電子装置100の別のソフトウェア構造の概略ブロック図である。
幾つかの実施形態では、システムは、上から下へ4つの層:アプリケーション層、フレームワーク層、システムサービスライブラリ、及びカーネル層、に分割される。
アプリケーション層は、システムアプリケーションとサードパーティの非システムアプリケーションを含む。
システムアプリケーションは、性能最適化アプリケーションを含むことができる。性能最適化アプリケーションは、視覚的なインタフェース又はビューを提供する場合もあれば、視覚的なインタフェース又はビューを提供しない場合もある。電子装置の起動後、性能最適化アプリケーションは、ユーザ操作を伴わずに自動的に起動できる。性能最適化アプリケーションは、アプリケーションプログラムとバックグラウンド描画頻度との間の対応を決定するために使用される描画頻度制限ポリシーを格納する。起動後、性能最適化アプリケーションは、ネットワークを介してサーバにアクセスして描画頻度制限ポリシー内のパラメータを決定することができ、又はオペレーティングシステムのローカル構成ファイルを読み取って描画頻度制限ポリシー内のパラメータを決定することができる。性能最適化アプリケーションはインタフェースを設けられ、別のアプリケーションがインタフェースを介して性能最適化アプリケーションにアクセスして、アプリケーションのバックグラウンド描画頻度を決定することができる。
代替として、起動後、アプリケーションプログラムは、描画頻度制限ポリシーを取得するためにシステムのローカル構成ファイルを読み取る描画頻度制限モジュールを生成し、描画頻度制限ポリシーに従ってアプリケーションプログラムのバックグラウンド描画頻度を決定する。
フレームワーク層は、アプリケーション層のアプリケーションプログラムのためのJAVA/C/C++/JS及び他の多言語ユーザプログラムフレームワークと機能フレームワーク、及び様々なソフトウェア及びハードウェアサービスのために外部にオープンな多言語フレームワークAPIを提供する。
システムサービス層は、システム基本機能サブシステムセット、基本ソフトウェアサービスサブシステムセット、拡張ソフトウェアサービスサブシステムセット、及びハードウェアサービスサブシステムセットを含む。
システム基本機能サブシステムセットは、複数の装置上のオペレーティングシステムの操作、スケジューリング、移行などの操作をサポートする。システム基本機能サブシステムセットは、分散ソフトバス、分散データ管理、分散タスクスケジューリング、及び共通基本サブシステムを含むことができる。システムサービス層とフレームワーク層は、マルチモード入力サブシステム、グラフィックサブシステムなどを共同で実装する。描画頻度制限ポリシーは、グラフィックサブシステムに格納することができる。アプリケーションプログラムが起動した後、オペレーティングシステムによって提供されるコールバックメソッドを使用してグラフィックサブシステムに直接アクセスして、アプリケーションプログラムのバックグラウンド描画頻度を決定することができる。本願のコレオグラファーは、グラフィックサブシステムに配置することができる。アプリケーションプログラムがインタフェースをリフレッシュする必要がある場合、アプリケーションプログラムはビューシステムでコレオグラファーを呼び出し、アプリケーションプログラムに固有のコレオグラファーオブジェクトを生成し、描画操作を実行する。
基本ソフトウェアサービスサブシステムセットは、オペレーティングシステムに共通の一般的なソフトウェアサービスを提供し、イベント通知サブシステム、マルチメディアサブシステムなどを含むことができる。
拡張ソフトウェアサービスサブシステムセットは、異なる装置に差別化されたソフトウェアサービスを提供し、IoT専用サービスサブシステムを含むことができる。
ハードウェアサービスサブシステムセットは、オペレーティングシステムにハードウェアサービスを提供し、IoT専用ハードウェアサービスサブシステムを含むことができる。
異なる装置形態の展開環境に基づいて、システムの基本機能サブシステムセット、基本ソフトウェアサービスサブシステムセット、拡張ソフトウェアサービスサブシステムセット、及びハードウェアサービスサブシステムセットは、他の機能の粒度に従って再分割され得ることに注意する。
カーネル層には、カーネル抽象化層とドライバサブシステムが含まれる。カーネル抽象化層には、複数のカーネルが含まれ、例えば、スレッド/プロセス管理、メモリ管理、ファイルシステム、及びネットワーク管理など、複数のカーネル間の違いをシールドすることによって、上位層の基本的なカーネル機能が提供される。ドライバサブシステムは、統合された周辺アクセス機能と、ソフトウェア開発者のためのドライバ開発及び管理フレームワークを提供する。
なお、異なるオペレーティングシステム及び起こり得る将来のアップグレードに応じて、電子装置のソフトウェア構造は、オペレーティングシステムに応じて別の方法で分割されてもよい。
以下は、本願で提供されるアプリケーションによる描画操作を実行する方法を説明する。
図12は、本願による、アプリケーションによる描画操作を実行する方法の例の概略図である。
図12に示すように、本願で提供されるアプリケーションによる描画操作を実行する方法は以下のステップを含んでよい。
S1201:アプリケーションプログラムは、頻度制限ポリシーに基づいてバックグラウンド描画頻度を決定する。
アプリケーションプログラムがフォアグラウンドアプリケーションからバックグラウンドアプリケーションに変換されると、アプリケーションプログラムは、頻度制限ポリシーに基づいてバックグラウンド描画頻度を決定する。
具体的には、まず、何時、アプリケーションプログラムがフォアグラウンドアプリケーションからバックグラウンドアプリケーションに変換されるかを決定する必要がある。オペレーティングシステムは、アプリケーションプログラムがフォアグラウンドアプリケーションであるかバックグラウンドアプリケーションであるかを決定するように構成された描画頻度制限モジュールを提供する。描画頻度制限モジュールは、構成インタフェースを介してアプリケーションプログラムのメインアクティビティのライフサイクルを直接リッスンすることができ、更にアプリケーションプログラムの実行状態を決定することができ、すなわち、アプリケーションプログラムがフォアグラウンドアプリケーションであるかバックグラウンドアプリケーションであるかを決定することができる。代替として、描画頻度制限モジュールは、アクティビティマネジャサービスを使用してアプリケーションプログラムの実行状態を決定することができ、すなわち、アプリケーションプログラムがフォアグラウンドアプリケーションであるかバックグラウンドアプリケーションであるかを決定することができる。
次に、アプリケーションプログラムがフォアグラウンドアプリケーションからバックグラウンドアプリケーションに変換されたと決定されると、アプリケーションプログラムは、描画頻度制限ポリシーに従いアプリケーションプログラムのバックグラウンド描画頻度を決定することができる。バックグラウンド描画頻度は、アプリケーションプログラムがバックグラウンドアプリケーションになった後に、アプリケーションプログラムのコレオグラファーが描画操作を行う頻度である。
本願の本実施形態では、描画頻度制限ポリシーは、予め設定されており、異なるアプリケーションがバックグラウンドアプリケーションになった場合にバックグラウンド描画頻度を設定するためのものである。
描画頻度制限ポリシーは、描画頻度制限モジュールにおいて設定されてよく、描画頻度制限モジュールは、インタフェースを介してアプリケーションプログラムのコレオグラファーと通信することができる。具体的には、描画頻度制限モジュールは、オペレーティングシステムによって事前に設定することができる。具体的には、描画頻度制限モジュールは、各アプリケーションプログラムの内部に設定されてよい。代替として、描画頻度制限モジュールは、オペレーティングシステムのサービス内で設定され/又は実行状態を保持する別のアプリケーション内で設定されてよい。アプリケーションプログラムは、アプリケーションプログラムのバックグラウンド描画頻度を決定するために、インタフェースを介して描画頻度制限モジュールにアクセスすることができる。
アプリケーションプログラムによって決定されたバックグラウンド描画頻度は、垂直同期信号の生成頻度(又は画面リフレッシュレート)より小さい。
アプリケーションプログラムの開発者は、アプリケーションプログラムを開発するときに、コレオグラファーによって実行される描画操作を介して、アプリケーションプログラム又は他のモジュールのアクティビティに幾つかのパラメータを転送する必要があると考えられる。つまり、アプリケーションプログラムは、インタフェースをリフレッシュしない目的で描画操作を実行する。この場合、アプリケーションプログラムがバックグラウンドアプリケーションである場合、バックグラウンドアプリケーションが垂直同期信号を要求する頻度は、垂直同期信号の生成頻度(又は画面リフレッシュレート)よりも小さい。この場合、ステップS1201でアプリケーションプログラムによって決定されたバックグラウンド描画頻度は、垂直同期信号の生成頻度(又は画面リフレッシュレート)以下であってよい。
任意で、本願の幾つかの実施形態において、アプリケーションプログラムが垂直同期信号を要求する頻度が垂直同期信号の生成頻度(又は画面リフレッシュレート)よりも小さい場合、頻度制限ポリシーに基づいてアプリケーションプログラムが決定したバックグラウンド描画頻度は、垂直同期信号の生成頻度(又は画面リフレッシュレート)と等しくてもよい。
任意で、本願の幾つかの実施形態において、アプリケーションプログラムのバックグラウンド描画頻度は、アプリケーションプログラムが起動されると又はアプリケーションプログラムの起動後に決定されてもよい。
任意に、本願の幾つかの実施形態において、描画頻度制限モジュールは、アプリケーションプログラムがアプリケーションプログラムのバックグラウンド描画頻度を変更するためのインタフェースを提供し、アプリケーションプログラムは、インタフェースを介してアプリケーションプログラムのバックグラウンド描画頻度を構成してもよい。
例えば、表1に示すように、表1は、本願の実施形態による描画頻度制限ポリシーの概略的な表である。
[表1]
Figure 2024515462000002
表1に示すように、Musicをバックグラウンドアプリケーションに切り換えると、Musicのバックグラウンド描画頻度は、描画頻度制限ポリシーに従って、垂直同期信号の頻度の1/6になるよう設定される。ギャラリがバックグラウンドアプリケーションに切り換えられると、ギャラリのバックグラウンド描画頻度は、描画頻度制限ポリシーに従って、0になるよう設定される。
異なるバックグラウンド描画頻度は、異なるアプリケーション又は異なるタイプのアプリケーション(ソーシャルアプリケーション、ゲームアプリケーション、その他のアプリケーション)の描画頻度制限ポリシーに従って構成され得ることが理解される。これは、システムリソースを適正に割り当て、電子装置の電力消費を削減させるのに役立つ。
任意で、図13A~図13Eの以下の内容に示されるように、本願の幾つかの実施形態では、ユーザは、電子装置の性能及び使用要件を参照して、描画頻度制限ポリシーのパラメータをパーソナライズすることができる。
図13A~図13Eは、本願による描画頻度制限ポリシーのインタフェースの例の概略図である。
図13Aに示すように、ユーザは、タッチアンドホールドにより電子装置のメインインタフェース上のアプリケーションプログラムを選択する、例えば「Huawei AppGallery」を選択することができる。更に、図13Bに示すように、ユーザがタッチアンドホールドして、アプリケーションプログラムを選択した後、ユーザはタッピング方式で情報オプションを選択することができる。更に、図13Cに示すように、ユーザが情報オプションを選択した後、ユーザはアプリケーションの関連情報を閲覧することができ、この情報は、アプリケーションプログラムのスケジューリングを担当する省電力管理オプションを含む。更に、図13Dに示すように、ユーザは、省電力管理オプションにおいて特定のパラメータを設定することにより、描画頻度制限ポリシーにおけるアプリケーションプログラムに対応する描画制限頻度を設定することができる。更に、図13Eに示すように、ユーザは、具体的に、アプリケーションプログラムがバックグラウンドアプリケーションに変換されるときのバックグラウンド描画頻度を設定することができる。
なお、図13(D)に示すように、ユーザがインテリジェント節電を選択した場合、アプリケーションプログラムは、描画頻度制限ポリシーに予め設定されたパラメータに基づいて、アプリケーションプログラムのバックグラウンド描画頻度を決定する。
フォアグラウンドアプリケーション、バックグラウンドアプリケーション、コレオグラファー、メインアクティビティなどの用語の概念については、前述の用語説明の(1)フォアグラウンドアプリケーションとバックグラウンドアプリケーション、(2)アクティビティ、(3)コレオグラファー(Choreographer)及び描画操作のテキストの説明を参照のこと。詳細は、ここでは再度説明しない。
S1202:アプリケーションプログラムは、バックグラウンド描画頻度に基づいて描画操作を行う。
具体的には、バックグラウンド描画頻度を決定した後、アプリケーションプログラムのコレオグラファーは、バックグラウンド描画頻度に基づいて垂直同期信号をインターセプトするか、コレオグラファーの描画操作をインターセプトして、バックグラウンド描画頻度に基づいて無意味な描画操作を行う。
無意味な描画操作などの用語の概念については、用語説明のコレオグラファー(Choreographer)及び描画操作(3)のテキストの説明を参照のこと。詳細は、ここでは再度説明しない。
次に、図12に示した内容を参照して、図14及び図15に示した内容を例にとして、バックグラウンド描画頻度に基づき垂直同期信号をインターセプトする方法と、コレオグラファーが描画操作を行うことをバックグラウンド描画頻度に基づきインターセプトする方法とに分けて詳細に説明する。
図14は、本願の実施形態によるコレオグラファーが垂直同期信号を受信することをインターセプトする方法の一例の概略図である。
図14の(A)に示すように、OnVsyncコールバックメソッドにより垂直同期信号を受信した後、アプリケーションプログラムのコレオグラファーは、まず、コレオグラファーが属するアプリケーションプログラムがフォアグラウンドアプリケーションであるかバックグラウンドアプリケーションであるかを決定する。アプリケーションプログラムがフォアグラウンドアプリケーションである場合、デフォルトの描画操作が実行される。アプリケーションプログラムがバックグラウンドアプリケーションである場合、アプリケーションプログラムがバックグラウンドアプリケーションに切り換えられた後、垂直同期信号がK番目の垂直同期信号として記録され、Kの値と第1閾値が決定される。Kが第1閾値より小さい場合、デフォルトの描画操作はスキップされる。或いは、Kが第1閾値と等しい場合、Kはクリアされ、再カウントされ、デフォルトの描画操作が実行される。デフォルトの描画操作をスキップすることは、コレオグラファーが描画操作をインターセプトするためにdoFrameコールバックメソッドを呼び出さないことを示してよい。
電子装置は、描画頻度制限ポリシーに従って、アプリケーションプログラムのバックグラウンド描画頻度又は第1閾値を決定してよい。描画頻度制限ポリシーに従ってアプリケーションプログラムのバックグラウンド描画頻度を決定した後、電子装置は、バックグラウンド描画頻度に対応する第1閾値を決定してよい。描画頻度制限ポリシーに従ってアプリケーションプログラムの第1閾値を決定した後、電子装置は、第1閾値に対応するバックグラウンド描画頻度を決定してよい。
例えば、垂直同期信号の発生頻度と電子装置の画面リフレッシュレートの両方が90Hzであり、アプリケーションプログラムが描画頻度制限ポリシーに従ってバックグラウンド描画頻度が18Hzであると決定した場合、電子装置は、バックグラウンド描画頻度18Hzに対応する第1閾値を決定してよい。第1閾値は、垂直同期信号の発生頻度(又は画面リフレッシュレート)をアプリケーションプログラムのバックグラウンドアプリケーション描画頻度で割ったものであってもよい。つまり、第1閾値は5である。この場合、アプリケーションプログラムがバックグラウンドアプリケーションになると、アプリケーションプログラムのコレオグラファーは、垂直同期信号を5回受信するごとに1回だけデフォルトの描画操作を実行する。
別の例として、アプリケーションプログラムが描画頻度制限ポリシーに従って、アプリケーションプログラムの第1閾値が5であると決定した場合、電子装置は、第1閾値である5に対応するバックグラウンド描画頻度が18Hzであると決定してもよい。
なお、バックグラウンド描画頻度が0である場合、第1閾値は、例えば、210のような大きな整数であってもよい。代替として、図14の(A)に示す内容を変更してもよい。アプリケーションプログラムが垂直同期信号を受信した後、アプリケーションプログラムがデフォルトの描画操作を行わないように、Kがクリアされる。代替として、垂直同期信号を受信した後、アプリケーションプログラムは垂直同期信号をカウントしないため、Kは常に0に等しくなり、アプリケーションプログラムはデフォルトの描画操作を行わない。
具体的には、図14の(B)に示すように、アプリケーションプログラムがフォアグラウンドアプリケーションの場合、アプリケーションプログラムが描画操作を行う間隔は1/90秒である。すなわち、アプリケーションプログラムは、垂直同期信号を受信した後に描画操作を行う。アプリケーションプログラムがバックグラウンドアプリケーションの場合、アプリケーションプログラムが描画操作を行う間隔は5/90秒である。すなわち、アプリケーションプログラムは、5個の垂直同期信号を受信した後にのみ、デフォルトの描画操作を行う。例えば、0秒から開始して1/90秒ごとに、アプリケーションプログラムのコレオグラファーは垂直同期信号を要求する。0秒、1/90秒、2/90秒、3/90秒、及び4/90秒でアプリケーションプログラムがバックグラウンドアプリケーションになった場合、Kが5未満であるため、アプリケーションプログラムのコレオグラファーの描画操作がインターセプトされる。5/90秒で、アプリケーションプログラムのコレオグラファーは垂直同期信号を受信する。この場合、K=5である。したがって、アプリケーションプログラムの描画操作はインターセプトされず、デフォルトの描画操作が1回実行される。アプリケーションプログラムがバックグラウンドアプリケーションの場合に実行される描画操作は、無意味な描画操作である。
コレオグラファーが実行する描画操作の度に消費される時間は、異なる場合もあれば、同じ場合もあることに注意する。これは、本願において限定されない。
図15は、本願の実施形態によるコレオグラファーがアニメーションイベントタスクを処理することをインターセプトする方法の例の概略図である。
図15に示すように、アプリケーションプログラムのコレオグラファーは、OnVsyncコールバックメソッドを使用して垂直同期信号を受信し、次に描画操作を実行し始める。描画操作は、入力イベントタスク、アニメーションイベントタスク、レイアウトイベントタスク、及びサブミッションイベントタスクの処理を含む。バックグラウンドアプリケーションのコレオグラファーは、入力イベントタスク、レイアウトイベントタスク、及び処理イベントタスクを取得しないためである。したがって、コレオグラファーはアニメーションイベントタスクの処理をインターセプトされ、その結果、無意味な描画操作の実行をインターセプトされる。
具体的には、垂直同期信号を受信した後、描画操作を開始する前に、アプリケーションプログラムは、コレオグラファーが属するアプリケーションプログラムがバックグラウンドアプリケーションであるかどうかを決定する。コレオグラファーが属するアプリケーションプログラムがフォアグラウンドアプリケーションである場合は、デフォルトの描画操作を継続することができる。コレオグラファーが属するアプリケーションプログラムがバックグラウンドアプリケーションである場合は、doFrameコールバックメソッドでアニメーションイベントタスクの処理をスキップし、又は描画操作を直接終了したりすることができ、その結果、コレオグラファーが無意味な描画操作を実行しないようにする。
例えば、バックグラウンド描画頻度が0の場合、コレオグラファーのdoFrameコールバックメソッドの開始時に、コレオグラファーが属するアプリケーションプログラムがフォアグラウンドアプリケーションであるかバックグラウンドアプリケーションであるかを決定してよい。決定結果がバックグラウンドアプリケーションである場合、コレオグラファーは、doFrameコールバックメソッドでアニメーションイベントタスクを処理するためのdoCallbacksコールバックメソッドの実行をスキップできる。この場合、コレオグラファーは、入力イベントタスク、レイアウトイベントタスク、及びサブミッションイベントタスクを処理するために、依然としてdoCallbacksコールバックメソッドを呼び出すが、入力イベントタスク、レイアウトイベントタスク、及びサブミッションイベントタスクは空である。したがって、コレオグラファーによって処理されるアニメーションイベントタスクをスキップして、コレオグラファーが無意味な描画操作を実行するのをインターセプトできる。
決定結果がフォアグラウンドアプリケーションである場合、デフォルトの描画操作が実行される。
なお、バックグラウンド描画頻度が0より大きい場合には、コレオグラファーがアニメーションイベントタスクを処理することをインターセプトすることにより、図14の(B)に示すように、バックグラウンドアプリケーションが無意味な描画操作を行う頻度を低減することもできる。例えば、アニメーションイベントタスクを処理するためにdoCallbacksコールバックメソッドが呼び出される前に、コレオグラファーが受信した垂直同期信号がK番目の垂直同期信号であると決定される。Kが第1閾値より小さい場合、コレオグラファーはアニメーションイベントタスクの処理をスキップする。Kが第1閾値に等しい場合、コレオグラファーはアニメーションイベントタスクの処理を許可され、Kはクリアされてから再びカウントされる。
コレオグラファーが垂直同期信号を受信するのをインターセプトするか、又はコレオグラファーがアニメーションイベントタスクを処理するのをインターセプトすることによって、バックグラウンドアプリケーションが無意味な描画操作を実行する頻度を減らすことができることが理解できる。
ステップS1201で決定されたバックグラウンド描画頻度が垂直同期信号の生成頻度(又は画面リフレッシュレート)と等しい場合、すなわちアプリケーションプログラムがインタフェースをリフレッシュする目的で描画操作を実行しない場合、バックグラウンド描画頻度に基づいて最小時間間隔T1を決定することができる。T1に従い、インターセプトされる必要がある描画操作が決定され、T1に従い、実行可能な描画操作が決定される。
具体的には、アプリケーションプログラムがバックグラウンドアプリケーションに切り換えられた後、アプリケーションプログラムのコレオグラファーが垂直同期信号を要求する頻度が、垂直同期信号の発生頻度(又は画面リフレッシュレート)よりも小さい場合、アプリケーションはインタフェースをリフレッシュしない目的で描画操作を実行しているとみなすことができる。この場合、アプリケーションプログラムのコレオグラファーが第1垂直同期信号を受信すると、デフォルトの描画操作が実行される。最初以外の垂直同期信号を受信すると、アプリケーションプログラムは、垂直同期信号と前の垂直同期信号との間の時間間隔を決定してもよい。時間間隔がバックグラウンド描画頻度に対応する時間間隔閾値未満であれば、垂直同期信号に対応する描画操作がインターセプトされる。時間間隔がバックグラウンド描画頻度に対応する時間間隔閾値より大きい場合、垂直同期信号に対応する描画操作が実行される。
次に、図16に示す内容を例として用い、アプリケーションプログラムがインタフェースをリフレッシュしない目的で描画操作を行う場合に、無意味な描画操作がどのようにインターセプトされるかを具体的に説明する。
図16は、本願の実施形態によるコレオグラファーの描画操作をインターセプトする例の概略図である。
アプリケーションプログラムのバックグラウンド描画頻度が30Hzの場合、パラメータT1は3/90秒である。図16の(A)に示すように、アプリケーションプログラムのコレオグラファーは、SurfaceFlingerから1/90秒毎に送信される垂直同期信号を要求し受信する。したがって、図16の(A)に示すような場合には、アプリケーションプログラムは、インタフェースをリフレッシュする目的で描画操作を行う。アプリケーションプログラムは、2/90秒に無意味な描画操作を行うと、5/90秒に次の無意味な描画操作が行われる。
図16の(A)に示す内容とは異なり、図16の(B)に示すように、アプリケーションプログラムのコレオグラファーは、2/90秒で垂直同期信号1を要求して受信し、6/90秒で垂直同期信号2を要求して受信し、7/90秒で垂直同期信号3を要求して受信する。
アプリケーションプログラムがインタフェースをリフレッシュしない目的で描画操作を要求するかどうかを決定するために、複数の方法があり得る。
例えば、図16の(B)に示す内容では、0秒から8/90秒の間に、アプリケーションプログラムがSurfaceFlingerから垂直同期信号を要求する頻度は4/15Hzであり、垂直同期信号の発生頻度90Hz(又は画面リフレッシュレート)よりも低いため、アプリケーションプログラムはインタフェースをリフレッシュしない目的で描画操作を行う。アプリケーションプログラムが垂直同期信号を要求する頻度は、単位時間当たりにアプリケーションプログラムが垂直同期信号を要求する回数である。
別の例として、アプリケーションプログラムが2/90秒で垂直同期信号を受信した後、3/90秒で垂直同期信号を受信しなかった場合、アプリケーションプログラムはインタフェースをリフレッシュしない目的で描画操作を実行するよう要求したと決定することができる。
2/90秒で、アプリケーションプログラムのコレオグラファーは垂直同期信号1を受信し、2/90秒の前に、アプリケーションプログラムのコレオグラファーは他の垂直同期信号を受信しない。したがって、コレオグラファーは、2/90秒で垂直同期信号1に対応する描画操作を行うことができる。6/90秒で、アプリケーションプログラムのコレオグラファーは垂直同期信号2を受信する。アプリケーションプログラムのコレオグラファーは、最後に6/90秒で垂直同期信号1を受信する。時間間隔は4/90秒であり、T1より大きい。したがって、コレオグラファーは、6/90秒で垂直同期信号1に対応する描画操作を行うことができる。7/90秒で、アプリケーションプログラムのコレオグラファーは垂直同期信号3を受信する。アプリケーションプログラムのコレオグラファーは、最後に6/90秒で垂直同期信号1を受信する。時間間隔は1/90秒であり、T1より小さい。したがって、アプリケーションプログラムの描画操作がインターセプトされる。
任意で、本願の幾つかの実施形態では、図13Aから図13E及び図14に示される内容を参照のこと。OnVsyncメソッドで/前に、コレオグラファーは垂直同期信号を受信するので、アプリケーションプログラムがバックグラウンドアプリケーションになった後に無意味な描画操作を実行する頻度が減少する。
任意で、本願の幾つかの実施形態では、図13Aから図13E及び図14に示される内容を参照のこと。コレオグラファーはSurfaceFlingerから垂直同期信号を要求することをインターセプトされるので、アプリケーションプログラムがバックグラウンドアプリケーションになった後に無意味な描画操作を実行する頻度が減少する。
コレオグラファーがSurfaceFlingerから垂直同期信号を要求することをインターセプトされた場合、又はコレオグラファーがOnVsyncメソッドの前に垂直同期信号を受信することをインターセプトされた場合、コレオグラファーは分離される必要があり、その結果、コレオグラファーの他の機能の通常の動作に影響を与えることなく、コレオグラファーが描画操作を実行することだけを防止するようにすることに注意する。
任意で、本願の幾つかの実施形態では、図13Aから図13E及び図14に示される内容を参照のこと。アニメーションイベントタスクを格納する一方向リンクリスト内のデータが削除されるので、アプリケーションプログラムがバックグラウンドアプリケーションとなった後に無意味な描画操作を行う頻度が低減される。
次に、図12に示すアプリケーションによる描画操作を行う方法を参照して、以下は、図16及び図17に示す内容を例として用い、本願の実施形態におけるアプリケーションによる描画操作を行う方法について説明する。
図17は、本願の実施形態によるバックグラウンドアプリケーションの無意味な描画操作を管理及び制御するシナリオの例の概略図である。
図17に示すように、ユーザがアプリケーションプログラムを起動すると、アクティビティマネジャサービスは、アプリケーションプログラムの登録情報を取得することができる。登録情報は、アプリケーションプログラムを一意に識別する。例えば、登録情報は、アプリケーションプログラムのパッケージ名、又はアプリケーションプログラムのプロセス名であってよい。これは、ここでは限定されない。
ユーザがアプリケーションプログラムを起動した後、アプリケーションプログラムは、少なくとも1つのコレオグラファー及び少なくとも1つの描画頻度制限モジュールを初期化する。
ユーザがアプリケーションプログラムを起動した後、アプリケーションプログラムは、コレオグラファー及び描画頻度制限モジュールを初期化する。描画頻度制限モジュールは、アプリケーションプログラムの実行状態、つまりアプリケーションプログラムがフォアグラウンドアプリケーションであるかバックグラウンドアプリケーションであるかを決定するために、インタフェースを介してアクティビティマネジャサービスのメソッドをコールバックすることができる。また、描画頻度制限モジュールは、アクティビティマネジャサービスを使用して、アプリケーションプログラムの登録情報を更に取得することができる。登録情報は、アプリケーションプログラムを一意に識別する。例えば、登録情報は、アプリケーションプログラムのパッケージ名であってよく、又は登録情報は、アプリケーションプログラムに対応するプロセス名であってよい。これは、ここでは限定されない。
アプリケーションプログラムがフォアグラウンドアプリケーションの場合、コレオグラファーはデフォルトの描画操作を実行することができる。代替として、デフォルトの描画操作を実行する前に、コレオグラファーは現在の描画を許可するかどうかを描画頻度制限モジュールに要求する。バックグラウンドアプリケーション識別子を受信する前に、描画頻度制限モジュールは、コレオグラファーがデフォルトの描画操作を実行することを常に許可する。
アプリケーションプログラムがバックグラウンドアプリケーションに切り換えられると、アクティビティマネジャサービスは、アプリケーションプログラムのメインアクティビティがonStopメソッドを実行するときアプリケーションプログラムがバックグラウンドアプリケーションに切り換えられたと、又は/及びアプリケーションプログラムのプロセスのcpusetパラメータがbackground又はkey-backgroundであることを検出したと、決定する。アクティビティマネジャサービスは、アプリケーションプログラムがバックグラウンドアプリケーションになることを描画頻度制限モジュールに通知する。アプリケーションプログラムがバックグラウンドアプリケーションであると決定した後、アクティビティマネジャサービスは、バックグラウンドアプリケーション識別子を描画頻度制限モジュールに送信する。バックグラウンドアプリケーション識別子は、アプリケーションプログラムの登録情報を含むことができる。バックグラウンドアプリケーション識別子を受け取った後、描画頻度制限モジュールは、描画頻度制限ポリシーに従ってバックグラウンド描画頻度を決定することができる。
アプリケーションプログラムがバックグラウンドアプリケーションになると、アプリケーションプログラムのコレオグラファーは、アプリケーションプログラムがフリーズされていないため、SurfaceFlingerに垂直同期信号の要求を送信する。アプリケーションプログラムの要求に応答して、SurfaceFlingerは、アプリケーションプログラムのコレオグラファーに垂直同期信号を送信する。
垂直同期信号を受信した後、描画操作を実行する前に、アプリケーションプログラムのコレオグラファーは、描画頻度制限モジュールに描画情報の要求を送信する。コレオグラファーが描画頻度制限モジュールから描画許可要求を受信すると、コレオグラファーは、現在の無意味な描画操作を実行し続ける。しかし、コレオグラファーが描画頻度制限モジュールから描画許可要求を受信しない場合、コレオグラファーは、無意味な描画操作を直接終了する。描画頻度制限モジュールによって、バックグラウンド描画頻度に基づき、コレオグラファーが現在の無意味な描画操作を行うことを許可するかどうかを決定することについては、図12に示す内容を参照のこと。詳細は、ここでは再度説明しない。
描画頻度制限モジュールは、アプリケーションのコレオグラファー内に配置されてもよいし、オペレーティングシステムのサービス内に配置されてもよいことに留意されたい。
図12の内容及び表1に示す描画頻度制限ポリシーを参照して、図17に示すシナリオを、Musicなどのアプリケーションプログラムを例として用いて具体的に説明する。
ユーザがMusicを起動すると、アクティビティマネジャサービスは音楽パッケージ名com.android.mediacenterとプロセス名HWMusicを取得できる。アクティビティマネジャサーバは、Musicのパッケージ名又は/及びプロセス名を描画頻度制限モジュールに送信する。描画頻度制限モジュールは、現在の垂直同期信号頻度(60Hz)とMusicの登録情報に基づいて、Musicのバックグラウンド描画頻度が10Hzであることを決定する。
ユーザがMusicをバックグラウンドに切り換えると、アクティビティマネジャサーバは、バックグラウンドアプリケーション識別子を描画頻度制限モジュールに送信する。この場合、Musicのコレオグラファーが垂直同期信号を受信した後、コレオグラファーは、描画頻度制限モジュールから描画を要求する。描画頻度制限モジュールにより、コレオグラファーは、コレオグラファーにより受信された描画要求5回ごとに1回の描画操作を行うことができ、Musicのコレオグラファーが無意味な描画操作を行う頻度を10Hzに低減することができる。
ユーザがMusicをバックグラウンドからフォアグラウンドに切り換えると、アクティビティマネジャサーバは描画頻度制限モジュールに通知する。Musicはフォアグラウンドアプリケーションになる。この場合、描画頻度制限モジュールはコレオグラファーを実行して、コレオグラファーから描画要求を受信するたびに、描画操作を実行する。
図18は、本願の実施形態によるバックグラウンドアプリケーションの無意味な描画操作を管理及び制御するシナリオの別の例の概略図である。
図18に示すように、図17に示す内容と同様に、アプリケーションプログラムを起動した後、ユーザは、アプリケーションプログラムのコレオグラファーを初期化し、コレオグラファーの初期化処理においてコレオグラファー内の描画頻度制限モジュールを初期化する。描画頻度制限モジュールが初期化された後、描画頻度制限モジュールは、描画頻度制限ポリシーに従ってアプリケーションプログラムのバックグラウンド描画頻度を決定する。
アプリケーションプログラムがフォアグラウンドアプリケーションである場合、アプリケーションプログラムのコレオグラファーは、デフォルト描画操作を実行する。
アプリケーションプログラムがバックグラウンドアプリケーションに切り換えられると、アクティビティマネジャサービスは、バックグラウンドアプリケーション識別子を描画頻度制限モジュールに送信する。バックグラウンドアプリケーション識別子を受信した後に、描画頻度制限モジュールは、アプリケーションプログラムがバックグラウンドアプリケーションであると決定する。
アプリケーションプログラムがバックグラウンドアプリケーションに切り換えられた後、コレオグラファーは垂直同期信号を要求して受信し、次にdoFrameメソッドを使用して描画操作を実行する。描画頻度制限モジュールは、コレオグラファーが現在の無意味な描画操作を実際に実行しないように、コレオグラファーがアニメーションイベントタスクを処理することをインターセプトすることができる。
アプリケーションプログラムがバックグラウンドアプリケーションからフォアグラウンドアプリケーションに切り換えられた後、アクティビティマネジャサービスはフォアグラウンドアプリケーション識別子をアプリケーションプログラムのコレオグラファーに送信する。フォアグラウンドアプリケーション識別子を受信した後、描画頻度制限モジュールは、コレオグラファーが属するアプリケーションプログラムがフォアグラウンドアプリケーションに切り換えられ、従ってコレオグラファーがアニメーションイベントタスクを処理することをインターセプトしないと決定し、その結果、コレオグラファーはデフォルトの描画操作を実行できる。
文脈によれば、前述の実施形態で使用される「いつ」という用語は、「場合」、「後」、「決定に応答して」、又は「検出に応答して」の意味として解釈され得る。同様に、文脈に応じて、「~と決定されると」又は「(記載された条件又は事象が)検出された場合」という語句は、「~と決定されると」又は「決定に応答して」又は「(記載された条件又は事象が)検出されたとき」又は「(記載された条件又は事象)を検出することに応答して」の意味と解釈され得る。
前述の実施形態の全て又は一部は、ソフトウェア、ハードウェア、ファームウェア、又はそれらの任意の組み合わせにより実施することができる。ソフトウェアが実施形態を実施するために使用される場合、実施形態の全部又は一部は、コンピュータプログラムプロダクトの形式で実施することができる。コンピュータプログラムプロダクトは、1つ以上のコンピュータ命令を含む。コンピュータプログラム命令は、コンピュータ上にロードされ実行されると、本願の実施形態による手順又は機能が完全に又は部分的に生成される。コンピュータは、汎用コンピュータ、専用コンピュータ、コンピュータネットワーク、又は別のプログラマブル機器であってよい。コンピュータ命令は、コンピュータ読み取り可能な記憶媒体に記憶されてもよく、又はコンピュータ読み取り可能な記憶媒体から別のコンピュータ読み取り可能な記憶媒体に送信されてもよい。例えば、コンピュータ命令は、ウェブサイト、コンピュータ、サーバ、又はデータセンタから、別のウェブサイト、コンピュータ、サーバ、又はデータセンタへ、有線(例えば、同軸ケーブル、光ファイバ、又はデジタル加入者回線(digital subscriber line)又は無線(例えば、赤外線、無線、又はマイクロ波)方式で送信されてよい。コンピュータ可読記憶媒体は、コンピュータによりアクセス可能な任意の使用可能媒体、又は1つ以上の使用可能媒体を統合するサーバ若しくはデータセンタのようなデータ記憶装置であってよい。使用可能媒体は、磁気媒体(例えば、フロッピーディスク、ハードディスク、又は磁気テープ)、光媒体(例えば、DVD)、半導体媒体(例えば、固体ドライブ)等であってよい。
当業者は、前述の実施形態における方法の処理の全部又は一部が関連するハードウェアに命令するコンピュータプログラムにより実装されてよいことを理解し得る。プログラムは、コンピュータ可読記憶媒体に格納されてよい。プログラムが実行されると、前述の実施形態における方法の処理が実行される。前述の記憶媒体は、ROM、ランダムアクセスメモリRAM、磁気ディスク、又は光ディスクのような、プログラムコードを格納できる任意の媒体を含んでよい。
図2に示すように、アプリケーションプログラムの開発者は、アプリケーションプログラムのアクティビティを開発する際に、少なくとも7つのコールバックメソッド(Method)を実装する必要がある。コールバックメソッドは、コールバック関数とも呼ばれ、特定の関数を実装するために呼び出されることがある。7つのコールバックメソッドは、onCreateコールバックメソッド、onStartコールバックメソッド、onResumeコールバックメソッド、onPauseコールバックメソッド、onStopコールバックメソッド、onDestroyコールバックメソッド、及びonRestartコールバックメソッドである。アクティビティは、前述の7つのコールバックメソッドを呼び出すことによって、アクティビティのライフサイクルを実装できる。
図15に示すように、アプリケーションプログラムのコレオグラファーは、OnVsyncコールバックメソッドを使用して垂直同期信号を受信し、次に描画操作を実行し始める。描画操作は、入力イベントタスク、アニメーションイベントタスク、レイアウトイベントタスク、及びサブミッションイベントタスクの処理を含む。バックグラウンドアプリケーションのコレオグラファーは、入力イベントタスク、レイアウトイベントタスク、及びサブミッションイベントタスクを取得しないためである。したがって、コレオグラファーはアニメーションイベントタスクの処理をインターセプトされ、その結果、無意味な描画操作の実行をインターセプトされる。

Claims (25)

  1. アプリケーションによる描画操作を実行する方法であって、
    電子装置により、第1アプリケーションプログラムを起動するステップと、
    前記電子装置により、前記第1アプリケーションプログラムがフォアグラウンドアプリケーションである場合に、第1頻度で描画操作を実行するステップであって、前記描画操作は、前記第1アプリケーションプログラムのためのビューを描画する、ステップと、
    前記電子装置により、前記第1アプリケーションプログラムが前記フォアグラウンドアプリケーションからバックグラウンドアプリケーションに切り換えられた後に、第2頻度で前記描画操作を実行するステップであって、前記第2頻度は前記第1頻度より小さく、前記第1頻度は前記第1アプリケーションプログラムが垂直同期信号を受信する頻度である、ステップと、
    を含む方法。
  2. 前記電子装置により、前記第1アプリケーションプログラムが前記フォアグラウンドアプリケーションからバックグラウンドアプリケーションに切り換えられた後に、第2頻度で前記描画操作を実行するステップは、具体的に、
    前記第1アプリケーションプログラムが前記フォアグラウンドアプリケーションから前記バックグラウンドアプリケーションに切り換えられた後に、前記電子装置により、前記第1アプリケーションプログラムのコレオグラファーに、K個の受信した垂直同期信号のうちN個の垂直同期信号のみに応答するよう指示するステップであって、その結果、前記電子装置が前記第2頻度で前記描画操作を実行し、Kは正の整数であり、NはKより小さい正の整数である、ステップを含む、請求項1に記載の方法。
  3. 前記電子装置により、前記第1アプリケーションプログラムが前記フォアグラウンドアプリケーションからバックグラウンドアプリケーションに切り換えられた後に、第2頻度で前記描画操作を実行するステップは、具体的に、
    前記第1アプリケーションプログラムが前記フォアグラウンドアプリケーションから前記バックグラウンドアプリケーションに切り換えられた後に、前記電子装置により、前記第1アプリケーションプログラムのコレオグラファーに、K個の受信した垂直同期信号のうちN個の垂直同期信号に対応するアニメーションイベントタスクのみを処理するよう指示するステップであって、その結果、前記電子装置が前記第2頻度で前記描画操作を実行し、NはKより小さい正の整数である、ステップを含む、請求項1に記載の方法。
  4. 前記電子装置により、前記第1アプリケーションプログラムが前記フォアグラウンドアプリケーションからバックグラウンドアプリケーションに切り換えられた後に、第2頻度で前記描画操作を実行するステップは、具体的に、
    前記第1アプリケーションプログラムが前記フォアグラウンドアプリケーションから前記バックグラウンドアプリケーションに切り換えられた後に、前記電子装置により、前記第1アプリケーションプログラムのコレオグラファーにより受信されたK個の垂直同期信号のうちK-N個の垂直同期信号に対応するアニメーションイベントタスクを削除するステップであって、その結果、前記電子装置が前記第2頻度で前記描画操作を実行し、Kは正の整数であり、NはKより小さい正の整数である、ステップを含む、請求項1に記載の方法。
  5. Kに対するNの比が、前記第1頻度に対する前記第2頻度の比に対応する、請求項2~4のいずれか一項に記載の方法。
  6. 電子装置により、第1アプリケーションプログラムを起動するステップの後に、前記方法は、
    前記電子装置により、描画頻度制限ポリシー及び前記第1アプリケーションプログラムに従って前記第2頻度を決定するステップ、
    を更に含む請求項1~5のいずれか一項に記載の方法。
  7. 電子装置により、第1アプリケーションプログラムを起動するステップの後に、前記方法は、
    前記電子装置により、前記第1アプリケーションプログラムのプロセスのアクティビティマネジャサービス及び/又はcpusetパラメータに基づいて、前記第1アプリケーションプログラムが前記フォアグラウンドアプリケーション又は前記バックグラウンドアプリケーションであることを決定するステップ、
    を更に含む請求項1~6のいずれか一項に記載の方法。
  8. アプリケーションによる描画操作を実行する方法であって、
    電子装置により、第1アプリケーションプログラムを起動するステップと、
    前記電子装置により、前記第1アプリケーションプログラムのインタフェースを表示し、前記電子装置により、第1頻度で描画操作を実行するステップであって、前記描画操作は、前記第1アプリケーションプログラムのためのビューを描画する、ステップと、
    前記電子装置により、前記第1アプリケーションプログラムの前記インタフェースの表示を閉じ、前記電子装置により、第2頻度で前記描画操作を実行するステップであって、前記第2頻度は前記第1頻度より小さく、前記第1頻度は前記第1アプリケーションプログラムが垂直同期信号を受信する頻度である、ステップと、
    を含む方法。
  9. 前記電子装置により、第2頻度で前記描画操作を実行するステップは、具体的に、
    前記電子装置により、前記第1アプリケーションプログラムのコレオグラファーに、K個の受信した垂直同期信号のうちN個の垂直同期信号のみに応答するよう指示するステップであって、その結果、前記電子装置が前記第2頻度で前記描画操作を実行し、Kは正の整数であり、NはKより小さい正の整数である、ステップを含む、請求項8に記載の方法。
  10. 前記電子装置により、第2頻度で前記描画操作を実行するステップは、具体的に、
    前記電子装置により、前記第1アプリケーションプログラムのコレオグラファーに、K個の受信した垂直同期信号のうちN個の垂直同期信号に対応するアニメーションイベントタスクのみを処理するよう指示するステップであって、その結果、前記電子装置が前記第2頻度で前記描画操作を実行し、Kは正の整数であり、NはKより小さい正の整数である、ステップを含む、請求項8に記載の方法。
  11. 前記電子装置により、第2頻度で前記描画操作を実行するステップは、具体的に、
    前記電子装置により、前記第1アプリケーションプログラムのコレオグラファーにより受信されたK個の垂直同期信号のうちK-N個の垂直同期信号に対応するアニメーションイベントタスクを削除するステップであって、その結果、前記電子装置が前記第2頻度で前記描画操作を実行し、Kは正の整数であり、NはKより小さい正の整数である、ステップを含む、請求項8に記載の方法。
  12. Kに対するNの比が、前記第1頻度に対する前記第2頻度の比に対応する、請求項9~11のいずれか一項に記載の方法。
  13. 電子装置であって、前記電子装置は1つ以上のプロセッサとメモリとを含み、
    前記メモリは前記1つ以上のプロセッサに結合され、前記メモリはコンピュータプログラムコードを格納するように構成され、前記コンピュータプログラムコードはコンピュータ命令を含み、前記1つ以上のプロセッサは前記コンピュータ命令を呼び出すことにより、前記電子装置は以下の動作:
    第1アプリケーションプログラムの開始するステップと、
    前記第1アプリケーションプログラムがフォアグラウンドアプリケーションである場合に、第1頻度で描画操作を実行するステップであって、前記描画操作が前記第1アプリケーションプログラムのビューを描画する、ステップと、
    前記第1アプリケーションプログラムが前記フォアグラウンドアプリケーションからバックグラウンドアプリケーションに切り換えられた後に、第2頻度で前記描画操作を実行するステップであって、前記第2頻度は前記第1頻度より小さく、前記第1頻度は前記第1アプリケーションプログラムが垂直同期信号を受信する頻度である、ステップと、
    を実行する、電子装置。
  14. 前記1つ以上のプロセッサは、具体的に、前記コンピュータ命令を呼び出すよう構成され、その結果、前記電子装置は以下の動作:
    前記第1アプリケーションプログラムが前記フォアグラウンドアプリケーションから前記バックグラウンドアプリケーションに切り換えられた後に、前記第1アプリケーションプログラムのコレオグラファーに、K個の受信した垂直同期信号のうちN個の垂直同期信号のみに応答するよう指示するステップであって、その結果、前記電子装置が前記第2頻度で前記描画操作を実行し、Kは正の整数であり、NはKより小さい正の整数である、ステップ、
    を実行する請求項13に記載の電子装置。
  15. 前記1つ以上のプロセッサは、具体的に、前記コンピュータ命令を呼び出すよう構成され、その結果、前記電子装置は以下の動作:
    前記第1アプリケーションプログラムが前記フォアグラウンドアプリケーションから前記バックグラウンドアプリケーションに切り換えられた後に、前記第1アプリケーションプログラムのコレオグラファーに、K個の受信した垂直同期信号のうちN個の垂直同期信号に対応するアニメーションイベントタスクのみを処理するよう指示するステップであって、その結果、前記電子装置が前記第2頻度で前記描画操作を実行し、Kは正の整数であり、NはKより小さい正の整数である、ステップ、
    を実行する請求項13に記載の電子装置。
  16. 前記1つ以上のプロセッサは、具体的に、前記コンピュータ命令を呼び出すよう構成され、その結果、前記電子装置は以下の動作:
    前記第1アプリケーションプログラムが前記フォアグラウンドアプリケーションから前記バックグラウンドアプリケーションに切り換えられた後に、前記第1アプリケーションプログラムのコレオグラファーにより受信されたK個の垂直同期信号のうちK-N個の垂直同期信号に応答するアニメーションイベントタスクを削除するよう指示するステップであって、その結果、前記電子装置が前記第2頻度で前記描画操作を実行し、Kは正の整数であり、NはKより小さい正の整数である、ステップ、
    を実行する請求項13に記載の電子装置。
  17. Kに対するNの比が、前記第1頻度に対する前記第2頻度の比に対応する、請求項13~16のいずれか一項に記載の電子装置。
  18. 前記1つ以上のプロセッサは、前記コンピュータ命令を呼び出すよう更に構成され、その結果、前記電子装置は、以下の動作:
    描画頻度制限ポリシー及び前記第1アプリケーションプログラムに従い、前記第2頻度を決定するステップ、
    を実行する、請求項13~17のいずれか一項に記載の電子装置。
  19. 前記1つ以上のプロセッサは、前記コンピュータ命令を呼び出すよう更に構成され、その結果、前記電子装置は、以下の動作:
    前記第1アプリケーションプログラムのプロセスのアクティビティマネジャサービス及び/又はcpusetパラメータに基づいて、前記第1アプリケーションプログラムが前記フォアグラウンドアプリケーション又は前記バックグラウンドアプリケーションであることを決定するステップ、
    を更に含む請求項13~18のいずれか一項に記載の電子装置。
  20. 電子装置であって、前記電子装置は1つ以上のプロセッサとメモリとを含み、
    前記メモリは前記1つ以上のプロセッサに結合され、前記メモリはコンピュータプログラムコードを格納するように構成され、前記コンピュータプログラムコードはコンピュータ命令を含み、前記1つ以上のプロセッサは前記コンピュータ命令を呼び出すことにより、前記電子装置は以下の動作:
    第1アプリケーションプログラムを起動するステップと、
    前記電子装置により、前記第1アプリケーションプログラムのインタフェースを表示するステップと、
    第1頻度で描画操作を実行するステップであって、前記描画操作が前記第1アプリケーションプログラムのビューを描画する、ステップと、
    前記第1アプリケーションプログラムの前記インタフェースの表示を閉じ、第2頻度で前記描画操作を実行するステップであって、前記第2頻度は前記第1頻度より小さく、前記第1頻度は前記第1アプリケーションプログラムが垂直同期信号を受信する頻度である、ステップと、
    を実行する、電子装置。
  21. 前記1つ以上のプロセッサは、具体的に、前記コンピュータ命令を呼び出すよう構成され、その結果、前記電子装置は以下の動作:
    前記第1アプリケーションプログラムのコレオグラファーに、K個の受信した垂直同期信号のうちN個の垂直同期信号のみに応答するよう指示するステップであって、その結果、前記電子装置が前記第2頻度で前記描画操作を実行し、NはKより小さい正の整数である、ステップ、
    を実行する請求項20に記載の電子装置。
  22. 前記1つ以上のプロセッサは、具体的に、前記コンピュータ命令を呼び出すよう構成され、その結果、前記電子装置は以下の動作:
    前記第1アプリケーションプログラムのコレオグラファーに、K個の受信した垂直同期信号のうちN個の垂直同期信号に対応するアニメーションイベントタスクのみを処理するよう指示するステップであって、その結果、前記電子装置が前記第2頻度で前記描画操作を実行し、Kは正の整数であり、NはKより小さい正の整数である、ステップ、
    を実行する請求項20に記載の電子装置。
  23. 前記1つ以上のプロセッサは、具体的に、前記コンピュータ命令を呼び出すよう構成され、その結果、前記電子装置は以下の動作:
    前記第1アプリケーションプログラムのコレオグラファーにより受信されたK個の垂直同期信号のうちK-N個の垂直同期信号に応答するアニメーションイベントタスクを削除するよう指示するステップであって、その結果、前記電子装置が前記第2頻度で前記描画操作を実行し、Kは正の整数であり、NはKより小さい正の整数である、ステップ、
    を実行する請求項20に記載の電子装置。
  24. Kに対するNの比が、前記第1頻度に対する前記第2頻度の比に対応する、請求項21~23のいずれか一項に記載の電子装置。
  25. 命令を含むコンピュータプログラムプロダクトであって、前記コンピュータプログラムプロダクトが電子装置上で実行されると、前記電子装置は、請求項1~12のいずれか一項に記載の方法を実行可能にされる、コンピュータプログラムプロダクト。
JP2023558327A 2021-03-24 2022-03-21 アプリケーションによる描画操作を実行する方法及び電子装置 Pending JP2024515462A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN202110316341.XA CN113553130B (zh) 2021-03-24 2021-03-24 应用执行绘制操作的方法及电子设备
CN202110316341.X 2021-03-24
PCT/CN2022/081926 WO2022199509A1 (zh) 2021-03-24 2022-03-21 应用执行绘制操作的方法及电子设备

Publications (1)

Publication Number Publication Date
JP2024515462A true JP2024515462A (ja) 2024-04-10

Family

ID=78101713

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023558327A Pending JP2024515462A (ja) 2021-03-24 2022-03-21 アプリケーションによる描画操作を実行する方法及び電子装置

Country Status (5)

Country Link
US (1) US20230418696A1 (ja)
EP (1) EP4280056A4 (ja)
JP (1) JP2024515462A (ja)
CN (2) CN116560771A (ja)
WO (1) WO2022199509A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116560771A (zh) * 2021-03-24 2023-08-08 华为技术有限公司 一种应用执行绘制操作的方法及电子设备
CN116055611B (zh) * 2022-06-24 2023-11-03 荣耀终端有限公司 绘制操作的执行方法、电子设备及可读介质
CN116048907A (zh) * 2022-06-24 2023-05-02 荣耀终端有限公司 后台绘制的检测方法、电子设备及计算机可读存储介质
CN117724863A (zh) * 2022-08-30 2024-03-19 荣耀终端有限公司 一种目标信号处理方法和电子设备
CN117991940A (zh) * 2022-11-04 2024-05-07 荣耀终端有限公司 一种图像绘制方法及电子设备
CN117112154A (zh) * 2023-04-21 2023-11-24 荣耀终端有限公司 线程调度方法及相关装置
CN116594543B (zh) * 2023-07-18 2024-03-26 荣耀终端有限公司 显示方法、设备及可读存储介质

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5036737B2 (ja) * 2009-01-23 2012-09-26 三菱電機株式会社 操作端末、操作端末の画面表示方法
US8593463B2 (en) * 2009-10-27 2013-11-26 Microsoft Corporation Controlling animation frame rate of applications
CN106327540B (zh) * 2015-07-03 2019-05-07 高德软件有限公司 基于OpenGL View的控制方法、装置及终端
CN106027942A (zh) * 2016-05-20 2016-10-12 广东欧珀移动通信有限公司 一种帧率控制方法及装置
CN106933587B (zh) * 2017-03-10 2019-12-31 Oppo广东移动通信有限公司 一种图层绘制控制方法、装置及移动终端
CN108628562A (zh) * 2017-03-23 2018-10-09 中科创达软件股份有限公司 一种屏幕刷新方法及系统
CN108646906B (zh) * 2018-03-27 2021-06-25 Oppo广东移动通信有限公司 帧率调整方法、装置、存储介质及智能终端
CN108733193B (zh) * 2018-03-27 2020-06-30 Oppo广东移动通信有限公司 智能调整帧率的方法、装置、存储介质及智能终端
CN110175062B (zh) * 2019-05-20 2023-11-14 努比亚技术有限公司 一种移动终端的屏幕刷新帧率方法、移动终端及存储介质
CN110928396B (zh) * 2019-11-18 2021-07-30 Oppo(重庆)智能科技有限公司 屏幕刷新方法及相关设备
CN111787602B (zh) * 2020-07-01 2023-01-06 深圳传音控股股份有限公司 终端省电方法、终端及可读存储介质
CN116560771A (zh) * 2021-03-24 2023-08-08 华为技术有限公司 一种应用执行绘制操作的方法及电子设备

Also Published As

Publication number Publication date
WO2022199509A1 (zh) 2022-09-29
EP4280056A4 (en) 2024-06-26
EP4280056A1 (en) 2023-11-22
CN116560771A (zh) 2023-08-08
CN113553130A (zh) 2021-10-26
US20230418696A1 (en) 2023-12-28
CN113553130B (zh) 2023-04-28

Similar Documents

Publication Publication Date Title
KR102575123B1 (ko) 애플리케이션 디스플레이 방법 및 전자 장치
EP4280056A1 (en) Method for application performing drawing operation, and electronic device
EP3789875A1 (en) Task processing method, apparatus, terminal, and computer readable storage medium
CN114443277A (zh) 内存管理方法、装置、电子设备以及计算机可读存储介质
CN111543042B (zh) 通知消息的处理方法及电子设备
WO2021052415A1 (zh) 资源调度方法及电子设备
CN114461588B (zh) 调节预读窗口的方法及电子设备
WO2022078105A1 (zh) 内存管理方法、电子设备以及计算机可读存储介质
US20240073313A1 (en) Application display method and apparatus, system-on-a-chip, medium, and program product
CN116028149B (zh) 窗口渲染方法、系统、设备、存储介质和计算机程序产品
WO2022095744A1 (zh) Vr显示控制方法、电子设备及计算机可读存储介质
CN114461589B (zh) 读取压缩文件的方法、文件系统及电子设备
WO2022262291A1 (zh) 应用的图像数据调用方法、系统、电子设备及存储介质
CN112783418B (zh) 一种存储应用程序数据的方法及移动终端
WO2022143891A1 (zh) 焦点同步方法及电子设备
WO2024045841A1 (zh) 存储的方法、装置和电子设备
EP4390677A1 (en) Animation effect display method and electronic device
CN117311484A (zh) 调整设备功耗的方法及电子设备
CN114816028A (zh) 屏幕刷新方法、电子设备和计算机可读存储介质
CN117908999A (zh) 界面生成方法及电子设备
CN117707720A (zh) 一种进程调度方法、装置及电子设备
CN117675881A (zh) 一种应用数据保存方法及电子设备
CN117909000A (zh) 界面生成方法及电子设备
CN117806745A (zh) 界面生成方法及电子设备
CN115705120A (zh) 应用程序的切换方法、图形界面及相关装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230928

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230928