Android Studio 3.0 Canary1 自メモ
動作環境
所感
TLが埋まってましたが触った感じは下記な感じ
その認識で問題ないです。
— close_yutori (@kimukou2628) 2017年5月18日
(既存プロジェクトのbuildは問題ありませんでした。
メニューにkotlinファイルへの変換とかは確かに追加されてましたが。
annotationProcesserでapt を内部に取込んだように、kotlinを標準classpathで取込んだ感じですね
— close_yutori (@kimukou2628) 2017年5月18日
(kotlin plugin入れると、使ってないprojectでも参照エラーでてたので。
ただ独自でver指定は厳しくなるかも
んですが、確かにそれなくなっただけでも気分的には楽になりました
- ASは基本ワーニング出ると、
- logcatタブとか開いていても そのWindowタブに強制移動されるので(汗
ただ思ったのは、kotlinを使ったライブラリとかもAPTと同じような感じになりそうな気も(汗 *1
Kotlinのサポート状況
Wiz TemplateはとりあえずJavaテンプレートをKotlin変換してみましたレベルみたい。
まあCanary1ですしね・・。kotlin 1.1.2-4 というバージョンが参照されているよう
AS3.0でKotlin開発始めていらっしゃる方がすでにいるみたいだけど・・
Android StudioのKotlinのリファクタリングで関数とかの名称変更するとpackage全部くっつけてくるんだけど
— じゃあの (@jaano2001) 2017年5月19日
このテロ行為の抑止はどうすればいいんだろう
な状況みたいで、今後に期待?
Kotlinでdata-binding(use AS3.0)
にもう情報載ってた・・。検証早すぎる〜w
まあ現時点でKotlin環境作ろうとすると(use AS2.3)
下記な状況に普通になるから、待望されるのはわかる気もするんですけどね・・・
それってKotlin開発を行ってしまうと、普通に其のぐらい喰ってしまう感じ何でしょうか?
— close_yutori (@kimukou2628) 2017年5月19日
(なんかIDEAでScala動かしていたときと同じような感じにも見えてしまいますね
情報ありがとうございます。
— close_yutori (@kimukou2628) 2017年5月19日
確かにすごく重そうだしメモリ食いそう。でもAS2.3ベースならすごく有りがちな構成ですね(苦笑
java8はAS2.4正式版待ちなんですかね・・(汗。
retrolambda使ってると特にInstantRun使えなかった記憶も有
周辺の新機能プロジェクトメモ
InstantApp って android gradle plugin 3.0からなんですね。Wiz TemplateはAndroid Studio 3.0からサポートと。https://t.co/9mNVh8SCcO
— close_yutori (@kimukou2628) 2017年5月17日
参考情報
仕事場の上司が絶賛してました系の機能。
読ませていただいた感じ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 のままで問題ないようだ
Android Studio 3.0、がんがんクラッシュしてつらい
— Sato Shun--- (@stsn_jp) 2017年5月18日
android studio 3.0 canary1
— close_yutori (@kimukou2628) 2017年5月18日
良かった。自分だけではなかった((^^;;https://t.co/BMOliXO9MZ
はい。自分もそんな感じですw
— close_yutori (@kimukou2628) 2017年5月18日
(kotlinも使ってないしjava7のまま~。
2.4と同じくgradle plugin がmemory leakしてるようなので、https://t.co/oj1U4WydPlのxmsとか大きめに調整すれば多少緩和されるかな~という感じです
android studio 3.0 canary1
— close_yutori (@kimukou2628) 2017年5月18日
realmがワーキング吐いてる
既存プロジェクトの
index作成が凄い時間かかる(体感10~15分位?
variantの
outputFileが廃止されてるのでbuild時にファイル名買える系の別対応が必要
gradle DSL
android gradle
— close_yutori (@kimukou2628) 2017年5月18日
下記のページって2.5の紹介ページだった気がするんだけど3.0に書換ってるけど
2.5無くなった?
あと高速化って、gradle runtime 4.0によるものっぽい(plugin最適化ではなくhttps://t.co/6zsozLrSpr
android gradle plugin 3.0.0
— close_yutori (@kimukou2628) 2017年5月18日
jcenterにはまだ載らないのね。メジャーバーションアップだからDSLも大幅に変わるのか、、https://t.co/46Okrhd8uP
直接いじっている系の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の最適化)
avoid multi-APK. Incluude minimalresouces: productFlavors { development { resConfigs { "en", "xxhdpi") } } // まじで? これってInstant Runだと勝手に選ぶだろ?
— Atsushi Eno (@atsushieno) 2017年5月19日
これまず、productFlaver使っていないと使えない機能で
defaultConfig.resConfigs { "ja", "xxhdpi")
だと drawable-ja-xxhdpi フォルダがないとエラーになる
disable PNG crunching: avoid build tools perform PNG size optimization by default
— Atsushi Eno (@atsushieno) 2017年5月19日
やっぱりインクリメンタルビルドでPNG crunchingは影響しないな
— Atsushi Eno (@atsushieno) 2017年5月19日
無駄な変更を避けろ: android { defaultConfig { versionCode (someBuildDateTime) } } // みたいなコード。完全にわかりみ
— Atsushi Eno (@atsushieno) 2017年5月19日
これ書く人いるかな?? 下記は使ったりしますが・・
Clashlyticsが勝手にビルドIDを書き換える(きびしみ) => 無効にする: buildTypes { debug { ext.alwaysUpdateBuildId = false } } // まじかClashlytics
— Atsushi Eno (@atsushieno) 2017年5月19日
依存ライブラリのdynamic version指定(+)を避ける // まあ、そんなに頻繁にアップデートが来なけりゃ別にいーだろ感
— Atsushi Eno (@atsushieno) 2017年5月19日
gradlew --offline
でビルドしていればバージョンチェックによるNW遅延なんて起きないはずなんですけどね・・*3
gradle 4.0 milestone1 or milestone2
これが輪をかけて遅くしてる気がするんだけど気の所為?
Gradle 4.0 M2 is available. Give the improved build cache, parallel dependency downloads, and new UX a spin! ➔ https://t.co/DbTULDraGm pic.twitter.com/Q3illEEPEa
— Gradle (@gradle) 2017年5月17日
ヤッターGradleにもparallel downloadが導入されるー
— とーます (@grimrose) 2017年5月17日
gradlew assembleXXX
時にライブラリDownloadって、gradle runtime を4.0以降にあげたことによる影響なのか・・
この状態だとofflineチェック有りで開発するというのはすごく厳しくなるのかも・・
gradle runtime 4.0 milestone2
— close_yutori (@kimukou2628) 2017年5月18日
アクティビティモニターでみると
3.5よりCPUとmemoryが若干上がってるように見えるんだけど
これPC端末がチープだとかえって遅くなるんじゃないだろうか?
(-ω-)。
gradle 4.0 milestone 2https://t.co/HTVu8QJVi6 が google() として登録されているのか・・へ~
— close_yutori (@kimukou2628) 2017年5月18日
今後はjcenter()じゃなくgoogle()の方に pluginの方が上がるのかな?
自分が動かした環境だと、gradle 3.5 runtimeあたりが最適に感じる*4
タスク実行時Download対策(2017/7/25追記)
gradlew assembleXXX までは遣らなくて良くて
gradlew preBuild
を行えばいいらしい。
TLで観測してると
なんかAndroid Studio 3.0めちゃくちゃ重いな。
— Yusuke Iwaki (@yi01imagination) 2017年5月18日
実用するにはまだまだほど遠い感じだな・・・。Android Studio 3.0
— Yusuke Iwaki (@yi01imagination) 2017年5月18日
onCreateの補完が出るまで4秒かかるとか、ちょっと無理。最初の1回だけかと思ったけど、毎回3,4秒かかるから、なんかおかしいんだろうな。
— Yusuke Iwaki (@yi01imagination) 2017年5月18日
まぁSwiftが未だにビルドくっそ遅くてもみんな使ってるのをみると、Kotlinがくっそ遅くてもみんな我慢して使うんだろうなぁ。
— Yusuke Iwaki (@yi01imagination) 2017年5月18日
系な呟きはポチポチ見てるので。まあこれAS2.4あたりから顕著になった感じ
自分もそうだけど、人によっては補完候補を出そうとした段階で
CPUブン回って IDEごと固まってクラッシュとかあるかな・・
デフォ idea.max.intellisense.filesize=2500
— Shinya Mochida@型 (@mike_neck) 2017年5月11日
今 idea.max.intellisense.filesize=4250
のキャッシュサイズの変更をすると改善されるという話があったりはしますが・・(汗
Emuratorまわり
android studio emulater
— close_yutori (@kimukou2628) 2017年5月19日
play同梱imageってメモリサイズとか弄れないようにロックされてるのか。
あとデモレベルのフル機能使いたい場合は
O imageを別途DLしてAVD作り直しが必要と
基本は 26.0.2のエミュレータの話と同じ。
Play搭載(カメラマーク有り) + Android O用のimage で新規AVD作り直した段階 で機能使える感じみたい*5
一時的にCanaryにして、Emuratorだけ落とせば問題ない感じかなーと思う
ちょっと便利になった機能
android studio 3.0 Canary1
— close_yutori (@kimukou2628) 2017年5月19日
Device File Exploler
/data/dataの下クリック時に自動的にrun-asして参照できるようになってる!
(2.4にbackportされないかな~
run-as出来ないGalaxyとかは無理ですが
そういえばAS2.4から入っていたプロファイラーのタブがなくなって、
上部のtoolbarの方に移動していたのは誤押し防止の為なのかな?
AS2.4触ってた時になにげに動いてしまって結構微妙だなーとか思いながら触っていた記憶がたしかにあり
TLでたまに見るやつ(android:testOnly=“true"でインストできない)
多分 gradlew clean cleanBuildCache してから再実行すれば治りますよ(メジャーバージョン間のビルドのキャッシュに互換性がない
— close_yutori (@kimukou2628) 2017年5月19日
この辺関係あるかな...🤔https://t.co/HzxDSKJUES
— tsuyoshi uehara (@uecchi) 2017年5月19日
なる程、そういう奴なんですね。
— close_yutori (@kimukou2628) 2017年5月20日
そう言えばdebug構成にもsignConfigで署名してるので、それで出なかったのかも
(AS2.4,AS3.0両方ともそのエラーでなかったので
考察
一つ目の原因としては
- AS2.3から暗黙的に buildCacheが導入されていて、
とかいうやつ。メニューに用意しないと駄目な気がするんだけど気の所為?(苦笑
もう一個考えられるのは
- java8ビルドだから
- desugarビルド で AS24p4のときandroid:testOnly=“true” が付いてしまったような・・
- debugビルドをsignConfigしてないから?
あたりが考えられるかな?
- gradlew assembleDebug で自分が問題なく adb installできている
- AS2.3.2に戻したらOK記載より1.7ビルドのはず
なんですよね。
adb -t install