【Androidアプリ開発】3:プレビュー機能、実機テストとの戦い
本記事の概要
概要
前回『プロジェクトの作成、エミュレーターとの戦い』からの続きです。
今回は「プレビュー機能」「実機テスト」の記事を書くものとする。
特に「実機テスト」ではクロームブックならではの嵌った点も解説。
プレビュー機能
ふと、気になったのがさ、エディタ右上の「 [Code] [Split] [Design] 」の箇所なんだよね。
[Code] から [Split] に切り替えると
何とプレビュー画面が出現する。
試しにText の先頭に"Test "を書き足す。
Loading … となるので、待つと。
Up-to-dateとなり。
プレビューされる。
●インタラクティブモード
シュミレーターが使えなくてもがっかりする事はない。
プレビューでも「インタラクティブモード」を使えばアクション動作確認ならで出来る✨
検証用にカウンターボタンを作成する。
Jetpack Composeを使うとコードが短く書ける。
ただ、Buttonひとつにしろ、いちいちimportとか必要なのでそこは面倒。
特に色を指定しなければ、青いボタンになりますね。
形は真四角というより角丸かな。
ふむ、これがマテリアルデザインというものか🎨
プレビュー名辺りにカーソルを合わせるとアイコンが出てくるのでクリック
「インタラクティブモード」起動中なら上方にストップボタンが出ます。
ボタン押下でカウントアップ
10回押してみた。
プレビューでもきちんと動作確認出来る💡
「インタラクティブモード」を終了したい場合、ストップボタンで停止する。
なお、プレビューへの配置は@Previewアノテーションをつけたコンポーザブル関数を使う。
プレビューエリアの「GreetingPreview」は関数名がそのまま表示されていた訳です。
この辺りも便利ですね。
TextFieldに入力も出来たぞ💡
超簡単なカウンターアプリなら秒で作れちゃう。
すごいぞ Jetpack Compose 💪
実機テスト
実機テストをしてみましょう。
開発者向けオプション
●開発者向けオプション
実機側(Android端末)の「開発者向けオプション」を有効にする必要があります。
※ 以下の操作は、スマホ機種によって若干異なる場合があります
設定を開きます
デバイス情報をタップ
ビルド番号を7回タップ
『ロックNo.の再入力
続行するには端末のロックNo.を入力してください』
と出た場合は、ロックNo.を入力する。
「デベロッパーモードになりました」と出る
デバイス情報から設定画面に戻り、「システム」をタップ
「開発者向けオプション」が追加されているのでタップ
開発者向けオプションがONになっていればOK
USBデバッグをONにします。
このダイアログが出た場合、各自判断してください
USBデバッグを許可しますか?
このダイアログが出た場合、「OK」ボタン押下
USBデバッグはONとなる。
クロームブックと実機をUSB接続する
●クロームブックと実機をUSB接続する
次に、クロームブックと実機をUSB接続します。
何かダイアログが出るので、状況にん応じOKボタン押下します。
この時、ただの充電ではなく、ファイル転送許可をする感じにしてください。
ちなみに私の端末では、何故か一瞬でダイアログが消えるので、一瞬の隙を逃さずOKボタン押下しました。
●Android Studio側
しかし困った事に、Android Studio側で認識してくれない。
(WifiはAndroid11以降だし)
クロームブックは端末を認識しているし、中のファイルにもアクセス出来るのだが …
Virtualタブを
Physicalにしても何も出て来なーい
そもそも、ホストOS(ChromeOS)で認識していても、ゲストOS(Linux仮想環境)側で認識しているのかが気になる。
aptコマンドは使えるのでネット接続はOKだが、USBはどうなのだろうか❓
WindowsでいうUSBドライバ的なものが必要なのだろうか。
$ lsusb
lsusbコマンドとやらを初めて使ってみる。
うーん、よく分からん。
$ lsusb -t
tオプションでより詳しく出るらしい。
これを見る限り、多分、端末は認識していない。
$ ls /dev
USB接続が認識されると /dev/sda や /dev/sdb 等出来るらしいが、これもよく分からん。
いつの間に、クロームブック側でも認識されなくなったので、USB接続しなおすと、ダイアログが。
繋がっても、ぶちぶち切れるのは厄介だなあ。
で、ダイアログでLinuxの方を選択したら「lsusb -t」の結果に変化は生じたのだが、Android Studio側や「ls /dev」には変化が生じず。
何か、ぐだぐだですね。
Connection Assistant
●Connection Assistant
「Connection Assistant」とやらを試してみる
(上段メニュー) Tools → Troubleshoot Device Connections
または
デバイス選択箇所でTroubleshoot Device Connections
こんな感じ
Android Studio detected 1 device(s).
(Android Studio は 1 台のデバイスを検出しました。)
となっている割には、ビルドのデバイス選択で出てこないわけだが。
取り敢えず「Next」ボタン押下
うん、それさっきやったから。
「Restart ADB server」ボタン押下
… 、何も変わらない。
しかも、先程USBデバッグをONにしたのに、いつの間にOFFになっているし。
調べたら、Android端末のUSBデバッグは何かのきっかけでいつの間にOFFになるとの事。
セキュリティー的なものなのかな❓
もうね、何がなんだか。
引き続き、調査続行。
もはや、藁をもすがる思いです。
… と、その時だった。
上記サイトの情報に救われました。
では、早速試す
クロームブック側の設定の検索欄に「usb」と入力
候補に「LinuxのUSB設定」と出てくるので選択。
「USBデバイスを管理する」画面が表示される
ONにします。
なお、この時、スマホ側で「USBデバッグを許可しますか?」的な確認ダイアログが出ます(スクショは撮り忘れた)。
フィンガープリントが表示されていると思うので「OK」ボタン押下。
「Connection Assistant」にもいい感じで認識されているぞ💡
ターミナルで「lsusb -t」コマンドで見てみる。
usbの文字が増えている。
このKYV45が実機端末。
きちんとビルド欄にも出ています。
ついに実機テストが出来たぞぉー🎉
なお、終了する際には、きちんと停止ボタン(赤い四角ボタン)を押しましょう。
インストールもされているぜ。
「実機のビルド」って早いです🚵
今、思ったんだけどエミュレーター要らないかも。
エミュレーターだと遅い(クロームブックのCPU性能による)し、実機の方だとあらゆる種類の検証が出来ます✨
盲点だった箇所
●盲点だった箇所
苦戦しましたが、何とかなりました。
以下、盲点だった箇所です。
端末接続時に出るダイアログで「Linuxを選択」をクリックすること。
設定の検索欄に「usb」と入力。
候補の「LinuxのUSB設定」を選択。
あと、この「USBデバイスを管理する」画面ですが
設定 → 詳細設定 → デベロッパー → Linux開発環境 → USBデバイスを管理する
の遷移でも行けますね。
そう言えば「emulator-5554」って出てた事もありました。
これは接続は成功しているが、「USBデバッグが有効でなかった」場合のエラーのようです。
著書
『 プログラマーにおくるAndroidアプリ開発の入門書 』
2024年6月時点での最新技術をぎっしりと詰め込んであるので、アプリ開発に参画するエンジニアの人は、是非ともご覧になって頂ければと思います📱