JP6768243B2 - アプリケーションプログラムの制御方法、装置、端末、および記憶媒体 - Google Patents

アプリケーションプログラムの制御方法、装置、端末、および記憶媒体 Download PDF

Info

Publication number
JP6768243B2
JP6768243B2 JP2019540578A JP2019540578A JP6768243B2 JP 6768243 B2 JP6768243 B2 JP 6768243B2 JP 2019540578 A JP2019540578 A JP 2019540578A JP 2019540578 A JP2019540578 A JP 2019540578A JP 6768243 B2 JP6768243 B2 JP 6768243B2
Authority
JP
Japan
Prior art keywords
program
touch event
inner layer
module
layer program
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.)
Active
Application number
JP2019540578A
Other languages
English (en)
Other versions
JP2020509463A (ja
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Publication of JP2020509463A publication Critical patent/JP2020509463A/ja
Application granted granted Critical
Publication of JP6768243B2 publication Critical patent/JP6768243B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/0414Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means using force sensing means to determine a position
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/0416Control or interface arrangements specially adapted for digitisers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Computer Security & Cryptography (AREA)
  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)

Description

本願は、2017年07月14日に中国専利局に提出した、出願番号が201710573725.3であって、発明の名称が「アプリケーションプログラムの制御方法、装置、および機器」である中国特許出願の優先権を主張し、本願で、その全ての内容を援用するものとする。
本願の実施例は、ヒューマンコンピュータインタラクションの分野に関し、特に、アプリケーションプログラムの制御方法、装置、端末、および記憶媒体に関する。
携帯端末において、仮想エンジンを用いて開発されたアプリケーションプログラムが多く存在し、特に、3次元仮想エンジンを用いて開発されたアプリケーションプログラムが多く存在し、例えば、仮想現実アプリケーションプログラム、3次元地図プログラム、ファーストパーソン・シューティングゲーム(First-person shooting game、FPS)、マルチプレイヤーオンラインバトルアリーナゲーム(Multiplayer Online Battle Arena Games、MOBA)がある。
現在、よく使用されている3次元仮想エンジンは、Unityエンジンであり、アプリケーションプログラムがUnityエンジンに基づいて開発されたFPSゲームアプリケーションプログラムを例にとって、ユーザーが当該FPSゲームアプリケーションプログラムを使用する場合に、ユーザーインタフェースにいくつかの仮想キーが表示され、ユーザーが仮想キーを押すことでゲームキャラクターを制御して前進、後退、振り向き、火発射などのアクションを行わせる。
圧力タッチスクリーンが配置されている携帯端末があるが、現在のUnityエンジンは圧力タッチ機能を直接にサポートすることはできないので、圧力タッチ技術を用いてUnityエンジンに基づいて開発されたアプリケーションプログラムを制御することができない。
圧力タッチ技術を用いてUnityエンジンに基づいて開発されたアプリケーションプログラムを制御することができない問題を解決するために、本願の実施例は、アプリケーションプログラムの制御方法、装置、端末、および記憶媒体を提供する。前記技術案は以下のようである。
第1の方面によれば、アプリケーションプログラムの制御方法を提供し、仮想エンジンとアプリケーションプログラムとがインストールされた端末に適用され、前記アプリケーションプログラムは前記仮想エンジンに基づいて開発されたプログラムであり、前記アプリケーションプログラムは外層プログラムと内層プログラムとを含み、前記方法は、
前記仮想エンジンが操作座標と圧力値とを含む圧力タッチイベントをインターセプトし、
前記仮想エンジンが前記圧力タッチイベントを前記外層プログラムに伝達し、
前記外層プログラムが前記圧力タッチイベントを前記内層プログラムに伝達し、
前記内層プログラムが前記圧力タッチイベントに応じて所定の操作を実行する、ことを含む方法。
第2の方面によれば、アプリケーションプログラムの制御装置を提供し、一つ又は複数のプロセッサー、およびプログラムユニットを記憶する一つ又は複数のメモリを含み、前記プログラムユニットは前記プロセッサーによって実行され、前記プログラムユニットは仮想エンジンモジュールとアプリケーションプログラムモジュールとを含み、前記アプリケーションプログラムは前記仮想エンジンモジュールに基づいて開発されたプログラムモジュールであり、前記アプリケーションプログラムモジュールは外層プログラムモジュールと内層プログラムモジュールとを含み、
前記仮想エンジンモジュールは、操作座標と圧力値とを含む圧力タッチイベントをインターセプトするように設置され、
前記仮想エンジンモジュールは、前記圧力タッチイベントを前記外層プログラムモジュールに伝達するように設置され、
前記外層プログラムモジュールは、前記圧力タッチイベントを前記内層プログラムモジュールに伝達するように設置され、
前記内層プログラムモジュールは、前記圧力タッチイベントに応じて所定の操作を実行するように設置される。
本願の実施例の他の局面によれば、端末を提供し、前記端末はプロセッサーとメモリとを含み、前記メモリに少なくとも一つのコマンドが記憶され、前記コマンドは前記プロセッサーによってロードされ実行されて本願のアプリケーションプログラムの制御方法を実現する。
本願の実施例の他の局面によれば、さらに記憶媒体を提供し、当該記憶媒体にコンピュータプログラムが記憶され、当該コンピュータプログラムは実行中に本願のアプリケーションプログラムの制御方法を実行するように設置される。
本願の実施例で提供される技術案は以下の有益な効果をもたらす。
圧力タッチイベントをアプリケーションプログラムの外層プログラムに伝達してから、アプリケーションプログラムの外層プログラムからアプリケーションプログラムの内層プログラムに伝達し、内層プログラムが圧力タッチイベントに応じて所定の操作を実行することにより、アプリケーションプログラムの内層プログラムがオペレーティングシステム内で直接に実行することができず、正常に実行するためには外部プログラムを追加する必要があり、外層プログラムが存在するため、アプリケーションプログラムが圧力タッチイベントに直接に処理することができないという問題を解決し、これにより、3次元仮想エンジンに基づいて開発されたアプリケーションプログラムでは、圧力タッチ技術を用いて入力制御を行うことを実現し、携帯端末の限られた画面領域で複数の制御コマンドのトリガーを実現し、これによりヒューマンコンピュータインタラクションの効率を向上させる。
本願の実施例における技術案をより明確に説明するために、以下で実施例の記述において使用する必要がある図面を簡単に紹介し、もちろん、以下に記述の図面は本願のいくつかの実施例に過ぎず、当業者にとって、創造的な労力をしない前提で、これらの図面に応じて他の図面を得ることもできる。
本願の一つの例示的な実施例で提供される端末の構成概略図である。 本願の一つの例示的な実施例で提供されるアプリケーションプログラムの制御方法のフローチャートである。 本願の一つの例示的な実施例で提供されるアプリケーションプログラムの制御方法の実施中のインタフェース概略図である。 本願の他の一つの例示的な実施例で提供されるアプリケーションプログラムの制御方法のフローチャートである。 本願の他の一つの例示的な実施例で提供される端末の構成概略図である。 本願の他の一つの例示的な実施例で提供されるアプリケーションプログラムの制御方法のフローチャートである。 本願の他の一つの例示的な実施例で提供される端末の構成概略図である。 本願の他の一つの例示的な実施例で提供されるアプリケーションプログラムの制御方法のフローチャートである。 本願の他の一つの例示的な実施例で提供される端末の構成概略図である。 本願の他の一つの例示的な実施例で提供されるアプリケーションプログラムの制御方法のフローチャートである。 本願の他の一つの例示的な実施例で提供される端末の構成概略図である。 本願の他の一つの例示的な実施例で提供されるアプリケーションプログラムの制御方法のフローチャートである。 本願の他の一つの例示的な実施例で提供されるアプリケーションプログラムの制御方法のフローチャートである。 本願の一つの例示的な実施例で提供されるアプリケーションプログラムの制御装置のブロック図である。
本発明の実施例の目的、技術案、及び利点をより明確にするために、以下では添付の図面を参照しながら本発明の実施形態をさらに詳細に記述する。
よく使用する仮想エンジンは、Unityエンジンであり、Unityエンジンに基づいて開発されたアプリケーションプログラムは、一般的にC#プログラミング言語を用いて作成される。Unityエンジンに基づいて開発されたアプリケーションプログラムを、異なるオペレーティングシステムにリリースする場合に、異なるオペレーティングシステムは異なるプログラミング言語をサポートするので、アプリケーションプログラムに対して適応的に修正する必要がある。例えば、AndroidオペレーティングシステムはJava(登録商標、以下同じ)プログラミング言語で開発されたアプリケーションプログラムをサポートし、Androidオペレーティングシステムにおいて正常に実行するためにはC#プログラミング言語に基づいて作成されたアプリケーションプログラムに対してJavaプログラミング言語で作成された一つの外層プログラムを追加する必要がある。また、例えば、IOSオペレーティングシステムは、Object-Cプログラミング言語で開発されたアプリケーションプログラムをサポートし、IOSオペレーティングシステムにおいて正常に実行するためには、C#プログラミング言語に基づいて作成されたアプリケーションプログラムに対してObject-Cプログラミング言語で作成された一つの外層プログラムを追加する必要がある。
外層プログラムが存在するため、C#プログラミング言語に基づいて作成されたアプリケーションプログラムは、オペレーティングシステムの下層の圧力タッチイベントを取得することができないので、圧力タッチ技術をサポートしない。そのために、本願の実施例は以下の実施例を提供し、当該技術問題を解決する。
図1は、本願の一つの例示的な実施例で提供される端末の構成概略図である。図1に示すように、当該端末は、プロセッサー11と、タッチスクリーン12と、メモリ13とを含む。
プロセッサー11は、シングルコアプロセッサー、マルチコアプロセッサー、組み込みチップ、およびコマンド実行性能を有するプロセッサーのうちの少なくとも1つであってもよい。
タッチスクリーン12は、感圧タッチスクリーンであり、感圧タッチスクリーンは、タッチスクリーン12に掛けられた押圧強度を測定することができる。
メモリ13は、プロセッサー11の実行可能プログラムを記憶している。例示的に、メモリ13には、アプリケーションプログラムA、アプリケーションプログラムB、アプリケーションプログラムC、仮想エンジン17、感圧モジュール18、オペレーティングシステムのカーネル層19を記憶している。例示的に、アプリケーションプログラムAは、アプリケーションプログラムAの外層プログラム141と、アプリケーションプログラムAの内層プログラム142とを含む。なお、アプリケーションプログラムAは、仮想エンジン17に基づいて開発されたアプリケーションプログラムであり、アプリケーションプログラムAの外層プログラムは、第1のプログラミング言語を用いて開発され、アプリケーションプログラムAの内層プログラムは第2のプログラミング言語を用いて開発される。選択的に、第1のプログラミング言語は、オペレーティングシステムのアプリケーション層によって直接にサポートされる開発言語であり、第2のプログラミング言語はアプリケーションプログラムの初期開発に使用されるプログラミング言語であり、第1のプログラミング言語と、第2のプログラミング言語とは、二つの異なるプログラミング言語であり、そして、アプリケーションプログラムAの外層プログラムがない場合に、アプリケーションプログラムAの内層プログラムはオペレーティングシステムで直接に実行することができない。アプリケーションプログラムAの外層プログラムには、アプリケーションプログラムAの内層プログラムを含む。選択的に、アプリケーションプログラムAは、仮想エンジン17によって開発されたゲームプログラム、仮想現実プログラム、3次元地図プログラム、3次元デモプログラムのうちの少なくとも1つを含むがこれらに限定されない。例えば、端末のオペレーティングシステムはがAndroidオペレーティングシステムを採用する場合に、アプリケーションプログラムAの外層プログラムはJavaプログラミング言語を用いて開発され、アプリケーションプログラムAの内層プログラムはC#言語を用いて開発され、また、例えば、端末のオペレーティングシステムはIOSオペレーティングシステムを用いる場合に、アプリケーションプログラムAの外層プログラムはObject-Cプログラミング言語を用いて開発され、アプリケーションプログラムAの内層プログラムはC#言語を用いて開発される。
仮想エンジン17は、複数のオペレーティングシステムプラットフォームをサポートするインタラクティブエンジンであり、例示的に、仮想エンジンは、ゲーム開発分野、仮想現実(Virtual Reality、VR)分野、3次元地図分野などの複数の分野のプログラム開発に適用され得る。仮想エンジンは、3次元仮想エンジン、二次元仮想エンジンなどを含むが、これらに限定されない。本願の実施例では、仮想エンジン17の具体的なタイプが限定されず、以下の実施例において、仮想エンジン17が3次元仮想エンジン、特にUnityエンジンであることを例に説明する。
感圧モジュール18は、タッチスクリーンドライバ191によって報告される圧力タッチイベントを受信するように設置されるモジュールである。圧力タッチイベントは、圧力タッチイベントの圧力値、および座標値を含む。当該座標値は、表示スクリーン上の圧力タッチ操作のタッチ位置を指示するために用いられる。選択的に、表示スクリーンの水平方向を横軸として、表示スクリーンの垂直方向を縦軸として二次元座標系を得る。
例示的に、カーネル層19は、タッチスクリーンドライバ191、および他のドライバ192を含む。タッチスクリーンドライバ191は、圧力タッチイベントを検出するように設置されるモジュールであり、タッチスクリーンドライバ191は、圧力タッチイベントを検出すると、圧力タッチイベントを感圧モジュール18に伝達する。
他のドライバ192は、プロセッサー11に関するドライバ、メモリ13に関するドライバ、ネットワークコンポーネントに関するドライバ、サウンドコンポーネントに関するドライバなどであってもよい。
当業者は、上記が端末の構造の例示であることを理解できる。 異なる実施形態では、端末は、より多いまたはより少ないコンポーネントを有してもよい。 例えば、端末は、重力加速度センサー、ジャイロセンサー、および電源をさらに含んでもよい。
図2は、本願の一つの例示的な実施例で提供されるアプリケーションプログラムの制御方法のフローチャートである。本実施例は、当該アプリケーションプログラムの制御方法を図1に示す端末に適用する例を挙げて説明する。当該方法は、以下のステップを含む。
ステップ101において、仮想エンジンは、圧力タッチイベントをインターセプトする。
圧力タッチイベントは、圧力タッチ技術を用いたタッチスクリーンでトリガーされるタッチイベントである。本実施例において、仮想エンジンはアプリケーションプログラムAによって使用されるエンジンである。
ユーザーがアプリケーションプログラムAを使用すると、端末のタッチスクリーン12にアプリケーションプログラムAのユーザーインタフェースを表示し、当該ユーザーインタフェースにヒューマンコンピュータインタラクションに用いられるコントロール、例えば、仮想ボタンを含む。ユーザーがタッチスクリーンに圧力タッチ操作をかける場合に、端末のタッチスクリーンドライバ191は圧力タッチイベントを生成し、感圧モジュール18に報告する。感圧モジュール18は、圧力タッチイベントをメッセージの形で、少なくとも一つのアプリケーションプログラムに送信する。
なお、仮想エンジンは、圧力タッチイベントをインターセプトする。
ステップ102において、仮想エンジンは圧力タッチイベントをアプリケーションプログラムの外層プログラムに伝達する。
アプリケーションプログラムの外層プログラムは、第1のプログラミング言語を用いて開発され、選択的に、第1のプログラミング言語はオペレーティングシステムのアプリケーション層によって直接にサポートされる開発言語であり、例えば、Androidオペレーティングシステムのアプリケーション層によってサポートされる開発言語はJavaであり、iOSオペレーティングシステムのアプリケーション層によってサポートされる開発言語はObject-Cなどであり、本実施例においてこれは限定されない。
本実施例において、アプリケーションプログラムAは仮想エンジンに基づいて開発されたアプリケーションプログラムであり、仮想エンジンが、圧力タッチイベントをインターセプトすると、圧力タッチイベントをアプリケーションプログラムAの外層プログラムに伝達し、圧力タッチイベントは当該イベントの圧力値と、座標値とを含む。
ステップ103において、アプリケーションプログラムの外層プログラムは、圧力タッチイベントを受信する。
当該圧力タッチイベントは、当該イベントの圧力値と、座標値とを含む。
ステップ104において、アプリケーションプログラムの外層プログラムは、圧力タッチイベントをアプリケーションプログラムの内層プログラムに伝達する。
アプリケーションプログラムの内層プログラムは、第2のプログラミング言語を用いて開発され、選択的に、第2のプログラミング言語はアプリケーションプログラムの最初の開発の際のプログラミング言語であり、当該プログラミング言語は、C言語、Java言語、C#言語、C++言語、Python言語のうちの少なくとも1つを含むが、これらに限定されない。本実施例は、第2のプログラミング言語がC#言語である例を挙げて説明するが、これに限定されない。
ステップ105において、アプリケーションプログラムの内層プログラムは圧力タッチイベントを受信する。
ステップ106において、アプリケーションプログラムの内層プログラムは、圧力タッチイベントに応じて所定の操作を実行する。
例示的に、圧力タッチイベントにおける圧力値がプリセット閾値よりも大きいと、第1の予定の操作を実行し、圧力タッチイベントにおける圧力値がプリセット閾値よりも小さいと、第2の予定の操作を実行する。
以上のように、本願の実施例で提供されるアプリケーションプログラムの制御方法によれば、圧力タッチイベントをアプリケーションプログラムの外層プログラムに伝達してから、アプリケーションプログラムの外層プログラムからアプリケーションプログラムの内層プログラムに伝達し、内層プログラムが圧力タッチイベントに応じて所定の操作を実行することにより、アプリケーションプログラムの内層プログラムがオペレーティングシステム内で直接に実行することができず、正常に実行するために外層プログラムを追加する必要があり、外層プログラムが存在するため、アプリケーションプログラムは圧力タッチイベントを直接に処理できないという問題を解決し、これにより、仮想エンジンに基づいて開発されたアプリケーションプログラムで、圧力タッチ技術を用いて入力制御を行うことができ、携帯端末の限られた画面領域で複数の操作コマンドのトリガーを実現し、ヒューマンコンピュータインタラクションの効率を向上させる。
図3は、本願の一つの例示的な実施例で提供されるアプリケーションプログラムの制御方法の具体的な実施中のインタフェース概略図である。一つの具体的な例において、図3に示すように、端末においてフォアグラウンドで実行されるアプリケーションプログラムはファーストパーソン・シューティングゲームであり、当該アプリケーションプログラムは仮想エンジンに基づいて開発されたゲームアプリケーションプログラムであり、フォアグラウンドで実行されるユーザーインタフェースはゲーム中にプレーヤの第1の視角で射撃を行うインタフェースであり、当該インタフェースは、キャラクター位置を移動させるように設置される第1のコントロール331と、視角位置を移動させるように設置される第2のコントロール332とを含む。
第1のコントロール331は、キャラクター位置を移動させるように設置されるコントロールであり、ゲームキャラクターは3次元仮想環境に位置する仮想キャラクターであり、ユーザーは第1のコントロール33を介して仮想キャラクターを制御して3次元仮想環境において前後左右に移動させることができる。例示的に、ユーザーは第1のコントロール331を垂直に上方へスライドさせると、端末は3次元仮想環境における仮想キャラクターを前方へ移動させ、ユーザーは第1のコントロール331を垂直に下方へスライドさせると、端末は3次元仮想環境における仮想キャラクターを後方へ移動させ、ユーザーは第1のコントロール331を水平に左方へスライドさせると、端末は3次元仮想環境における仮想キャラクターを左方へ移動させ、ユーザーは第1のコントロール331を水平に右方へ移動させると、端末は3次元仮想環境における仮想キャラクターを右方へ移動させる。
第2のコントロール332は、第1の視角の視角方向を制御するように設置されるコントロールであり、例示的に、ユーザーは軽い圧力で第2のコントロール332をスライドさせながら第2のコントロール332を水平に左方へスライドさせ、アプリケーションプログラムの内層プログラムは、圧力値が予定の閾値を超えないと判断し、アプリケーションプログラムはゲームにおける第1の視角を左方へ回転させ、第1のコントロール331を水平に右方へスライドさせ、ユーザーはゲームにおける第1の視角を右へ回転させ、第1のコントロールを垂直に上方へスライドさせ、ゲームにおけるユーザーの主観的視角は上方へ回転され、第2のコントロール332を垂直に下方へスライドさせ、ゲームにおけるユーザーの主観の視角は下方へ回転される。
同時に、第2のコントロール332はさらに、火発射操作をトリガすることができる。ユーザーが重い圧力で第2のコントロール332を押すと、アプリケーションプログラムの内層プログラムは、圧力値が予定の閾値を超えると判断し、アプリケーションプログラムはゲームキャラクターを制御して火発射操作を行わせる。つまり、ユーザーは、異なる圧力値の圧力タッチ操作を通じて、第2のコントロール332で異なる二つの制御操作を実現することができる。
いくつかの実施例において、仮想エンジンはメッセージ転送コードを提供し、当該メッセージ転送コードはデフォルトで圧力タッチイベントを内層プログラム232に転送する。しかし、外層プログラム231が存在するため、当該メッセージ転送コードの伝送は失敗し、効果的に実行できない。この場合、仮想エンジンのメッセージ転送コードを修正する必要がある。そのために、本願は、さらに、以下の実施例を提供する。
図4は、本願の他の一つの例示的な実施例で提供される端末の構成概略図である。例示的に、端末が利用する第1のオペレーティングシステムを例に、当該第1のオペレーティングシステムは、タッチスクリーンドライバが圧力タッチイベントをグラフィカルユーザインタフェースコンポーネントを介さずアプリケーション層に直接に送信するオペレーティングシステムであり、当該第1のオペレーティングシステムはAndroidオペレーティングシステムを含むがこれに限定されない。
プロセッサー21は、シングルコアプロセッサー、マルチコアプロセッサー、組み込みチップ、およびコマンド実行性能を有するプロセッサーのうちの少なくとも1つであってもよい。
タッチスクリーン22は、感圧タッチスクリーンであり、感圧タッチスクリーンはタッチスクリーン12に掛けられた押圧強度を測定することができる。
メモリ23は、プロセッサー21の実行可能プログラムを記憶している。例示的に、メモリ23は、アプリケーションプログラムA、アプリケーションプログラムB、アプリケーションプログラムC、C++ダイナミックリンクライブラリ26、仮想エンジン261、感圧モジュール262、オペレーティングシステムのカーネル層27を記憶している。例示的に、アプリケーションプログラムAはアプリケーションプログラムAの外層プログラム231とアプリケーションプログラムAの内層プログラム232とを含む。なお、アプリケーションプログラムAは仮想エンジン261に基づいて開発されたアプリケーションプログラムであり、アプリケーションプログラムAの外層プログラムは第1のプログラミング言語を用いて開発され、アプリケーションプログラムAの内層プログラムは第2のプログラミング言語を用いて開発される。選択的に、第1のプログラミング言語はオペレーティングシステムのアプリケーション層によって直接にサポートされる開発言語であり、第2のプログラミング言語はアプリケーションプログラムの初期開発に使用されるプログラミング言語であり、第1のプログラミング言語と第2のプログラミング言語とは異なる二つのプログラミング言語であり、アプリケーションプログラムAの外層プログラムがない場合に、アプリケーションプログラムAの内層プログラムは直接にオペレーティングシステムで実行することができない。アプリケーションプログラムAの外層プログラムはアプリケーションプログラムAの内層プログラムを含む。選択的に、アプリケーションプログラムAは仮想エンジン261によって開発されたゲームプログラム、仮想現実プログラム、3次元地図プログラム、3次元デモプログラムのうちの少なくとも1つを含むがこれらに限定されない。例えば、端末のオペレーティングシステムがAndroidオペレーティングシステムを用いる場合に、アプリケーションプログラムAの外層プログラムはJavaプログラミング言語を用いて開発され、アプリケーションプログラムAの内層プログラムがC#言語を用いて開発され、また、例えば、端末のオペレーティングシステムがIOSオペレーティングシステムを用いる場合に、アプリケーションプログラムAの外層プログラムはObject-Cプログラミング言語を用いて開発され、アプリケーションプログラムAの内層プログラムはC#言語を用いて開発される。
例示的に、カーネル層27は、タッチスクリーンドライバ271、および他のドライバ272を含む。タッチスクリーンドライバ271は圧力タッチイベントを検出するように設置されるモジュールであり、タッチスクリーンドライバ271は、圧力タッチイベントを検出すると、圧力タッチイベントを感圧モジュール262に伝達する。
他のドライバ272は、プロセッサー21に関するドライバ、メモリ23に関するドライバ、ネットワークコンポーネントに関するドライバ、サウンドコンポーネントに関するドライバなどであってもよい。
図4に示す端末は第1のオペレーティングシステムを用いると、アプリケーションプログラムAの内層プログラム232は、また、内層プログラムのメインスレッドモジュール233、および入力マネージャ234を含み、C++ダイナミックリンクライブラリ26は、また、仮想エンジン261と、感圧モジュール262とを含む。
C++ダイナミックリンクライブラリは、共有関数ライブラリ概念を実現する一形態であり、ダイナミックリンクライブラリは、プロセスがその実行可能なコードに属しない関数を呼び出すことを許可し、ダイナミックリンクライブラリは、プログラムの他の部分に影響を及ぼすことなく更新機能をアプリケーションプログラムの各モジュールに適用することができる。つまり、アプリケーションプログラムAは、C++ダイナミックリンクライブラリ26における各モジュールを呼び出すことができるが、C++ダイナミックリンクライブラリ26における各モジュールはアプリケーションプログラムA自身の実行可能なコードに属しないと見なすことができる。
感圧モジュール262は、プリセットプログラムを含んでおり、当該プリセットプログラムは仮想エンジンにおけるメッセージ転送コードを修正するためのプログラムである。
図5は、本願の他の一つの例示的な実施例で提供されるアプリケーションプログラムの制御方法のフローチャートである。本実施例は、当該アプリケーションプログラムの制御方法を図4に示す端末に適用する例を挙げて説明する。当該方法は、以下のステップを含む。
ステップ301において、プリセットプログラムは、仮想エンジンのメモリにおけるベースアドレスを取得する。
アプリケーションプログラムAが起動した後、C++ダイナミックリンクライブラリ26におけるプリセットプログラムは、仮想エンジンがメモリで実行する際のベースアドレスを取得する。プリセットプログラムは、逆アセンブルの形で仮想エンジンのメモリにおけるベースアドレスを取得してもよい。
メモリアドレス指定とは、メモリにおいてデータ又はコマンドのコード位置を見つけることを指し、メモリアドレス指定は、ベースアドレス+オフセットアドレスによってコマンドまたはコード位置を位置決めする必要がある。
ステップ302において、プリセットプログラムは、ベースアドレスとプリセットオフセットアドレスとに従ってメッセージ転送コードに対応するコード位置を位置決めする。
メッセージ転送コードは、仮想エンジンに予め設定されているメッセージ転送コードである。当該メッセージ転送コードはインターセプトされた圧力タッチイベントを内層プログラムに転送する。
プリセットプログラムは、取得したベースアドレス、および予め設定されたオフセットアドレスに応じて、メッセージ転送コードのメモリにおけるコード位置を位置決めする。
ステップ303において、プリセットプログラムは位置決めされたコード位置に応じてメッセージ転送コードのメッセージ受信側を内層プログラムから外層プログラムに変更する。
圧力タッチイベントを外層プログラムに伝達してから、外層プログラムから内層プログラムに伝達する必要があるので、プリセットプログラムはメッセージ転送コードのコード位置を位置決めした後に、メッセージ転送コードにおけるメッセージ受信側を内層プログラムから外層プログラムに変更する。
ステップ304において、仮想エンジンは圧力タッチイベントをインターセプトする。
ユーザーがアプリケーションプログラムを使用すると、端末のタッチスクリーンにアプリケーションプログラムのユーザーインタフェースが表示され、当該ユーザーインタフェースに、ヒューマンコンピュータインタラクションに設置されたコントロール、例えば、仮想ボタンが含まれる。ユーザーがタッチスクリーンに圧力タッチ操作をかける場合に、端末のタッチスクリーンドライバは圧力タッチイベントを生成し、感圧モジュールに報告し、仮想エンジンは当該圧力タッチイベントをインターセプトする。
ステップ305において、仮想エンジンは、プリセットプログラムによって修正されたメッセージ転送コードに応じて、圧力タッチイベントをプリケーションプログラムの外層プログラムに伝達する。
修正されたメッセージ転送コードにおいて圧力タッチイベントの宛先アドレスを内層プログラムから外層プログラムに変更したので、仮想エンジンが圧力タッチイベントをインターセプトした場合に、修正されたメッセージ転送コードに応じて圧力タッチイベントをアプリケーションプログラムの外層プログラムに伝達する。
ステップ306において、外層プログラムは圧力タッチイベントを内層プログラムのメインスレッドに送信する。
ステップ307において、内層プログラムは、メインスレッドにより圧力タッチイベントを内層プログラムにおける入力マネージャに伝達する。
入力マネージャは、内層プログラムにおいて外部処理信号の処理を担当するプログラムモジュールである。例示的に、入力マネージャは、ユーザーインタフェースに表示されている仮想キーにてトリガーされる圧力タッチイベントを管理するように設置され、図3を参照して分かるように、入力マネージャは第1のコントロール31と第2のコントロール32に対して圧力タッチイベントの管理を行うことができる。
ステップ308において、内層プログラムは入力マネージャにより圧力タッチイベントに応じて所定の操作を実行する。
選択的に、入力マネージャは圧力タッチイベントから操作座標と圧力値を解析し、入力マネージャは操作座標に対応する入力コントロールを確定し、圧力値が予定の閾値よりも大きいと、入力マネージャは入力コントロールに対応する第1の操作を実行し、圧力値が予定の閾値よりも小さいと、入力マネージャは入力コントロールに対応する第2の操作を実行する。
以上のように、本実施例で提供するアプリケーションプログラム制御方法によれば、プリセットプログラムを用いて仮想エンジン内のオリジナルメッセージ転送コードを修正することにより、仮想エンジンは圧力タッチイベントをインターセプトした後に、まず圧力タッチイベントを外層プログラムに伝達してから、外層プログラムにより内層プログラムに伝達するようにし、これにより、アプリケーションプログラムの内層プログラムがオペレーティングシステムで直接に実行することができず、正常に実行するためには外部プログラムを追加する必要があり、外層プログラムが存在するため、アプリケーションプログラムが圧力タッチイベントを直接に処理できないという問題を解決し、これにより、内層プログラムも圧力タッチイベントを受信でき、内層プログラムにおける入力マネージャも圧力タッチイベントを処理することができ、圧力タッチ操作によるアプリケーションプログラムの制御をサポートし、携帯端末の限られた画面領域で複数の制御コマンドのトリガーを実現し、これによりヒューマンコンピュータインタラクションの効率を向上させる。
一つの具体的例子において、図4に示すように、端末が用いる第1のオペレーティングシステムはAndroidオペレーティングシステムである。図6は、本願の他の一つの例示的な実施例で提供される端末の構成概略図を示している。端末がAndroidオペレーティングシステムを用いる場合に、アプリケーションプログラムAの外層プログラムはJava層57であり、アプリケーションプログラムAの内層プログラムはC#層572であり、なお、アプリケーションプログラムAのJava層はUIスレッドモジュール571をさらに含み、C++ダイナミックリンクライブラリ58における仮想エンジンはUnityエンジン581であり、感圧モジュール582は、圧力タッチイベントをインターセプトするように設置され、且つ、感圧モジュール582はプリセットプログラムを含んでおり、当該プリセットプログラムは、Unityエンジンのメッセージ転送メカニズムを変更し、Androidオペレーティングシステムは、Java仮想マシン59をさらに含んでいる。Java仮想マシン59は、アプリケーションプログラムA、アプリケーションプログラムB、およびアプリケーションプログラムCにJava実行環境を提供する。
選択的に、Java言語はAndroidオペレーティングシステムのアプリケーション層によってサポートされるプログラミング言語であるので、アプリケーションプログラムAの外層プログラムはJava層のプログラムモジュールであり、選択的に、C#言語はアプリケーションプログラムAのオリジナル開発言語であるので、アプリケーションプログラムAの内層プログラムはC#層のプログラムモジュールである。
仮想マシンは、仮想化、抽象化されたコンピュータであり、Java仮想マシンは完全なハードウェアアーキテクチャ、例えばプロセッサ、スタック、およびレジスタ等を有し、対応する命令システムを有し、Java仮想マシンは、Javaプログラムが、Java仮想マシン上で実行されるターゲットコードを生成するだけで、、修正なしに複数のプラットフォーム上で実行することを可能にする。 本実施例において、Java仮想マシンは、アプリケーションプログラムAの外部プログラムの各種機能を実行する。
上記したプリセットプログラムは、アドレスマッピング性能を有する。アドレスマッピングとは、アプリケーションプログラムにおける論理アドレスを、実行中にマシンによって直接にアドレス指定される物理アドレスに変換するプロセスである。
図7は、本願の一つの例示的な実施例で提供されるアプリケーションプログラムの制御方法のフローチャートである。本実施例は、当該アプリケーションプログラムの制御方法を図6に示すAndroidオペレーティングシステムに適用する例を挙げて説明する。当該方法は、以下のステップを含む。
ステップ501において、アプリケーションプログラムが起動されると、C#層はアプリケーションプログラムの初期化を行う。
ユーザーがアプリケーションプログラムAのアイコンをクリックし、アプリケーションプログラムAは起動される。アプリケーションプログラムAのC#層は初期化を行い、初期化は、C#層におけるメインスレッドを起動すること、画像リソース、オディオリソース、ロジックコードなどをロードすることを含むがこれらに限定されない。
ステップ502において、Unityエンジンは、Java層のUIスレッドを呼び出す。
アプリケーションプログラムは3次元仮想環境に関するUIを表示する必要がある場合に、UnityエンジンによりUIインタフェースを生成し、Java層のUIスレッドを呼び出して表示する。
ステップ503において、Java層のUIスレッドはC++ダイナミックリンクライブラリにおける感圧モジュールをロードする。
Java層のUIスレッドは、UIインタフェースを表示する過程で、動的に感圧モジュールをロードする。当該感圧モジュールはプリセットプログラムを含む。
ステップ504において、プリセットプログラムは、Unityエンジンのメモリにおけるベースアドレスを取得する。
プリセットプログラムは、Androidオペレーティングシステムから、Unityエンジンがメモリで実行する際のベースアドレスを取得する。プリセットプログラムは、逆アセンブルの形でUnityエンジンのメモリにおけるベースアドレスを取得してもよい。
ステップ505において、プリセットプログラムは、ベースアドレスとプリセットオフセットアドレスとに従ってメッセージ転送コードに対応するコード位置を位置決めする。
メッセージ転送コードは、Unityエンジンに予め設定されたメッセージ転送コードである。当該メッセージ転送コードは、インターセプトされた圧力タッチイベントを内層プログラムに転送する。
プリセットプログラムは取得したベースアドレス、および予め設定されたオフセットアドレスに応じて、メッセージ転送コードのメモリにおけるコード位置を位置決めする。
ステップ506において、プリセットプログラムは、位置決めされたコード位置に応じてメッセージ転送コードのメッセージ受信側をC#層からJava層のUIスレッドに変更する。
アプリケーションプログラムAの内層プログラムはC#層であり、つまり、アプリケーションプログラムAによって使用される開発言語はC#言語であり、外層プログラムの開発言語はJava言語であり、Java層を介さない場合に、C#層は圧力タッチイベントを取得することはできないので、まず、圧力タッチイベントをJava層のUIスレッドに伝達してから、Java層のUIスレッドによりC#層に伝達する必要がある。
プリセットプログラムは、メッセージ転送コードのコード位置を位置決めした後に、メッセージ転送コードにおけるメッセージ受信側をC#層からJava層のUIスレッドに変更する。
ステップ507において、圧力タッチ操作を受信した場合に、タッチスクリーンドライバは圧力タッチイベントを生成する。
ステップ508において、Unityエンジンは圧力タッチイベントをインターセプトする。
ユーザーがアプリケーションプログラムAを使用すると、端末のタッチスクリーンにアプリケーションプログラムAのユーザーインタフェースが表示され、当該ユーザーインタフェースには、ヒューマンコンピュータインタラクションに用いられるコントロール、例えば、仮想ボタンが含まれる。ユーザーがタッチスクリーンに圧力タッチ操作をかけた場合に、端末のタッチスクリーンドライバは圧力タッチイベントを生成し、感圧モジュールに報告し、Unityエンジンは当該圧力タッチイベントをインターセプトする。
ステップ509において、Unityエンジンは、変更されたメッセージ転送コードに応じて、圧力タッチイベントをJava層のUIスレッドに伝達する。
本実施例において、修正されたメッセージ転送コードにおいて圧力タッチイベントの宛先アドレスをC#層からJava層に変更したので、Unityエンジンは、当該メッセージ転送コードにより、圧力タッチイベントをJava層のUIスレッドに伝達する。
ステップ510において、Java層のUIスレッドは、圧力タッチイベントを受信する。
ステップ511において、Java層のUIスレッドは、圧力タッチイベントをC#層のメインスレッドに送信する。
アプリケーションプログラムAがゲームアプリケーションプログラムである場合に、当該メインスレッドは、ゲームアプリケーションプログラムのうちの主な実行ロジックを実現するためのメインスレッドである。
ステップ512において、C#層のメインスレッドは、圧力タッチイベントをC#層の入力マネージャに伝達する。
入力マネージャは、C#層のうち外部処理信号の処理を担当するプログラムモジュールである。例示的に、入力マネージャは、ユーザーインタフェースに表示されている仮想キーにてトリガーされた圧力タッチイベントを管理するように設置され、図3を参照して分かるように、入力マネージャは第1のコントロール31と第2のコントロール32とに対して圧力タッチイベントの管理を行うことができる。
ステップ513において、入力マネージャは圧力タッチイベントに応じて制御コマンドを生成する。
選択的に、入力マネージャは、圧力タッチイベントから操作座標と圧力値を解析し、入力マネージャは操作座標に対応する入力コントロール (例えば、第2のコントロール) を確定し、圧力値が予定の閾値よりも大きいと、入力マネージャは入力コントロールに対応する第1の操作コマンドを生成し、例えば、第1の視角の視角方向を変更し、圧力値が予定の閾値よりも小さいと、入力マネージャは入力コントロールに対応する第2の操作、例えば、火発射を生成し、図8に示すようである。
ステップ514において、キャラクターコントローラは制御コマンドを実行する。
選択的に、アプリケーションプログラムがゲームアプリケーションプログラムである場合に、内層プログラムには、ゲームキャラクターを制御するように設置されるキャラクターコントローラをさらに含む。入力マネージャは第1の操作コマンドを生成すると、キャラクターコントローラは第1の操作コマンドを実行し、入力マネージャは第2の操作コマンドを生成すると、キャラクターコントローラは第2の操作コマンドを実行する。
他のいくつかの実施例において、端末は第2のオペレーティングシステムを用いる。第1のオペレーティングシステムとの違いは、第2のオペレーティングシステムは1セットのネイティブグラフィカルユーザーインターフェース(Graphical User Interface、GUI)コンポーネントを有するシステムであることにあり、当該GUIコンポーネントは、1セットの完全なメッセージディスパッチモジュールを有し、当該GUIコンポーネントは、圧力タッチイベントをタッチスクリーンドライバにより当該GUIコンポーネントに報告した後に、当該圧力タッチイベントをアプリケーション層に報告するように設置され、当該第2のオペレーティングシステムは、iOSオペレーティングシステムを含むがこれに限定されない。この場合、仮想エンジンは、当該GUIコンポーネントにおけるメッセージディスパッチモジュールから圧力タッチイベントをインターセプトする必要がある。
図9は、本願の他の一つの例示的な実施例で提供される端末の構成概略図である。例示的に、端末が第2のオペレーティングシステムを用いる例を挙げる。当該端末は、プロセッサー31と、タッチスクリーン 32と、メモリ33とを含む。メモリ33は、少なくとも一つのプログラムコマンドを記憶している。
プロセッサー31は、シングルコアプロセッサー、マルチコアプロセッサー、組み込みチップ、およびコマンド実行性能を有するプロセッサーのうちの少なくとも1つであってもよい。
タッチスクリーン32は、感圧タッチスクリーンであり、感圧タッチスクリーンは、タッチスクリーン32にかけられた押圧強度を測定することができる。
メモリ33は、プロセッサー31の実行可能プログラムを記憶している。例示的に、メモリ33に記憶されているプログラムコマンドは、カーネル層34、UIフレームワーク35、C++ダイナミックリンクライブラリ36、およびアプリケーション層37を含むが、これらに限定されない。
カーネル層34は、タッチスクリーンドライバ341と他のドライバ342とを含む。タッチスクリーンドライバ341は、タッチスクリーン32で圧力タッチ操作を受けた場合に、圧力タッチイベントを生成するように設置される。当該圧力タッチイベントは操作座標と圧力値とを含む。タッチスクリーンドライバ341は、さらに、圧力タッチイベントをUIフレームワーク35に報告するように設置される。
UIフレームワーク35はオペレーティングシステムによって提供されるフレームワークであり、ヒューマンコンピュータインタラクションを実現するインタフェース表示フレームワークとして配置される。UIフレームワーク35では、メッセージディスパッチモジュールを提供している。UIフレームワーク35が圧力タッチイベントを受けると、圧力タッチイベントを、相応するアプリケーションプログラムにディスパッチする。
C++ダイナミックリンクライブラリ36は、仮想エンジン361と、メッセージインターセプトモジュール362とを含む。仮想エンジン361は、3次元仮想環境の構築および表示を実現するように設置され、メッセージインターセプトモジュール362は、UIフレームワーク35から圧力タッチイベントをインターセプトするように設置される。選択的に、メッセージインターセプトモジュール362は仮想エンジン361の一部である。仮想エンジン361は、メッセージインターセプトモジュール362により圧力タッチイベントをインターセプトした後に、圧力タッチイベントをアプリケーションプログラムAの外層プログラムに伝達する。
アプリケーションプログラムAは、仮想エンジンに基づいて開発されたアプリケーションプログラムである。アプリケーションプログラムAは外層プログラム371と、内層プログラム372とを含む。なお、内層プログラム372は、メインスレッドモジュール373と入力マネージャ374とを含む。入力マネージャ374は、外部処理信号(例えば、圧力タッチイベント)を処理するように設置されるプログラムモジュールである。
図10は、本願の一つの例示的な実施例で提供されたアプリケーションプログラムの制御方法のフローチャートを示している。本実施例は、当該アプリケーションプログラムの制御方法を図9に示す端末に適用する例を挙げて説明する。当該方法は、以下のステップを含む。
ステップ601において、内層プログラムは外層プログラムへ呼び出し要求を送信し、当該呼び出し要求は、前記外層プログラムが圧力タッチイベントを受信した場合に内層プログラムに転送することを指示するために用いられる。
ステップ602において、UIフレームワークは圧力タッチイベントを受信する。
ユーザーがアプリケーションプログラムAを使用すると、端末のタッチスクリーンにアプリケーションプログラムAのユーザーインタフェースが表示され、当該ユーザーインタフェースには、ヒューマンコンピュータインタラクションに用いられるコントロール、例えば、仮想ボタンが含まれる。ユーザーがタッチスクリーンに圧力タッチ操作をかけた場合に、端末のタッチスクリーンドライバは圧力タッチイベントを生成し、UIフレームワークに報告する。
それに対応して、UIフレームワークは圧力タッチイベントを受信する。
ステップ603において、仮想エンジンはUIフレームワークから圧力タッチイベントをインターセプトする。
ステップ604において、仮想エンジンは圧力タッチイベントを外層プログラムに伝達する。
ステップ605において、外層プログラムは圧力タッチイベントを内層プログラムに伝達する。
ステップ606において、内層プログラムは圧力タッチイベントに応じて所定の操作を実行する。
例示的に、圧力タッチイベントにおける圧力値がプリセット閾値よりも大きいと、第1の予定の操作を実行し、圧力タッチイベントにおける圧力値がプリセット閾値よりも小さいと、第2の予定の操作を実行する。
以上のように、本実施例で提供されるアプリケーションプログラム制御方法によれば、予め内層プログラムから外層プログラムへ呼び出し要求を送信することにより、外層プログラムが圧力タッチイベントを受信した場合に内層プログラムに転送してから、内層プログラムが圧力タッチイベントに応じて所定の操作を実行し、アプリケーションプログラムの内層プログラムがオペレーティングシステム内で直接実行することができず、正常に実行するためには外部プログラムを追加する必要があり、外層プログラムが存在するため、アプリケーションプログラムは圧力タッチイベントを直接に処理できないという問題を解決し、これにより、仮想エンジンに基づいて開発されたアプリケーションプログラムで、圧力タッチ技術を用いて入力制御を行うことを実現し、携帯端末の限られた画面領域で複数の操作コマンドのトリガーを実現し、これによりヒューマンコンピュータインタラクションの効率を向上させる。
図11は、本願の他の一つの例示的な実施例で提供される端末の構成概略図である。例示的に、端末によって用いられる第2のオペレーティングシステムがiOSオペレーティングシステムであることを例に、当該端末は、プロセッサー61と、タッチスクリーン62と、メモリ63とを含む。メモリ63は少なくとも一つのプログラムコマンドを記憶している。
プロセッサー61は、シングルコアプロセッサー、マルチコアプロセッサー、組み込みチップ、およびコマンド実行性能を有するプロセッサーのうちの少なくとも1つであってもよい。
タッチスクリーン62は、感圧タッチスクリーンであり、感圧タッチスクリーンは、タッチスクリーン62にかけられた押圧強度を測定することができる。
メモリ63は、プロセッサー61の実行可能プログラムを記憶している。例示的に、メモリ63に記憶されているプログラムコマンドは、カーネル層64、UI Kit 65、C++ダイナミックリンクライブラリ66、およびアプリケーション層67を含むが、これらに限定されない。
カーネル層64は、タッチスクリーンドライバ641と、他のドライバ642とを含む。タッチスクリーンドライバ641は、タッチスクリーン62で圧力タッチ操作を受信した場合に、圧力タッチイベントを生成する。当該圧力タッチイベントは操作座標と圧力値とを含む。タッチスクリーンドライバ641は、さらに、圧力タッチイベントをUI Kit 65に報告する。
UI Kit 65は、IOSオペレーティングシステムによって提供されるフレームワークであり、ヒューマンコンピュータインタラクションのインタフェース表示フレームワークを実現するように設置される。UI Kit 65においてメッセージディスパッチモジュールを提供する。UI Kit 65が圧力タッチイベントを受信した場合に、圧力タッチイベントを、相応するプログラムモジュールにディスパッチする。
C++ダイナミックリンクライブラリ66は、Unityエンジン661と、メッセージインターセプトモジュール662とを含む。Unityエンジン661は、3次元仮想環境の構築および表示を実現するように設置され、メッセージインターセプトモジュール662はUI Kit65から圧力タッチイベントをインターセプトするように設置される。選択的に、メッセージインターセプトモジュール662はUnityエンジン661の一部である。Unityエンジン661はメッセージインターセプトモジュール662により圧力タッチイベントをインターセプトした後に、圧力タッチイベントをアプリケーションプログラムAの外層プログラムに伝達する。
アプリケーションプログラムAは、Unityエンジンに基づいて開発されたアプリケーションプログラムである。アプリケーションプログラムAは、Object-C層671とC#層672とを含む。なお、Object-C層671はUIスレッドモジュール673とUnityスレッドモジュール674とを含み、C#層672は、メインスレッドモジュール675、入力マネージャ 676、アプリケーションフレームワーク(Frame Work)677、ネイティブメッセージハブ(NativeMsgHub)678、およびキャラクターコントローラ679を含む。入力マネージャ676は、外部処理信号(例えば、圧力タッチイベント)を処理するように設置されるプログラムモジュールであり、アプリケーションフレームワーク(Frame Work)677は、アプリケーションプログラムAの主な実行ロジックを実現するように設置され、アプリケーションプログラムAがゲームアプリケーションである場合に、アプリケーションフレームワーク677はゲームアプリケーションフレームワークであり、ネイティブメッセージハブ678はObject-C層671との呼び出しを実現するように設置され、キャラクターコントローラ679は入力マネージャ676によって生成された制御コマンドを実行し、ゲームキャラクターを制御するように設置される。
図12は、本願の一つの例示的な実施例で提供されるアプリケーションプログラムの制御方法のフローチャートである。本実施例は、当該アプリケーションプログラムの制御方法を、図11に示す端末に適用する例を挙げて説明する。当該方法は、以下のステップを含む。
ステップ701において、C#層はObject-C層へ呼び出し要求を送信し、当該呼び出し要求は、Object-C層が圧力タッチイベントを受信した場合にC#層に転送することを指示する。
アプリケーションプログラムが起動した後に、C#層のメインスレッドモジュール(Unity Mono C#スレッドとも称される)はObject-C層へ呼び出し要求を送信する。当該呼び出し要求は、端末が圧力タッチ機能をサポートするかどうかを照会するために用いられ、当端末が圧力タッチ機能をサポートすると、Object-C層は、圧力タッチイベントを受信した場合にC#層に転送する必要がある。
選択的に、C#層における入力マネージャはネイティブメッセージハブによりObject-C層のUnityスレッドへ呼び出し要求を送信する。Untiyスレッドはスレッドセーフ非同期呼び出しにより呼び出し要求をUIスレッドに転送する。UIスレッドは、圧力タッチイベントを受信した場合にC#層におけるアプリケーションフレームワークに転送し、図13に示すようである。
ステップ702において、圧力タッチ操作を受信した場合に、タッチスクリーンドライバは圧力タッチイベントを生成する。
ユーザーがアプリケーションプログラムAを使用すると、端末のタッチスクリーンにアプリケーションプログラムAのユーザーインタフェースを表示し、当該ユーザーインタフェースにヒューマンコンピュータインタラクションするように設置されるコントロール、例えば、仮想ボタンが含まれる。ユーザーがタッチスクリーンに圧力タッチ操作をかけると、端末のタッチスクリーンドライバは圧力タッチイベントを生成する。
ステップ703において、タッチスクリーンドライバは、圧力タッチイベントをUI Kitに報告する。
ステップ704において、UI Kitは圧力タッチイベントを受信する。
ステップ705において、UnityエンジンはUI Kitから圧力タッチイベントをインターセプトする
Unityエンジンは、メッセージインターセプトモジュールにより、UI Kitから圧力タッチイベントをインターセプトする。
ステップ706において、Unityエンジンは圧力タッチイベントをObject-C層のUIスレッドに伝達する。
ステップ707において、Object-C層のUIスレッドは圧力タッチイベントをC#層のゲームアプリケーションフレームワークに伝達する。
ステップ708において、C#層のゲームアプリケーションフレームワークは圧力タッチイベントをC#層の入力マネージャに転送する。
ステップ709において、C#層の入力マネージャは圧力タッチイベントに応じて制御コマンドを生成する。
選択的に、入力マネージャは圧力タッチイベントから操作座標と圧力値を解析し、入力マネージャは操作座標に対応する入力コントロール (例えば、第2のコントロール) を確定し、圧力値が予定の閾値よりも大きいと、入力マネージャは入力コントロールに対応する第1の操作コマンドを生成し、例えば、第1の視角の視角方向を変更し、圧力値が予定の閾値よりも小さいと、入力マネージャは入力コントロールに対応する第2の操作、例えば、火発射を生成し、図8に示すようである。
ステップ710において、C#層のキャラクターコントローラは制御コマンドを実行する。
選択的に、アプリケーションプログラムがゲームアプリケーションプログラムである場合に、内層プログラムは、ゲームキャラクターを制御するように設置されるキャラクターコントローラをさらに含む。入力マネージャが第1の操作コマンドを生成した場合に、キャラクターコントローラは第1の操作コマンドを実行し、入力マネージャが第2の操作コマンドを生成した場合に、キャラクターコントローラは第2の操作コマンドを実行する。
図14は、本開示の一つの例示的な実施例で提供されるアプリケーションプログラムの制御装置のブロック図を示し、当該アプリケーションプログラムの制御装置は、端末の全部または一部を、ソフトウェア、ハードウェアおよび/または両方の組み合わせによって実現でき、当該装置には、オペレーティングシステムとアプリケーションプログラムとがインストールされ、当該装置は一つ又は複数のプロセッサー、およびプログラムユニットを記憶している一つ又は複数メモリを含み、なお、前記プログラムユニットは前記プロセッサーにより実行され、前記プログラムユニットは以下のモジュールを含む。
仮想エンジンモジュール801は、操作座標と圧力値とを含む圧力タッチイベントインターセプトするように設置される。
前記仮想エンジンモジュールは、前記圧力タッチイベントを前記外層プログラムモジュールに伝達するように設置される。
アプリケーションプログラムモジュール802は、外層プログラムモジュールと内層プログラムモジュールとを含むように設置される。
外層アプリケーションプログラムモジュール803は、圧力タッチイベントを内層プログラムモジュールに伝達するように設置される。
内層アプリケーションプログラムモジュール804は、前記圧力タッチイベントに応じて所定の操作を実行するように設置される。
好適な実施例において、前記外層プログラムモジュールは、前記圧力タッチイベントを前記内層プログラムモジュールのメインスレッドに送信するように設置され、
前記内層プログラムモジュールは、前記メインスレッドにより前記圧力タッチイベントを前記内層プログラムモジュールの入力コントローラに伝達するように設置され、
前記入力コントローラは、前記内層プログラムモジュールにおいて外部入力信号を処理するように設置されたプログラムモジュールである。
好適な実施例において、前記プログラムユニットはプリセットプログラムモジュールをさらに含み、
前記プリセットプログラムモジュールは、前記アプリケーションプログラムの起動の際に、前記仮想エンジンにおけるメッセージ転送メカニズムのメッセージ受信側を前記内層プログラムモジュールから前記外層プログラムモジュールに変更するように設置され、
前記仮想エンジンモジュールは、前記プリセットプログラムモジュールによって変更された前記メッセージ転送メカニズムに従って、前記圧力タッチイベントを前記外層プログラムモジュールに伝達するように設置される。
好適な実施例において、前記プリセットプログラムモジュールは、前記アプリケーションプログラムの起動の際に、前記仮想エンジンモジュールのメモリにおけるベースアドレスを取得し、前記ベースアドレスとプリセットオフセットアドレスに従って前記メッセージ転送メカニズムに対応するコード位置を位置決めし、位置決めされた前記コード位置に応じて前記メッセージ転送メカニズムのメッセージ受信側アドレスを前記内層プログラムモジュールから前記外層プログラムモジュールに変更する、ように設置される。
好適な実施例において、前記内層プログラムモジュールは、さらに、前記外層プログラムモジュールへ呼び出し要求を送信するように設置され、前記呼び出し要求は、前記外層プログラムモジュールが前記圧力タッチイベントを受信した場合に前記内層プログラムモジュールに転送するように指示するために用いられる。
好適な実施例において、前記プログラムユニットは、システムレベルのUIフレームワークをさらに含み、
前記仮想エンジンモジュールは、前記システムレベルのUIフレームワークで前記圧力タッチイベントをインターセプトするように設置される。
好適な実施例において、前記内層プログラムモジュールは、前記圧力タッチイベントから前記操作座標と前記圧力値を解析し、前記操作座標に対応する入力コントロールを確定し、前記圧力値が予定の閾値よりも大きいと、前記入力コントロールに対応する第1の操作を実行し、前記圧力値が前記予定の閾値よりも小さいと、前記入力コントロールに対応する第2の操作を実行する、ように設置される。
なお、上記実施例で提供されるアプリケーションプログラムの制御装置がインテリジェントネットワークサービスをトリガーする場合に、上記各機能モジュールの分割を例に挙げて説明し、実際の応用において、必要に応じて、上記機能を異なる機能モジュールに割り当て完成させ、即ち、装置の内部構造を異なる機能モジュールに分割し、以上で記述された機能の全部または一部を完成させることができる。また、上記実施例で提供されるアプリケーションプログラムの制御装置と、アプリケーションプログラムの制御方法実施例とは、同一の思想に属し、その具体的な実現プロセスの詳細については、方法実施例を参照し、ここで再度記述されない。
本願の実施例は、さらに、端末を提供し、前記端末はプロセッサーとメモリとを含み、前記メモリに少なくとも一つのコマンドを記憶しており、前記コマンドは前記プロセッサーによってロードされ実行され上記いずれかの実施例に記載のアプリケーションプログラムの制御方法を実現する。
本願の実施例は、さらに、プロセッサーにロードされ実行されて上記いずれかの実施例に記載のアプリケーションプログラムの制御方法を実現する少なくとも一つのコマンドが記憶されているコンピュータ読み取り可能な記憶媒体を提供する。
上記した本願の実施例の番号は単に記述のためのものであり、実施例の優劣を代表するものではない。
当業者であれば、上記実施例のステップの全部または一部をハードウェアにより実現してもよく、プログラムにより関連するハードウェアに命令することで実現してもよいことを理解できる。上記のプログラムはコンピュータ可読記憶媒体に格納されてもよい。以上で言及された記憶媒体は、読み出し専用メモリ、磁気ディスク、光ディスクなどであってもよい。
以上は、本願の好ましい実施例に過ぎず、本出願を限定することを意図するものではない。本願の実施例の精神および原理の範囲内で行われるいかなる修正、同等の置換え、または改良も本願の保護範囲内に入るものとする。
11 プロセッサー
12 タッチスクリーン
13 メモリ
17 仮想エンジン
18 感圧モジュール
19 カーネル層
21 プロセッサー
22 タッチスクリーン
23 メモリ
26 C++ダイナミックリンクライブラリ
27 カーネル層
31 第1のコントロール
32 第2のコントロール
33 メモリ
34 カーネル層
35 UIフレームワーク
36 C++ダイナミックリンクライブラリ
58 C++ダイナミックリンクライブラリ
59 Java仮想マシン
63 メモリ
64 カーネル層
65 UI Kit
66 C++ダイナミックリンクライブラリ
67 アプリケーション層
141 外層プログラム
142 内層プログラム
191 タッチスクリーンドライバ
192 他のドライバ
231 外層プログラム
232 内層プログラム
233 メインスレッドモジュール
234 入力マネージャ
261 仮想エンジン
262 感圧モジュール
271 タッチスクリーンドライバ
272 他のドライバ
331 第1のコントロール
332 第2のコントロール
341 タッチスクリーンドライバ
342 他のドライバ
361 仮想エンジン
362 メッセージインターセプトモジュール
371 外層プログラム
372 内層プログラム
373 メインスレッドモジュール
374 入力マネージャ
571 UIスレッドモジュール
572 C#層
581 Unityエンジン
582 感圧モジュール
661 Unityエンジン
662 メッセージインターセプトモジュール
672 C#層
673 UIスレッドモジュール
674 Unityスレッドモジュール
675 メインスレッドモジュール
676 入力マネージャ
677 アプリケーションフレームワーク
678 ネイティブメッセージハブ
679 キャラクターコントローラ
801 仮想エンジンモジュール
802 アプリケーションプログラムモジュール
803 外層アプリケーションプログラムモジュール
804 内層アプリケーションプログラムモジュール

