$30 off During Our Annual Pro Sale. View Details »

Build app fast on Android Studio 4.+

mochico
August 04, 2020

Build app fast on Android Studio 4.+

Android 11 Meetups にて、Android Studio 4.0以降に追加された Build Analyzer、CPU Profiler、Database Inspectorなどの新機能を使って効率的に高性能なアプリを開発する方法について発表しました。
https://developersonair.withgoogle.com/events/a11meetups-jp/watch?talk=android-dev-tool
Android 11 Meetups は Android 11 Beta のリリースを機に、アプリ開発の最新技術情報をお届けすべく、Google と GDG (Google Developer Groups)が共催するオンラインセミナーシリーズです。

mochico

August 04, 2020
Tweet

More Decks by mochico

Other Decks in Technology

Transcript

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

    View Slide

  2. Android Studio 4.+

    View Slide

  3. 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

    View Slide

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

    View Slide

  5. Build Analyzer

    View Slide

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

    View Slide

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

    View Slide

  8. Tabs [Overview/Tasks/Warnings]

    View Slide

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

    View Slide

  10. Which tasks determine build duration?

    View Slide

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

    View Slide

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

    View Slide

  13. Build duration

    View Slide

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

    View Slide

  15. CPU Profiler

    View Slide

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

    View Slide

  17. Open CPU Profiler

    View Slide

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

    View Slide

  19. Java Methods Sample Recording

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  26. Database Inspector

    View Slide

  27. Database Inspector

    View Slide

  28. Run query from the code

    View Slide

  29. Run query

    View Slide

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

    View Slide

  31. Build app fast with
    Android Studio

    View Slide

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

    View Slide

  33. Thank you!

    View Slide

  34. 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

    View Slide