Engineer for High Performance with Tools from Android & Play
パフォーマンス向上のための解析ツールを紹介します。
パフォーマンスの低下や改善がユーザー体験に与える影響をプロダクトのインストール数など指標を踏まえて紹介しているので納得感があります。Google PlayのAndroid VitalsやCrashesレポート、Android Studio 3.0のAndroid Profiler、FirebaseのJobDispatcherライブラリが登場しています。
Best Practices for Android Audio
低レイテンシのオーディオ制御について録音と再生の2つの処理系での処理手順を説明し、Androidでの注意点を解説します。特に再生系に関しては高速な処理が求められるため、コールバックではデータを取得しバッファに詰めることに集中してください。それ以外の処理、たとえばメモリの確保、スレッドの同期待ち、といった時間がかかる処理は極力さけてください。
ここで問題となるのはシーケンサーのようなユーザー操作が伴う音楽アプリの場合です。タッチやキー入力がない場合にCPU速度は低下します。次のユーザー操作でクロックアップしますが、反応に遅れがでてしまいます。このようなグリッチを防ぐためにCPUクロックを保つAPIを追加しています。また、より高度な処理のためにAndroid OではAAudioを用意しています。後半ではAAudioの基本的な使い方について解説します。Google ではAAudioのCPPwrapperを用意しており、AAudioがない場合はOpenSL ESにダイナミックスイッチできるようになります。wrapperはオープンソースで提供予定です。
Android Apps for Chromebooks and Large Screen Devices
Chrome OSでAndroidアプリが使えるようになってしばらく立ちますが、アメリカでは低価格ノートブックとして一定の地位を占めています(一方日本では教育向け展開が目立ち、コンシューマではあまり注目されていません)。
本セッションではAndroidアプリをChromebookのような大画面デバイスへ適用する方法を解説します。インプットデバイスやスタイラスへの対応、キーボードからの入力や画面のデフォルトの向きなど違いについて丁寧に説明しており、ユーザー体験の向上の手がかりが得られます。