Edited at

Android Studio3.5の変更点をもっと詳しく知りたい..!


はじめに

2019年8月21日(日本時間)にAndroid Studio3.5がリリースされました!

今回のアップデートはとてもアツい更新でした。

Impressやマイナビが次のようにニュースにしていました。


「Android Studio 3.5」が正式リリース ~「Chrome OS 75」以降を新たに公式サポート

https://forest.watch.impress.co.jp/docs/news/1202489.html

Android Studio 3.5登場 - プロジェクトマーブルの成果あり

https://news.mynavi.jp/article/20190823-881338/


つまりニュースを見ると、Android Studio 3.5 は『プロジェクトマーブル』の成果で、

『メモリ設定』や『インクリメンタル・ビルド』が改善されて、

『IntelliJ 2019.1』ベースになり『Chrome OS 75』に対応されたことがよくわかります..

_人人人人人人人人人人_

> よくわからない! <

 ̄Y^Y^Y^Y^Y^Y^Y^Y^Y ̄


公式記事を読む


Android Studio release notes 3.5 (August 2019)

https://developer.android.com/studio/releases#3-5-0

Android Studio 3.5: Project Marble goes into stable

https://android-developers.googleblog.com/2019/08/android-studio-35-project-marble-goes.html


公式記事は上記です。ニュース記事をディスっているわけではなく、

更新内容がかなり濃く、量も多いので理解するのは至難の業です。

まとめたので次へ進んでもよいし、上記記事をよく読んで引き返してもよい。

↓次へ


不明点まとめてみた

自分がわからなかったところを調べつつまとめたのが以下となります。


Project Marbleって?

個人的に一番良くわからなかったのが"Project Marble"でした。

調べると"Project Marble"という言葉が出たのはAndroid Studio 3.3リリースからです。


Android Studio 3.3

https://android-developers.googleblog.com/2019/01/android-studio-33.html


記事を一部訳すと以下となります。


Project Marbleは、Android Studioチームが統合開発環境(IDE)の基本的な機能とフローを強固なものにし、日々のアプリ開発で重要なユーザー向け機能の洗練および洗練することに焦点を当てています。

ワークフロー

Project Marbleでは、クラッシュ、ハング、メモリリーク、ユーザーに影響を与えるバグの数を減らすことを特に検討しています。また、これらの問題の発生を防ぐために、測定インフラストラクチャにも投資しています。


特定の機能改善と言うよりは重要な箇所の修正・改善を行うプロジェクトで、

不具合修正や不具合防止の測定に力をいれているようです。

Project Marbleの成果は、以下Google Developer Japanの記事で日本語でまとめられていました。


Android Studio 3.5 ベータ版

https://developers-jp.googleblog.com/2019/06/android-studio-35-beta.html


Android Studio 3.5では以下の修正が行われており、

どれも開発効率の向上に直結するうれしい改善ばかりです。


  • メモリ使用量レポート機能の追加

  • 多端末での実行機能

  • Apply Changed機能

  • ビルドエラー出力の改善

  • Lintのメモリリーク修正よりパフォーマンスが2倍近く向上

  • XMLコード編集の最適化

  • エミュレータのバックグラウンドでのCPU使用量が3分の1以下

  • レイアウトエディタの操作性改善

原文記事はMediumで「project-marble」タグでまとめられています。

https://medium.com/tag/project-marble/archive


インクリメンタルビルドとは?


Android Studio のビルドを高速化する

https://developers-jp.googleblog.com/2019/05/android-studio.html


インクリメンタルビルドは、更新のあるファイルのみビルド対象にするように最適化されたビルドです。

Android Studioでは3.3以降からアノテーション処理もインクリメンタルビルドに対応(incremental annotation processors)し、

3.5ではData Bindingも対応しました。


Use incremental annotation processors

https://developer.android.com/studio/build/optimize-your-build.html#annotation_processors

※日本語版は最新ドキュメントではありません。英語版を開いてください。


