SlideShare una empresa de Scribd logo
1 de 28
Descargar para leer sin conexión
Memory Tuning
Android for Low-RAM
Devices
Chris Kühl & Iago López Galeiras, Endocode AG
What's low-RAM?
< 512MB
512MB? That's so 2012!
Why do that to yourself?
You have no choice ;)
Mod-maintainer for older device
Android on embedded devices
Virtualized Android, anyone?
What to tune?
Apps
Dalvik VM
Activity Manager
Linux kernel
Apps
Be a good citizen
Apps that manage their own memory well make the whole
system run better
Keep Your Apps Trim
Google says,
You should implement onTrimMemory(int) to
incrementally release memory based on current
system constraints.
7 Trim Levels
Running Cached
TRIM_MEMORY_RUNNING_MODERATE TRIM_MEMORY_BACKGROUND
TRIM_MEMORY_RUNNING_LOW TRIM_MEMORY_MODERATE
TRIM_MEMORY_RUNNING_CRITICAL TRIM_MEMORY_COMPLETE
...and TRIM_MEMORY_UI_HIDDEN
TRIM_MEMORY_COMPLETE ≈ onLowMemory
Dalvik VM
Android Java VM
DEX format
Zygote
Dalvik is chatty
Dalvik's logcat output can paint a pretty good picture.
12-3015:35:43.135:D/dalvikvm(15368):GC_EXPLICITfreed39K,66%free2349K/6788K,p
aused24ms+8ms,total129ms
12-3015:35:43.682:D/dalvikvm(15368):GC_CONCURRENTfreed282K,5%free10382K/10823
K,paused5ms+4ms
12-3015:35:44.043:D/dalvikvm(15368):GC_CONCURRENTfreed319K,5%free10507K/10951
K,paused3ms+3ms
12-3015:35:44.723:D/dalvikvm(15368):GC_CONCURRENTfreed364K,5%free10568K/11079
K,paused3ms+4ms
12-3015:35:44.803:D/dalvikvm(15368):GC_FOR_ALLOCfreed312K,6%free10549K/11207K
,paused31ms
12-3015:35:45.034:D/dalvikvm(15368):GC_FOR_ALLOCfreed316K,6%free10542K/11207K
,paused48ms
12-3015:35:45.074:D/dalvikvm(15368):GC_FOR_ALLOCfreed1K,6%free10631K/11207K,
paused43ms
Dalvik Properties
Generally set these in PRODUCT_PROPERTY_OVERRIDES.
PRODUCT_PROPERTY_OVERRIDES:=
dalvik.vm.heapstartsize=5m
dalvik.vm.heapgrowthlimit=64m
dalvik.vm.heapsize=128m
dalvik.vm.heaptargetutilization=0.80
dalvik.vm.heapminfree=512k
dalvik.vm.heapmaxfree=2m
Dalvik VM - JIT
Google says...
For the really low-memory devices, we recommend
the JIT be disabled entirely.
Can save up to 1.5MB per process!
ActivityManager
Managing activities since 2008
ActivityManager & Memory
management
Continually ranks apps based on their importance to the user.
Adjustments
staticfinalintHIDDEN_APP_MAX_ADJ=15;
staticintHIDDEN_APP_MIN_ADJ=9;
staticfinalintSERVICE_B_ADJ=8;
staticfinalintPREVIOUS_APP_ADJ=7;
staticfinalintHOME_APP_ADJ=6;
staticfinalintSERVICE_ADJ=5;
staticfinalintBACKUP_APP_ADJ=4;
staticfinalintHEAVY_WEIGHT_APP_ADJ=3;
staticfinalintPERCEPTIBLE_APP_ADJ=2;
staticfinalintVISIBLE_APP_ADJ=1;
staticfinalintFOREGROUND_APP_ADJ=0;
staticfinalintPERSISTENT_PROC_ADJ=-12;
staticfinalintSYSTEM_ADJ=-16;
lowmemorykiller
A kernel module to preempt the oom and provide an interface
for user-space to prioritize apps
cat/sys/module/lowmemorykiller/parameters/adj
0,1,2,4,9,15
cat/sys/module/lowmemorykiller/parameters/minfree
3031,4218,5406,7454,8642,10158
Configuring
lowmemorykiller
privatefinalint[]mOomAdj=newint[]{
FOREGROUND_APP_ADJ,VISIBLE_APP_ADJ,PERCEPTIBLE_APP_ADJ,
BACKUP_APP_ADJ,HIDDEN_APP_MIN_ADJ,HIDDEN_APP_MAX_ADJ
};
privatefinallong[]mOomMinFreeLow=newlong[]{
8192,12288,16384,
24576,28672,32768
};
privatefinallong[]mOomMinFreeHigh=newlong[]{
32768,40960,49152,
57344,65536,81920
};
dumpsys meminfo
TotalPSSbyOOMadjustment:
18642kB:System
18642kB:system(pid451)
13979kB:Persistent
9884kB:com.android.systemui(pid1791)
4095kB:com.android.phone(pid689)
18349kB:Foreground
18349kB:com.android.launcher(pid3106)
18895kB:Visible
9498kB:com.google.process.gapps(pid735)
7078kB:com.google.process.location(pid667)
2319kB:com.android.smspush(pid795)
8222kB:Perceptible
5623kB:com.android.inputmethod.latin(pid646)
2599kB:com.android.location.fused(pid676)
2810kB:AServices
2810kB:de.telekom.droidsync(pid3117)
45844kB:Background
14552kB:android.process.acore(pid3133)
5566kB:com.google.android.syncadapters.calendar(pid3270)
5475kB:com.google.android.apps.genie.geniewidget(pid3185)
4940kB:com.google.android.gsf.login(pid3254)
4362kB:com.android.browser(pid3359)
3898kB:com.android.calendar(pid3305)
3691kB:com.android.providers.calendar(pid3286)
3360kB:com.cyanogenmod.lockclock(pid3327)
dumpsys activity oom (1/3)
OOMlevels:
SYSTEM_ADJ:-16
PERSISTENT_PROC_ADJ:-12
FOREGROUND_APP_ADJ:0
VISIBLE_APP_ADJ:1
PERCEPTIBLE_APP_ADJ:2
HEAVY_WEIGHT_APP_ADJ:3
BACKUP_APP_ADJ:4
SERVICE_ADJ:5
HOME_APP_ADJ:6
PREVIOUS_APP_ADJ:7
SERVICE_B_ADJ:8
HIDDEN_APP_MIN_ADJ:10
HIDDEN_APP_MAX_ADJ:15
dumpsys activity oom (2/3)
ProcessOOMcontrol:
PERS#7:adj=sys /F trm=15451:system/1000(fixed)
oom:max=-16hidden=10client=10empty=10curRaw=-16setRaw=-16cur=-16set=-16
keeping=truehidden=falseempty=falsehasAboveClient=false
PERS#10:adj=pers/F trm=15689:com.android.phone/1001(fixed)
oom:max=-12hidden=10client=10empty=10curRaw=-12setRaw=-12cur=-12set=-12
keeping=truehidden=falseempty=falsehasAboveClient=false
PERS#3:adj=pers/F trm=151791:com.android.systemui/u0a10030(fixed)
oom:max=-12hidden=10client=10empty=10curRaw=-12setRaw=-12cur=-12set=-12
keeping=truehidden=falseempty=falsehasAboveClient=false
Proc#0:adj=fore/FAtrm=153106:com.android.launcher/u0a10022(top-activity)
oom:max=15hidden=10client=10empty=10curRaw=0setRaw=0cur=0set=0
keeping=truehidden=falseempty=falsehasAboveClient=false
Proc#9:adj=vis /F trm=15795:com.android.smspush/u0a10032(service)
com.android.smspush/.WapPushManager<=Proc{689:com.android.phone/1001}
oom:max=15hidden=10client=10empty=10curRaw=1setRaw=1cur=1set=1
keeping=truehidden=falseempty=truehasAboveClient=false
dumpsys activity oom (3/3)
ProcessesthatarewaitingtoGC:
ProcessProcessRecord{422a4260735:com.google.process.gapps/u0a10033}
lowMem=true,lastgced=3110616msago,lastlowMem=18198msago
ProcessProcessRecord{422f13b0451:system/1000}
lowMem=true,lastgced=3110616msago,lastlowMem=18198msago
ProcessProcessRecord{4247c388667:com.google.process.location/u0a10033}
lowMem=true,lastgced=3110616msago,lastlowMem=18198msago
ProcessProcessRecord{4231a630646:com.android.inputmethod.latin/u0a10021}
lowMem=true,lastgced=3110616msago,lastlowMem=18198msago
ProcessProcessRecord{4250cfe0676:com.android.location.fused/u0a10018}
lowMem=true,lastgced=3110616msago,lastlowMem=18198msago
ProcessProcessRecord{422f2dd81791:com.android.systemui/u0a10030}
lowMem=true,lastgced=3110616msago,lastlowMem=18198msago
Now for the
Kernel Bits
KSM
Kernel SamePage Merging
KSM can save about 20-30MB of RAM if given a chance
Enabling KSM
This is easy-peasy
echo1|tee/sys/kernel/mm/ksm/run
echo1000|tee/sys/kernel/mm/ksm/sleep_millisecs
echo128|tee/sys/kernel/mm/ksm/pages_to_scan
Oh yeah...
You need to mark pages as mergeable.
void*mmap(void*addr,size_tsize,intprot,intflags,intfd,off_toffset){
...
if(result!=MAP_FAILED&&(flags&(MAP_PRIVATE|MAP_ANONYMOUS))!=0){
ErrnoRestorererrno_restorer;
madvise(result,size,MADV_MERGEABLE);
}
returnresult;
}
Is it working?
dumpsys meminfo answers this
TotalPSS:126741kB
KSM:6672kBsavedfromshared1128kB
24552kBunshared;102936kBvolatile
extra_free_kbytes
Raises the low water mark used to trigger kswapd
References
Dalvik VM Internals - 2008 Google I/O
A JIT Compiler for Android's Dalvik VM - 2010 Google I/O
Running Android with low RAM
Managing Your App's Memory
Investigating your RAM Usage
Understanding the Linux Virtual Memory Manager - Zones
Reducing Memory Access Lateny
THE END

