Android Studio 3.0 Canary4 挙動メモ
はじめに
更新が結構頻繁なASですが、気づいた点等を備忘としてメモしておこうかと
動作環境
挙動メモ
AS3.0-canary4本体
android studio 3.0 Canary 4
— close_yutori (@kimukou2628) 2017年6月16日
(-ω-)。
xms2048m
-XX:MetaspaceSize=512m
IDE側に指定しないとまともに動かないのか、、(応答なしになる。
最低スペック倍なのね、、
ですね~。ここら辺リミットかけないと4Gぐらい逝きます
— close_yutori (@kimukou2628) 2017年6月16日
Gradle Deamon周りが8G(リミットかけないと)
16G iMacで開発できない環境おかしいけど
G様社内は最新機が常に配布されるとの話があるので気にされてないのかと、、、((^^;;
- まともにOpen Projectすらできませんでした><。
- メモリ足りない系のエラーダイアログが出て操作ブロック・・。
- gradleの方も、-XX:MetaspaceSize=512m の指定は必要*1
ただこの状態だと家のMBP4Gではもう無理ですね・・・(汗
android studio 3.0 Canary 4
— close_yutori (@kimukou2628) 2017年6月16日
Instant runビルドは意味不明エラーで相変わらず通らず。
でもAS2.4以降でビルドしないとプロファイラー使えないらしいんだよな~
まさにこのエラー。というか、なんかよく分からんが、Android Studio 3.0 preview4, Android gradle plugin 3.0.0-alpha4な環境で、ManifestにカスタムApplicationを定義していない場合においてのみMerged Manifestが壊れた
— ジャバニャン (@pside) 2017年6月17日
- G様の suppot-library/gms library とか超肥大しすぎ
- デフォルトのWizで作ったやつも、下手するとそのままの状態でDexOver出る。
- MultiDex導入は基本避けられない
状況なのに、何させたいのさ! とツッコミを入れたい・・・
JAVA_7ビルド + plugin 3.0-alpha4 指定
- 記述変更なし
- plugin3.0-alpha4
- gradle runtime 4.0
- canary3だとビルド自体が通らない
- canary4だとビルドが通る=>一瞬直った?
- 実行時に BindingUtils.setContentView でエラー
で駄目でしたね。data-bindingで引っかかると・・
android studio 3.0 Canary 4
— close_yutori (@kimukou2628) 2017年6月16日
pluginの指定だけ変えて jdk1.7 build
通るように見えるんだけど
(Canary3だと致命的エラーでbuild出来ず
databindingで実行時クラッシュなので
また保留。
みてもわかるように、
- annotationProcesser指定にしていたところを止める
- kaptに戻す
annotationProcesser系にするからapt plugin外すって話だったのが逆行している状態。
AS3.0に関しては APTが死んでる状態なのかな〜(汗
JAVA_7ビルド + plugin 2.3.3 指定
- 記述変更なし
- plugin2.3.3
- gradle runtime 4.0(3.5でも変わらず)
android studio 3.0 Canary 4
— close_yutori (@kimukou2628) 2017年6月16日
gradle plugin 2.3.+指定で
GradleSyncでindex作れるようになったみたいなので、暫く様子見る
(index自体はAS2.3と非互換なので .iml/.idea消してOpenProjectし直す
この状況だと AS2.3.3より安定している感じなので、とりあえず様子を見る
- index作成時間が以前に戻った(AS2.3.2レベル)
- IDEが固まりにくくなった
だけでも確かによかったかも。。
Canary3 までの挙動
android studio 3.0 Canary 3
— close_yutori (@kimukou2628) 2017年6月5日
JDK7でbuildするとバイナリがおかしくなる気がする。
まあindex作成始めてide応答なしになるバグは直ってるみたいだけど、、
android studio 3.0 canary 3
— close_yutori (@kimukou2628) 2017年6月6日
GUI経由でしか基本的にアップデート出来ないのに
backgroundでインストール出来ない更新ばかりくるので辛い
(UIがロックされてなにもできない、、、
JAVA_8ビルド + plugin 3.0.0-rc4 でビルド高速化ウハウハ?の考察
うーん。
— close_yutori (@kimukou2628) 2017年6月21日
compile => implementation に置換可能ならrecompile抑制で高速化できるけど
compile => api では変化無はわかるけど、可能か否かはビルド成功 or 実行時クラッシュ無認識でOK?https://t.co/JDYqmtSgob
でも思うんだけど、android の gradleビルドって
— close_yutori (@kimukou2628) 2017年6月21日
dex処理と(release時の)proguardの時間がビルド時間の大半占めていると思うんだよね・・
recompile抑制自体は UPTO-DATE 判定が正常にできれば3.5ベースでも起きてないわけだし
結局 android studio 限定で考えれば
— close_yutori (@kimukou2628) 2017年6月21日
AS独自の build-cache と gradle 3.5以降の build-cache と IDEA独自の IDE-cache があって
全部ハマれば凄く高速だけど、どれか崩れる(正常動作しない)ととたんにストレス溜まる状況
一応下記も参考にして書き換えトライとかしてみてるんですけどね・・
android grade plugin 3.0系への移行、Relam-javaだと https://t.co/x26cln1EmZ + grade wrapperの4系への更新位な感じで落ちつきそう。大半は compile -> implementationへの書き換え
— zaki50 (@zaki50) 2017年6月19日
- 単純に compile=>api に置き換えただけ
- buildの速度は上記のスライドの指摘の通り、ほとんど変わらず
Device Manager
android studio 3.0 Canary 4
— close_yutori (@kimukou2628) 2017年6月16日
sdcardって /storage/emulated/0
がアクセス出来なくて、
/sdcard というフォルダでアクセスするのかー
Yahooファイルマネージャー
と位置が違ったから戸惑った
結局、OS6/OS7実機端末だと
- /data/data/ 以下にアクセスできない
- sdcardに書き出す
- 場所がわかんないー で探した感じ。
であと、右メニューに[Sync]が新規追加されていたんだけど、これ実行すると
- remount開始
- =>対象フォルダ以下だけではなく、全スキャン
- 10分ぐらいCPUが高止まりしてAS動かせず・・
うーん。これで苦痛にならないG様の感性がわかんないですわ><
Vector Asset
— びな⚡ (@bina1204) 2017年6月19日
android studio
— close_yutori (@kimukou2628) 2017年6月19日
SVG=>VectorDrawable
shape記述無いのは変換対象ではない
変換できても
日本語フォントやレイヤー指定してるファイルは読み込み時にエラー
結局駄目やん><
何でこれ調べてたかというと、下記な話があって
本日発表した資料です
— びな⚡ (@bina1204) 2017年6月19日
Instant Apps https://t.co/5AwPZMR42r #potatotips
を読みつつも、デザイナーさんから提供されてたsvgでどうにかならんもんか調べてた感じですね。
Material Designのアプリ内導入
exception-think.hatenablog.com
TLメモ
サードパーティ機能の本体取り込みについて
あれ?なにこれ。Android Studioのバージョンなんですか?公式サポートされたかな?Convert to databinding layoutが自分が作ったやつです。
— しらじ (@shiraj_i) 2017年6月18日
ありがとうございます!自分でも調べてみます。もし公式サポートされたなら、このIntentionは消します。
— しらじ (@shiraj_i) 2017年6月18日
@chibatching Canary 3の時点でAndroid Support pluginによってサポートされているようです。機能調べてみて、同等なら削除します。レポートありがとうございました。 URL
@chibatching 発火条件が公式の方が厳しいです。ルートタグ内以外では発火しないようです。そんな制限いらんような。。。たぶん他のxmlで発火しないようにするための制限だと思うのですが。これだとカーソルの位置次第で発火出来な… URL
Convert to data binding layoutのサポート切れると喜んだけど、若干仕様が違っていて、悩ましい。公式がサポートしていない部分だけ発火するように機能変えようかな。テキストも公式に合わせるとかwAndroid Studioにパッチ送るのが最短かな。
— しらじ (@shiraj_i) 2017年6月18日
InstantRunの完成度?
InstantRunの精度はそれ程変わってない気もするな・・
最近の対応はJAVA_8ビルド対応したぐらい?(AS2.4以降)
layout Preview
多分そのためのInstant Run w
— close_yutori (@kimukou2628) 2017年6月22日
fkmさんの呟きも仕事してくれてなんぼの話なんですよね~(苦笑
てもこのスクショ機能(AS2.3からある
けど画像サイズデカ過ぎ。縮小保存機能が欲しいけど、、https://t.co/MygtFLsfNf
ですね~。
— close_yutori (@kimukou2628) 2017年6月22日
上手く表示できないカスタムパーツ系は
tools:layoutでlayout語れれば表示出来ますが
難しい場合はカスタムパーツ側のonDrawで
isInEditMode() == true
の時にダミー表示してやればいいみたい
レイアウトスクショ機能とかもココまで頑張んないと駄目orz
- 別端末に転送時の再ビルド時間コストに比べれば大分マシ
- ソース変更していないのにフルリビルドありえねーよなー
とか正直な所思うこと多々
気持ち的に
G様は InstantRun 等(最近だと databinding変換機能とか)中途半端にサードパーティで提供されていた機能を本体にいれようとするんだけど
— close_yutori (@kimukou2628) 2017年6月18日
変なこだわりか中途半端な移植で返って使いづらいんだよなーとか思う今日この頃
Roomもな・・・
自分もちょっと使ってみたけど、
— close_yutori (@kimukou2628) 2017年6月21日
サードパーティ機能をAndroid Studio の本体機能として取込むのかまわないんだけど
中途半端(なG様思想ポリシー?)に取込でて結局前より使いづらいとか有るんだよな〜とか
InstantRunしかりAnotationProcesserしかり
なのが正直な感想・・。
Devices Exploler もIDEA ULにあった機能の改善版みたいな感じですしね・・
githubのサンプルや古いプロジェクト動かす時に消耗していること
android gradle plugin
— close_yutori (@kimukou2628) 2017年6月21日
(-ω-)。githubのサンプルを動かそうとしても
25.2.3のlibraryが有りません
とかビルド出来ない=>環境修正
ビルドを通すのに難航(これで消耗
から始まるんだけど、古いモジュールとかG様が消してる認識でOKなのか?
以前はビルドできてたのになーとか思いつつ
sdkフォルダ内見るとbuild-toolsが無くなってる?インストしてなかったっけ? とかだったり
に記載されているとおり、
- ASのバージョン
- build-toolsのバージョン
- gradle pluginのバーション
- gradle runtimeのバーション
の最適組み合わせバージョンがあるので、ずれると重く/ビルドエラー になる
って話のようですが・・・*2