Claims (15)

  1. アプリケーションプログラムの制御方法であって、仮想エンジンとアプリケーションプログラムとがインストールされた端末に適用され、前記アプリケーションプログラムは、前記仮想エンジンに基づいて開発されたプログラムであり、前記アプリケーションプログラムは、外層プログラムと内層プログラムとを含み、前記方法は、
    前記仮想エンジンが、操作座標と圧力値とを含む圧力タッチイベントをインターセプトし、
    前記仮想エンジンが、前記圧力タッチイベントを前記外層プログラムに伝達し、
    前記外層プログラムが、前記圧力タッチイベントを前記内層プログラムに伝達し、
    前記内層プログラムが、前記圧力タッチイベントに応じて所定の操作を実行する、ことを含む方法。
  2. 前記外層プログラムは、第1のプログラミング言語を用いて開発されたプログラムであり、前記内層プログラムは、第2のプログラミング言語を用いて開発されたプログラムであり、
    前記外層プログラムが、前記圧力タッチイベントを前記内層プログラムに伝達することは、
    前記外層プログラムが、前記圧力タッチイベントを前記内層プログラムのメインスレッドに送信し、
    前記内層プログラムのメインスレッドが前記圧力タッチイベントを前記内層プログラムの入力コントローラに伝達する、ことを含み、
    前記入力コントローラは、外部入力信号を処理するためのプログラムモジュールである請求項1に記載の方法。
  3. 前記端末は、第1のオペレーティングシステムを用い、前記端末にさらにプリセットプログラムがインストールされており、
    前記仮想エンジンが、前記圧力タッチイベントを前記外層プログラムに伝達する前に、さらに、
    前記アプリケーションプログラムの起動の際に、前記プリセットプログラムが前記仮想エンジンにおけるメッセージ転送コードのメッセージ受信側を前記内層プログラムから前記外層プログラムに変更することを含み、
    前記仮想エンジンが、前記圧力タッチイベントを前記外層プログラムに伝達することは、
    前記仮想エンジンにおいて前記プリセットプログラムによって修正された前記メッセージ転送コードに従って、前記圧力タッチイベントを前記外層プログラムに伝達することを含む請求項1または2に記載の方法。
  4. 前記アプリケーションプログラムの起動の際に、前記プリセットプログラムが前記仮想エンジンにおけるメッセージ転送コードのメッセージ受信側を前記内層プログラムから前記外層プログラムに変更することは、
    前記アプリケーションプログラムの起動の際に、前記プリセットプログラムが前記仮想エンジンのメモリにおけるベースアドレスを取得し、
    前記プリセットプログラムが前記ベースアドレスと、プリセットオフセットアドレスに従って前記メッセージ転送コードに対応するコード位置を位置決めし、
    前記プリセットプログラムが位置決めされた前記コード位置に応じて前記メッセージ転送コードのメッセージ受信側アドレスを前記内層プログラムから前記外層プログラムに変更する、ことを含む請求項3に記載の方法。
  5. 前記端末は第2のオペレーティングシステムを用い、
    前記外層プログラムが、前記圧力タッチイベントを前記内層プログラムのメインスレッドに送信する前に、さらに、前記内層プログラムが前記外層プログラムへ呼び出し要求を送信することを含み、
    前記呼び出し要求は、前記外層プログラムが前記圧力タッチイベントを受信した場合に前記内層プログラムに転送するように指示するために用いられる請求項2に記載の方法。
  6. 前記第2のオペレーティングシステムは、システムレベルのユーザーインターフェースUIフレームワークを含み、
    前記仮想エンジンが、圧力タッチイベントをインターセプトすることは、
    前記仮想エンジンが、前記システムレベルのUIフレームワークにおいて前記圧力タッチイベントをインターセプトすることを含む請求項5に記載の方法。
  7. 前記内層プログラムが、前記圧力タッチイベントに応じて所定の操作を実行することは、
    前記内層プログラムが、前記圧力タッチイベントから前記操作座標と前記圧力値とを解析し、
    前記内層プログラムが、前記操作座標に対応する入力コントロールを確定し、
    前記圧力値が予定の閾値よりも大きいと、前記内層プログラムが前記入力コントロールに対応する第1の操作を実行し、
    前記圧力値が前記予定の閾値よりも小さいと、前記内層プログラムが前記入力コントロールに対応する第2の操作を実行する、ことを含む請求項1〜6のいずれか一項に記載の方法。
  8. アプリケーションプログラムの制御装置であって、一つ又は複数のプロセッサー、およびプログラムユニットを記憶する一つ又は複数のメモリを含み、前記プログラムユニットは前記プロセッサーによって実行され、前記プログラムユニットは、仮想エンジンモジュールとアプリケーションプログラムモジュールとを含み、前記アプリケーションプログラムは前記仮想エンジンモジュールに基づいて開発されたプログラムモジュールであり、前記アプリケーションプログラムモジュールは、外層プログラムモジュールと内層プログラムモジュールとを含み、
    前記仮想エンジンモジュールは、操作座標と圧力値とを含む圧力タッチイベントをインターセプトするように設置され、
    前記仮想エンジンモジュールは、前記圧力タッチイベントを前記外層プログラムモジュールに伝達するように設置され、
    前記外層プログラムモジュールは、前記圧力タッチイベントを前記内層プログラムモジュールに伝達するように設置され、
    前記内層プログラムモジュールは、前記圧力タッチイベントに応じて所定の操作を実行するように設置される装置。
  9. 前記外層プログラムモジュールは、前記圧力タッチイベントを前記内層プログラムモジュールのメインスレッドに送信するように設置され、
    前記内層プログラムモジュールは、前記メインスレッドにより前記圧力タッチイベントを前記内層プログラムモジュールの入力コントローラに伝達するように設置され、
    前記入力コントローラは、前記内層プログラムモジュールにおいて外部入力信号を処理するためのプログラムモジュールである請求項8に記載の装置。
  10. 前記装置は第1のオペレーティングシステムを用い、前記プログラムユニットはプリセットプログラムモジュールをさらに含み、
    前記プリセットプログラムモジュールは、前記アプリケーションプログラムの起動の際に、前記仮想エンジンにおけるメッセージ転送コードのメッセージ受信側を前記内層プログラムモジュールから前記外層プログラムモジュールに変更するように設置され、
    前記仮想エンジンモジュールは、前記プリセットプログラムモジュールによって変更された前記メッセージ転送コードに従って、前記圧力タッチイベントを前記外層プログラムモジュールに伝達するように設置される請求項8または9に記載の装置。
  11. 前記プリセットプログラムモジュールは、前記アプリケーションプログラムの起動の際に、前記仮想エンジンモジュールのメモリにおけるベースアドレスを取得し、前記ベースアドレスとプリセットオフセットアドレスに従って前記メッセージ転送コードに対応するコード位置を位置決めし、位置決めされた前記コード位置に応じて前記メッセージ転送コードのメッセージ受信側アドレスを前記内層プログラムモジュールから前記外層プログラムモジュールに変更する、ように設置される請求項10に記載の装置。
  12. 前記内層プログラムモジュールは、さらに、前記外層プログラムモジュールへ呼び出し要求を送信するように設置され、前記呼び出し要求は、前記外層プログラムモジュールが前記圧力タッチイベントを受信した場合に前記内層プログラムモジュールに転送するように指示するために用いられる請求項9に記載の装置。
  13. 前記内層プログラムモジュールは、前記圧力タッチイベントから前記操作座標と前記圧力値を解析し、前記操作座標に対応する入力コントロールを確定し、前記圧力値が予定の閾値よりも大きいと、前記入力コントロールに対応する第1の操作を実行し、前記圧力値が前記予定の閾値よりも小さいと、前記入力コントロールに対応する第2の操作を実行する、ように設置される請求項8〜12のいずれか一項に記載の装置。
  14. 端末であって、プロセッサーとメモリとを含み、前記メモリに少なくとも一つのコマンドが記憶され、前記コマンドは前記プロセッサーによってロードされ実行されて請求項1〜7のいずれか一項に記載のアプリケーションプログラムの制御方法を実現する端末。
  15. コンピュータ読み取り可能な記憶媒体であって、前記記憶媒体にプロセッサーにロードされ実行されて請求項1〜7のいずれか一項に記載のアプリケーションプログラムの制御方法を実現する少なくとも一つのコマンドが記憶されているコンピュータ読み取り可能な記憶媒体。