Más contenido relacionado

La actualidad más candente

An Introduction to Test Driven Development
An Introduction to Test Driven Development An Introduction to Test Driven Development
An Introduction to Test Driven Development CodeOps Technologies LLP
 
Network Performance: Making Every Packet Count - NET401 - re:Invent 2017
Network Performance: Making Every Packet Count - NET401 - re:Invent 2017Network Performance: Making Every Packet Count - NET401 - re:Invent 2017
Network Performance: Making Every Packet Count - NET401 - re:Invent 2017Amazon Web Services
 
Pair Programming
Pair ProgrammingPair Programming
Pair ProgrammingNaresh Jain
 
POWER VM with IBM i and live partition mobility
POWER VM with IBM i and live partition mobilityPOWER VM with IBM i and live partition mobility
POWER VM with IBM i and live partition mobilityCOMMON Europe
 
Bash Shell Scripting
Bash Shell ScriptingBash Shell Scripting
Bash Shell ScriptingRaghu nath
 
Reducing the boot time of Linux devices
Reducing the boot time of Linux devicesReducing the boot time of Linux devices
Reducing the boot time of Linux devicesChris Simmonds
 
Install and configure linux
Install and configure linuxInstall and configure linux
Install and configure linuxVicent Selfa
 
Memory management in Linux
Memory management in LinuxMemory management in Linux
Memory management in LinuxRaghu Udiyar
 
