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

20141120 ぬるぬる動くandroid tips

Jul 12, 2015

Download

Technology

Yusuke Konishi
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 20141120 ぬるぬる動くandroid tips

ぬるぬる動くAndroid Tips

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

Page 2: 20141120 ぬるぬる動くandroid tips

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

Page 3: 20141120 ぬるぬる動くandroid tips

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

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

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

わりと最近やった仕事

Page 4: 20141120 ぬるぬる動くandroid tips

今週やった仕事

画面をぬるぬるにする

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

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

Page 5: 20141120 ぬるぬる動くandroid tips

今日話すこと

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

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

2. 修正 Tips

Page 6: 20141120 ぬるぬる動くandroid tips

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

Page 7: 20141120 ぬるぬる動くandroid tips

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

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

便利なDeveloperモード

Page 8: 20141120 ぬるぬる動くandroid tips

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

1. strictモード

Page 9: 20141120 ぬるぬる動くandroid tips

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

Page 10: 20141120 ぬるぬる動くandroid tips

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

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

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

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

緑 : (Limit)60fpsの目安

Page 11: 20141120 ぬるぬる動くandroid tips

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

Page 12: 20141120 ぬるぬる動くandroid tips

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

青 : 1回(OK)

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

赤 : 3回(ダメ)

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

Page 13: 20141120 ぬるぬる動くandroid tips

2. 修正 Tips

Page 14: 20141120 ぬるぬる動くandroid tips

修正の流れ

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

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

!

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

Page 15: 20141120 ぬるぬる動くandroid tips

Android Studio なら特に簡単 !

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

便利ツール

Page 16: 20141120 ぬるぬる動くandroid tips

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

Method Tracking

Page 17: 20141120 ぬるぬる動くandroid tips

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

Method Tracking

Page 18: 20141120 ぬるぬる動くandroid tips

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

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

Page 19: 20141120 ぬるぬる動くandroid tips

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

Page 20: 20141120 ぬるぬる動くandroid tips

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

Theme の windowBackgroundを使う

Page 21: 20141120 ぬるぬる動くandroid tips

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

ケージスコープに。

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

細かい実装 Tips

Page 22: 20141120 ぬるぬる動くandroid tips

細かい実装 Tips

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

Page 23: 20141120 ぬるぬる動くandroid tips

まとめ

Page 24: 20141120 ぬるぬる動くandroid tips

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

まとめ

Page 25: 20141120 ぬるぬる動くandroid tips

ありがとうございました