JP2019540578A 2017-07-14 2018-07-12 アプリケーションプログラムの制御方法、装置、端末、および記憶媒体 Active JP6768243B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201710573725.3 2017-07-14
CN201710573725.3A CN107357586B (zh) 2017-07-14 2017-07-14 应用程序的控制方法、装置及设备
PCT/CN2018/095342 WO2019011280A1 (zh) 2017-07-14 2018-07-12 应用程序的控制方法、装置、终端及存储介质

Publications (2)

Publication Number Publication Date
JP2020509463A JP2020509463A (ja) 2020-03-26
JP6768243B2 true JP6768243B2 (ja) 2020-10-14

Family

ID=60292596

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019540578A Active JP6768243B2 (ja) 2017-07-14 2018-07-12 アプリケーションプログラムの制御方法、装置、端末、および記憶媒体

Country Status (5)

Country Link
US (1) US10754715B2 (ja)
JP (1) JP6768243B2 (ja)
KR (1) KR102248561B1 (ja)
CN (1) CN107357586B (ja)
WO (1) WO2019011280A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107357586B (zh) * 2017-07-14 2018-06-05 腾讯科技(深圳)有限公司 应用程序的控制方法、装置及设备
CN110597509B (zh) * 2018-10-10 2023-10-03 苏州沁游网络科技有限公司 Unity环境下的跨平台GUI触摸事件解析方法
CN110275722B (zh) * 2019-06-21 2023-08-08 北京百度网讯科技有限公司 用于升级应用的方法、装置、设备和存储介质
CN110404256A (zh) * 2019-07-26 2019-11-05 上海商汤智能科技有限公司 数据处理方法及装置、设备、服务器、***及存储介质
CN111708431A (zh) * 2020-05-12 2020-09-25 青岛小鸟看看科技有限公司 人机交互方法、装置、头戴显示设备及存储介质
CN112083996A (zh) * 2020-09-16 2020-12-15 努比亚技术有限公司 屏幕控制方法、移动终端及计算机可读存储介质
CN113032273B (zh) * 2021-04-01 2024-04-19 广州虎牙科技有限公司 一种应用程序的调试方法、装置、计算机设备和存储介质
CN113111012B (zh) * 2021-04-14 2023-07-25 景德镇市明泰精工瓷业有限公司 一种应用数据***生成方法及应用数据定位方法
CN114244758B (zh) * 2021-12-13 2024-06-25 武汉斗鱼鱼乐网络科技有限公司 安卓平台的网络诊断方法、存储介质、电子设备及***
CN114816401B (zh) * 2022-04-13 2022-12-23 上海弘玑信息技术有限公司 界面元素的定位方法、电子设备及存储介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120033673A1 (en) 2010-08-06 2012-02-09 Deepak Goel Systems and methods for a para-vitualized driver in a multi-core virtual packet engine device
US8572508B2 (en) * 2010-11-22 2013-10-29 Acer Incorporated Application displaying method for touch-controlled device and touch-controlled device thereof
JP5480347B2 (ja) * 2012-08-31 2014-04-23 株式会社スクウェア・エニックス ビデオゲーム処理装置、およびビデオゲーム処理プログラム
CN103810089B (zh) * 2012-11-12 2021-12-03 Sap欧洲公司 自动测试基于姿态的应用
KR20140068410A (ko) * 2012-11-28 2014-06-09 삼성전자주식회사 물리 엔진 기반의 사용자 인터페이스를 제공하는 방법 및 그 전자 장치
CN104035760A (zh) * 2014-03-04 2014-09-10 苏州天魂网络科技有限公司 跨移动平台实现沉浸式虚拟现实的***
JP6008897B2 (ja) * 2014-06-13 2016-10-19 キヤノン株式会社 装置、方法、及びプログラム
CN105521603B (zh) * 2015-12-11 2019-05-31 北京奇虎科技有限公司 针对跑酷类游戏进行虚拟输入控制的方法、装置及***
CN106095666B (zh) * 2016-06-02 2018-01-09 腾讯科技(深圳)有限公司 游戏自动化测试方法及相关装置
CN106293753A (zh) * 2016-08-16 2017-01-04 网易(杭州)网络有限公司 编辑器的开发方法和装置,编辑方法及编辑器
CN107357586B (zh) * 2017-07-14 2018-06-05 腾讯科技(深圳)有限公司 应用程序的控制方法、装置及设备