Model-based Testing: Taking BDD/ATDD to the Next Level
Model-based Testing: Taking BDD/ATDD to the Next LevelModel-based Testing: Taking BDD/ATDD to the Next Level
Model-based Testing: Taking BDD/ATDD to the Next LevelBob Binder
 
Mov is turing-complete
Mov is turing-completeMov is turing-complete
Mov is turing-completeyeokm1
 
Introduction to Go programming
Introduction to Go programmingIntroduction to Go programming
Introduction to Go programmingExotel
 
MCA Daemon: Hybrid Throughput Analysis Beyond Basic Blocks
MCA Daemon: Hybrid Throughput Analysis Beyond Basic BlocksMCA Daemon: Hybrid Throughput Analysis Beyond Basic Blocks
MCA Daemon: Hybrid Throughput Analysis Beyond Basic BlocksMin-Yih Hsu
 
Multi threading model
Multi threading modelMulti threading model
Multi threading modelannalakshmir2
 
Apache Traffic Server & Lua
Apache Traffic Server & LuaApache Traffic Server & Lua
Apache Traffic Server & LuaKit Chan
 
Quora questions pair duplication analysis using semantic analysis
Quora questions pair duplication analysis using semantic analysisQuora questions pair duplication analysis using semantic analysis
Quora questions pair duplication analysis using semantic analysisAkshata Talankar
 
