SlideShare a Scribd company logo
ぬるぬる動くAndroid Tips 
2014/11/20(木) 
小西 裕介
小西 裕介 
@konifar /konif 
株式会社 奇兵隊 エンジニア
わりと最近やった仕事 
ポルノ写真フィルタリング 
• ユーザー(特に中東)の投稿がトラウマレベルの 
ヤバさだったので対応 
• 肌色検出 & 肌色割合のロジックを地道にチューニ 
ング
今週やった仕事 
画面をぬるぬるにする 
• 「ぬるぬる」= 社長の口癖 
• 昔の負の遺産を、血反吐吐く思いで回収
今日話すこと 
画面をぬるぬるにする時に役に立った知識 
1. 現状のパフォーマンスを確認する方法 
2. 修正 Tips
1. パフォーマンスを確認
便利なDeveloperモード 
PC・ツール不要で楽チン。すぐできる。 
! 
1. Strictモード 
2. GPUレンダリング分析 
3. GPUオーバードロー
1. strictモード 
パフォーマンスを低下させる Accidental disk 
や Network Activity を捕捉すると点滅する!
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)
Method Tracking 
どのメソッドに時間がかかってるか 
1クリックでトラッキングできる
Method Tracking 
遅いメソッドを見つけて直す
Hierarchy View 
ビューの階層構造が一目でわかる 
https://www.youtube.com/watch? 
v=PAgE7saQUUY
Viewの最適化 ① 
narrowよりsharrowなView構造
Viewの最適化 ② 
View の backgroundをやめて 
Theme の windowBackgroundを使う
細かい実装 Tips 
1. オブジェクト生成は少なく! 
2. フィールドはなるべくstaticに。 
3. 定数はstatic final に。 
4. Getter、Setterを避ける。 
5. 拡張for文を使う。 
6. インナークラスのフィールドスコープはパッ 
ケージスコープに。 
7. floatよりint。 
8. Androidライブラリメソッドを使う。
細かい実装 Tips 
細かいけど、発展途上国などでは 
スペックの超低い廉価端末が主なので 
こういう小さい修正が効いてくる
まとめ
まとめ 
1. 提供されてるツール使うと便利。 
2. Android Studio使うともっと便利。 
3. すぐ試せるのでやってみるといいかも。 
4. レイアウトやコードの実装に気を遣おう。
ありがとうございました

More Related Content

PDF
Windowsでの自動化の手段
PPTX
Stac2014 石川
PDF
GUI Test is (not) necessary
PPTX
価値あるシステムテスト自動化の実現By friendly
PDF
テスト自動化読書会 第3章 20150523
PPTX
【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上
PPTX
Friendlyで始めるwindowsアプリシステムテスト自動化+内部使用技術解説
PDF
実践で学ぶ、効率的な自動テストスクリプトのメンテナンス
Windowsでの自動化の手段
Stac2014 石川
GUI Test is (not) necessary
価値あるシステムテスト自動化の実現By friendly
テスト自動化読書会 第3章 20150523
【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上
Friendlyで始めるwindowsアプリシステムテスト自動化+内部使用技術解説
実践で学ぶ、効率的な自動テストスクリプトのメンテナンス

What's hot (20)

PDF
エンタープライズシステムにおけるテスト ~STE研究交流会 参加者の視点から ~
PDF
XP祭り2013-LT-Codeer
PDF
「UI自動テストツールとAI」〜AIを使った自動テストの「今」と「未来」〜
PDF
20181102_テスト管理を語る夕べ
PDF
ギアと開発とわたし_AAA2015
PDF
SeasarCon 2009 White TDD
PDF
java-ja TDD 2nd
PDF
1時間で分かるSTA (Software Test Automation) #stac2014
PDF
20121019 jenkins勉強会lt資料
PDF
Jasst14東北 事例発表 share
PDF
第2回nseg slideshare
PDF
ディープラーニングとAppiumでモバイルテスト自動化
PDF
詳解!自動結合テスト #jasst
PDF
20140128 tel@cafe selenium編
PDF
テストの自動化を考える前に
PDF
Embedded Master2
PDF
Mackerelに触れる前にサーバー監視について考えてみよう
 
PPTX
20131201 テスト自動化カンファレンスLT「激しいUI変更との戦い」
PDF
自動化を支えるCI/CDツールの私の選択 ~何をするためにCI/CDツールを選ぶか~
PPTX
プログラムで映像をつくるとは?? ~超入門編~
エンタープライズシステムにおけるテスト ~STE研究交流会 参加者の視点から ~
XP祭り2013-LT-Codeer
「UI自動テストツールとAI」〜AIを使った自動テストの「今」と「未来」〜
20181102_テスト管理を語る夕べ
ギアと開発とわたし_AAA2015
SeasarCon 2009 White TDD
java-ja TDD 2nd
1時間で分かるSTA (Software Test Automation) #stac2014
20121019 jenkins勉強会lt資料
Jasst14東北 事例発表 share
第2回nseg slideshare
ディープラーニングとAppiumでモバイルテスト自動化
詳解!自動結合テスト #jasst
20140128 tel@cafe selenium編
テストの自動化を考える前に
Embedded Master2
Mackerelに触れる前にサーバー監視について考えてみよう
 
