20141120 ぬるぬる動くandroid tips
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

20141120 ぬるぬる動くandroid tips

  • 169 views
Uploaded on

第1回AndroidTips共有会で発表した内容です。

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

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
169
On Slideshare
162
From Embeds
7
Number of Embeds
2

Actions

Shares
Downloads
1
Comments
0
Likes
3

Embeds 7

http://shotalow.hateblo.jp 11
http://knowledge-collaborate.connpass.com 8

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

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