[CB16] About the cyber grand challenge: the world’s first all-machine hacking...
[CB16] About the cyber grand challenge: the world’s first all-machine hacking...[CB16] About the cyber grand challenge: the world’s first all-machine hacking...
[CB16] About the cyber grand challenge: the world’s first all-machine hacking...CODE BLUE
 

La actualidad más candente (20)

An Introduction to Test Driven Development
An Introduction to Test Driven Development An Introduction to Test Driven Development
An Introduction to Test Driven Development
 
Network Performance: Making Every Packet Count - NET401 - re:Invent 2017
Network Performance: Making Every Packet Count - NET401 - re:Invent 2017Network Performance: Making Every Packet Count - NET401 - re:Invent 2017
Network Performance: Making Every Packet Count - NET401 - re:Invent 2017
 
Xiv overview
Xiv overviewXiv overview
Xiv overview
 
Pair Programming
Pair ProgrammingPair Programming
Pair Programming
 
POWER VM with IBM i and live partition mobility
POWER VM with IBM i and live partition mobilityPOWER VM with IBM i and live partition mobility
POWER VM with IBM i and live partition mobility
 
Bash Shell Scripting
Bash Shell ScriptingBash Shell Scripting
Bash Shell Scripting
 
PHP Composer Basics
PHP Composer BasicsPHP Composer Basics
PHP Composer Basics
 
Reducing the boot time of Linux devices
Reducing the boot time of Linux devicesReducing the boot time of Linux devices
Reducing the boot time of Linux devices
 
Install and configure linux
Install and configure linuxInstall and configure linux
Install and configure linux
 
Memory management in Linux
Memory management in LinuxMemory management in Linux
Memory management in Linux
 
Model-based Testing: Taking BDD/ATDD to the Next Level
Model-based Testing: Taking BDD/ATDD to the Next LevelModel-based Testing: Taking BDD/ATDD to the Next Level
Model-based Testing: Taking BDD/ATDD to the Next Level
 
A Robust and Flexible Operating System Compatibility Architecture
A Robust and Flexible Operating System Compatibility ArchitectureA Robust and Flexible Operating System Compatibility Architecture
A Robust and Flexible Operating System Compatibility Architecture
 
Mov is turing-complete
Mov is turing-completeMov is turing-complete
Mov is turing-complete
 
Introduction to Go programming
Introduction to Go programmingIntroduction to Go programming
Introduction to Go programming
 
MCA Daemon: Hybrid Throughput Analysis Beyond Basic Blocks
MCA Daemon: Hybrid Throughput Analysis Beyond Basic BlocksMCA Daemon: Hybrid Throughput Analysis Beyond Basic Blocks
MCA Daemon: Hybrid Throughput Analysis Beyond Basic Blocks
 
Multi threading model
Multi threading modelMulti threading model
Multi threading model
 
Apache Traffic Server & Lua
Apache Traffic Server & LuaApache Traffic Server & Lua
Apache Traffic Server & Lua
 
Debugging .NET apps
Debugging .NET appsDebugging .NET apps
Debugging .NET apps
 
Quora questions pair duplication analysis using semantic analysis
Quora questions pair duplication analysis using semantic analysisQuora questions pair duplication analysis using semantic analysis
Quora questions pair duplication analysis using semantic analysis
 
[CB16] About the cyber grand challenge: the world’s first all-machine hacking...
[CB16] About the cyber grand challenge: the world’s first all-machine hacking...[CB16] About the cyber grand challenge: the world’s first all-machine hacking...
[CB16] About the cyber grand challenge: the world’s first all-machine hacking...
 

Destacado

Tuning Android for low RAM
Tuning Android for low RAMTuning Android for low RAM
Tuning Android for low RAMChris Simmonds
 
Александр Терещук - Memory Analyzer Tool and memory optimization tips in Android
Александр Терещук - Memory Analyzer Tool and memory optimization tips in AndroidАлександр Терещук - Memory Analyzer Tool and memory optimization tips in Android
Александр Терещук - Memory Analyzer Tool and memory optimization tips in AndroidUA Mobile
 
Android Memory , Where is all My RAM
Android Memory , Where is all My RAM Android Memory , Where is all My RAM
Android Memory , Where is all My RAM Yossi Elkrief
 
Android Performance Best Practices
Android Performance Best Practices Android Performance Best Practices
Android Performance Best Practices Amgad Muhammad
 
Process control daemon
Process control daemonProcess control daemon
Process control daemonhaish
 
