Androidのパフォーマンス改善に関わる3つのセッションを紹介します。始めの2つはAndroidアプリのパフォーマンスチューニングについて。新しい解析ツール「Android Profiler」やdumpsys, systraceコマンドを使い描画性能を可視化、ボトルネックの解消を目指していきます。3つ目のセッションはアプリ開発中のビルドを高速化します。Gradleの設定を見直し、必要な変更点のみに絞ることでより良いビルドパラメータを得られます。
Android Performance: An Overview
パフォーマンスをあげるためのポイントを紹介しているセッションです。60FPSの確保、アプリ起動高速化がユーザーに与える影響が大きく、体験の観点から重要という点を強調しています。
描画のチューニングはダンプ情報(adb shell dumpsys gfxinfo package.name)を使えばアプリの描画情報が取得できます。Systraceコマンドではイベントやプロセス、アプリの状態を解析可能です。ここでは実際にSystraceをつかってボトルネック解析する手法を紹介しています。キーワードはDon’t Look Slow。重い処理であっても遅く見えないように工夫してほしいと実際の処理とパフォーマンスのバランスに言及しています。
Android Performance: UI
Android UI Toolkit TeamによるUI パフォーマンスの改善を目指すセッションです。UIのパフォーマンス指標としてFPS(1 秒間の描画回数、スムーズな描画の指標)を使います。ここではAndroid Studio 3.0で新しくなった解析ツール「Android System Trace」を使ってUIスレッドの処理を遅くする原因を探ります。解析手法を学習できるほか、問題のあるフレーム(描画が遅い処理)を探し、通常のフレームとの違いを知ることができます。
- https://developer.android.com/topic/performance/vitals/index.html
- https://developer.android.com/topic/performance/vitals/render.html
Google Play Console のAndroid Vitalsダッシュボードを使えばユーザーの端末でのパフォーマンスを確認できます。現状を把握することは、機能変更が悪影響を及ぼしても早期に異常を検出することにつながります。見つかったレンダリング速度の遅延はSystraceなど解析ツールをつかって改善してください。パフォーマンスを維持することはアプリの体験向上に役立ちます。
Speeding Up Your Android Gradle Builds
ビルド速度を上げるGradleのTipsについて。セッションでは例となるプロジェクトを用意し、それぞれのTipsを実行することでどの程度早くなったか、ベンチマークを取りながら説明しているので差がわかりやすく、すぐに使える内容になっています。
全部で10 個のTipsがありますが、原則として開発時に不要なものを削除したり、Android Manifestやプラグインバージョンなど変更の必要がないものを固定したり、設定の適正化を図っています。ビルドプロセスを最適化していくことを目的としたセッションです。