Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Extracts from "Memory Management for Android Apps"
Search
David Wu
July 06, 2011
Programming
0
130
Extracts from "Memory Management for Android Apps"
Extracts from "Memory Management for Android Apps"
David Wu
July 06, 2011
Tweet
Share
More Decks by David Wu
See All by David Wu
Development with Vert.x: an event-driven application framework for the JVM
wuman
1
230
My Trip to Google I/O 2013
wuman
1
96
A Deep Dive into Open Source Android Development
wuman
18
1.3k
Fancy Rich Text on Android - Using Roguso as an Example
wuman
2
300
Fancy Rich Text Editing on Android - Invited Open Source Software Foundation Talk
wuman
1
690
Improving Android Application Performance (Invited Talk at National Taiwan University)
wuman
5
150
Challenges of Building HTC Sense (O'Reilly Android Open Conference 2011)
wuman
0
110
Extracts from "Android Protips: Advanced Topics for Expert Android App Developers"
wuman
0
280
GTK+ Programming using Vala
wuman
0
180
Other Decks in Programming
See All in Programming
WinActorの勉強を継続する方法
tamai_63
0
130
ソースコードを美しくたもつために ~コードレビューの認知限界を突破し、年間400リリースを達成する~
kotauchisunsun
1
740
PHPコードの実行モデルを理解する / Understanding-the-PHP-Execution-Model
shin1x1
0
1.1k
Good first issues of TypeProf
mame
3
550
The Cutting Edge Of Versioning (LambdaConf 2024)
chriskrycho
0
250
Criando a Woovi em uma semana
daniloab
0
120
Open AI APIを使う前に知っておきたいアカウントTier の話
akki_megane
0
130
Findy - エンジニア向け会社紹介 / Findy Letter for Engineers
findyinc
2
74k
Exploring the Implementation of “t.Run”, “t.Parallel”, and “t.Cleanup”
akarin
1
160
TCAとKMPを用いた新規動画配信アプリ 「ABEMA Live」の設計
tomu28
2
140
TypeScriptから始める VR生活
tamagokakeg
2
110
Docker_OSS_ホスティング入門
satokoki645
0
140
Featured
See All Featured
Adopting Sorbet at Scale
ufuk
69
8.6k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
126
32k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
323
20k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
14
1.5k
Robots, Beer and Maslow
schacon
PRO
155
8k
The Invisible Side of Design
smashingmag
294
49k
Automating Front-end Workflow
addyosmani
1357
200k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
123
39k
How STYLIGHT went responsive
nonsquared
92
4.8k
Why You Should Never Use an ORM
jnunemaker
PRO
51
8.7k
Visualization
eitanlees
137
14k
KATA
mclloyd
16
12k
Transcript
Extracts from "Memory Management for Android Apps" Taipei GTUG 20110706
Meetup (http://goo.gl/VdfLK) Original Presenter Patrick Dubroy @dubroy Extract Presenter David Wu @wuman blog.wu-man.com
2 @wuman David Wu
[email protected]
blog.wu-man.com
#tossug, #h4 HTC
3 In 10 Minutes...
4 Purpose Avoid OOM errors
5 Breakdown API Changes Heap size Garbage collection
Bitmap allocations Understanding heap usage Memory leaks Logcat Memory Analyzer (MAT)
6 Heap Size Heap size limits G1: 16MB
Droid: 24MB Nexus One: 32MB Xoom: 48MB ActivityManager.getMemoryClass()
7 Large Heaps <application android:name=”com.example.foobar” andorid:largeHeap=”true” … </application>
8 Garbage Collection
9 Garbage Collection
10 Garbage Collection
11 Garbage Collection
12 Garbage Collection < Gingerbread Stop-the-world Full
heap collection Pause times often > 100ms >= Gingerbread Concurrent (mostly) Partial collections Pause times usually < 5ms
13 Bitmaps (Old)
14 Bitmaps (New)
15 Memory Leaks
16 Logcat
17 Logcat
18 Logcat
19 Logcat
20 Logcat
21 Logcat
22 Heap Dumps Create with DDMS andorid.os.Debug.dumpHprofData()
Conversion hprof-conv orig.hprof converted.hprof Analyze with MAT
23 Shallow and Retained Heap
24 Dominator Tree
25 Demo Debugging a memory leak with MAT
26 Demo
27 References Video of the session http://goo.gl/KRrx7 Original
slides http://goo.gl/0RqIZ Patrick Dubroy's blog http://dubroy.com/blog/