Slide 1

Slide 1 text

Build app fast on Android Studio 4.+ mochico / 望月美帆 Android Engineer Working at Mercari. Inc,

Slide 2

Slide 2 text

Android Studio 4.+

Slide 3

Slide 3 text

v3 and v4 signing now supported Support for Jetpack Compose New Jetpack Compose tooling support Improved instrumentation testing Android Studio Releases 4.1 4.0 4.2 Stable Beta Canary CPU profiler UI Upgrade Build Analyzer Live Layout Inspector Multi Preview Java 8 desugaring Kotlin DSL Script file support Upgrade Motion Motion Editor Android Gradle Plugin 4.0.0 Kotlin Android Live Template System Trace UI Standalone profilers Updated themes and styles in new project templates Dagger navigation support Run the Android Emulator directly Database Inspector Native Memory profiler Set the NDK path Use TensorFlow Lite models Assertions in debug builds Apply Changes Export C/C++ dependencies from AARs

Slide 4

Slide 4 text

Android Studio 4.0 Build Analyzer CPU profiler UI Upgrade Pick up New Features Android Studio 4.1 Beta Database Inspector

Slide 5

Slide 5 text

Build Analyzer

Slide 6

Slide 6 text

Build Analyzer ビルドの速度をPlugin、Taskごとに解析 Android Studio 4.0+ / Android Gradle Plugin 4.0.0+

Slide 7

Slide 7 text

Open Build Analyzer widow [View] > [Tool Windows] > [Build] > [Build Analyzer]

Slide 8

Slide 8 text

Tabs [Overview/Tasks/Warnings]

Slide 9

Slide 9 text

Tasks ビルド時間に直接影響するタスクとビルド時間を占める割合を表示する

Slide 10

Slide 10 text

Which tasks determine build duration?

Slide 11

Slide 11 text

Which tasks determine build duration? 時間のかかるタスクを改善する → 不要なローカライズリソース  を debug buildでは除外する → WebPなどで画像を最適化する

Slide 12

Slide 12 text

Warning tab ビルド速度を遅くする原因を改善方法含めて警告する

Slide 13

Slide 13 text

Build duration

Slide 14

Slide 14 text

Build duration 同じプロジェクトのビルドでもキャッシュなどの要因 でビルド時間は変動するので複数のビルドを比較 する

Slide 15

Slide 15 text

CPU Profiler

Slide 16

Slide 16 text

CPU Profiler アプリの CPU 使用量や スレッドアクティビティを解 析するツール

Slide 17

Slide 17 text

Open CPU Profiler

Slide 18

Slide 18 text

Record methods CPUの使用状況を詳細に解析するた めにメソッドコールを記録する Sample Java Methods Trace Java Methods Sample C/C++Functions Trace System Calls

Slide 19

Slide 19 text

Java Methods Sample Recording

Slide 20

Slide 20 text

Select a method call 時間のかかっているメソッドコールを選択する

Slide 21

Slide 21 text

Flame Chart 同一のコールスタックを集約し反転し たチャート 選択したメソッドコールの中で同じよう に呼び出されるメソッドまたは関数をま とめて表示する

Slide 22

Slide 22 text

Top Down メソッドコールの合計時間 メソッドコールスタックのトレース情報を呼び出し元 から順のノードで表現したグラフ そのメソッド自体の実行にかかる時間 self メソッドまたは関数呼び出しがその呼び出し先の 実行に費やした時間 Children

Slide 23

Slide 23 text

Bottom Up 呼び出し一覧から呼び出し元をノード で表現するグラフ 時間のかかっている呼び出しをフラット に見つけ出しやすい

Slide 24

Slide 24 text

Record methods (Trace System Calls) メインスレッドでフレームがレン ダリングされるまでの時間と、 RenderThread UI ジャンクと低 フレームレートの原因となるボト ルネックを調べることができる Framesで16msを超えるフレー ムは赤色で表示される

Slide 25

Slide 25 text

Improve App performance CPUのパフォーマンスを最適 化するとバッテリーのパ フォーマンスも向上する CPUだけでなくMEMORY、 NETWORK、ENERGYも使っ てアプリ全体のパフォーマン スを最適化する

Slide 26

Slide 26 text

Database Inspector

Slide 27

Slide 27 text

Database Inspector

Slide 28

Slide 28 text

Run query from the code

Slide 29

Slide 29 text

Run query

Slide 30

Slide 30 text

Database Inspector データベースを素早く確認して設計にフィードバック できる リポジトリをモックして値を書き換えてテストできる

Slide 31

Slide 31 text

Build app fast with Android Studio

Slide 32

Slide 32 text

最新のツールを使うとアプリの性能だけでなく開発の 効率を上げるので、できるだけ開発環境も最新にアッ プデートする Build app fast with Android Studio 互換性に問題が起きる場合もあるのでこまめにアップ デートする Canaryも積極的に利用しレポート、フィードバックを送 る

Slide 33

Slide 33 text

Thank you!

Slide 34

Slide 34 text

Android Studio リリースノート | Android デベロッパー | Android Developers : https://developer.android.com/studio/releases Android Developer Tools - 11 Weeks of Android - YouTube : https://www.youtube.com/playlist?list=PLWz5rJ2EKKc95jeR9iSR8g_IV5TQhkaC2 Build Analyzer Android Studio プレビュー版の新機能 | Android デベロッパー | Android Developers : https://developer.android.com/studio/preview/features/#build-attribution ビルド速度を最適化する | Android デベロッパー | Android Developers : https://developer.android.com/studio/build/optimize-your-build CPU Profiler Android Studio プレビュー版の新機能 | Android デベロッパー | Android Developers : https://developer.android.com/studio/preview/features/#4.0-profiler-ui-upgrades CPU のホットスポットを特定する | Android デベロッパー | Android Developers : https://developer.android.com/games/optimize/cpu-profiler CPU Profiler を使用して CPU アクティビティを検査する | Android デベロッパー : https://developer.android.com/studio/profile/cpu-profiler App Performance Optimization with Android Profiler | EL Passion : https://www.elpassion.com/blog/speed-up-your-app-performance-with-android-profiler Troubleshooting app performance issues with System Trace in Android Studio - YouTube : https://www.youtube.com/watch?v=EjmIit_amnE Database Inspector Android Studio プレビュー版の新機能 | Android デベロッパー | Android Developers : https://developer.android.com/studio/preview/features/#database-inspector android/sunflower: A gardening app illustrating Android development best practices with Android Jetpack. : https://github.com/android/sunflower References