Android memory fundamentals
Android memory fundamentalsAndroid memory fundamentals
Android memory fundamentalsTaras Leskiv
 
Linux memory consumption
Linux memory consumptionLinux memory consumption
Linux memory consumptionhaish
 
flashcache原理及改造
flashcache原理及改造flashcache原理及改造
flashcache原理及改造Hao(Robin) Dong
 
Device mapper multipathing
Device mapper multipathingDevice mapper multipathing
Device mapper multipathingAnand Loganathan
 
Android vs iOS encryption systems
Android vs iOS encryption systemsAndroid vs iOS encryption systems
Android vs iOS encryption systemsBirju Tank
 
LCA13: Memory Hotplug on Android
LCA13: Memory Hotplug on AndroidLCA13: Memory Hotplug on Android
LCA13: Memory Hotplug on AndroidLinaro
 
Memory Analysis of the Dalvik (Android) Virtual Machine
Memory Analysis of the Dalvik (Android) Virtual MachineMemory Analysis of the Dalvik (Android) Virtual Machine
Memory Analysis of the Dalvik (Android) Virtual MachineAndrew Case
 
Mobile Device Encryption Systems
Mobile Device Encryption SystemsMobile Device Encryption Systems
Mobile Device Encryption SystemsPeter Teufl
 
Android Rooting and Flashing
Android Rooting and FlashingAndroid Rooting and Flashing
Android Rooting and FlashingMuhammad Ehsan
 
Android performance tuning. Memory.
Android performance tuning. Memory.Android performance tuning. Memory.
Android performance tuning. Memory.Sergii Kozyrev
 
Tuning Android Applications (Part One)
Tuning Android Applications (Part One)Tuning Android Applications (Part One)
Tuning Android Applications (Part One)CommonsWare
 
Deep Parameters Tuning for Android Mobile Apps
Deep Parameters Tuning for Android Mobile AppsDeep Parameters Tuning for Android Mobile Apps
Deep Parameters Tuning for Android Mobile AppsDavide De Chiara
 

Destacado (20)

Tuning Android for low RAM
Tuning Android for low RAMTuning Android for low RAM
Tuning Android for low RAM
 
Александр Терещук - Memory Analyzer Tool and memory optimization tips in Android
Александр Терещук - Memory Analyzer Tool and memory optimization tips in AndroidАлександр Терещук - Memory Analyzer Tool and memory optimization tips in Android
Александр Терещук - Memory Analyzer Tool and memory optimization tips in Android
 
Android Memory , Where is all My RAM
Android Memory , Where is all My RAM Android Memory , Where is all My RAM
Android Memory , Where is all My RAM
 
Memory in Android
Memory in AndroidMemory in Android
Memory in Android
 
Android Performance Best Practices
Android Performance Best Practices Android Performance Best Practices
Android Performance Best Practices
 
Poster_Jan
Poster_JanPoster_Jan
Poster_Jan
 
Process control daemon
Process control daemonProcess control daemon
Process control daemon
 
Android memory fundamentals
Android memory fundamentalsAndroid memory fundamentals
Android memory fundamentals
 
Linux memory consumption
Linux memory consumptionLinux memory consumption
Linux memory consumption
 
flashcache原理及改造
flashcache原理及改造flashcache原理及改造
flashcache原理及改造
 
Device mapper multipathing
Device mapper multipathingDevice mapper multipathing
Device mapper multipathing
 
Android vs iOS encryption systems
Android vs iOS encryption systemsAndroid vs iOS encryption systems
Android vs iOS encryption systems
 
LCA13: Memory Hotplug on Android
LCA13: Memory Hotplug on AndroidLCA13: Memory Hotplug on Android
LCA13: Memory Hotplug on Android
 
Memory Analysis of the Dalvik (Android) Virtual Machine
Memory Analysis of the Dalvik (Android) Virtual MachineMemory Analysis of the Dalvik (Android) Virtual Machine
Memory Analysis of the Dalvik (Android) Virtual Machine
 
Stan winston & animatronics
Stan winston & animatronicsStan winston & animatronics
Stan winston & animatronics
 
Mobile Device Encryption Systems
Mobile Device Encryption SystemsMobile Device Encryption Systems
Mobile Device Encryption Systems
 
Android Rooting and Flashing
Android Rooting and FlashingAndroid Rooting and Flashing
Android Rooting and Flashing
 
Android performance tuning. Memory.
Android performance tuning. Memory.Android performance tuning. Memory.
Android performance tuning. Memory.
 
