Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

20141120 ぬるぬる動くandroid tips

4,482 views

Published on

第1回AndroidTips共有会で発表した内容です。
http://knowledge-collaborate.connpass.com/event/9964/

Published in: Technology
  • Be the first to comment

20141120 ぬるぬる動くandroid tips

  1. 1. ぬるぬる動くAndroid Tips 2014/11/20(木) 小西 裕介
  2. 2. 小西 裕介 @konifar /konif 株式会社 奇兵隊 エンジニア
  3. 3. わりと最近やった仕事 ポルノ写真フィルタリング • ユーザー(特に中東)の投稿がトラウマレベルの ヤバさだったので対応 • 肌色検出 & 肌色割合のロジックを地道にチューニ ング
  4. 4. 今週やった仕事 画面をぬるぬるにする • 「ぬるぬる」= 社長の口癖 • 昔の負の遺産を、血反吐吐く思いで回収
  5. 5. 今日話すこと 画面をぬるぬるにする時に役に立った知識 1. 現状のパフォーマンスを確認する方法 2. 修正 Tips
  6. 6. 1. パフォーマンスを確認
  7. 7. 便利なDeveloperモード PC・ツール不要で楽チン。すぐできる。 ! 1. Strictモード 2. GPUレンダリング分析 3. GPUオーバードロー
  8. 8. 1. strictモード パフォーマンスを低下させる Accidental disk や Network Activity を捕捉すると点滅する!
  9. 9. 2. GPUレンダリング分析 GPUの使用状況をリアルタイムで表示!
  10. 10. 2. GPUレンダリング GPUの使用状況をリアルタイムで表示! 青 : (Draw)JavaのViewの構築 にかかった時間 赤 : (Process)2D レンダリング にかかった時間 黄 : (Execute)表示の実行 にかかった時間 緑 : (Limit)60fpsの目安
  11. 11. 3. GPUオーバードロー 何回描画されてるかを可視化!
  12. 12. 3. GPUオーバードロー 何回描画されてるかを可視化! 青 : 1回(OK) 緑 : 2回(ギリギリセーフ) 赤 : 3回(ダメ) 濃赤 : 4回以上(修正必須)
  13. 13. 2. 修正 Tips
  14. 14. 修正の流れ 遅いところを探して直す ! Googleの言ってる基本原則 1. 必要ない処理をしない。 2. 不必要なメモリ割当を行わない。 ! ボトルネックをちゃんと調べるのが近道。
  15. 15. 便利ツール Android Studio なら特に簡単 ! 1. Method Tracking(TraceView) 2. DeviceMonitor(HierarchyView)
  16. 16. Method Tracking どのメソッドに時間がかかってるか 1クリックでトラッキングできる
  17. 17. Method Tracking 遅いメソッドを見つけて直す
  18. 18. Hierarchy View ビューの階層構造が一目でわかる https://www.youtube.com/watch? v=PAgE7saQUUY
  19. 19. Viewの最適化 ① narrowよりsharrowなView構造
  20. 20. Viewの最適化 ② View の backgroundをやめて Theme の windowBackgroundを使う
  21. 21. 細かい実装 Tips 1. オブジェクト生成は少なく! 2. フィールドはなるべくstaticに。 3. 定数はstatic final に。 4. Getter、Setterを避ける。 5. 拡張for文を使う。 6. インナークラスのフィールドスコープはパッ ケージスコープに。 7. floatよりint。 8. Androidライブラリメソッドを使う。
  22. 22. 細かい実装 Tips 細かいけど、発展途上国などでは スペックの超低い廉価端末が主なので こういう小さい修正が効いてくる
  23. 23. まとめ
  24. 24. まとめ 1. 提供されてるツール使うと便利。 2. Android Studio使うともっと便利。 3. すぐ試せるのでやってみるといいかも。 4. レイアウトやコードの実装に気を遣おう。
  25. 25. ありがとうございました

×