見出し画像

【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月時点での最新技術をぎっしりと詰め込んであるので、アプリ開発に参画するエンジニアの人は、是非ともご覧になって頂ければと思います📱


いいなと思ったら応援しよう!

この記事が参加している募集