【謎?】QRコードによるデバイスのペア設定 - Android11

Android11 リリースされましたが。

ケーブル不要でワイヤレスデバッグ接続するときの、

「QRコードによるデバイスのペア設定」ですが。

謎ですよね。

意味不明ですよね。

少し調べてみました。

 

QRコードを読むことで簡単にワイヤレス接続できる?

いくつか言及している記事が見つかります。


// Adb QR code pairing is in the following format:
// WIFI:T:ADB;S:myname;P:mypass;;

👉 WifiQrCode.java - Settings.git - Git at Google 


WIFI:T:ADB;S:debug;P:123456;;


$ dns-sd -L debug _adb-tls-pairing._tcp
Lookup debug._adb-tls-pairing._tcp.local
DATE: ---Sun 13 Sep 2020---
15:19:54.943  ...STARTING...
15:19:55.207 debug._adb-tls-pairing._tcp.local. can be reached at Android.local.:38362 (interface 4)


$ adb pair Android.local.:38362 123456

👉 [Android] Using ADB QR code pairing in R | by shakalaca | Medium 
👉 รู้หรือยัง Android 11 มี Wireless Debugging ให้ใช้ด้วยนะ 

どうやら、QRコードを読み込ませた後、

パソコン上コンソールからいくつかのコマンドを実行すると、

接続できるようですが、

面倒すぎます。

これなら、

もう一つのワイヤレス接続方法の

「ペア設定コードによる方法」

のほうが素早くペアリングできますね。

 

スクリプトで簡単接続してみる

スクリプトにしておきます。



叩くと、ブラウザが開きQRコードが表示されます。

これを、Android端末で読むと、

ペアリング終了後接続されます。

以下、動画で雰囲気など。



 

まとめ

これって、きっと、そのうち、

AndroidStudioに内蔵される機能になるんでない?

てか、ASプラグイン作ってみてね!!

👉 【Android11】ケーブル無しでペアリングできる「ワイヤレスデバッグ」 


【Android11】ケーブル無しでペアリングできる「ワイヤレスデバッグ」

USBケーブルでの接続なしに、クイックタイルから「ワイヤレスデバッグ」をタップするだけで、Wi-Fi接続できるようになりました。

 

ペアリングの手順

👉 ワイヤレスでバッグ | 機能と API の概要  | Android Developers 

初回に、端末とパソコンをペアリングしておく必要があります。

[開発者オプション] - [ワイヤレスデバッグ]

もちろんUSBケーブルは不要です。

パソコン上コンソールから。


~$ adb pair 192.168.0.6:42073 740464
Successfully paired to 192.168.0.6:42073 [guid=adb-(B7JX0TL0Z-Y7ThhK]

これで、ペアリング完了です。

そして、クイックタイル「ワイヤレスデバッグ」の表示/非表示は、

[開発者オプション] - [クイック設定開発者用タイル]

から設定できます。

しかし、これ、いろいろトロくね?

👉 【Android11】クイックタイルから「画面録画(スクリーンレコード)」が可能に 
👉 【謎?】QRコードによるデバイスのペア設定 – Android11 


Paging3 ライブラリ

👉 Paging 3 library overview  |  Android デベロッパー  |  Android Developers 

「ページングライブラリ」は、ローカルストレージやネットワーク経由のより大きなデータセットを読み込みページを表示する処理に使います。これを使うことで、ネットワーク帯域幅とシステムのリソースを効果的に使うことができます。Android app architecture にフィットするように設計されており、他の JetPack コンポーネントとも綺麗に統合することができます。

メリット

ページングライブラリには以下の機能があります。

- ページ分けされたデータのメモリーキャッシュ化。システムリソースを効果的に使います、
- 重複リクエストの排除。ネットワーク帯域とシステムリソースを効果的に使います。
- 設定可能な指導リクエスト付き RecyclerView Adapter。ロード済みデータとスクロールを考慮。
- Kotlin coroutine と Flow を最優先。LiveData や RxJava のように利用可能。
- リフレッシュやリトライを含んだエラーハンドリング。

👉 componentid:413106 status:open - Issue Tracker 

設定

build.gradle に以下のようにして dependencies に追加します。


dependencies {
  def paging_version = "3.0.0-alpha01"

  implementation "androidx.paging:paging-runtime:$paging_version"

  // alternatively - without Android dependencies for tests
  testImplementation "androidx.paging:paging-common:$paging_version"

  // optional - RxJava2 support
  implementation "androidx.paging:paging-rxjava2:$paging_version"

  // optional - Guava ListenableFuture support
  implementation "androidx.paging:paging-guava:$paging_version"
}

構成

Paging ライブラリは、推奨されている Android app architecture に直接統合できます。ライブラリコンポーネンツはアプリの中で3つのレイヤーを持っています。

- Repository レイヤー
- ViewModel レイヤー
- UI レイヤー

ここでは、Pagingライブラリコンポーネントがそれぞれのレイヤーでどのように組み合わせてく使われ、データ読み込みからページを表示するまでを説明します。

Repository レイヤー

Repository レイヤーで、主要な Pagingライブラリコンポーネントとなるのが PagingSource です。それぞれの PagingSource オブジェクトはデータソースとそれをどう走査するかを定義します。PagingSource オブジェクトは、ネットワークやローカルデータベースなど一つのソースからデータをロードします。

もうひとつは、RemoteMediator です。 これは、ネットワークデータソースとローカルデータキャッシュのようなレイヤー分けされたデータからのページングを管理します。

ViewModel レイヤー

Pager コンポーネントは、PagingSource や PagingConfig オブジェクトから PagingData インスタンスを作成するためのパブリックなAPIを提供します。

ViewModelレイヤーとUIを接続するコンポーネントは、PagingData です。PagingData オブジェクトは、ページ付けされたスナップショットのコンテナです。PagingSourceオブジェクトに問い合わせし、その結果を保持します。

UI レイヤー

UIレイヤーで主要ページングライブラリコンポーネントは、PagingDataAdapterです。RecyclerView のアダプターでページ付けされたデータを取り扱います。

代替として、 独自のカスタムアダプターを作るのに AsyncPagingDataDiffer コンポーネントを使うこともできます。

その他

ページングライブラリについてもっと学ぶために、以下のリソースも参照してください。

👉 Android Paging 
👉 architecture-components-samples/PagingSample at paging3 · android/architecture-components-samples 
👉 architecture-components-samples/PagingWithNetworkSample at paging3 · android/architecture-components-samples