20141120 ぬるぬる動くandroid tips

25
ぬるぬる動くAndroid Tips 2014/11/20(木) 小西 裕介

Upload: yusuke-konishi

Post on 12-Jul-2015

1.935 views

Category:

Technology


3 download

TRANSCRIPT

ぬるぬる動くAndroid Tips

2014/11/20(木) 小西 裕介

小西 裕介 @konifar /konif 株式会社 奇兵隊 エンジニア

ポルノ写真フィルタリング

• ユーザー(特に中東)の投稿がトラウマレベルのヤバさだったので対応

• 肌色検出 & 肌色割合のロジックを地道にチューニング

わりと最近やった仕事

今週やった仕事

画面をぬるぬるにする

• 「ぬるぬる」= 社長の口癖

• 昔の負の遺産を、血反吐吐く思いで回収

今日話すこと

画面をぬるぬるにする時に役に立った知識

1. 現状のパフォーマンスを確認する方法

2. 修正 Tips

1. パフォーマンスを確認

PC・ツール不要で楽チン。すぐできる。 !

1. Strictモード 2. GPUレンダリング分析 3. GPUオーバードロー

便利なDeveloperモード

パフォーマンスを低下させる Accidental disk や Network Activity を捕捉すると点滅する!

1. strictモード

2. GPUレンダリング分析GPUの使用状況をリアルタイムで表示!

2. GPUレンダリングGPUの使用状況をリアルタイムで表示!

青 : (Draw)JavaのViewの構築 にかかった時間

赤 : (Process)2D レンダリング にかかった時間

黄 : (Execute)表示の実行 にかかった時間

緑 : (Limit)60fpsの目安

3. GPUオーバードロー何回描画されてるかを可視化!

3. GPUオーバードロー何回描画されてるかを可視化!

青 : 1回(OK)

緑 : 2回(ギリギリセーフ)

赤 : 3回(ダメ)

濃赤 : 4回以上(修正必須)

2. 修正 Tips

修正の流れ

遅いところを探して直す !

Googleの言ってる基本原則 1. 必要ない処理をしない。 2. 不必要なメモリ割当を行わない。

!

ボトルネックをちゃんと調べるのが近道。

Android Studio なら特に簡単 !

1. Method Tracking(TraceView) 2. DeviceMonitor(HierarchyView)

便利ツール

どのメソッドに時間がかかってるか 1クリックでトラッキングできる

Method Tracking

遅いメソッドを見つけて直す

Method Tracking

Hierarchy Viewビューの階層構造が一目でわかる

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

Viewの最適化 ①narrowよりsharrowなView構造

Viewの最適化 ②View の backgroundをやめて

Theme の windowBackgroundを使う

1. オブジェクト生成は少なく! 2. フィールドはなるべくstaticに。 3. 定数はstatic final に。 4. Getter、Setterを避ける。 5. 拡張for文を使う。 6. インナークラスのフィールドスコープはパッ

ケージスコープに。

7. floatよりint。 8. Androidライブラリメソッドを使う。

細かい実装 Tips

細かい実装 Tips

細かいけど、発展途上国などでは スペックの超低い廉価端末が主なので こういう小さい修正が効いてくる

まとめ

1. 提供されてるツール使うと便利。 2. Android Studio使うともっと便利。 3. すぐ試せるのでやってみるといいかも。 4. レイアウトやコードの実装に気を遣おう。

まとめ

ありがとうございました