5 分間の技術講演 |クラウドコンピュータ端末のマウスとキーボードの適応原理

5 分間の技術講演 |クラウドコンピュータ端末のマウスとキーボードの適応原理

パート01

クラウドコンピュータとキーボードとマウスの適応とは何ですか?

クラウドコンピューティングは現在非常に人気のある新しいテクノロジーです。クラウド コンピューティングをベースとし、大量のストレージとコンピューティング リソースを大規模なリソース プールに統合してクラウドに保存し、必要に応じてユーザーに割り当てられます。クラウドは、高速ネットワークを介してコンピューターの画面をユーザーのデバイスに投影します。

クラウドコンピュータの端末デバイスには、持ち運びできる通常の携帯電話やPad、テレビに接続できるセットトップボックス、古いコンピュータ端末など、さまざまな種類があります。

通常のコンピュータでは、最もよく使用される入力デバイスはマウスとキーボードです。クラウド コンピューターが従来のラップトップを置き換えるには、さまざまな端末のキーボードやマウスと互換性がある必要があります。ただし、多くのモバイル デバイスはタッチ操作に重点を置いているため、キーボードとマウスのサポートが不十分な場合がよくあります。さらに、端末メーカーは端末デバイス システムを高度にカスタマイズするため、クラウド コンピューターにおけるキーボードとマウスの適応サポートの断片化がさらに悪化します。各メーカーの端末にはそれぞれ固有の問題があります。したがって、キーボードとマウスの適応は、クラウドコンピュータ端末デバイスの全体的な適応作業の大部分を占めます。

パート02

Androidキーボードの仕組み

Android アプリケーションでは、リアルタイム検出ページで onKeyDown、onKeyUp、dispatchKeyEvent などのメソッドを使用することで、ほとんどのキーボード キーの使用をリアルタイムで検出できます。しかし、Android システムのサポート問題やメーカーファームウェアの断片化により、実際にこれらの方法を使用すると、同じキーでも端末によってキー値が異なったり、キー値がまったくなかったりすることがわかります。すべての端末デバイスのキー値を統一するために、システム全体の物理キー値のマッピング原則を次のように分析しました。

Android カーネルでは、キーが押されると、IR ハードウェア スキャン コードがドライバーの input.h で定義されたキー値にマッピングされます。たとえば、キーボードのような HID デバイスの場合、キーが押されると、カーネル内のキー値変換が drivers/hid/hid-input.c にマッピングされ、変換された値が scanCode になります。

hid-input.c のマッピング テーブルは次のとおりです。

図1 システムhid-input.cソースコードのスクリーンショット

同時に、これらのキー値によって表されるキー名も、Android システム層のヘッダー ファイル input-event-codes.h で定義されます。以下に示すように(傍受):

図2 システムinput-event-codes.hソースコードのスクリーンショット

カーネルでマッピングした後、Linux キー値を Android システムで使用されるキー値マッピングにマッピングする必要があります。この部分は通常、システムの device/xxx/xxx.kl (keylayout) ファイルで定義されます。

キーレイアウト ファイルの内容は次のとおりです (一部)。

図3 システムキーレイアウトファイルの部分スクリーンショット

kl ファイルでは、カーネルによってマップされたスキャンコードが最終的に Android システムに必要なキー値にマップされ、最終的にアプリケーションに必要なキーコードに変換されます。

全体的なプロセスは次のとおりです。

写真

パート03

クラウドコンピュータ対応キーボード

キーと値のマッピングプロセス全体を理解します。異なる端末で最終キー値が異なる原因は何ですか?そして、クラウド コンピューターはどのようにしてキー値を複数の端末に適応させるのでしょうか?

複数の端末デバイスの設定ファイルを比較した結果、異なるメーカーの端末キー値の不一致は、主にシステムに組み込まれた kl ファイルの内容が異なることが原因であることがわかりました。したがって、クラウド コンピュータのキー値の適応は、主に kl ファイルを適応することによって実現されます。

kl ファイルはどのように適応すればよいですか?主なオプションは 4 つあります。