Also Published As

Publication number Publication date
WO2019011280A1 (zh) 2019-01-17
CN107357586B (zh) 2018-06-05
US10754715B2 (en) 2020-08-25
KR20190121376A (ko) 2019-10-25
CN107357586A (zh) 2017-11-17
KR102248561B1 (ko) 2021-05-04
JP2020509463A (ja) 2020-03-26
US20190361756A1 (en) 2019-11-28

Similar Documents

Publication Publication Date Title
JP6768243B2 (ja) アプリケーションプログラムの制御方法、装置、端末、および記憶媒体
KR102625233B1 (ko) 가상 객체를 제어하기 위한 방법, 및 관련 장치
US10786733B2 (en) Information processing method, terminal, and computer storage medium for releasing virtual skill object based on user gesture
EP3285156B1 (en) Information processing method and terminal, and computer storage medium
US11809685B2 (en) Information interaction method and apparatus, storage medium, and electronic apparatus
KR101566093B1 (ko) 웹톱 애플리케이션 트레이에 안드로이드 애플리케이션 런처를 디스플레이하는 시스템 및 방법
US20160100036A1 (en) System, method, server and device for trial use of application software
CN110559651A (zh) 云游戏的控制方法及装置、计算机存储介质、电子设备
KR20190126377A (ko) 가상 캐릭터의 배치 제어 방법 및 디바이스와 저장 매체
KR20130068588A (ko) 호스트 기반 단말 가상화 환경에서 공유 메모리를 이용한 입출력 디바이스 가상화 장치 및 방법
JP2013168142A (ja) リモートデスクトップセッションにおいて複数のマウス入力を提供する方法
JPS6286469A (ja) マルチ処理ウインドウ表示方法
TW201419114A (zh) 使用行動裝置之基本輸入輸出系統使用者介面控制
US20160077850A1 (en) Methods, systems, and media for binary compatibility
KR20220071149A (ko) 가상 객체 제어 방법 및 장치, 디바이스, 저장 매체 및 컴퓨터 프로그램 제품
JP2024521888A (ja) 仮想オブジェクトの制御方法、装置、端末及びプログラム
CN110545415A (zh) 数据传输方法、装置及服务器
US20200051561A1 (en) Instant key mapping reload and real time key commands translation by voice command through voice recognition device for universal controller
US11487559B2 (en) Dynamically switching between pointer modes
TW201737061A (zh) 運作於單一作業系統之多裝置系統
CN105550045A (zh) 利用移动终端对虚拟输入进行控制的方法、装置及***
KR20230126417A (ko) 플레이어 캐릭터의 이동을 위한 전자 장치, 및 방법
JP2019534502A (ja) モバイル仮想化
CA3212970A1 (en) State based action buttons
JP5383885B1 (ja) 情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190726

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200820

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200824

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200917

R150 Certificate of patent or registration of utility model

Ref document number: 6768243

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250