Tuning Android Applications (Part One)
Tuning Android Applications (Part One)Tuning Android Applications (Part One)
Tuning Android Applications (Part One)
 
Deep Parameters Tuning for Android Mobile Apps
Deep Parameters Tuning for Android Mobile AppsDeep Parameters Tuning for Android Mobile Apps
Deep Parameters Tuning for Android Mobile Apps
 

Similar a Tuning android for low ram devices

Optimisation and performance in Android
Optimisation and performance in AndroidOptimisation and performance in Android
Optimisation and performance in AndroidRakesh Jha
 
ACADGILD:: ANDROID LESSON-How to analyze &amp; manage memory on android like ...
ACADGILD:: ANDROID LESSON-How to analyze &amp; manage memory on android like ...ACADGILD:: ANDROID LESSON-How to analyze &amp; manage memory on android like ...
ACADGILD:: ANDROID LESSON-How to analyze &amp; manage memory on android like ...Padma shree. T
 
Effective memory management
Effective memory managementEffective memory management
Effective memory managementYurii Kotov
 
Effective memory management
Effective memory managementEffective memory management
Effective memory managementDenis Zhuchinski
 
Provision Intel® Optane™ DC Persistent Memory in Linux*
Provision Intel® Optane™ DC Persistent Memory in Linux*Provision Intel® Optane™ DC Persistent Memory in Linux*
Provision Intel® Optane™ DC Persistent Memory in Linux*Intel® Software
 
Thinking cpu & memory - DroidCon Paris 18 june 2013
Thinking cpu & memory - DroidCon Paris 18 june 2013Thinking cpu & memory - DroidCon Paris 18 june 2013
Thinking cpu & memory - DroidCon Paris 18 june 2013Paris Android User Group
 
ODROID Magazine August 2014
ODROID Magazine August 2014ODROID Magazine August 2014
ODROID Magazine August 2014Nanik Tolaram
 
Android introduction and rooting technology
Android introduction and rooting technologyAndroid introduction and rooting technology
Android introduction and rooting technologyGagandeep Nanda
 
Android Development Tools Overview
Android Development Tools OverviewAndroid Development Tools Overview
Android Development Tools OverviewMike Wolfson
 
Android Mobile forensics with custom recoveries
Android Mobile forensics with custom recoveriesAndroid Mobile forensics with custom recoveries
Android Mobile forensics with custom recoveriesIbrahim Mosaad
 
S3 l6 db2 - memory model
S3 l6   db2 - memory modelS3 l6   db2 - memory model
S3 l6 db2 - memory modelMohammad Khan
 
Workshop su Android Kernel Hacking
Workshop su Android Kernel HackingWorkshop su Android Kernel Hacking
Workshop su Android Kernel HackingDeveler S.r.l.
 
The Good, the Bad and the Ugly things to do with android
The Good, the Bad and the Ugly things to do with androidThe Good, the Bad and the Ugly things to do with android
The Good, the Bad and the Ugly things to do with androidStanojko Markovik
 
"Avoiding memory leaks in Android" Денис Жучинский
"Avoiding memory leaks in Android" Денис Жучинский"Avoiding memory leaks in Android" Денис Жучинский
"Avoiding memory leaks in Android" Денис ЖучинскийFwdays
 
Information Retrieval, Applied Statistics and Mathematics onBigData - German ...
Information Retrieval, Applied Statistics and Mathematics onBigData - German ...Information Retrieval, Applied Statistics and Mathematics onBigData - German ...
Information Retrieval, Applied Statistics and Mathematics onBigData - German ...Romeo Kienzler
 
Techiques for Writing Embedded Code_Internet of Things
Techiques for Writing Embedded Code_Internet of ThingsTechiques for Writing Embedded Code_Internet of Things
Techiques for Writing Embedded Code_Internet of Thingsalengadan
 
Windows Mobile 6.5 메모리관리
Windows Mobile 6.5 메모리관리Windows Mobile 6.5 메모리관리
Windows Mobile 6.5 메모리관리Seo Jinho
 
An Introduction To Android
An Introduction To AndroidAn Introduction To Android
An Introduction To Androidnatdefreitas
 

Similar a Tuning android for low ram devices (20)

Optimisation and performance in Android
Optimisation and performance in AndroidOptimisation and performance in Android
Optimisation and performance in Android
 
Android Memory Management
Android Memory ManagementAndroid Memory Management
Android Memory Management
 
