Android Studio 3.0 Canary1 自メモ

動作環境

所感

TLが埋まってましたが触った感じは下記な感じ

  • Plugin Repository で kotlin Plugin入れちゃうと、
    • 普通のJavaプロジェクトでも classpathに入れろや とワーニング吐いてた

んですが、確かにそれなくなっただけでも気分的には楽になりました

  • ASは基本ワーニング出ると、
    • logcatタブとか開いていても そのWindowタブに強制移動されるので(汗

ただ思ったのは、kotlinを使ったライブラリとかもAPTと同じような感じになりそうな気も(汗 *1

Kotlinのサポート状況

Wiz TemplateはとりあえずJavaテンプレートをKotlin変換してみましたレベルみたい。

まあCanary1ですしね・・。kotlin 1.1.2-4 というバージョンが参照されているよう

AS3.0でKotlin開発始めていらっしゃる方がすでにいるみたいだけど・・

な状況みたいで、今後に期待?

Kotlinでdata-binding(use AS3.0)

にもう情報載ってた・・。検証早すぎる〜w

まあ現時点でKotlin環境作ろうとすると(use AS2.3)

下記な状況に普通になるから、待望されるのはわかる気もするんですけどね・・・


周辺の新機能プロジェクトメモ

github.com

github.com

github.com

参考情報

仕事場の上司が絶賛してました系の機能。

読ませていただいた感じRxJavaの機能をG様が標準で取り込んできた感じなのかなー*2

ActivityLifecycleCallbacks は実装していたりするので同じようなことを想定しているんだろうか?


自分で動かした感じ

既存プロジェクトをとりあえず AS 3.0 Canaryで動かしただけですが、相変わらずな感じ

  • app/build.gradle
compileSdkVersion 'android-O'
buildToolsVersion "26.0.0-rc1"

buildToolsVersion は、android-O を指定しない限り 25.0.2 のままで問題ないようだ

gradle DSL

直接いじっている系のDSLが結構エラーになってて、多分調べ直さないと駄目なんだろうなーとか思いつつ

やたらRTされてたGradle高速か?

  • 書いてる内容は、従来から言われていたことでAS2.2/AS2.3でも行える
  • Tips 1
    • これは嘘かと。lintとかチェック機能で逆にどんどん遅くなってるかなーと
  • Tips 2/6 Instant Runを使えば早い
    • 見た目上は早く見えるけど、変更が認識しないことがかなりあって其の度にクリーンビルドが必要
    • キマればスカッとするけど、大概は3−4回に1回はクリーンビルドしているので正直微妙?
    • 下手すると、平均時間InstantRun OFFったほうが早い場合が多いかと。。
  • Tips 5
    • これplugin内部の方でdebug時に自動OFFさせるべきものじゃない??(pngの最適化)

これまず、productFlaver使っていないと使えない機能で

defaultConfig.resConfigs { "ja", "xxhdpi")

だと drawable-ja-xxhdpi フォルダがないとエラーになる

これ書く人いるかな?? 下記は使ったりしますが・・

gradlew --offline 

でビルドしていればバージョンチェックによるNW遅延なんて起きないはずなんですけどね・・*3

gradle 4.0 milestone1 or milestone2

これが輪をかけて遅くしてる気がするんだけど気の所為?

gradlew assembleXXX 

時にライブラリDownloadって、gradle runtime を4.0以降にあげたことによる影響なのか・・

この状態だとofflineチェック有りで開発するというのはすごく厳しくなるのかも・・

自分が動かした環境だと、gradle 3.5 runtimeあたりが最適に感じる*4

タスク実行時Download対策(2017/7/25追記)

gradlew assembleXXX までは遣らなくて良くて

gradlew preBuild

を行えばいいらしい。

TLで観測してると

系な呟きはポチポチ見てるので。まあこれAS2.4あたりから顕著になった感じ

自分もそうだけど、人によっては補完候補を出そうとした段階で

CPUブン回って IDEごと固まってクラッシュとかあるかな・・

のキャッシュサイズの変更をすると改善されるという話があったりはしますが・・(汗

Emuratorまわり

基本は 26.0.2のエミュレータの話と同じ。

Play搭載(カメラマーク有り) + Android O用のimage で新規AVD作り直した段階 で機能使える感じみたい*5

一時的にCanaryにして、Emuratorだけ落とせば問題ない感じかなーと思う

ちょっと便利になった機能

そういえばAS2.4から入っていたプロファイラーのタブがなくなって、

上部のtoolbarの方に移動していたのは誤押し防止の為なのかな?

AS2.4触ってた時になにげに動いてしまって結構微妙だなーとか思いながら触っていた記憶がたしかにあり


TLでたまに見るやつ(android:testOnly=“true"でインストできない)

考察

一つ目の原因としては

  • AS2.3から暗黙的に buildCacheが導入されていて、
    • AS2.4/AS3.0 でバイナリ互換がないからよくわかんないエラーでビルドできなくなる
    • cleanで対応できない*6
    • InstantRunなにげに使っている人だけハマる*7

とかいうやつ。メニューに用意しないと駄目な気がするんだけど気の所為?(苦笑

もう一個考えられるのは

  • java8ビルドだから
    • desugarビルド で AS24p4のときandroid:testOnly=“true” が付いてしまったような・・
  • debugビルドをsignConfigしてないから?

あたりが考えられるかな?

  • gradlew assembleDebug で自分が問題なく adb installできている
  • AS2.3.2に戻したらOK記載より1.7ビルドのはず

なんですよね。

adb -t install

*1:Javaバイトコード変換に完全になればいいけど、違う場合はRealmの時と同じことになりそう・・・

*2:InstantRunがJRebelコピーっぽいのと同じく

*3:実行時ライブラリDLがガンになってる

*4:daemonが複数ポコポコ立ち上がらない

*5:26.0.2の出たての頃に作ったイメージだと、一部非アクティブ反転

*6:すごい人になると、.android/.gradleとか消しまくって治ったと呟いてる人がいる

*7:高速化セッションで利用を煽ってたから犠牲者が今後増える??