見切り発車に近いような Android Studio 3.0 正式版

はじめに

とりあえず AS3.0 正式版が出たので検証。

期待してた Android Architecture Components の Room とかは rc1 だから思いっきり見切り発車だね。

tech.recruit-mp.co.jp

AS3.1 で OS8.1対応に専念したい からもう出しちゃえ的な感じに受ける。。

動作環境

  • macOS Captain
  • 4G
  • SDDタイプのMacbook Pro
  • AS 3.0
  • gradle plugin 3.0
  • gradle runtime-4.3-rc-3-bin

  • Windows 10
  • 8G
  • AS 3.0 / AS 3.1-Canary1
  • gradle plugin 2.3.3 / gradle plugin 3.0
  • gradle runtime-4.1-bin

検証状況

日本語win版は 3.0正式版 な表記でしたね。家だと英語版表記で見てるからかなー*1

これ AndroidTest を移動 or コピーして改修して Robolectric にしてたりしてたんですが、中々しんどいですw(重複テストエラーとかでてワケワカンなかった・・・                                        

gradle sync時に

  • meta.pomをレポジトリから定期的にダウンロード
    • googleのレポはブラウザ参照できないようになってる*2
  • ライブラリのsrc/javadoc.jar をSync時にダウンロードする仕様としてみたり。。。
    • ライブラリのクラス参照時に逆アセンブルして遅くなる編集環境の改善みたいだが*3
    • これが出来ないとSyncが失敗する作り。通信富豪環境推奨ですね*4

qiita.com

GUI本体側のチェックが強化されてるのかなー。とりあえず exclude指定を追加しました

exclude group:'com.android.support' , module:'support-annotations'

エミュレータ関係

これは確認しました。ちょっと前にEmuratorでProxyガチ環境で繋がらなくて悩んでました。 どうもこれ、設定すると options/other.xml を生成してくれる動きになるようです

  • 直下のgradle.properties にプロクシ情報を記載する という挙動が正しいようです
    • ただし、systemProp.http.proxyHost=XX のhttpしか書いてくれないのでエラー。
    • systemProp.https.proxyHost=XX は手動で追加しましょう

確かになんかエミュおかしい。動かしてると謎のエラーログがWinでも出ることが有るんだけど・・

  • エミュレータ古いAPIのは既に動かなくて、新しいものしか試せなくなってる
    • エミュ有るから、どうせ買わん日本にはこれで十分だろ な路線だし*5

support-libraryの話

確かにサイズでかすぎなんですよね。MultiDexの原因でもあるしさ・・

  • support-library
  • google-play-services/firebase

あたりが殆ど元凶だしな・・

android gradle plugin 3.0 の話

まあ

らへんの話ですしね。現在のところ両対応してくれてるのは助かる

サードパーティライブラリ依存があって完全移行は出来ないからなー

検証状況(3.1 Canary1)

うーん。8.1の検証環境を正式リリースと切り離した感じなんでしょうね。

確かに build tools 27.0.0 にするとエラーが凄くてんこ盛りだし。。(汗

まずkotlin使ってないプロジェクトで kotlinエラー。AS2.3時代に戻った感じ。

正直やめて。。。

  • support library を27.0.0に
  • build tools 27.0.0にあげろ
  • あげたら versionのミックス環境ではテストが実施できません Gradle Syncエラー >プロジェクト構成の破壊


TLメモ

TLメモ(一般)

ConstraintLayout は AS 2.3ではまともに使えないので*6

仕方ないんだよね。あと android profilerもそうだし。

Device Exploler は正直あんまり使わないけど。。

kotlin使ってるプロジェクト、業務でまた触らなくなったけど

通常プロジェクトでも結構エラー出た*7。これ大幅に手を入れすぎちゃった系で

AS3.1も凄く長いんじゃないか臭がする*8

うーん・Picassoって元々Okhttpだった気がするんだけど、

何でOkhttpDownloaderに差し替えないと駄目なんだろう?

これBetaの頃から kotlin化すると色んなショートカットが死ぬので

Kotlinファイル用のショートカットとJavaファイル用のショートカットと干渉してるのかなーとか?思ってました(爆

TLメモ(3.1 Canary1)

TLメモ(テストライブラリ)

android {
   testOptions {
     unitTests {
         //2.3 <=>3.0 コンパチ対応
         if(hasProperty('includeAndroidResources')){
              includeAndroidResources = true
         }
     }   
   } 
}

他のテストライブラリは、他のフラグ設定をしないと動かなかった記憶があり

そこら辺は後で追記する

TLメモ(keicha_hrsさん)

TLメモ(takkeさん)

うーん。proguardの高速化は確かに無理だよな。。

qiita.com

らへんとか対応すれば出来るんだろうか。。

TLメモ(takkeさん)-27.0.0

*1:日本語版に関しては今日見たら直されてましたね

*2:負荷対策だろうけどすごく不便。偶に激重で繋がんないし・・

*3:ローカルのキャッシュは以前の3倍になるんだよね。SSDも圧迫。。

*4:通信しまくりだと閉鎖環境だと逆に重いんだが、日本はもうビジネスターゲット外なんでしょうね

*5:日本企業がISMS?絡みか知らんけど実機買わなくなってるからそう思われても仕方ないんでしょうね

*6:でも手で弄る限界は超えてる気がする

*7:スタイル崩れ含めて

*8:まあIDEだけなんで見切り発車は可能だが。。