{"id":491,"date":"2012-01-30T17:49:47","date_gmt":"2012-01-30T12:19:47","guid":{"rendered":"http:\/\/www.e-consystems.com\/blog\/android\/?p=491"},"modified":"2023-08-15T12:34:27","modified_gmt":"2023-08-15T07:04:27","slug":"android-4-0","status":"publish","type":"post","link":"https:\/\/www.e-consystems.com\/blog\/system-on-module-som\/android-4-0\/","title":{"rendered":"What&#8217;s new in Android 4.0"},"content":{"rendered":"<p>Since from the Ginger Bread lot has changed. Most of the  user experience related changes are well documented by Google here. But there  almost no websites out there which gives what is the difference between the GB  and ICS at source code level. Here we try to summaries few difference in source  code level that we have discovered based on our experience with Android 2.3  (GB) and Android (4.0).<\/p>\n<p>As Google has indicated before ICS has a single set of UI  components, styles, and capabilities for phones, tablets, and other devices.<\/p>\n<h2>Build Environment<\/h2>\n<p>Androids build system hasn&#8217;t changed, but various tools&#8217; RAM  usage has gone up as they have to deal with more complexity. Some of the native  modules are really heavy to link, and operations that work globally on the  entire set of public SDK APIs need to deal with massive amounts of data.<br \/>\nICS needs sun-java6 where GB and previous versions of  Android can only compiled with sun-java5<\/p>\n<ul>\n<li>6GB  of download.<\/li>\n<li>25GB  disk space to do a single build.<\/li>\n<li>80GB  disk space to build all AOSP configs at the same time.<\/li>\n<li>16GB  RAM recommended, more preferred, anything less will measurably benefit from  using an SSD.<\/li>\n<li>5+  hours of CPU time for a single build, 25+ minutes of wall time<\/li>\n<li>20GB  of swap<\/li>\n<\/ul>\n<p>For anything other than the master branch, you&#8217;ll need to  use Ubuntu 10.04 if you want to be able to build the source code &#8220;as  is&#8221;.<\/p>\n<p>Never had I imagined that ICS would require such heavy-duty  machines to build. Folks, it&#8217;s time to upgrade your machines!. Most of this  data&#8217;s are collected based on our experience and from the android building  group, Most of the recommendation are by JBQ (jbq@android.com) and other  community members.<\/p>\n<h2>Target support<\/h2>\n<h4>Virtual Box Emulator<\/h4>\n<p>Android 4.0 supports Virtual Box by default. This is a + for  those who want to try build the android stack for x86 targets. Also the android  comes up with scripts and make target to easy the task of creation of Virtual  box compatible disk&#8217;s easy, example is here. use vbox_x86 in lunch.<\/p>\n<blockquote><p>$ make installer_vdi<br \/>\n$ make android_disk_vdi<\/p><\/blockquote>\n<p>Still previous version of Android had support for the vbox,  but they were not that much mainstream and x86 architecture were not completely  supported. But there was a community driven project named www.android-x86.org,  which patched the Android source code heavily to run in x86. But this time it  works in as is code of android source. it&#8217;s really cool.<\/p>\n<ul>\n<li>Full_x86  runs in the x86 emulator, which emulates an atom.<\/li>\n<\/ul>\n<blockquote>\n<blockquote><p>$ source build\/envsetup.sh<br \/>\n$ lunch full_x86-eng<br \/>\n$ make<br \/>\n$ emulator&amp;<\/p><\/blockquote>\n<\/blockquote>\n<p>Out of the box, there&#8217;s no support for real x86 hardware  targets.<\/p>\n<ul>\n<li>Android  ICS has a native support panda board.<\/li>\n<\/ul>\n<h2>Communication\/Networking<\/h2>\n<p>Concerning the network, it works well at a &#8220;system  level&#8221;. Configure VM in VBox to use a &#8220;Bridge&#8221; type of virtual  NIC, so that Android directly access the network and uses the DHCP server in of  PC.<\/p>\n<ul>\n<li>Wi-Fi  Direct &#8211; Wi-Fi Direct is a standard that allows Wi-Fi devices to talk to each  other without the need for wireless access points (hot spots).<\/li>\n<li>NFC  (Near Field Communication) &#8211; Using NFC sharing datas (like contact, photo,  song, application, video, or website link, etc..) instantly between device,  electronic payments, is just a tapping of ne NFC device to another<\/li>\n<\/ul>\n<p>But most wide spread Ethernet is not supported in the  Android framework still.<\/p>\n<h2>Language<\/h2>\n<p>Shape  Arabic text on a character basis &#8211; Arabic Shaping performs basic operations for  &#8220;shaping&#8221; Arabic text. It is most useful for use with legacy data  formats and legacy display technology (simple terminals). All operations are  performed on Unicode characters<\/p>\n<h2>Hardware<\/h2>\n<ul>\n<li>Sensor  fusion is the combining of sensory data or data derived from sensors like  magnetic filed sensor, gyroscope, accelerometer, etc. The combined result is  more accurate, more complete, or more dependable when compared to using them  individually [2].<\/li>\n<li>Mouse  pointer support &#8211; The good news is that ICS now includes all the necessary code  in the framework to support mouse type input devices (with previous versions  you had to hack the framework what is done by android-x86 project.<\/li>\n<\/ul>\n<p>Just rebuild a kernel with the appropriate PS\/2 mouse  driver.<\/p>\n<blockquote><p>$ make vbox_defconfig<br \/>\n$ make ARCH=x86 menuconfig<\/p><\/blockquote>\n<p>And add the  PS\/2 mouse driver (&#8220;Device Drivers&#8221;-&gt;&#8221;Input device  support&#8221;-&gt;&#8221;Mice&#8221;-&gt;&#8221;PS\/2 mouse&#8221;)<\/p>\n<blockquote><p>$ make  ARCH=x86<\/p><\/blockquote>\n<p>The kernel  Image will be in arch\/x86\/boot\/bzImage. Replace the prebuilt vbox kernel in  your ICS source code tree with arch\/x86\/boot\/bzImage (or create a dedicated  device for this)<br \/>\nRebuild your android_disk.vdi. thats it.<\/p>\n<ul>\n<li>OrientationSensor  &#8211; This is a soft sensor, This is a helper provides data for application. This  Computes the device&#8217;s orientation based on the rotation matrix.<\/li>\n<li>SecondOrderLowPassFilter  &#8211; This too is a soft sensor, which provides digital filter functionality for  related DSP application.<\/li>\n<\/ul>\n<h2>Kernel version supported<\/h2>\n<p>ICS should run fine with the kernel from Gingerbread. (If  you&#8217;re worried that&#8217;s too old, keep in mind that the emulator is still running  2.6.29). ICS is shipped with kernel 3.0<\/p>\n<p>What\u2019s up with the Android 4.0 AOSP (Android Open Source  Project)? I think you would like to know more about how we are using the  Android 4.0 source released a while ago.. More on that in the coming blogs. <\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Since from the Ginger Bread lot has changed. Most of the user experience related changes&#8230;<\/p>\n","protected":false},"author":16,"featured_media":547,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[5],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.e-consystems.com\/blog\/system-on-module-som\/wp-json\/wp\/v2\/posts\/491"}],"collection":[{"href":"https:\/\/www.e-consystems.com\/blog\/system-on-module-som\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.e-consystems.com\/blog\/system-on-module-som\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.e-consystems.com\/blog\/system-on-module-som\/wp-json\/wp\/v2\/users\/16"}],"replies":[{"embeddable":true,"href":"https:\/\/www.e-consystems.com\/blog\/system-on-module-som\/wp-json\/wp\/v2\/comments?post=491"}],"version-history":[{"count":9,"href":"https:\/\/www.e-consystems.com\/blog\/system-on-module-som\/wp-json\/wp\/v2\/posts\/491\/revisions"}],"predecessor-version":[{"id":991,"href":"https:\/\/www.e-consystems.com\/blog\/system-on-module-som\/wp-json\/wp\/v2\/posts\/491\/revisions\/991"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.e-consystems.com\/blog\/system-on-module-som\/wp-json\/wp\/v2\/media\/547"}],"wp:attachment":[{"href":"https:\/\/www.e-consystems.com\/blog\/system-on-module-som\/wp-json\/wp\/v2\/media?parent=491"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.e-consystems.com\/blog\/system-on-module-som\/wp-json\/wp\/v2\/categories?post=491"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.e-consystems.com\/blog\/system-on-module-som\/wp-json\/wp\/v2\/tags?post=491"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}