ACADGILD:: ANDROID LESSON-How to analyze &amp; manage memory on android like ...
ACADGILD:: ANDROID LESSON-How to analyze &amp; manage memory on android like ...ACADGILD:: ANDROID LESSON-How to analyze &amp; manage memory on android like ...
ACADGILD:: ANDROID LESSON-How to analyze &amp; manage memory on android like ...
 
Effective memory management
Effective memory managementEffective memory management
Effective memory management
 
Effective memory management
Effective memory managementEffective memory management
Effective memory management
 
Provision Intel® Optane™ DC Persistent Memory in Linux*
Provision Intel® Optane™ DC Persistent Memory in Linux*Provision Intel® Optane™ DC Persistent Memory in Linux*
Provision Intel® Optane™ DC Persistent Memory in Linux*
 
Thinking cpu & memory - DroidCon Paris 18 june 2013
Thinking cpu & memory - DroidCon Paris 18 june 2013Thinking cpu & memory - DroidCon Paris 18 june 2013
Thinking cpu & memory - DroidCon Paris 18 june 2013
 
X Means Y
X Means YX Means Y
X Means Y
 
ODROID Magazine August 2014
ODROID Magazine August 2014ODROID Magazine August 2014
ODROID Magazine August 2014
 
Android introduction and rooting technology
Android introduction and rooting technologyAndroid introduction and rooting technology
Android introduction and rooting technology
 
Android Development Tools Overview
Android Development Tools OverviewAndroid Development Tools Overview
Android Development Tools Overview
 
Android Mobile forensics with custom recoveries
Android Mobile forensics with custom recoveriesAndroid Mobile forensics with custom recoveries
Android Mobile forensics with custom recoveries
 
S3 l6 db2 - memory model
S3 l6   db2 - memory modelS3 l6   db2 - memory model
S3 l6 db2 - memory model
 
Workshop su Android Kernel Hacking
Workshop su Android Kernel HackingWorkshop su Android Kernel Hacking
Workshop su Android Kernel Hacking
 
The Good, the Bad and the Ugly things to do with android
The Good, the Bad and the Ugly things to do with androidThe Good, the Bad and the Ugly things to do with android
The Good, the Bad and the Ugly things to do with android
 
"Avoiding memory leaks in Android" Денис Жучинский
"Avoiding memory leaks in Android" Денис Жучинский"Avoiding memory leaks in Android" Денис Жучинский
"Avoiding memory leaks in Android" Денис Жучинский
 
Information Retrieval, Applied Statistics and Mathematics onBigData - German ...
Information Retrieval, Applied Statistics and Mathematics onBigData - German ...Information Retrieval, Applied Statistics and Mathematics onBigData - German ...
Information Retrieval, Applied Statistics and Mathematics onBigData - German ...
 
Techiques for Writing Embedded Code_Internet of Things
Techiques for Writing Embedded Code_Internet of ThingsTechiques for Writing Embedded Code_Internet of Things
Techiques for Writing Embedded Code_Internet of Things
 
Windows Mobile 6.5 메모리관리
Windows Mobile 6.5 메모리관리Windows Mobile 6.5 메모리관리
Windows Mobile 6.5 메모리관리
 
An Introduction To Android
An Introduction To AndroidAn Introduction To Android
An Introduction To Android
 

Más de Droidcon Berlin

Droidcon de 2014 google cast
Droidcon de 2014   google castDroidcon de 2014   google cast
Droidcon de 2014 google castDroidcon Berlin
 
Android programming -_pushing_the_limits
Android programming -_pushing_the_limitsAndroid programming -_pushing_the_limits
Android programming -_pushing_the_limitsDroidcon Berlin
 
Android industrial mobility
Android industrial mobility Android industrial mobility
Android industrial mobility Droidcon Berlin
 
From sensor data_to_android_and_back
From sensor data_to_android_and_backFrom sensor data_to_android_and_back
From sensor data_to_android_and_backDroidcon Berlin
 
new_age_graphics_android_x86
new_age_graphics_android_x86new_age_graphics_android_x86
new_age_graphics_android_x86Droidcon Berlin
 
Testing and Building Android
Testing and Building AndroidTesting and Building Android
Testing and Building AndroidDroidcon Berlin
 
Matchinguu droidcon presentation
Matchinguu droidcon presentationMatchinguu droidcon presentation
Matchinguu droidcon presentationDroidcon Berlin
 
