NOTICE: The Processors Wiki will End-of-Life in December of 2020. It is recommended to download any files or other content you may need that are hosted on The site is now set to read only.

Android gingerbread usecase 128MB boot

From Texas Instruments Wiki
Jump to: navigation, search

Content is no longer maintained and is being kept for reference only!


  • 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.

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
    • email
    • deskclock
    • alarmprovider
    • calculator
    • calendar
    • camera

NoteNote:  : Analysis presented in this document is based on experiment with TI's AM37xevm & TI's devkit release 2.3.1

Customize android for use case

NoteNote:  Only sanity test cycle has been validated against following described configurations.  

/* To apply patch */
$cd <android-src>/build
$tar -xzvf {patch-file}
$patch -p1 < 0001-android-customization-for-128MB.patch
/* To apply patch */
$cd <android-src>/frameworks/base
$patch -p1 < {patch-file}
/* To apply patch */
$cd <android-src>/frameworks/base
$patch -p1 < {patch-file}
/* To apply patch */
$cd <android-src>/packages/apps/Launcher2
$patch -p1 < {patch-file}
#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


  • 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

  • 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#
  • 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


  • 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.