Android Emulator 雑感2018

はじめに

以前書いたメモとかはココらへん

動作環境

  • Windows 10
  • 8G
  • AS3.1.2/AS 3.2-Canary16
  • 3.1.2/3.2-alpha16
  • gradle runtime 4.7

発端的な話

最新OSで64bit環境のテストをするのに、64bit開発&テスト環境が作れないw

というお話でした。まあ実機でやればいいって話はあるんだけど

デスクトップだしな・・・*1

さきちゃんさんのコメント

ISMS絡みで

  • OAuth認証ブロック*2されているし
  • form入力系のurlはチェックされてる

状態なので厳しいかなー*3

まあぶっちゃけ

が日本の現状だから仕方ないw。*4

これ vagrant とか docker イメージでっていうことなのかな?

試してみたい気がするが、やるには知識が足りない〜w

後々の課題ですね・・

emulator 27.3.7

これWinだけかもしれないんだけど結構困ってる・・・。

IDE内のマウスやキーボードが効かない & CPU20〜30%程度の状態で な感じ

まあ一時期CPU100%ぶん回ってたときは、悪名高きウイルスバスター先生にウイルス扱いされたこともあったなー*5

のbuild版が起きたことも・・・(汗

emulator 27.3.6

正確には固まりにくくなった程度。たまにQuickBootからだとマウス反応しない。。。

その場合は一旦終了させて ColdBootしないと*6駄目なのはInstantRunと同じ匂いがしますわ。。

勿論 SwipeDataでも可能なときはありますが・・標準で動く状態でVBOXみたいにsnapshotファイルを作ってるんですよね・・

rootモードの話

という認識だったんだけど、これ Google APIs のイメージだけで Google Play のイメージではできないらしい

理由がPlayStoreのapkを抜かれたくないからのよう。でもさーx86サポートってまともにしてませんよね?

stackoverflow.com

x86Androidの状況

だからEmulatorのみで開発って、対象が一部のx86ハードでない限りありえないんだよなーと

ココらへんは、日本だとISMS絡みでUSBポートが死んでるので*7

Wifi経由で、Androidの実機がTCPIPモードに切り替え接続できるようにしてくれないかなーというのが

というのをいつも思ってる・・*8


emulator 27.3.5

  • ANDROID_SDK_HOME
    • 公式Docを読み違えてました><。.avdフォルダを移動したいときの場所指定ですね
  • ANDROID_SDK_ROOT
  • JAVA_HOME
    • 基本的に通さないとダメなやつ。
    • ISMS関連でホワイトリスト一覧にないので、JDK入れられないとこ何故か多い(理由は末尾参照)
    • 自分はASの内部のOpenJdkを指定していたりしてます

コマンドラインで操作する人がいないんだろうなーという感じで。

Environment variables  |  Android Developers

以前Gmailとかに来てた

「この端末のアクティビティは問題ないですか?」がはいを押さないと先に進めない的な

感じになってるっぽい

これQuickBootで多発。ColdBootだと問題ないことが多。

QuickBootも中途半端なのかなー。この挙動見る限り。

QuickBootで状態が可怪しくなった場合、ColdBootで立ち上げ直さない復帰しない

  • emuが固まった状態になってる
  • adbがうまく繋がんない?らしくてapkが転送できない

とかよく起こるし・・これもInstantRunのemu版な認識で入ればいいんでしょうかねー(遠い目

ちなみにwebmコマンドラインからは指定できなさそう。

最近のG様また最新のソースコード公開しなくなってるみたいなのでオプションとかよくわからんのよね・・


ぶっちゃけた話

Macで開発できれば色々と問題的な障壁外れるんだけどね・・・・

  • peco
  • UnxUtils

で自動バッチ作ってたりしてたんだけど、

普通に知名度低いからすぐの利用無理なのよ・・・*9

  • UnxUtils辺りはかなりグレー。*10
    • こっから PowerShellで頑張ろうぜ! =>でもムズイ な流れだったりも

exception-think.hatenablog.com

対策的なメモ

UnxUtilsが使えない時

下記のbatを書き換えてみると、下記な感じになる

  • pemu.bat
@echo off
rem ====UnxUtil使える時===
for /f %%i in ('emulator -list-avds ^| grep -v -e '^\s*#' -e '^\s*$' ^| peco --select-1') do (

=>

@echo off
rem ====UnxUtil使えない時===
for /f %%i in ('emulator -list-avds ^| findstr /v /r /c:"^\ *$"' ^| peco --select-1') do (
  • apkc.bat
rem ====UnxUtil使える時===
cp -p %%i out/!FILENAME!

=>

rem ====UnxUtil使えない時===
mkdir out
copy %%i .¥out¥!FILENAME!

mkdirをしてくれるcpコマンド使えないってのがなにげに不便だったり・・・

ConEmuが使えない時

コマンドプロンプトをタブ化するソフトだったりしますが、Win端末でお仕事してる人ほどコマンドライン使わねー

って感じで「(おら使わないから)いらなくね?」で使えないことが多々あります・・・

な利点もあるのに・・

QTTabBarみたいなExplolerをタブ化するソフトは許可済みだったりするんですけどね(汗

でその例の一つ。Mac版だと

Tools>Create Comanndline Launcher 

というショートカット作る機能があったりするのですが・・。

Winはやはりないので自前で作ります

  • studio32.bat
@echo off
c:¥android¥soft¥studio32¥bin¥studio64.exe %*

この状態だとCtrl +C等中止するまでずっとコンソールを専有

=>

start /b cmd /c c:¥android¥soft¥studio32¥bin¥studio64.exe %*

としておくと呼んですぐ抜けるかんじになると・・・

start /b cmd /c

バックグラウンドスタートさせてコマンドプロンプト閉じる

*1:プロパーさんのみノート&USB許可な状態。だから実機テストはお願いする感じですね〜

*2:ログインできない

*3:多分管理している人が使わないという理由で。。。

*4:大きい穴を開けたいだけで性能の良いドリルが必要なわけではない みたいな話

*5:adb.exe や java.exe さんが

*6:エミュレータのメニューより

*7:企業でのUSB接続が厳しくなった辺りからandroidの開発は衰退しているようにも見える

*8:未だに一回USBでつないでadbコマンド経由で変更しないと駄目

*9:普通にホワイトリスト一覧に存在していないのは当然

*10:まあ審査日前日に消してあとで再DLなオペをすれば問題ないのでしょうが。。。