20131201 テスト自動化カンファレンスLT「激しいUI変更との戦い」
自動化を支えるCI/CDツールの私の選択 ~何をするためにCI/CDツールを選ぶか~
プログラムで映像をつくるとは?? ~超入門編~
Ad

Viewers also liked (20)

PDF
ログ管理でウキウキAndroid Life (Log Management in Android)
PDF
Reactive android
PDF
ちょっとGoogle Analyticsの話しようぜ
PDF
ビルドプロセスとCI #STAC2014
PDF
Pudule live cording
PDF
Android2でも動くMaterialデザイン実装
PPTX
Genymotion with Jenkins
PDF
Android wear ui guidelines ( and Circle Design UX )
PDF
Shared Preferences Anti Pattern
PDF
Continous UI testing with Espresso and Jenkins
PDF
王道的な使い方 Android Wear
PDF
Android Wearアプリ開発経験談
PDF
ANCSとAndroid Wear徹底比較
PDF
開発効率アンチパターン
PPTX
自動テストとJenkinsの活用 公開版
PDF
Effective SQLite For Android
PDF
#STAC2014 状態遷移を活用した自動テストのテスト戦略とデプロイメントパイプライン
PDF
Androidテスティング実践3 ユニットテスト・CI編
PDF
GUI自動テストの保守性を高めるには
PDF
「自動家(オートメータ)をつくる」-システムテスト自動化カンファレンス2014 「.reviewrc」枠発表-
ログ管理でウキウキAndroid Life (Log Management in Android)
Reactive android
ちょっとGoogle Analyticsの話しようぜ
ビルドプロセスとCI #STAC2014
Pudule live cording
Android2でも動くMaterialデザイン実装
Genymotion with Jenkins
Android wear ui guidelines ( and Circle Design UX )
Shared Preferences Anti Pattern
Continous UI testing with Espresso and Jenkins
王道的な使い方 Android Wear
Android Wearアプリ開発経験談
ANCSとAndroid Wear徹底比較
開発効率アンチパターン
自動テストとJenkinsの活用 公開版
Effective SQLite For Android
#STAC2014 状態遷移を活用した自動テストのテスト戦略とデプロイメントパイプライン
Androidテスティング実践3 ユニットテスト・CI編
GUI自動テストの保守性を高めるには
「自動家(オートメータ)をつくる」-システムテスト自動化カンファレンス2014 「.reviewrc」枠発表-
Ad

Similar to 20141120 ぬるぬる動くandroid tips (20)

PDF
地図を捨ててコンパスを頼りに進め
PDF
地図を捨ててコンパスを頼りに進め
PDF
サーバ擬人化ユーザ会キックオフ資料 Slideshare ver
PDF
【Unite Tokyo 2018】非プログラマでもできる!簡単プロジェクト管理&マネタイゼーション術!
PDF
情報理工Android勉強会第一回大将Part
PDF
やりたいことをプロダクトにねじ込む技術とねじ込んだ結果
PPTX
01 idea table3.0
PDF
リモート・スマホ・レンタル
PDF
コンテナー型仮想環境の情報交換会
PDF
スマートフォンサイト制作 よくあるトラブルと 解決方法・回避方法
PDF
Jaws days2014 app stream動画なし
PDF
DeNA Creative Seminar #2 に行ってきた
PDF
管理画面チラ見せナイト
PDF
Android向けUnity製ゲーム最適化のためのCI/CDと連携した自動プロファイリングシステム
PDF
iPhone アプリ開発の実例
PDF
BOOTHアイテム登録画面の回収プロジェクトペーパープロトタイプ.pdf
PDF
ビジュアライゼーションの役割とUI開発のイノベーション(2)
PDF
Androidアプリ 長い黒髪のマイカノジョ 制作ノート
PDF
アニメーション(のためのパフォーマンス)の基礎知識
KEY
初心者向けAndroidゲーム開発ノウハウ
地図を捨ててコンパスを頼りに進め
地図を捨ててコンパスを頼りに進め
サーバ擬人化ユーザ会キックオフ資料 Slideshare ver
【Unite Tokyo 2018】非プログラマでもできる!簡単プロジェクト管理&マネタイゼーション術!
情報理工Android勉強会第一回大将Part
やりたいことをプロダクトにねじ込む技術とねじ込んだ結果
01 idea table3.0
リモート・スマホ・レンタル
コンテナー型仮想環境の情報交換会
スマートフォンサイト制作 よくあるトラブルと 解決方法・回避方法
Jaws days2014 app stream動画なし
DeNA Creative Seminar #2 に行ってきた
管理画面チラ見せナイト
Android向けUnity製ゲーム最適化のためのCI/CDと連携した自動プロファイリングシステム
iPhone アプリ開発の実例
BOOTHアイテム登録画面の回収プロジェクトペーパープロトタイプ.pdf
ビジュアライゼーションの役割とUI開発のイノベーション(2)
Androidアプリ 長い黒髪のマイカノジョ 制作ノート
アニメーション(のためのパフォーマンス)の基礎知識
初心者向けAndroidゲーム開発ノウハウ

20141120 ぬるぬる動くandroid tips