(1)アプリケーション層では、クラウドコンピュータは、異なる端末のコールバックキー値に応じて、誤ったキー値を正しいキー値に変換します。キーの正しいマッピングが完了すると、通常のキー値がクラウド コンピューターの入力操作に使用されます。

(2)さまざまなキーボード用のアダプターファイルをシステムに追加します。クラウド コンピューターは、互換性のあるキーボードに応じてさまざまなアダプター ファイルをカスタマイズし、システムに統合します。

(3)システムのデフォルトアダプタファイルを変更して、キーボードボタンの機能を優先する。

(4)クラウドコンピュータを使用する場合は、別のアダプタファイルを使用します。クラウド コンピューターのアダプター ファイルは、相互干渉を避けるために他のアプリケーションと区別する必要があります。

それぞれのソリューションには、それぞれ長所と短所があります。たとえば、ソリューション 1 では、一部の端末デバイスでキー値が欠落していたり​​、重複していたり​​します。アプリケーション側で適応のみを実行すると、これらのキーは適切にサポートされません。ソリューション 2 では、キーボードに合わせて調整する必要があるキーレイアウト ファイルを追加することで、クラウド コンピューターでサポートされるキーボードの数が非常に制限される可能性があり、調整テストの作業負荷も増加します。解決策 3 はシステムのデフォルトの適応ファイルを変更するため、元のリモート コントロール ボタンの一部にエラーが発生する可能性があります。ソリューション 4 を使用する場合、Android システムの基盤となるキーボード適応ファイルのマッチング プロセスを完全に再構築する必要があり、適応作業量は膨大になります。

上記のソリューションの長所と短所を組み合わせ、リモコンとキーボードのキーの重複が少なく、リモコンキーのキー値が一般的に標準キー値であることを考慮して、最終的にソリューション 3 をクラウド コンピューター キーボードの適応ソリューションとして選択し、同時に適応されたすべてのキー値が標準キー値であることを確認しました。

適応計画を決定した後、すべての端末の Generic.kl ファイルを変更し、登録されたキー値をクラウド コンピューターの使用に必要な標準キー値と項目ごとに比較し、適応されたすべての端末のキーボード適応を完了する必要があります。

パート04

マウスの適応

Android システムでは、マウスのスライドとクリックは、システムの onGenericMotionEvent メソッドのリアルタイム検出によって識別されます。 onGenericMotionEvent メソッドでは、MotionEvent 内のアクション値を使用して、マウスの左クリック、マウスの右クリック、マウスのスライドなどのさまざまな操作方法を区別します。マウス操作の端末デバイスの戻り値は基本的に同じままなので、追加の適応は基本的に必要ありません。

パート05

仮想キーボードとマウスのソリューション

各端末デバイスは基本的にクラウドコンピュータに適応する際にキーボードのキー値を適応させる必要があるため、携帯電話やパッドなどを外部のリモート操作デバイスとして使用し、実際のキーボードとマウスをシミュレートしてクラウドコンピュータを操作するのは理にかなっています。

仮想キーボードとマウスには主に 2 つの方法があります。

(1)ローカルエリアネットワーク内に通信サービスを構築する。モバイル アプリケーションが QR コードをスキャンしてチャネルに直接接続すると、クラウド コンピューターはカスタマイズされたキーボード コマンドとマウス コマンドを送信してこれらのコマンドを実際の操作コマンドに変換し、クラウド コンピューターの操作を完了します。

(2)Bluetooth HIDを介して、2つのデバイスがBluetooth接続された後、モバイル端末はBluetooth HIDコマンドを送信してクラウドコンピュータを操作します。

Bluetooth HID では両方のデバイスが Bluetooth をサポートする必要があり、より高いシステム バージョンが必要になるため、多くのユーザーにとって Bluetooth 接続はコストが高くなり、仮想キーボードとマウスのソリューションとしてソリューション 1 が選択されます。