現状ではAndroid Gradle plugin 3.3.0+、Gradle 4.10.1+ (ただしGradle 5.1を除く)である必要があります。

以下のincremental annotation processorsに対応しています。


  • Data Binding Library with Android Gradle plugin 3.5.0+

  • Lombok 1.16.22+

  • Glide 4.9.0+

  • Dagger 2.18+

  • Auto Service and Auto Value 1.6.3+

  • kapt 1.3.30+

以下YouTubeの解説動画によると、

DataBindingとkaptのincremental対応はgradle.propertiesに以下の設定が必要です。


What’s New in Android Studio 3.5

https://www.youtube.com/watch?v=OJ3K90FpQ6A


スクリーンショット 2019-08-24 4.24.49.png


gradle.properties

# Data Binding

android.databinding.incremental=true
# kapt
kapt.incremental.apt=true

また、最適化をサポートしていないアノテーションプロセッサを使用する必要がある場合は、

gradle.propertiesに以下のフラグを追加します。


gradle.properties

android.enableSeparateAnnotationProcessing = true



メモリ設定の改善とは?


Maximum heap size

https://developer.android.com/studio/intro/studio-config#adjusting_heap_size

※日本語版は最新ドキュメントではありません。英語版を開いてください。


Android Studioのデフォルトの最大ヒープメモリサイズは1280MBです。

今までは studio.vmoptions ファイルに -Xmx2g など指定して最大ヒープメモリサイズ変更を行いましたが、

(64bitでRAMが5GB以上ある場合に限り)設定画面からヒープ変更を行えるようになりました。

起動時に推奨メモリ量を表示したり、Kotlinのヒープ、Gradleのヒープなど詳細を設定できるようになりました。

memory-settings.png


IntelliJ IDEA 2019.1がベースとは?

IntelliJ IDEA 2019.1の詳細は以下Jetbrainsのリリースノートにあります。


IntelliJ IDEA 2019.1がリリースされました! テーマのカスタマイズ、Java 12のSwitch式、Dockerコンテナ内でのデバッグなど

https://blog.jetbrains.com/jp/2019/04/05/1898


Android Studio 3.5はIntelliJ IDEA 2019.1ベースとなり、2018.3.5, 2018.3.6の修正も含まれています。

2019.1での大きな変更はテーマの変更で、Appearanceの設定項目が増えました。

KotlinやJavaのハイライト強化, サジェスト強化などもあります。


Chrome OS 75?

Chromebook向けAndroid Studioが公式サポートとなりました。

推奨端末はダウンロードページで挙げられています。


Acer: Chromebook 13/Spin 13, Chromebox CXI3

Lenovo: Yoga C630 Chromebook

HP: Chromebook x360 14, Chromebox G2

Dell: Inspiron Chromebook 14

ASUS: Chromebox 3

ViewSonic: NMP660 Chromebox

CTL: Chromebox CBx1



感想

実は前から

「1日エミュレータつけっぱなしにするとMacの調子がおかしくなるような気がする..」

「DataBindingの挙動がなんかおかしい気がする..」

など思っており、モヤモヤしていたところがProject Marbleで解決され、

さらにその工程がblog記事で事細かに解説しているのがありがたいです。

Lint速度2倍はすごい!

Android Studio3.5はエミュレータ含めかなりサクサク動作する(気がする)のでアップデートおすすめです。


追記: Android Studio 3.5の既知の不具合

8/24現在、xmlをフォーマットすると誤った状態になる不具合があると公式で発表がありました。


Known Issues with Android Studio: Broken XML code style

https://developer.android.com/studio/known-issues#xml-code-style


以下の方法で回避可能とのこと。



  1. Open the Settings window by clicking File > Settings (on macOS, Android Studio > Preferences).

  2. In the left panel, click Editor > Code Style > XML.

  3. Near the top-right corner of the right panel, select Set from > Predefined Style > Android

  4. Click OK.