Cgm life sdk_droidcon_2014_v3
Cgm life sdk_droidcon_2014_v3Cgm life sdk_droidcon_2014_v3
Cgm life sdk_droidcon_2014_v3Droidcon Berlin
 
The artofcalabash peterkrauss
The artofcalabash peterkraussThe artofcalabash peterkrauss
The artofcalabash peterkraussDroidcon Berlin
 
Raesch, gries droidcon 2014
Raesch, gries   droidcon 2014Raesch, gries   droidcon 2014
Raesch, gries droidcon 2014Droidcon Berlin
 
Android open gl2_droidcon_2014
Android open gl2_droidcon_2014Android open gl2_droidcon_2014
Android open gl2_droidcon_2014Droidcon Berlin
 
20140508 quantified self droidcon
20140508 quantified self droidcon20140508 quantified self droidcon
20140508 quantified self droidconDroidcon Berlin
 
Froyo to kit kat two years developing & maintaining deliradio
Froyo to kit kat   two years developing & maintaining deliradioFroyo to kit kat   two years developing & maintaining deliradio
Froyo to kit kat two years developing & maintaining deliradioDroidcon Berlin
 
Droidcon2013 security genes_trendmicro
Droidcon2013 security genes_trendmicroDroidcon2013 security genes_trendmicro
Droidcon2013 security genes_trendmicroDroidcon Berlin
 
Droidcon2013 commercialsuccess rannenberg
Droidcon2013 commercialsuccess rannenbergDroidcon2013 commercialsuccess rannenberg
Droidcon2013 commercialsuccess rannenbergDroidcon Berlin
 

Más de Droidcon Berlin (20)

Droidcon de 2014 google cast
Droidcon de 2014   google castDroidcon de 2014   google cast
Droidcon de 2014 google cast
 
Android programming -_pushing_the_limits
Android programming -_pushing_the_limitsAndroid programming -_pushing_the_limits
Android programming -_pushing_the_limits
 
crashing in style
crashing in stylecrashing in style
crashing in style
 
Raspberry Pi
Raspberry PiRaspberry Pi
Raspberry Pi
 
Android industrial mobility
Android industrial mobility Android industrial mobility
Android industrial mobility
 
Details matter in ux
Details matter in uxDetails matter in ux
Details matter in ux
 
From sensor data_to_android_and_back
From sensor data_to_android_and_backFrom sensor data_to_android_and_back
From sensor data_to_android_and_back
 
droidparts
droidpartsdroidparts
droidparts
 
new_age_graphics_android_x86
new_age_graphics_android_x86new_age_graphics_android_x86
new_age_graphics_android_x86
 
5 tips of monetization
5 tips of monetization5 tips of monetization
5 tips of monetization
 
Testing and Building Android
Testing and Building AndroidTesting and Building Android
Testing and Building Android
 
Matchinguu droidcon presentation
Matchinguu droidcon presentationMatchinguu droidcon presentation
Matchinguu droidcon presentation
 
Cgm life sdk_droidcon_2014_v3
Cgm life sdk_droidcon_2014_v3Cgm life sdk_droidcon_2014_v3
Cgm life sdk_droidcon_2014_v3
 
The artofcalabash peterkrauss
The artofcalabash peterkraussThe artofcalabash peterkrauss
The artofcalabash peterkrauss
 
Raesch, gries droidcon 2014
Raesch, gries   droidcon 2014Raesch, gries   droidcon 2014
Raesch, gries droidcon 2014
 
Android open gl2_droidcon_2014
Android open gl2_droidcon_2014Android open gl2_droidcon_2014
Android open gl2_droidcon_2014
 
20140508 quantified self droidcon
20140508 quantified self droidcon20140508 quantified self droidcon
20140508 quantified self droidcon
 
Froyo to kit kat two years developing & maintaining deliradio
Froyo to kit kat   two years developing & maintaining deliradioFroyo to kit kat   two years developing & maintaining deliradio
Froyo to kit kat two years developing & maintaining deliradio
 
Droidcon2013 security genes_trendmicro
Droidcon2013 security genes_trendmicroDroidcon2013 security genes_trendmicro
Droidcon2013 security genes_trendmicro
 
Droidcon2013 commercialsuccess rannenberg
Droidcon2013 commercialsuccess rannenbergDroidcon2013 commercialsuccess rannenberg
Droidcon2013 commercialsuccess rannenberg
 

Tuning android for low ram devices