ソリューション 1 では、端末上で安定したデータ チャネルを確立する必要があり、このデータ チャネルでは WebSocket を使用できます。マウスをクリックしてスライドさせると、チャネル内で大量のデータを送信する必要があるため、データチャネル内で送信されるデータ形式としてprotobufを使用できます。プロトコル バッファーは、構造化データのシリアル化、つまりシリアル化に使用できる軽量で効率的な構造化データ ストレージ形式です。データ ストレージや RPC データ交換形式として最適です。通信プロトコル、データ ストレージ、およびその他の分野で使用できる、言語やプラットフォームに依存せず、拡張可能なシリアル化された構造化データ形式。

モバイル端末がマウスデータを大画面端末に送信する際には、ユーザーの操作ジェスチャーをボタンの押す、持ち上げる、移動するといった最も基本的な操作に分解し、これらの操作を操作データに変換してから送信する必要があります。たとえば、通常の左ボタンのクリック操作の場合、クリック操作は、左ボタンが押されたイベントと左ボタンが離されたイベントの 2 つのイベントに分割する必要があります。別の例として、左ボタンのクリック アンド ドラッグ操作は、左ボタンの押下、マウスの移動、左ボタンの解放という 3 つのイベントに分割する必要があります。

最も一般的に使用される 2 つのデバイスであるマウスとキーボードに加えて、リモート コントロールやゲーム コントローラーなどの他のさまざまな種類の入力デバイスを使用して、この方法でクラウド コンピューターを操作できるため、多くの適応作業を回避できます。

<<:  NetEase Cloud ComputingはAIGCの機能を完全に統合することで、デジタルインテリジェンスビジネスに注力し続けています。

>>:  5 分間の技術講演 |クラウドコンピュータビデオストリーミングフレームレートネゴシエーションメカニズム

推薦する

Weibo コンテンツマーケティングでは何をする必要がありますか?

ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービス微博マーケティングとは、...

Microsoft Insights: AI は中国企業のイノベーション、生産性、競争力を 2 倍以上に高める

マイクロソフトとIDCがアジア太平洋地域で実施した調査「未来に備えたビジネス:AIによるアジアの成長...

エッジコンピューティングは企業においてますます重要な役割を果たすようになる

[[382875]]現在、エッジ コンピューティングを活用している企業は 4 分の 1 にすぎません...

プロモーションソフト製品をユーザーにもっと人気にするためのテクニックについて簡単に説明します。

ウェブマスターにとって、ソフト記事をプロモーションに利用することは珍しいことではないと思います。現在...

代替ソリューションは不安定なウェブサイトの組み込みの鍵となる

今日のインターネットはもはや受動的なインターネットではなく、ますます能動的なインターネットになりつつ...

再選されました!天一クラウド、中国の専用クラウドサービス市場で再びトップに

IDCは1月5日、「中国専用クラウドサービス市場(2022年上半期)追跡」レポートを発表し、中国の専...

ウェブサイト分析ハック: エントリー、エグジット、バウンスレポート (パート 2)

この記事は、Web 分析の第一人者である Eric T. Peterson 氏の著書「Web Sit...

マイクロマーケティングの実践スキル

私は個人的にWeChatにあまり興味がありませんが、WeChatが本当に強力であることは事実です。W...

クラウドについて: アジャイルなアプリケーション開発を支援する Cloud Pak for Application

IBM Cloud Pak for Application は、コストを削減し、効率を高めながらグル...

ガートナー:3つの誤った考え方を避け、中国のクラウドサービスプロバイダーを合理的に選択する

中国で事業を展開する企業は、クラウドの導入を通じて、クラウドネイティブのイノベーションの推進と既存の...

江小白の新しい消費の道を6000字で分析!

著者: 于盛梅映画「スタートレック」では、エイリアンは「現実歪曲フィールド」を持ち、精神力によって新...

Toutiaoを例に挙げて: 推奨戦略について

推薦についてまず、読者がこの記事をよりよく理解できるように、著者はToutiao(携帯電話に「Tou...

WeChatモーメント広告マーケティングの秘密

WeChatは、月間アクティブユーザー数が10億人に達し、15歳から40歳までのユーザーをカバーし、...

クラウドコンピューティング、エッジコンピューティング、フォグコンピューティング:それぞれの実用的なアプリケーションについて学ぶ

「クラウド コンピューティング」とその派生である「エッジ コンピューティング」および「フォグ コンピ...