NOTICE: The Processors Wiki will End-of-Life on January 15, 2021. It is recommended to download any files or other content you may need that are hosted on processors.wiki.ti.com. The site is now set to read only.
Android gingerbread usecase 128MB boot
Content is no longer maintained and is being kept for reference only!
Contents
Introduction[edit]
- Android migration to non-mobile segments raises the need of memory footprint analysis to lower down the cost of product; specifically run-time memory utilization. There are many applications such as phone,contacts etc. does not play role to these segments. They would give good deal at run-time by giving run-time space to other applications.
- This wiki will discuss one such use case to boot android with minimal memory configuration.
- With respect to reference mentioned at http://processors.wiki.ti.com/index.php/Android_Memory_Analysis;
memory usage to run sgx powered android with standard features (standard android source form Google Inc.)199MB. However this is limit can be cut down on compromizing with number of applications that runs simultaneously and numbers of services needed for use case.Let us discuss one such use case over here.
- Use Case:
- Booting a android gingerbread on AM37xevm with sgx & 128MB of run-time memory configuration.
- Use case will remove following features for 128MB run-time memory configuration
- phone
- contacts
- wallpaper
- 3D Gallery (2D gallery will be supported)
- mms
- deskclock
- alarmprovider
- calculator
- calendar
- camera
Note: : Analysis presented in this document is based on experiment with TI's AM37xevm & TI's devkit release 2.3.1
http://software-dl.ti.com/dsps/dsps_public_sw/sdo_tii/TI_Android_DevKit/TI_Android_GingerBread_2_3_DevKit_1_0/index_FDS.html
Customize android for use case[edit]
Note: Only sanity test cycle has been validated against following described configurations.
- Step 1: customize android product package
- Apply the patch available at#http://processors.wiki.ti.com/index.php/File:0001-customize-android-package-128MB-ram.tar.gz
- This patch will remove AccountAndSyncSettings,DeskClock,Alarmprovider,Camera,Calender,Email,Mms,Protips,QuickSearchBox,CalendarProvider,SyncProvider,Updater,Sync,3D gallery,phone,contacts from android package
- Gallery with 2D graphics will be supported
/* To apply patch */ $cd <android-src>/build $tar -xzvf {patch-file} $patch -p1 < 0001-android-customization-for-128MB.patch
- Step 2:Remove vibrator,telephony service
- Apply the patch available at#http://processors.wiki.ti.com/index.php/File:0001-remove-telephony-and-vibrator-service.patch
/* To apply patch */ $cd <android-src>/frameworks/base $patch -p1 < {patch-file}
- Step 3: Remove Wallpaper Service
- Step 3.1: Apply the patch available at#http://processors.wiki.ti.com/index.php/File:0001-remove-wallpaper-service.patch to "<android-src>/frameworks/base"
- This patch will remove wallpaper service from android framework
/* To apply patch */ $cd <android-src>/frameworks/base $patch -p1 < {patch-file}
- Step 3.2: Apply the patch available at#http://processors.wiki.ti.com/index.php/File:0001-wallpaper-service-dependency-removed.patch to "<android-src>/packages/apps/Launcher2"
- This patch will remove wallpaper dependency from launcher
/* To apply patch */ $cd <android-src>/packages/apps/Launcher2 $patch -p1 < {patch-file}
- Step 4: Build customized product configuration.
- Step 4: Flash newly build file system and boot the target
- Follow the step given at #http://processors.wiki.ti.com/index.php/TI-Android-GingerBread-2.3-DevKit-1.0_UserGuide#Booting_Android
- On boot promt u-boot and pass following commands
#mmc init #fatload mmc 0 80200000 uImage #setenv bootargs 'console=ttyO0,115200n8 androidboot.console=ttyO0 mem=128M root=/dev/mmcblk0p2 rw rootfstype=ext3 rootwait init=/init ip=off omap_vout.vid1_static_vrfb_alloc=y vram="2M" omapfb.vram=0:2M' #bootm 0x80200000
Observation[edit]
- Normal boot
- Gallery, Music, Wifi, Browser, Settings - operations are normal as expected
- Bluetooth/Wifi connectivity is fine
- However sometime large file transfer over bluetooth suffers from "low memory" and service gets killed.However it recovers again,but file transfer required to be initiated again by user.
Summary Note[edit]
- It is recommended to have minimum of 256MB of run-time memory to have SGX powered android with all basic features.
- However to win on product cost, one can always customized & optimize android if it is used for specific use cases.For more detail kindly refer#http://processors.wiki.ti.com/index.php/Android_gingerbread_memory_analysis_for_non-phone_device
- Running QVGA resolution(320x240) with 128MB of run-time memory should give better android experience.As all graphics,icons,textures,wallpaper etc will take less run-time memory.
- For the customers who want to deploy their own applications or services which takes more run time memory; kindly consider following point. This can help to choose suitable run-time memory.
- Considering 'A1' as Customer’s application which requires more than 100MB (and less then 150 MB) of run-time memory.If A1 & other android applications of android is not running simultaneously ( specifically bluetooth/gallery/luncher) then 256 MB of run time memory is enough for android execution with A1
Disclaimer[edit]
- All memory figures listed in this wiki are based on experiments with TI's am37xevm & TI's gingerbread devkit release.These may differ for other targets & android releases.
- Experiments are validated with sanity test only. It may give unexpected results with some use cases.
References[edit]
http://processors.wiki.ti.com/index.php/Android_Memory_Analysis
http://software-dl.ti.com/dsps/dsps_public_sw/sdo_tii/TI_Android_DevKit/TI_Android_GingerBread_2_3_DevKit_1_0/index_FDS.html
http://processors.wiki.ti.com/index.php/Android_gingerbread_memory_analysis_for_non-phone_device
Support[edit]
- Follow us on twitter : http://twitter.com/arowboattwits for instant notifications
- Our community page : http://arowboat.org
- Our blog : http://arowboat.wordpress.com
- For support and queries please use http://e2e.ti.com/android