<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blogs &#187; Tao B Wang (Intel)</title>
	<atom:link href="http://software.intel.com/en-us/blogs/author/tao-b-wang/feed/" rel="self" type="application/rss+xml" />
	<link>http://software.intel.com/en-us/blogs</link>
	<description></description>
	<lastBuildDate>Fri, 25 May 2012 22:49:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>Android Multi-threads Programming for Intel IA</title>
		<link>http://software.intel.com/en-us/blogs/2012/05/17/android-multi-threads-programming-for-intel-ia/</link>
		<comments>http://software.intel.com/en-us/blogs/2012/05/17/android-multi-threads-programming-for-intel-ia/#comments</comments>
		<pubDate>Thu, 17 May 2012 23:08:46 +0000</pubDate>
		<dc:creator>Tao B Wang (Intel)</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2012/05/17/android-multi-threads-programming-for-intel-ia/</guid>
		<description><![CDATA[See original blog post: Android 多线程编程 on Intel China ISN Android application development can be supported with multi-threaded programming, which provide convenience for developers to fully utilize the system resource and provide means of designing complicated UI and time consuming operation. It also enhances the user experience of Android users. Multi-threads for Android has no too [...]]]></description>
			<content:encoded><![CDATA[<p>See original blog post: <a href="http://software.intel.com/zh-cn/blogs/2012/05/07/android-8/" target="_blank">Android 多线程编程</a> on Intel China ISN</p>
<p>Android application development can be supported with multi-threaded programming, which provide convenience for developers to fully utilize the system resource and provide means of designing complicated UI and time consuming operation. It also enhances the user experience of Android users. Multi-threads for Android has no too much difference than for Java. The only change may be that it probably can not directly utilize CANVAS to  modify screen element. Certainly Android provides developers with surfaceview class to change screen using Canvas in Multi-threaded programming and bring convenience for designing UI and Game development. So it is very important that developers need to learn how to use  multi-threaded programming, which plays important role as part of Android programming.</p>
<p>There are many ways of achieving  threading, the most popular way is :</p>
<p>start()；</p>
<p>run()；</p>
<p>sleep()；</p>
<p>stop()；</p>
<p>destroy()；</p>
<p>join();</p>
<p>suspend()；</p>
<p>resume()；</p>
<p>yield()；<br />
wait()；<br />
notify()；</p>
<p>Threading start must use start(); Threading can use run(); Threading sleep can use sleep () etc.. The first three methods are most popular usage. Generally speaking, these three methods can satisfy the need for most threading usage. When run() end, the thread automatically  end life. Although stop() , or destroy()  can be used to stop thread, but are not recommended as stop() can  turn into abnormal, and destroy() can turn into force termination. and will release the lock. The solution is to set a status signal in RUN to wait the thread to terminate automatically.  Here we use volatile boolean bThreadRun. For suspend (), resume() and yield(), they are rarely used due to the possibility of dead lock. So in most situation, developers will use wait() and notify() to replace them.</p>
<p>Here is a multi-thread example. I will use a thread to calculate  a variable and update the new window title. The main source codes are like this: Use Eclipse to create a project, Use Activity to add onStart, onPause, and onStop etc. Activity is the most popular class that we use, and is also a core Class for Android. It is used to  administer and display a screen for an app, and Android developer should be very familiar with it.  Activity operation is following the sequence: onCreate，onStart，onStop，onPause，onResume， onRestart，onDestroy，onRestoreInstanceState，onSaveInstanceState. The popular execution sequence is onCreate，onStart，onResume. When windows is not  at the top level, onPause，onstop are executed, if it is on the top, then onRestart，onResume will be executed.  The loop will continue until onDestroy. If you want to save window, just reload onSaveInstanceState，and reload onRestoreInstanceState when enter。Here are the example that multi-thread is created in onStart using Activity method：</p>
<p>01.MyThread myThread = new MyThread();<br />
02. myThread.start();</p>
<p>Add MyThread code below:</p>
<p>01.public class MyThread extends Thread {<br />
02. // Claim character variable<br />
03. public MyThread() {<br />
04. }<br />
05.<br />
06. @Override<br />
07. public void start() {<br />
08. super.start();<br />
09. }<br />
10.<br />
11. // main working method of thread<br />
12. @Override<br />
13. public void run() {<br />
14. while (true) {<br />
15. try {<br />
16. sleep(5000);<br />
17. if (c &gt; ((1 &lt;&lt; 31) - 1)) {<br />
18. c = 0;<br />
19. } else {<br />
20. c++;<br />
21. }<br />
22. Message message = new Message();<br />
23. message.what = 1;<br />
24. mHandler.sendMessage(message);<br />
25. } catch (InterruptedException ex) {<br />
26. }<br />
27. }<br />
28. }<br />
29.<br />
30. }</p>
<p>Method of realize updatetitle：</p>
<p>01.public void updateTitle() {<br />
02. setTitle("test thread " + c);<br />
03. }</p>
<p>Here updatetitle  is not used to directly update new window, instead, handler is used. The reason is that the direct usage of updatetitle  is not safe, and may cause threading restart and other issues. Android introduced Handler as a special class, and use it as a bi-direction bridge between Runnable and Activity. So we can only send Message in method run, but in Handler, we use different Message to execute different tasks, and add handler for program:</p>
<p>01.private Handler mHandler = new Handler() {<br />
02. public void handleMessage(Message msg) {<br />
03. switch (msg.what) {<br />
04. case 1:<br />
05. updateTitle();<br />
06. break;<br />
07. }<br />
08. };<br />
09. };</p>
<p>The final version of completed source codes are as below，threading is used to process data and display data on window:</p>
<p>01.package com.test;<br />
02.<br />
03.import android.app.Activity;<br />
04.import android.os.Bundle;<br />
05.import java.lang.Thread;<br />
06.import android.os.Message;<br />
07.import android.os.Handler;<br />
08.import android.graphics.Color;<br />
09.<br />
10.public class TestThreadActivity extends Activity {<br />
11. int c = Color.BLUE;<br />
12. MyThread myThread;<br />
13. volatile boolean bThreadRun = false;<br />
14.<br />
15. /** Called when the activity is first created. */<br />
16. @Override<br />
17. public void onCreate(Bundle savedInstanceState) {<br />
18. super.onCreate(savedInstanceState);<br />
19. setContentView(R.layout.main);<br />
20. }<br />
21.<br />
22. @Override<br />
23. protected void onRestoreInstanceState(android.os.Bundle savedInstanceState) {<br />
24. super.onRestoreInstanceState(savedInstanceState);<br />
25. }<br />
26.<br />
27. @Override<br />
28. protected void onSaveInstanceState(android.os.Bundle outState) {<br />
29. super.onSaveInstanceState(outState);<br />
30. }<br />
31.<br />
32. @Override<br />
33. protected void onStart() {<br />
34. super.onStart();<br />
35. myThread = new MyThread();<br />
36. myThread.start();<br />
37. bThreadRun = true;<br />
38. }<br />
39.<br />
40. @Override<br />
41. protected void onRestart() {<br />
42. super.onRestart();<br />
43. }<br />
44.<br />
45. @Override<br />
46. protected void onResume() {<br />
47. super.onResume();<br />
48. }<br />
49.<br />
50. @Override<br />
51. protected void onPause() {<br />
52. super.onPause();<br />
53. bThreadRun = false;<br />
54. // myThread.stop();<br />
55. }<br />
56.<br />
57. @Override<br />
58. protected void onStop() {<br />
59. super.onStop();<br />
60. onPause();<br />
61. }<br />
62.<br />
63. @Override<br />
64. protected void onDestroy() {<br />
65. super.onDestroy();<br />
66. // myThread.destroy();<br />
67. }<br />
68.<br />
69. private Handler mHandler = new Handler() {<br />
70. public void handleMessage(Message msg) {<br />
71. switch (msg.what) {<br />
72. case 1:<br />
73. updateTitle();<br />
74. break;<br />
75. }<br />
76. };<br />
77. };<br />
78.<br />
79. public void updateTitle() {<br />
80. setTitle("test thread " + c);<br />
81. setTitleColor(c);<br />
82. }<br />
83.<br />
84. public class MyThread extends Thread {<br />
85. // Claim character variable<br />
86. public MyThread() {<br />
87. }<br />
88.<br />
89. @Override<br />
90. public void start() {<br />
91. super.start();<br />
92. }<br />
93.<br />
94. // The main method of work of threading<br />
95. @Override<br />
96. public void run() {<br />
97. while (bThreadRun) {<br />
98. try {<br />
99. sleep(100);<br />
100. if (c &gt; ((1 &lt;&lt; 16) - 1)) {<br />
101. c = 0;<br />
102. } else {<br />
103. c += 100;<br />
104. }<br />
105. Message message = new Message();<br />
106. message.what = 1;<br />
107. mHandler.sendMessage(message);<br />
108. } catch (InterruptedException ex) {<br />
109. }<br />
110. }<br />
111. }<br />
112.<br />
113. }<br />
114.<br />
115.}</p>
<p>Another popular way of threading is to compile Runnable interface. Here we do some modification to the source codes to use threading to realize the redraw of main window. The complete source codes are as below:</p>
<p>01.package com.test;<br />
02.<br />
03.import android.app.Activity;<br />
04.import android.content.Context;<br />
05.import android.os.Bundle;<br />
06.import java.lang.Thread;<br />
07.import android.view.View;<br />
08.import android.graphics.Canvas;<br />
09.import android.graphics.Color;<br />
10.import android.graphics.Paint;<br />
11.import android.graphics.Paint.Style;<br />
12.import android.graphics.Rect;<br />
13.<br />
14.public class TestThreadActivity extends Activity {<br />
15. int c = Color.BLUE;<br />
16. MyThread myThread;<br />
17. volatile boolean bThreadRun = false;<br />
18. MyView mv;<br />
19.<br />
20. /** Called when the activity is first created. */<br />
21. @Override<br />
22. public void onCreate(Bundle savedInstanceState) {<br />
23. super.onCreate(savedInstanceState);<br />
24. // setContentView(R.layout.main);<br />
25. mv = new MyView(this);<br />
26. setContentView(mv);<br />
27. }<br />
28.<br />
29. public class MyView extends View {<br />
30. MyView(Context context) {<br />
31. super(context);<br />
32. }<br />
33.<br />
34. @Override<br />
35. protected void onDraw(Canvas canvas) {<br />
36. // TODO Auto-generated method stub<br />
37. super.onDraw(canvas);<br />
38.<br />
39. // Fist define  a paint<br />
40. Paint paint = new Paint();<br />
41.<br />
42. // draw rectangular area -solid filled rectangular<br />
43. // configure color<br />
44. paint.setColor(c);<br />
45. // Configure style and fill<br />
46. paint.setStyle(Style.FILL);<br />
47. //Draw a rectangular<br />
48. canvas.drawRect(new Rect(0, 0, getWidth(), getHeight()), paint);<br />
49. }<br />
50.<br />
51. }<br />
52.<br />
53. @Override<br />
54. protected void onRestoreInstanceState(android.os.Bundle savedInstanceState) {<br />
55. super.onRestoreInstanceState(savedInstanceState);<br />
56. }<br />
57.<br />
58. @Override<br />
59. protected void onSaveInstanceState(android.os.Bundle outState) {<br />
60. super.onSaveInstanceState(outState);<br />
61. }<br />
62.<br />
63. @Override<br />
64. protected void onStart() {<br />
65. super.onStart();<br />
66. //myThread = new MyThread();<br />
67. //myThread.start();<br />
68. new Thread (new MyThread()).start();<br />
69. bThreadRun = true;<br />
70. }<br />
71.<br />
72. @Override<br />
73. protected void onRestart() {<br />
74. super.onRestart();<br />
75. }<br />
76.<br />
77. @Override<br />
78. protected void onResume() {<br />
79. super.onResume();<br />
80. }<br />
81.<br />
82. @Override<br />
83. protected void onPause() {<br />
84. super.onPause();<br />
85. bThreadRun = false;<br />
86. // myThread.stop();<br />
87. }<br />
88.<br />
89. @Override<br />
90. protected void onStop() {<br />
91. super.onStop();<br />
92. onPause();<br />
93. }<br />
94.<br />
95. @Override<br />
96. protected void onDestroy() {<br />
97. super.onDestroy();<br />
98. // myThread.destroy();<br />
99. }<br />
100.<br />
101. public class MyThread implements Runnable{<br />
102. // the main method of work of threading<br />
103. @Override<br />
104. public void run() {<br />
105. while (bThreadRun) {<br />
106. try {<br />
107. Thread.sleep(500);<br />
108. if (c &gt; ((1 &lt;&lt; 31) - 1)) {<br />
109. c = 0;<br />
110. } else {<br />
111. c += 100;<br />
112. }<br />
113. mv.postInvalidate();<br />
114. } catch(InterruptedException e){<br />
115. }<br />
116. }<br />
117. }<br />
118.<br />
119. }<br />
120.<br />
121.}</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2012/05/17/android-multi-threads-programming-for-intel-ia/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eight Popular Open Source Android  Game Engines</title>
		<link>http://software.intel.com/en-us/blogs/2012/05/14/eight-popular-open-source-android-game-engines/</link>
		<comments>http://software.intel.com/en-us/blogs/2012/05/14/eight-popular-open-source-android-game-engines/#comments</comments>
		<pubDate>Tue, 15 May 2012 06:31:17 +0000</pubDate>
		<dc:creator>Tao B Wang (Intel)</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Intel SW Partner Program]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2012/05/14/eight-popular-open-source-android-game-engines/</guid>
		<description><![CDATA[This is an translation of a very popular Chinese Blog wrote by iamsheldon on Chinese Intel Software Network. For beginning  Android game developers, it is very common that they get lost  frequently and do not know where to  start and get their hands wet. Especially when they get problems that they can not resolve by themself, [...]]]></description>
			<content:encoded><![CDATA[<p>This is an translation of a very popular <a href="http://software.intel.com/zh-cn/blogs/2012/01/13/android-4/">Chinese Blog wrote by iamsheldon on Chinese Intel Software Network</a>.</p>
<p>For beginning  Android game developers, it is very common that they get lost  frequently and do not know where to  start and get their hands wet. Especially when they get problems that they can not resolve by themself, and be jealous about the free game engine  such as Cocos2d-iphone  that iphone developers have. Some start to complain that game development on Android platform is too difficult, and not even a decent game engine is handy to use.  Some even think that  using the Java language to develop games has lower ROI.</p>
<p>In fact,  in the real world, as Android is becoming possibily the only strong competitor against Apple IOS or even pass it,  there are for sure a lot resource that are available to Android developers, including quite a lot of Game Engines. Here I will introcude  the eight common Android game engines for Android game developers (Notes: fee based, low downloads counts, Not Open Sourced and the game engines that  I personally do not know (-_-) are not included here.).</p>
<p><strong>1  Angle</strong></p>
<p>Angle is a specifically designed for the Android platform, agile and suitable for the rapid development of 2D game engine based on OpenGL ES technology development. The engine are written in Java code, and you can replace the inside to achieve according to your needs. The drawback is that there are not enough documentations, and the codes available for download contains limited  sample tutorials.</p>
<p>The minimum operating environment requirements is unknown.</p>
<p>Project Address: <a href="http://code.google.com/p/angle/">http://code.google.com/p/angle/<br />
</a><strong></strong></p>
<p><strong>2  Rokon</strong></p>
<p>Rokon a the Android 2D game engine developed based on  OpenGL ES technology, the physics engine is the Box2D-, and therefore able to achieve some of the more complex physical effects.  The latest version is 2.0.3 (09/07/10). Overall, the biggest advantages of this engine is that  its development documentation is complete and comprehensive. And the author of the project responds to bug report and feedbacks quickly and provid fixs and solution. As a result, this framework is currently the most widely used, and lots of developers call it it called it iPhone version of Cocos2d  (logic, and coding style, did looks very similiar). Several Android Game framework are developed based on this frame (fee based, membership download only) . So we do not stereotype the claims that Fee-based engines are good good, open sourced and free are bad.</p>
<p>The minimum operating environment requirements for the Android 1.5.</p>
<p>Project Address: <a href="http://code.google.com/p/rokon/">http://code.google.com/p/rokon/</a></p>
<p><strong>3  LGame</strong></p>
<p>LGame is a  Java game engine developed by China Android developers. It has two version: Android and PC (J2SE), the highest version is  0.2.6 (31/07/10). The underlying graphics LGrpaphics packaged with   Graphics API provided by J2SE and J2ME (PC version uses the Graphics2D package, the Android version of Canvas emulation for rendering). As a result, developer can directly apply J2SE or J2ME development experience . The Android version has built-in Admob interface,  and there is not need to configure the XML befort you directly hard-code Admob advertising information.</p>
<p>In addition to the basic sound, graphics, physics, Wizard and other common components of the engine, it alos has built-in IoC, xml, http, and other commonly used Java components package. The drawback is that   the jar size is relatively big, the PC version jar size has exceeded 1.2MB, while the Android version is around 500KB. In addition, the engine is also built-in  the J2ME Wizard class and related components that support 1:1 rending, the vast majority of J2ME games can be ported to Android or PC version. The only shortfall is that the author of the project is a very lazy guy, development documentation promised last year still not complete, and only  game example is available  for download.</p>
<p>The minimum operating environment requirements for the Android 1.1.</p>
<p>Project Address: <a href="http://code.google.com/p/loon-simple/">http://code.google.com/p/loon-simple/</a></p>
<p><strong>4  AndEngine</strong></p>
<p>andengine is also an OpenGL ES technology-based Android game engine, physics engine is the same as the Box2D (standard III). The framwork is average on performance, and lack of development documentation. However, it has a lot of code  examples.</p>
<p>Download (no jar download, source code can be extracted using svn): <a href="http://code.google.com/p/andengine/">http://code.google.com/p/andengine/</a></p>
<p>The minimum operating environment requirements is Android 2.2 or above</p>
<p>Project Address: <a href="http://code.google.com/p/rokon/">http://code.google.com/p/rokon/<br />
</a><strong></strong></p>
<p><strong>5 libgdx</strong></p>
<p>Libgdx is a game engine developed using OpenGL ES technology, and support 2d Game development for Android platform, the rendering was done by physical engine using Box2D. From the perspective of performance, it is a very power game engine for Android, the drawback is that the Wizard and other relate componments are  not simple enough and user friendly, and documentations are also underdeveloped.</p>
<p>The minimum operating environment requirements is unknown.</p>
<p>Project Address: <a href="http://code.google.com/p/libgdx/">http://code.google.com/p/libgdx/<br />
</a><strong></strong></p>
<p><strong>6 jPCT</strong></p>
<p>jPCT is a standard based on OpenGL technology development, 3D graphics engine (PC environment for the OpenGL, Android OpenGL ES), based on the Java language, has a powerful Java 3D solutions. The engine and LGame (This is a 2D game engine) is similar to, with a PC (J2SE) and Android two development versions.</p>
<p>jPCT of one of the biggest advantage is its amazing backwards compatibility. In the PC environment, jPCT can even run in the JVM1.1 environment, because the graphics rendering jPCT internal interfaces fully comply with all the Java 1.1 specification (and even the Microsoft VM has disappeared, even the old Netscape 4 the VM is no exception ).</p>
<p>The minimum operating environment requirements for the Android 1.5.</p>
<p>Project Address: <a href="http://www.jpct.net/jpct-ae/">http://www.jpct.net/jpct-ae/<br />
</a><strong></strong></p>
<p><strong>7 Alien3d</strong></p>
<p>Alien3d is a very small volume Android 3D game engine based on OpenGL ES technology development. In order to compress the volume, according to different functions using a multi-jar release (to include alien3d-engine.jar the alien3d-tiled.jar the alien3d-sprites.jar the alien3d-shapes.jar alien3d-particles2d.jar), in fact, it The core file is only about 40KB, the sum of all the relevant jar is less than 150KB.</p>
<p>The minimum operating environment requirements for the Android 1.5.</p>
<p>Project Address: <a href="http://code.google.com/p/alien3d/">http://code.google.com/p/alien3d/</a><br />
<strong></strong></p>
<p><strong>8 Catcake</strong></p>
<p>Catcake is a cross-platform Java 3D graphics engine, support for the PC (J2SE) and the Android environment running (has been the iPhone version of Planning). All the outstanding performance of the engine in the ease of use and operational performance, support for game development, such as wizard animation, audio processing and video playback.</p>
<p>The minimum operating environment requirements for the Android 1.6.</p>
<p>Project Address: <a href="http://code.google.com/p/catcake/">http://code.google.com/p/catcake/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2012/05/14/eight-popular-open-source-android-game-engines/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>First Commercial Intel Smartphone Lava XOLO X900 Launched Today</title>
		<link>http://software.intel.com/en-us/blogs/2012/04/19/first-commercial-intel-smartphone-lava-xolo-x900-launched-today/</link>
		<comments>http://software.intel.com/en-us/blogs/2012/04/19/first-commercial-intel-smartphone-lava-xolo-x900-launched-today/#comments</comments>
		<pubDate>Thu, 19 Apr 2012 23:02:23 +0000</pubDate>
		<dc:creator>Tao B Wang (Intel)</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Intel SW Partner Program]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2012/04/19/first-commercial-intel-smartphone-lava-xolo-x900-launched-today/</guid>
		<description><![CDATA[Today, the first Intel Smart phone XOLO X900 smartphone was launched in India  http://www.xolo.in/ Information Week Report http://www.wired.com/gadgetlab/2012/04/its-official-intel-silicon-to-finally-appear-in-a-shipping-smartphone-in-india/ According the official XOLO website: "Superior Intel technology and Lava’s innovation come together to bring you the new XOLO X900, the first smartphone with Intel Inside®. Experience fast web browsing with the 1.6 GHz Intel processor. Based on [...]]]></description>
			<content:encoded><![CDATA[<p>Today, the first Intel Smart phone XOLO X900 smartphone was launched in India </p>
<p><a href="http://www.xolo.in/">http://www.xolo.in/</a></p>
<p><a href="http://www.informationweek.com/news/mobility/smart_phones/232900595">Information Week Report</a></p>
<p><a href="http://www.wired.com/gadgetlab/2012/04/its-official-intel-silicon-to-finally-appear-in-a-shipping-smartphone-in-india/">http://www.wired.com/gadgetlab/2012/04/its-official-intel-silicon-to-finally-appear-in-a-shipping-smartphone-in-india/</a></p>
<p>According the official XOLO website: "Superior Intel technology and Lava’s innovation come together to bring you the new XOLO X900, the first smartphone with Intel Inside®. Experience fast web browsing with the 1.6 GHz Intel processor. Based on Intel patented Hyper Threading technology this processor also enables smooth multi-tasking with optimum battery usage. A 4.03” hi-resolution LCD screen, dedicated HDMI output, full HD 1080p playback and dual speakers ensure an unmatched multimedia experience. Click up to 10 photos in less than a second on the 8MP HD camera which boasts of certain DSLR like features. With XOLO X900’s 400 MHz Graphics Processing Unit, 3D and HD gaming turn immersively realistic. Everything you have always wanted, and more, now comes in a blink into your pocket"</p>
<p>LAVA, one of India’s fastest growing handset brands.  XOLO X900, XOLO’s introductory offering, is the world’s first mobile phone with the power of Intel inside®.The stylish and sleek new XOLO X900 is a result of commitment to quality and innovation, designed to provide a superlative, immersing and engaging experience to address the need for a dynamic smartphone for today’s generation. The brand has invested in a state-of-the-art R&amp;D Centre in Shenzhen (China) and Bangalore (India)</p>
<p>Does Intel Chip use more power? To answer this, one of my colleague quickly looked at the battery life spec, and  you can find them from below. Datas from LAVA and Apple webpage:</p>
<p><a href="http://www.xolo.in/features">XOLO</a></p>
<p>Talk time (2G) up to 15.5 hours<br />
Talk time (3G) up to 7.8 hours<br />
Music playback (earphones) up to 43.9 hours<br />
Video playback (earphones) up to 6 hours<br />
Total standby time up to 14 days</p>
<p><a href="http://www.apple.com/iphone/specs.html">iPhone 4 Spec:</a></p>
<p>• Talk time: Up to 8 hours on 3G, up to 14 hours on 2G (GSM)<br />
• Standby time: Up to 200 hours<br />
• Internet use: Up to 6 hours on 3G, up to 9 hours on Wi-Fi<br />
• Video playback: Up to 10 hours<br />
• Audio playback: Up to 40 hours</p>
<p>This  is pretty good considering a phone with 4.03” hi-resolution LCD screen, dedicated HDMI output, full HD 1080p playback!</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2012/04/19/first-commercial-intel-smartphone-lava-xolo-x900-launched-today/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Releases Comparision Video for Android Emulator that Support X86</title>
		<link>http://software.intel.com/en-us/blogs/2012/04/12/google-releases-comparision-video-for-android-emulator-that-support-x86/</link>
		<comments>http://software.intel.com/en-us/blogs/2012/04/12/google-releases-comparision-video-for-android-emulator-that-support-x86/#comments</comments>
		<pubDate>Thu, 12 Apr 2012 22:32:45 +0000</pubDate>
		<dc:creator>Tao B Wang (Intel)</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Intel SW Partner Program]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2012/04/12/google-releases-comparision-video-for-android-emulator-that-support-x86/</guid>
		<description><![CDATA[Google engineers this week released a video which provided a good demo of the performance improvement on the new Android emulator which comes with new Android SDK R17. The emulator is enhanced by hardware virtualization, and has  access to the host CPU natively and offer significantly faster execution. This video shows a CPU-bound application on two emulators running the [...]]]></description>
			<content:encoded><![CDATA[<p>Google engineers this week released a video which provided a good demo of the performance improvement on the new Android emulator which comes with new Android SDK R17. The emulator is enhanced by hardware virtualization, and has  access to the host CPU natively and offer significantly faster execution. This video shows a CPU-bound application on two emulators running the same system image, one with virtualization (on the right side), and other one  on interpreted mode without virtualization (On the left side).</p>
<p><iframe width="420" height="315" src="http://www.youtube.com/embed/1gnQX_izOrk" frameborder="0" allowfullscreen></iframe></p>
<p> " The missing pieces (of emulator) were the completion of Android x86 support, and the GPU support in last week’s release of SDK Tools r17. This works by funneling the OpenGL ES 2.0 instructions from the emulator to the host OS, converted to standard OpenGL 2.0, and running natively on the host GPU", Android team members Xavier Ducrohet and Reto Meier wrote on the blog on the <a href="http://android-developers.blogspot.com/2012/04/faster-emulator-with-better-hardware.html" target="_blank">Android Developers Blog</a>.</p>
<p>The blog further acknowledged that because the Android platform allows deep interaction between applications, and with system components,  an emulator with a complete system image is a much-needed tool for Android developers. New Google emulator virtualizes a complete device: hardware, kernel, low-level system libraries, and app framework.</p>
<p>This is indeed a great news for the Android developers who want to develop apps that run on both ARM and Intel Atom based devices</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2012/04/12/google-releases-comparision-video-for-android-emulator-that-support-x86/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lenovo Received China Network Entry License for the First Intel Phone K800 , Launches An Android App Store For The Enterprise</title>
		<link>http://software.intel.com/en-us/blogs/2012/03/28/lenovo-received-china-network-entry-license-for-the-first-intel-phone-k800-launches-an-android-app-store-for-the-enterprise/</link>
		<comments>http://software.intel.com/en-us/blogs/2012/03/28/lenovo-received-china-network-entry-license-for-the-first-intel-phone-k800-launches-an-android-app-store-for-the-enterprise/#comments</comments>
		<pubDate>Wed, 28 Mar 2012 21:42:57 +0000</pubDate>
		<dc:creator>Tao B Wang (Intel)</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Intel SW Partner Program]]></category>
		<category><![CDATA[Mobility]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2012/03/28/lenovo-received-china-network-entry-license-for-the-first-intel-phone-k800-launches-an-android-app-store-for-the-enterprise/</guid>
		<description><![CDATA[Lenovo Intel Phone Received China Mobile Network Entrance License Lenovo K800, the first smart phone  with Intel Medfield platform, drawed  a wide range of media attention in CES2012. According China Tech Portal http://mobile.it168.com/a2012/0327/1330/000001330178.shtml , this week,  Lenovo has cleared all the obstacles and received China Mobile Network Entrance License for K800 from China National Telecommunication Equipment Certification Center,  Ministry of [...]]]></description>
			<content:encoded><![CDATA[<h1>Lenovo Intel Phone Received China Mobile Network Entrance License</h1>
<p>Lenovo K800, the first smart phone  with Intel Medfield platform, drawed  a wide range of media attention in CES2012. According China Tech Portal <a href="http://mobile.it168.com/a2012/0327/1330/000001330178.shtml ">http://mobile.it168.com/a2012/0327/1330/000001330178.shtml </a>, this week,  Lenovo has cleared all the obstacles and received China Mobile Network Entrance License for K800 from China National Telecommunication Equipment Certification Center,  Ministry of Industry and Information Technologies (<strong>TECC MIIT</strong>).  This means Lenovo has paved all its way up for the imminent launch of the first Intel Smart Phone Lenovo K800, and make it available to the largest mobile phone market in the world.</p>
<p><img id="LargePic" src="http://www.tenaa.com.cn/TransFile/WebPic/12021302/12021302-z.jpg" alt="" /></p>
<p>Lenovo models K800,  the first Intel Medfield platform phone,  has a 4.5-inch super large screen which is the largest Lenovo mobile touch screen size with the resolution  reaching 720p (1280x720 pixels) specification, plus the pixel density of 326ppi. From the photos released by TECC MIIT, the phone looks simple and stylish from both front and back:</p>
<p><img id="LargePic" src="http://www.tenaa.com.cn/TransFile/WebPic/12021302/12021302-b.jpg" alt="" /></p>
<p>As the main features of the first Intel Smart phone, the Lenovo K800  is equipped with one Intel1.6GHz Atom Medfield processor, which features 32-nanometer process, and the lowest to the highest  main frequency from 600MHz to 1.6GHz .This low power single core processor can reach two-cores by virtual Hyper-Threading technology. The chip comes with 512KB of L2 cache (up to the core level of the ARM Cortex-A15), using dual-channel LPDDR2 program, with PowerVR SGX 540 GPU.  Lenovo K800 is equipped with a 1970 mA battery case, in theory, will receive up to 14 days of standby time eight hours of 3G talk time, and four consecutive 15-hour music playback time. The performance gain is big enough that it  make the most of the smart phones competitors on the market hard to catch up. However, according to the information released from TECC MIIT,  the Lenovo K800 first comes with Android 2.3 Gingerbread system, and  is expected to upgrade to Android ICS 4.0 system shortly, which has much better user experience.</p>
<p>The Lenovo K800 is also equipped with a built-in 8 Million pixels (8MP) camera, auto-focus and high-speed continuous shooting,  as well as 1080p full HD video recording function. In addition, it also supports WCDMA networks and Wi-Fi wireless Internet access, GPS navigation, memory card expansion,  Blue tooth technology, and because the machine uses a Lenovo customization Clover UI and built-in localization of Chinese Service such as Sina, Netease, Sohu, so there are media reports that the first launch of K800 is targeted in China market</p>
<h1>Lenovo Launches An Android App Store For The Enterprise</h1>
<p>In a separate progress from Computer manufacturer Giant Lenovo, Lenovo  launched  an <a href="http://www.lenovo.com/products/us/tablet/enterprise-apps">Android App Store for the Enterprise</a>.  The Lenovo Enterprise App Shop enables IT managers to customize and publish Android corporate apps in an online store, and to purchase volume apps with license management for end users.</p>
<p>Sarah Perez,  a writer for TechCrunch, had wrote an article "<a href="http://techcrunch.com/2012/03/27/lenovo-launches-an-android-app-store-for-the-enterprise/">Lenovo Launches An Android App Store For The Enterprise</a>"  on <a href="http://techcrunch.com">http://techcrunch.com</a> and gave an good analysis on Lenovo's  move  which is clearly one designed to target the increasing popularity of the Apple iPad in the enterprise.</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2012/03/28/lenovo-received-china-network-entry-license-for-the-first-intel-phone-k800-launches-an-android-app-store-for-the-enterprise/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What Android SDK R17 and Intel HAXM mean for Android Developer and Programmer?</title>
		<link>http://software.intel.com/en-us/blogs/2012/03/23/what-android-sdk-r17-and-intel-haxm-mean-for-android-developer-and-programmer/</link>
		<comments>http://software.intel.com/en-us/blogs/2012/03/23/what-android-sdk-r17-and-intel-haxm-mean-for-android-developer-and-programmer/#comments</comments>
		<pubDate>Fri, 23 Mar 2012 19:27:19 +0000</pubDate>
		<dc:creator>Tao B Wang (Intel)</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Intel SW Partner Program]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2012/03/23/what-android-sdk-r17-and-intel-haxm-mean-for-android-developer-and-programmer/</guid>
		<description><![CDATA[The answer is " Android Emulator Faster, More Capable ". Mike James wrote an article title: "Android Emulator Faster, More Capable " on http://www.i-programmer.info. It is good read. Mike wrote " Support for x86 should get better as the facilities settle down from experimental to production. If you do install the x86 emulator then the [...]]]></description>
			<content:encoded><![CDATA[<p>The answer is " Android Emulator Faster, More Capable ". Mike James wrote an article title: "<a href="http://www.i-programmer.info/news/193-android/3967-android-emulator-faster-more-capable.html">Android Emulator Faster, More Capable </a>" on <a href="http://www.i-programmer.info">http://www.i-programmer.info</a>. It is good read.</p>
<p>Mike wrote " Support for x86 should get better as the facilities settle down from experimental to production. If you do install the x86 emulator then the result runs at close to native speeds - i.e. the sort of response times you would get from running Android on an x86 architecture. This is not surprising as this is exactly what you are doing - only the peripheral hardware is being fully emulated. What this means is that if a consumer version of the emulator can be produced then there is no barrier to running Android apps under Windows, Linux or OSX. Having the emulator prove itself within the SDK seems like a really good way of making sure that it works properly"</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2012/03/23/what-android-sdk-r17-and-intel-haxm-mean-for-android-developer-and-programmer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Start Intel Hardware-assisted Virtualization (hypervisor) on Linux to Speed-up Intel Android x86 Gingerbread  Emulator</title>
		<link>http://software.intel.com/en-us/blogs/2012/03/12/how-to-start-intel-hardware-assisted-virtualization-hypervisor-on-linux-to-speed-up-intel-android-x86-gingerbread-emulator/</link>
		<comments>http://software.intel.com/en-us/blogs/2012/03/12/how-to-start-intel-hardware-assisted-virtualization-hypervisor-on-linux-to-speed-up-intel-android-x86-gingerbread-emulator/#comments</comments>
		<pubDate>Tue, 13 Mar 2012 06:31:37 +0000</pubDate>
		<dc:creator>Tao B Wang (Intel)</dc:creator>
				<category><![CDATA[Academic]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Intel SW Partner Program]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2012/03/12/how-to-start-intel-hardware-assisted-virtualization-hypervisor-on-linux-to-speed-up-intel-android-x86-gingerbread-emulator/</guid>
		<description><![CDATA[The Intel Hardware Accelerated Execution Manager (Intel® HAXM) is a hardware-assisted virtualization engine (hypervisor) that uses Intel Virtualization Technology (VT) to speed up Android app emulation on a host machine. In combination with Android x86 emulator images provided by Intel and the official Android SDK Manager, HAXM allows for faster Android emulation on Intel VT [...]]]></description>
			<content:encoded><![CDATA[<p>The Intel Hardware Accelerated Execution Manager (Intel® HAXM) is a hardware-assisted virtualization engine (hypervisor) that uses Intel Virtualization Technology (VT) to speed up Android app emulation on a host machine. In combination with <a href="http://software.intel.com/en-us/articles/android-237-gingerbread-x86-emulator-image-add-on">Android x86 emulator images</a> provided by Intel and the official <a href="http://developer.android.com/sdk/index.html">Android SDK Manager</a>, HAXM allows for faster Android emulation on Intel VT enabled systems. HAXM for both Windows and IOS are available now.</p>
<p>Since Google mainly support Android build on Linux platform (with Ubuntu 64-bit OS as top Linux platform, and IOS as 2nd), and a lot of Android Developers are using AVD on Eclipse hosted by a Linux system, it is very critical that Android developers take advantage of Intel hardware-assisted KVM virtualization for Linux just like HAXM for Windows and IOS.</p>
<p>Below are the quick step-by-step's on how to install, enable KVM  on Ubuntu host platform and  start Intel Android x86 Gingerbread emulator with Intel hardware-assisted virtualization (hypervisor). The result is very pleasing and AVD runs significantly faster and smoother than without hypervisor ( see video attached below).</p>
<p><strong>KVM Installation</strong></p>
<p>I referred the instructions from Ubuntu community <a href="https://help.ubuntu.com/community/KVM/Installation">documentation page. </a>to get KVM installed.To see if your processor supports hardware virtualization, you can review the output from this command:</p>
<p>$ egrep -c '(vmx|svm)' /proc/cpuinfo</p>
<p>I got 64. If 0 it means that your CPU doesn't support hardware virtualization.</p>
<p>Next is to install CPU checker:</p>
<p>$ sudo apt-get install cpu-checker</p>
<p>Now you can check if your cpu supports kvm:</p>
<p>$kvm-ok</p>
<p>If you see:<br />
"INFO: Your CPU supports KVM extensions<br />
INFO: /dev/kvm exists<br />
KVM acceleration can be used"</p>
<p>It means you can  run your virtual machine faster with the KVM extensions.</p>
<p>If you see:<br />
"INFO: KVM is disabled by your BIOS<br />
HINT: Enter your BIOS setup and enable Virtualization Technology (VT),<br />
and then hard poweroff/poweron your system<br />
KVM acceleration can NOT be used"</p>
<p>You need to go to BIOS setup and enable the VT.</p>
<p><strong>Use a 64 bit kernel</strong></p>
<p>Running a 64 bit kernel on the host operating system is recommended but not required.<br />
To serve more than 2GB of RAM for your VMs, you must use a 64-bit kernel (see 32bit_and_64bit). On a 32-bit kernel install, you'll be limited to 2GB RAM at maximum for a given VM.<br />
Also, a 64-bit system can host both 32-bit and 64-bit guests. A 32-bit system can only host 32-bit guests.<br />
To see if your processor is 64-bit, you can run this command:</p>
<p>$ egrep -c ' lm ' /proc/cpuinfo</p>
<p>If 0 is printed, it means that your CPU is not 64-bit.<br />
If 1 or higher, it is. Note: lm stands for Long Mode which equates to a 64-bit CPU.<br />
Now see if your running kernel is 64-bit, just issue the following command:</p>
<p>$ uname -m</p>
<p>x86_64 indicates a running 64-bit kernel. If you use see i386, i486, i586 or i686, you're running a 32-bit kernel.</p>
<p><strong>Install KVM</strong></p>
<p>For Ubuntu Lucid (10.04) or later:</p>
<p>$ sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils</p>
<p>You may ignore the Postfix Configuration below by selecting "No Configuration"</p>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/kvm_install1.jpg"><img class="aligncenter size-full wp-image-45630" title="kvm_install1" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/kvm_install1.jpg" alt="" width="584" height="415" /></a></p>
<p>Next is to add your &lt;username&gt; account to the group <strong>kvm</strong> and <strong>libvirtd</strong></p>
<p>$ sudo adduser your_user_name kvm<br />
$ sudo adduser your_user_name libvirtd</p>
<p>After the installation, you need to relogin so that your user account becomes an effective member of kvm and libvirtd user groups. The members of this group can run virtual machines.</p>
<p>Verify Installation<br />
You can test if your install has been successful with the following command:<br />
$ sudo virsh -c qemu:///system list<br />
Your screen will paint the following below if successful:<br />
<em>Id Name                 State</em><br />
<em>----------------------------------</em></p>
<p><strong>Start the AVD from Android SDK Directly from Terminal</strong></p>
<p>Now start the Android for x86 Intel Emulator using  the following command:</p>
<p>$ &lt;SDK directory&gt;/tools/emulator-x86 -avd Your_AVD_Name -qemu -m 2047 -enable-kvm</p>
<p>Only a 64-bits Ubuntu can allow you to run allocated Memory of 2G or more. My 64-bit Ubuntu has 6G of Memory, so I used 1/3 of it for Android AVD. My AVD name is Intel_Atom_gingerbread_2.3 . '-qemu' provides the options to qemu, and '-m' specifies the amount of memory for the emulated Android (i.e. guest). If you use too small value for that, it's possible that performance is bad because of frequent swapping activities. Add '-show-kernel' to see the message from the kernel.</p>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/Start_AVD_directly.jpg"><img class="aligncenter size-full wp-image-45650" title="Start_AVD_directly" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/Start_AVD_directly.jpg" alt="" width="601" height="530" /></a></p>
<p>The YouTube in Android  x86 Intel Atom Gingerbread AVD is running fast and responsively in two level of virtual mode ( I remote login to a Ubuntu 10.04 and run the AVD from there).</p>
<p><strong>Start the AVD by AVD Manager in Eclipse</strong></p>
<p>Below is procedures recommended by Google. If you are running the emulator from Eclipse, run your Android application with an x86-based AVD and include the KVM options:</p>
<ul>
<li>In Eclipse, click your Android project folder and then select <strong>Run &gt; Run Configurations...</strong></li>
<li>In the left panel of the <strong>Run Configurations</strong> dialog, select your Android project run configuration or create a new configuration.</li>
<li>Click the <strong>Target</strong> tab.</li>
<li>Select the x86-based AVD you created previously.</li>
<li>In the <strong>Additional Emulator Command Line Options</strong> field, enter:
<pre>-qemu -m 2047 -enable-kvm</pre>
</li>
<li>Run your Android project using this run configuration.</li>
</ul>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/youyube.jpg"><img class="aligncenter size-full wp-image-45634" title="youyube" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/youyube.jpg" alt="" width="601" height="484" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2012/03/12/how-to-start-intel-hardware-assisted-virtualization-hypervisor-on-linux-to-speed-up-intel-android-x86-gingerbread-emulator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hands-on Notes:Build Android-x86 ICS 4 Virtualbox from Google Virtualbox Target and Intel Kernel</title>
		<link>http://software.intel.com/en-us/blogs/2012/03/06/hands-on-notesbuild-android-x86-ics-4-virtualbox-from-google-virtualbox-target-and-intel-kernel/</link>
		<comments>http://software.intel.com/en-us/blogs/2012/03/06/hands-on-notesbuild-android-x86-ics-4-virtualbox-from-google-virtualbox-target-and-intel-kernel/#comments</comments>
		<pubDate>Tue, 06 Mar 2012 23:11:12 +0000</pubDate>
		<dc:creator>Tao B Wang (Intel)</dc:creator>
				<category><![CDATA[Academic]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Intel SW Partner Program]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2012/03/06/hands-on-notesbuild-android-x86-ics-4-virtualbox-from-google-virtualbox-target-and-intel-kernel/</guid>
		<description><![CDATA[  Summary This blog is a collection of hands-on notes on building Android ICS 4 virtualbox installer for x86  from official Google x86 virtualbox target vbox-x86-eng (included in ICS 4.0 source)  and using a Linux 2.6 kernel provided by Intel to add specific feature for virtualbox and how to use installer.vdi to install Android ICS [...]]]></description>
			<content:encoded><![CDATA[<p><strong> </strong></p>
<p><strong>Summary</strong></p>
<p>This blog is a collection of hands-on notes on building Android ICS 4 virtualbox installer for x86  from official Google x86 virtualbox target vbox-x86-eng (included in ICS 4.0 source)  and using a Linux 2.6 kernel provided by Intel to add specific feature for virtualbox and how to use installer.vdi to install Android ICS 4.0 into Virtualbox.</p>
<p>In addition to Google AVD  emulator supported by Intel Hardware Accelerated Execution Manager (HAXM) technology (already available <strong><a href="http://software.intel.com/en-us/articles/intel-hardware-accelerated-execution-manager/">Here</a></strong>),  Android for x86  Virtualbox is completely running x86 codes and provides another fast and high performance tool for developer and partner for quick app development and testing. Booting an Android ICS 4 in virtualbox takes about 20 seconds, same process on an ARM-based ICS 4 AVD emulator in Eclipse takes 65 seconds. Speed, performance, and user experience are all counted for the popularity of virtualbox among Android developers, especially for x86 platform. It takes time for x86 based Android tablet and phone to be easily available on the market.  Develop apps on AVD and virtual platform continue to be a top option for Android for X86 developers.</p>
<p><strong>Why Google provides Virtualbox build Target for ICS 4?</strong></p>
<p>If you have been using Google’s latest ICS source repo, you probably have noticed that Google provided an x86 version of Virtualbox target vbox_x86-eng. When you key in the <strong>lunch</strong> command before start your build, the first three targets that Google provide for ICS 4.0.1 are:</p>
<p>1. full-eng<br />
2. full_x86-eng<br />
3. vbox_x86-eng</p>
<p>With vbox_x86-eng (#3) target, developer and system builder can compile and make android_disk.vdi and android installer.vdi which can be used to run Android ICS 4 in virtualbox for app development and system integration on Windows, Linux and IOS platform .</p>
<p><strong>Downloading the Source Tree and Installing Repo</strong></p>
<p>Read  <span style="text-decoration: underline;"><a title="Permanent Link: Things I Wish I Knew Before I Built My First Android-x86 from Google Source Supported by Intel" href="../../2012/02/23/things-i-wish-i-knew-before-i-built-my-first-android-x86-from-google-source-supported-by-intel/">Things I Wish I Knew Before I Built My First Android-x86 from Google Source Supported by Intel</a> </span>to set up your app development platform and get ready for your Android build.</p>
<p>To install, initialize, and configure Repo, follow these steps (More detail on <a href="http://source.android.com/source/downloading.html">Android source site</a>) :<br />
$ mkdir ~/bin<br />
$ PATH=~/bin:$PATH<br />
$ curl <a href="https://dl-ssl.google.com/dl/googlesource/git-repo/repo">https://dl-ssl.google.com/dl/googlesource/git-repo/repo</a> &gt; ~/bin/repo<br />
$ chmod a+x ~/bin/repo<br />
$ mkdir ANDROID_TOP_PATH<br />
$ cd ANDROID_TOP_PATH</p>
<p>To get a list of available branches, (from your android repo checkout root), use this command:</p>
<p>$ git --git-dir .repo/manifests/.git/ branch -a</p>
<p>Google ICS 4.x are listed below:</p>
<p>remotes/origin/android-4.0.1_r1<br />
remotes/origin/android-4.0.1_r1.1<br />
remotes/origin/android-4.0.1_r1.2</p>
<p>Run repo init to bring down the latest version of Repo  with all its most recent bug fixes. I check out android-4.0.1_r1  at this hands-on:</p>
<p>$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1</p>
<p>To use the Gerrit code-review tool, you will need an email address that is connected with a registered Google account. Make sure this is a live address at which you can receive messages. The Kernel version and Build number will be assigned to your build, and information will be displayed in Android/settings/about phone/ page.</p>
<p>A successful initialization will end with a message stating that Repo is initialized in your working directory. Your client directory should now contain a .repo directory where files such as the manifest will be kept.</p>
<p>To pull down files to your working directory from the repositories as specified in the default manifest, run</p>
<p>$ repo sync</p>
<p>By default, access to the Android source code is anonymous. To protect the servers against excessive usage, each IP address is associated with a quota. Now we switch to build a new Kernel before we come back to build ICS4.</p>
<p><strong>What version of gcc and g++ to use?</strong></p>
<p>Ubuntu 11 already start using gcc 4.6. So you can check your C/C++ compiler version by gcc –v to make sure your system is using gcc-4.4.  You also need to make sure that you use g++ version 4.4 for CXX command.</p>
<p>$ gcc -v<br />
$ gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5)</p>
<p>I am using Ubuntu 10.04LTS. So it happen on the same GCC version with Google</p>
<p>Using built-in specs.<br />
Target: x86_64-linux-gnu<br />
gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu 5)</p>
<p>If you are using gcc 4.6, you will always need to do “ make CC=gcc-4.4 CXX=g++-4.4.. “ for following Android build process</p>
<p><strong>Building a Kernel Provided by Intel</strong></p>
<p>Since Android is meant for touchscreen devices, it doesn’t include support for a mouse pointer by default, and possibly no network too as most Android devices are using wireless. To build a Android ICS 4  virtualbox for regular app development platform, we need to rebuild the kernel with mouse support as well as some of features that you probably need for your own apps. Intel Android developer site provided a Linux 2.6. kernel SDK for x86 which included many drivers that Intel developed. Go to Intel Android Developer site to download <a href="http://software.intel.com/en-us/articles/android-237-gingerbread-x86-emulator-image-add-on/">Android* 2.3.7 (Gingerbread) x86 Emulator Image Add-on</a>.  After Unzip the package Intel_x86_sysimg_2.3.7_Source_Files.zip ( 1.2G), you will find:</p>
<ul>
<li>Gingerbread_2.3.7_x86_sdk-20111231.tgz</li>
<li>kernel_sdk_x86.tar.gz</li>
</ul>
<p>Run a untar to kernel_sdk_x86.tar.gz to create a new folder with the kernel 2.6.x source ( Intel soon will make new kernel for Ice Cream Sandwich  4 or higher available.However the process is similiar)</p>
<p>We switch to the directory that holds your kernel files. Now that we have the kernel source, we need to modify the configuration according to the hardware that you are using for Virtualbox host system and rebuild it. We can use menuconfig  graphical interface provided by kernel source which will allow us to do this conveniently:</p>
<p>$ cp ANDROID_TOP_PATH/your_kernel_path/arch/x86/configs/vbox_defconfig  .config</p>
<p>$ make  ARCH=x86 menuconfig</p>
<p>It will take a few seconds to compile and load:</p>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/kernel_menu_more1.jpg"><img class="aligncenter size-full wp-image-45367" title="kernel_menu_more" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/kernel_menu_more1.jpg" alt="" width="521" height="601" /></a></p>
<p>Once it does, use Up/Down arrows to navigate, enter to select (i.e. to expand), ‘y’ (or space) to include. e.g. to enable Mice,You will need to go to:  Device Driver-&gt;Input Device Support -&gt; Mice. To enable Wireless, you can go to Network Device Support etc.  You can also see that there session dedicated for Tablet, you can  go to related line and select them.</p>
<p>Note: menuconfig is the place that you check to make sure the required features and support for your application or system integration is supported. For App developers, it is equally important that you must test and validate your app on Android that is built with default menuconfig to guarantee the maximum compatibility  of your app to various Android device made by different OEM</p>
<p>$ make ARCH=x86 –j32</p>
<p>After the compiling, if you see the last line that Kernel: arch/x86/boot/bzImage is ready .Then, your make is successful.</p>
<p><strong>Add patched Kernel</strong></p>
<p> Here the kernel image bzImage need to be renamed to kernel-vbox, and copied to /ANDROID_TOP_PATH/prebuilt/android-x86/kernel/kernel-vbox:</p>
<p>$ cp /ANDROID_TOP_PATH/kernel/arch/x86/boot/bzImage   /ANDROID_TOP_PATH/prebuilt/android-x86/kernel/kernel-vbox</p>
<p><strong>Setup Faster Android Builds using CCACHE </strong></p>
<p>You can greatly reduce the compile time for subsequent compilations by use the compiler cache. To set up a 50GB cache ( I have a big HDD),  you can run:</p>
<p>1. Install CCcache program and Create a directory for your ccache</p>
<p>$ sudo apt-get install ccache<br />
$ sudo mkdir /ANDROID_TOP_PATH/ccache<br />
$ sudo chown $LOGNAME  /ANDROID_TOP_PATH/ccache</p>
<p>2. Set up your environment variables Place these in your ~/.profile,</p>
<p>$ sudo gedit ~/.bashrc</p>
<p>Add:</p>
<p>export CCACHE_DIR=/ANDROID_TOP_PATH/ccache<br />
export USE_CCACHE=1</p>
<p>3. Set the ccache sizes. If  you have a big hard drive, you can set it bigger:</p>
<p>$ ccache -F 100000<br />
$ ccache -M 50G</p>
<p><strong>Build ICS 4 with new Kernel</strong></p>
<p>Setting up Environment:</p>
<p>$ /ANDROID_TOP_PATH/&gt; source build/envsetup.sh</p>
<p>For ICS 4.0.1, you will see:</p>
<p>including device/samsung/maguro/vendorsetup.sh<br />
including device/samsung/tuna/vendorsetup.sh<br />
including device/ti/panda/vendorsetup.sh<br />
including sdk/bash_completion/adb.bash</p>
<p>Time to time, I encounted "No Target to Make" error message when using lunch vbox_x86_eng. So it is easy to just do the following:</p>
<p>$ lunch<br />
You're building on Linux<br />
Lunch menu... pick a combo:<br />
1. full-eng<br />
2. full_x86-eng<br />
3. vbox_x86-eng<br />
4. full_maguro-userdebug<br />
5. full_tuna-userdebug<br />
6. full_panda-eng</p>
<p>Which would you like? [full-eng] 3   (Note: make sure you select 3.vbox_x86-eng)</p>
<p>PLATFORM_VERSION_CODENAME=REL<br />
PLATFORM_VERSION=4.0.1<br />
TARGET_PRODUCT=vbox_x86<br />
TARGET_BUILD_VARIANT=eng<br />
TARGET_BUILD_TYPE=release<br />
TARGET_BUILD_APPS=<br />
TARGET_ARCH=x86<br />
TARGET_ARCH_VARIANT=x86<br />
HOST_ARCH=x86 HOST_OS=linux<br />
HOST_BUILD_TYPE=release<br />
BUILD_ID=ITL41D<br />
Run make,  I have a 16-core server, so I use j=32 (double by HT).</p>
<p>$ make   -j32</p>
<p>Compiling time is dependent on your hardware. Using 2.6 kernel will lead to a image file about 300 mb.</p>
<p><strong>Setup DNS </strong></p>
<p>There have been issues reported by Android developer that time to time the networking   does not appear to get the default DNS servers. No knowing when  the related patch will be provided to ICS 4 vbox-x86 target repo. One way around this is to use some publicly available DNS servers, such as those provided by Google (8.8.8.8)(<a href="http://forum.xda-developers.com/showpost.php?p=19691428&amp;postcount=17" target="_blank">See  post here</a> ):</p>
<p><strong>Build the VirtualBox Android Disk (Android_disk.vdi) and VirtualBox Android Installer</strong></p>
<p>Finally, we build the Android_disk.vdi and installer_vdi together :</p>
<p>$ make android_disk_vdi  installer_vdi  -j32</p>
<p>If the build is successful, You will see the output below somewhere:</p>
<p>Done with VirtualBox bootable disk image -[ out/target/product/vbox_x86/android_disk.vdi ]-<br />
Done with VirtualBox bootable installer image -[ out/target/product/vbox_x86/installer.vdi ]-</p>
<p>With android_disk.vdi (334mb), you should be able to New-&gt;Create New Virtual Machine and use android_disk.vdi as an existing and run the ICS 4 in virtualbox. Set up the parameters for virtualbox is straigfoward. Unlike the previous Android in virtualbox that you need to click Machine on top menu  -&gt; Disable Mouse Integration to enable your mouse. You just need to click inside the VirtualBox window (Press the right Ctrl key to release your mouse).</p>
<p>Go to setting -About this phone, and you will see your build information:</p>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/Complete_install_information_platform.jpg"><img class="aligncenter size-full wp-image-45446" title="Complete_install_information_platform" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/Complete_install_information_platform.jpg" alt="" width="577" height="480" /></a></p>
<h3>Install Android Virtualbox using installer.vdi</h3>
<p>Even the file size in Virtualbox is expanded to ~550mb. It is still too small to load apps to test. We still need a Android installer disk  to install Android into a much larger partition ( better larger than 4G ).First you start New and follow Create New Virtual Machine Wizard to create a larger disk under IDE controller. In my case, I create a 4G disk in the format of vdi fixed file, and  set it as IDE Primary Master.</p>
<p>Then in  Storage of the Settings of your virtual machine as below:</p>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/android_install_storage_small.jpg"><img class="aligncenter size-full wp-image-45450" title="android_install_storage_small" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/android_install_storage_small.jpg" alt="" width="589" height="440" /></a></p>
<p>Add the installer.vdi as the Primary IDE Slave as show below. Now you can get started to install Android  on the larger 4G Disk you just created.</p>
<ol>
<li>Start the emulator</li>
<li>Use F12 to get to the BIOS boot menu. Boot to the secondary drive</li>
<li>Use grub to select the Install option: 2. Boot from Primary Slave</li>
</ol>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/virtualbox_boot_grub.jpg"><img class="aligncenter size-full wp-image-45452" title="virtualbox_boot_grub" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/virtualbox_boot_grub.jpg" alt="" width="481" height="346" /></a></p>
<p>When you see "Done processing installer config", type "reboot"</p>
<p>Note: The first time you install on your target virtual disk, the install will most likely fail. A message will be printed that tells you to run the installer again. You should do so:</p>
<p>$ installer<strong><br />
</strong></p>
<p>After reboot, you can see that your Android is running from the larger disk that you create, and you can safely remove the installer.vdi from Storage under IDE Controller.</p>
<p><strong>Serial Port</strong></p>
<p>The Serial port has been enabled by default . The virtual machine needs a one-time enabling of the COM1 serial port however. The following instructions will cause VirtualBox to create a named pipe called .vbox_pipe in your home directory. From the command line:</p>
<p>$ VBoxManage modifyvm Android --uart1 0x03f8 4</p>
<p>$ VBoxManage modifyvm Android --uartmode1 server /home/user/.vbox_pipe</p>
<p>Or from in the GUI, use the serial ports tab to enable COM1 as a "Host Pipe" and select "Create Pipe" for it to be created as /home/user/.vbox_pipe.</p>
<p>To connect to this named pipe, use:</p>
<p>$ socat unix-client:$HOME/.vbox_pipe stdout</p>
<p><strong>Note</strong>: Environment variables (e.g. $HOME) might not be understood by VirtualBox, so you will have to specify a full explicit path, like /home/user/.vbox_pipe.</p>
<p><strong>Ethernet</strong></p>
<p>The ethernet port (eth0) is enabled for DHCP in the image. To connect to it via ADB you will need the DHCP address that has been assigned.</p>
<p><em>If you are using a bridged ethernet</em>, you may obtain this address from a shell prompt either from the serial port or from "developer tools -&gt; terminal emulator" using the command:</p>
<p>$ netcfg</p>
<p><em>If you are using a Host-only adapter, 'vboxnet0'</em>, you should use the address 192.168.56.101. to create your host-only interface, you may need to use the command:</p>
<p><strong>Final Notes</strong></p>
<p>Now you have a virtualbox completely built from Google official vbox-x86 target for Ice Create Sandwich and the Kernel of your choice, and you control what to add or remove at Kernel built or Android compile level to address your need for Apps development and testing. There are a lot of discussion of Android ICS in virtualbox that you find tips and tricks, In my case,  I was able to twig and  add/install apps made by Java, NDK or Chrome Web application, play around and test them:</p>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/Kernel_menu_configurationsmall.jpg"><img class="aligncenter size-full wp-image-45455" title="Kernel_menu_configurationsmall" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/Kernel_menu_configurationsmall.jpg" alt="" width="593" height="492" /></a></p>
<p>I can also user Intel Power Monitor tool to do power related profiling and monitoring about the application:</p>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/ICS_screen_Intel_PowerMonitorToolsmall.jpg"><img class="aligncenter size-full wp-image-45456" title="ICS_screen_Intel_PowerMonitorToolsmall" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/ICS_screen_Intel_PowerMonitorToolsmall.jpg" alt="" width="595" height="499" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2012/03/06/hands-on-notesbuild-android-x86-ics-4-virtualbox-from-google-virtualbox-target-and-intel-kernel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Things I Wish I Knew Before I Built My First Android-x86 from Google Source Supported by Intel</title>
		<link>http://software.intel.com/en-us/blogs/2012/02/23/things-i-wish-i-knew-before-i-built-my-first-android-x86-from-google-source-supported-by-intel/</link>
		<comments>http://software.intel.com/en-us/blogs/2012/02/23/things-i-wish-i-knew-before-i-built-my-first-android-x86-from-google-source-supported-by-intel/#comments</comments>
		<pubDate>Fri, 24 Feb 2012 05:25:48 +0000</pubDate>
		<dc:creator>Tao B Wang (Intel)</dc:creator>
				<category><![CDATA[Academic]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Intel SW Partner Program]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2012/02/23/things-i-wish-i-knew-before-i-built-my-first-android-x86-from-google-source-supported-by-intel/</guid>
		<description><![CDATA[Last week, I was in cycle of several Android developers and partners who have needs to compile and build their own Android for Intel x86 platform from Google source repository, and read through a lot of success/unsuccessful stories.  I decided to try my own build. That  was a wonderful journey and learning experience. Even though [...]]]></description>
			<content:encoded><![CDATA[<p>Last week, I was in cycle of several Android developers and partners who have needs to compile and build their own Android for Intel x86 platform from Google source repository, and read through a lot of success/unsuccessful stories.  I decided to try my own build. That  was a wonderful journey and learning experience. Even though I have pretty of resource and help available around, I still made some wrong turns at different cross-roads, and got to say that back on track wasn't easy. To save your time doing the same, read on:</p>
<p><strong>Start with  64 bits Ubuntu for your development platform build, and forget any 32 bits OS</strong></p>
<p>I had a 32 bits Ubuntu in my lab, and I  love Ubuntu and trust that my apt-get should get everything I need. This is my first wrong turn and here are the results:</p>
<ul>
<li> I always had problems with the build failures due to erroneously using some 64-bit or 32-bit libs/headers ( several times I thought I almost fix them).</li>
<li> Google Source Repository allow a single repository download for a single gmail account and a specific IP address only for an unknown time period. No 2nd try. It is very reasonable as each download transfer 2-4G  of data. I made my mistake on 32bits, and after I built my 64-bits and tried again, No luck!</li>
<li> Latter, I found notes from Google: " By default, access to the Android source code is anonymous. To protect the servers against excessive usage, each IP address is associated with a quota"</li>
</ul>
<p>You can download  and install Ubuntu 10.04 (64-bit)  as below</p>
<ul>
<li> Download <a title="Ubuntu Download" href="http://www.ubuntu.com/download/ubuntu/download" target="_blank">Ubuntu [1]</a>, 64-bit edition</li>
<li> Burn the ISO to CD, or follow the document in the page to create a bootable USB stick</li>
<li> Boot from CD or USB</li>
<li> Install</li>
</ul>
<p>Make sure your check your OS and make sure it is 64-bit. You can "uname -a", and check if you see x86_64.</p>
<p><strong>Set up your Proxy Server (Skip this step if your system connects directly to Internet)</strong></p>
<p>Again, do your repo sync through a proxy is very tricky, and make sure you do this step right</p>
<p>For GNOME (Ubuntu 10.04/10.10/11.04):</p>
<p>Go to System-&gt;Settings-&gt;Network Proxy. Click on the 'Proxy Configuration' tab and enter in the proxy for your site. After that, click on the 'Ignored Hosts' tab and make sure all the sites you don't want proxy (localhost, 127.0.0.0/8, .local, 192.168.0.0/16, your.corporate.ip are listed there. Once done, click 'Apply System-Wide...' and then close the dialog. You are not done yet.</p>
<p><strong>Bash</strong></p>
<p>Edit your bashrc file, located at ~/.bashrc, and add these lines at the end:<br />
export http_proxy=http://your.corporate.proxy:port#<br />
export https_proxy=https://your.corporate.proxy:port#<br />
export no_proxy=localhost,.yourcorporate.com,127.0.0.0/8,192.168.0.0/16</p>
<p><strong>Git Proxy Settings</strong></p>
<p>You will need a program called <a href="http://www.google.co.jp/url?sa=t&amp;rct=j&amp;q=connect&amp;source=web&amp;cd=1&amp;ved=0CB4QFjAA&amp;url=http%3A%2F%2Fwww.meadowy.org%2F~gotoh%2Fssh%2Fconnect.c&amp;ei=Hx5HT4KGMo3KiALW4IzbDQ&amp;usg=AFQjCNEnxIy2hAllRCLQnRb09B8gaO03Iw&amp;cad=rja">connect [2]</a> for Git to utilize proxy (although if you know what you are doing, you can use whatever you like to connect via SOCKS). You can download the source at <a href="http://www.meadowy.org/~gotoh/ssh/connect.c">http://www.meadowy.org/~gotoh/ssh/connect.c</a> and compile. Or if you are using Ubuntu, you can install the package connect-proxy by:</p>
<p>$ sudo apt-get install connect-proxy</p>
<p>After you have the connect program, you will need a script for Git to use. It will choose whether to connect through the proxy depending on the URL of the repository. Create and edit a new file named socks-gw. In it, put the following code:<br />
<em><strong> </strong></em></p>
<p><em>#!/bin/sh</em><br />
<em> echo $1 | grep "\.yourcorporatename\.com$" &gt; /dev/null 2&gt;&amp;1</em><br />
<em> if [ $? -eq 0 ]; then</em><br />
<em> connect $@</em><br />
<em> else</em><br />
<em> connect -S proxy-socks.yourcorporate.com:1080 $@</em><br />
<em> fi</em></p>
<p>You should put this somewhere on your path (e.g. ~/bin/). Remember to make the script executable by doing:</p>
<p>$ chmod +x PATH_WHERE_YOU_PLACED_UTILS/socks-gw</p>
<p>Then inside ~/.bashrc, add:<br />
export GIT_PROXY_COMMAND=PATH_WHERE_YOU_PLACED_UTILS/socks-gw</p>
<p><strong>Check Environment Settings</strong></p>
<p>You can restart your terminal and see if the necessary environment variables are exported. After restarting the terminal, execute the following commands to check:</p>
<p>$ echo $http_proxy<br />
$ echo $https_proxy<br />
$ echo $no_proxy<br />
$ echo $GIT_PROXY_COMMAND<br />
<strong> </strong></p>
<p><strong>Installing the correct version of Java SDK</strong></p>
<p>Android relies on a JDK that is older than the one provided in newer Linux distributions. So do not always choose the latest Java SDK. In order to download it, you need to add the appropriate repository and indicate to the system which JDK should be used. Java 6 should be used for Gingerbread and newer<br />
$ sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"<br />
$ sudo apt-get update<br />
$ sudo apt-get install sun-java6-jdk</p>
<p>Or get the JDK from oracle. Unpack it into your $HOME/bin/ and edit your .profile or .bashrc to set up the search path to find the javac in your $HOME/bin/jdk1.6.x_xx/bin before anything that may be on your distro install.</p>
<p>Add something like following to the end of ~/.bashrc: be sure to match the path's with whatever java you ended up with, or simply updating your PATH; (i.e. PATH=$HOME/bin/jdk1.6.0_xx/bin:$PATH)</p>
<p>$ export JAVA_1_6=$HOME/bin/jdk1.6.0_xx<br />
# Adjust the next line if necessary, $JAVA_1_6 for Gingerbread<br />
$ export JAVA_HOME=$JAVA_1_6<br />
$ export JAVA_FONTS=/usr/share/fonts/truetype<br />
$ export ANT_HOME=/usr/share/ant<br />
$ PATH=$JAVA_HOME/bin:$ANT_HOME/bin:$PATH<br />
$ export CLASSPATH=.</p>
<p>Note: replace xx with your actual version #</p>
<p><strong>For Ubuntu (Apt-based)</strong></p>
<p>Enable the Canonical Partner repository<br />
Open Synaptic (normally, it's under System -&gt; Administration)<br />
Inside Synaptic, Settings-&gt;Repositories-&gt;Other Software<br />
Make sure Canonical Partners entry is checked<br />
Close Synaptic</p>
<p>Open a terminal. Do the following (exclude the $ sign):</p>
<p>$ sudo apt-get update<br />
$ sudo apt-get install zip build-essential curl git-core \<br />
python gcc patch flex bison gperf \<br />
g++ squashfs-tools sun-java6-jdk \<br />
ia32-libs g++-multilib zlib1g-dev \<br />
lib32z1-dev lib32ncurses5-dev \<br />
gcc-multilib libwxgtk2.8-dev \<br />
tofrodos texinfo mtools</p>
<p>To make sure you will not miss any packages. Run the Google recommended below again:</p>
<p>$ sudo apt-get install gnupg flex bison gperf build-essential \<br />
zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs \<br />
x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev \<br />
libgl1-mesa-dev g++-multilib mingw32  python-markdown \<br />
libxml2-utils xsltproc</p>
<p>No need to worry about the duplications, just to make sure you will not miss any packages. Then:</p>
<p>$ sudo ln -s /usr/bin/fromdos /usr/local/bin/dos2unix</p>
<p>On Ubuntu 10.10:</p>
<p>$ sudo ln -s /usr/lib32/mesa/libGL.so.1 /usr/lib32/mesa/libGL.so</p>
<p>On Ubuntu 11.10:<br />
$ sudo apt-get install libx11-dev:i386</p>
<p><strong>Installing Repo  and Downloading the Source Tree</strong></p>
<p>Repo is a tool that makes it easier to work with Git in the context of Android. To install, initialize, and configure Repo, follow these steps:<br />
Make sure you have a bin/ directory in your home directory, and that it is included in your path:</p>
<p>$ mkdir ~/bin<br />
$ PATH=~/bin:$PATH</p>
<p>Download the Repo script and ensure it is executable:</p>
<p>$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo &gt; ~/bin/repo<br />
$ chmod a+x ~/bin/repo</p>
<p>Initializing a Repo client After installing Repo, set up your client to access the android source repository:</p>
<p>Create an empty directory to hold your working files:</p>
<p>$ mkdir gingerbread<br />
$ cd gingerbread</p>
<p>Run repo init to bring down the latest version of Repo with all its most recent bug fixes. You must specify a URL for the manifest, which specifies where the various repositories included in the Android source will be placed within your working directory.</p>
<p>$ repo init -u https://android.googlesource.com/platform/manifest</p>
<p>The branch label “gingerbread”  has the required build files and modules needed to  build the x86 SDK Emulator images. The Ice Cream Sandwich branch will be available shortly. To check out gingerbread branch only other than "master", specify it with -b:</p>
<p>$ repo init -u https://android.googlesource.com/platform/manifest -b gingerbread</p>
<p>When prompted, configure Repo with your real name and email address. To use the Gerrit code-review tool, you will need an email address that is connected with a registered Google account. Make sure this is a live address at which you can receive messages. The name that you provide here will show up in attributions for your code submissions, and also in the Android info page you build.</p>
<p>A successful initialization will end with a message stating that Repo is initialized in your working directory. Your client directory should now contain a .repo directory where files such as the manifest will be kept.</p>
<p><strong>Getting the files</strong></p>
<p>To pull down files to your working directory from the repositories as  specified in the default manifest, run</p>
<p>$ repo sync</p>
<p>The Android source files will be located in your working directory under their project names. Dependent on how fast your system is and your network, the initial sync operation will take about an hour or more to complete.</p>
<p><strong>Building the Android System</strong></p>
<p>Initialize the environment with the envsetup.sh script. Note that replacing "source" with a single dot saves a few characters, and the short form is more commonly used in documentation.</p>
<p>$ source build/envsetup.sh</p>
<p>including device/htc/passion/vendorsetup.sh<br />
including device/samsung/crespo4g/vendorsetup.sh<br />
including device/samsung/crespo/vendorsetup.sh</p>
<p><strong>Choose a Target</strong></p>
<p>Choose which target to build with lunch. The exact configuration can be passed as an argument, e.g.</p>
<p><em>$ lunch</em><br />
<em> Lunch menu... pick a combo:</em><br />
<em> 1. full-eng</em><br />
<em> 2. full_x86-eng</em><br />
<em> 3. simulator</em><br />
<em> 4. full_passion-userdebug</em><br />
<em> 5. full_crespo4g-userdebug</em><br />
<em> 6. full_crespo-userdebug</em><br />
<em> Which would you like? [full-eng]: 2.</em></p>
<p>Then, you will see:<br />
<em>============================================</em><br />
<em> PLATFORM_VERSION_CODENAME=REL</em><br />
<em> PLATFORM_VERSION=2.3.7</em><br />
<em> TARGET_PRODUCT=full_x86</em><br />
<em> TARGET_BUILD_VARIANT=eng</em><br />
<em> TARGET_SIMULATOR=false</em><br />
<em> TARGET_BUILD_TYPE=release</em><br />
<em> TARGET_BUILD_APPS=</em><br />
<em> TARGET_ARCH=x86</em><br />
<em> TARGET_ARCH_VARIANT=x86-atom</em><br />
<em> HOST_ARCH=x86</em><br />
<em> HOST_OS=linux</em><br />
<em> HOST_BUILD_TYPE=release</em><br />
<em> BUILD_ID=GINGERBREAD</em><br />
<em> ============================================</em></p>
<p><strong>Building the Code</strong></p>
<p>$ make -jN</p>
<p>While N is the total core of CPU of your system. The more core you have, the faster it build.<br />
If your build is successful, you will have the following files in</p>
<p>~/WORKING_DIRECTORY/out/target/product/generic_x86/</p>
<p>&nbsp;</p>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/02/Android-system-build-out1.jpg"><img class="aligncenter size-full wp-image-45132" title="Android system build out" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/02/Android-system-build-out1.jpg" alt="" width="636" height="520" /></a></p>
<p><strong>Next, you are ready to:</strong></p>
<ul>
<li>Flash your Android build to your device</li>
<li>Build an Android installer iso</li>
<li>Create an Android AVD emulator</li>
<li>Build a Virtualbox.</li>
</ul>
<p>Android Ice Cream Sandwich is coming very soon. Same process applied to  ICS. However, any app or system developer will have to keep in mind that over 95% of Android smartphone are using Android Gingerbread or earlier version. To make your app backward capable, you need to make sure your App running well on Gingerbread.</p>
<pre></pre>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2012/02/23/things-i-wish-i-knew-before-i-built-my-first-android-x86-from-google-source-supported-by-intel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Video from Intel Embedded: Android Optimization on Intel® Architecture Based Platforms</title>
		<link>http://software.intel.com/en-us/blogs/2011/11/16/video-from-intel-embedded-android-optimization-on-intel-architecture-based-platforms/</link>
		<comments>http://software.intel.com/en-us/blogs/2011/11/16/video-from-intel-embedded-android-optimization-on-intel-architecture-based-platforms/#comments</comments>
		<pubDate>Wed, 16 Nov 2011 23:02:20 +0000</pubDate>
		<dc:creator>Tao B Wang (Intel)</dc:creator>
				<category><![CDATA[Academic]]></category>
		<category><![CDATA[Android]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2011/11/16/video-from-intel-embedded-android-optimization-on-intel-architecture-based-platforms/</guid>
		<description><![CDATA[My colleague, Ishu Verma, Platform Application Engineer at Intel discusses Android* Optimization on Intel® Architecture Based Platforms at ESC Boston 2011. Ishu details the benefits and drawback of using NDK and discusses Android* SDK and NDK toolset support x86. He demonstrates the easy for Android development on Intel® Atom™ based platforms: Watch Video here]]></description>
			<content:encoded><![CDATA[<p>My colleague, Ishu Verma, Platform Application Engineer at Intel discusses Android* Optimization on Intel® Architecture Based Platforms at ESC Boston 2011. Ishu details the benefits and drawback of using NDK and discusses Android* SDK and NDK toolset support x86. He demonstrates the easy for Android development on Intel® Atom™ based platforms:</p>
<p><strong><a href="http://edc.intel.com/Video-Player.aspx?id=5473">Watch Video here</a></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2011/11/16/video-from-intel-embedded-android-optimization-on-intel-architecture-based-platforms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Understanding Intel&#039;s Android 4.0 x86 Optimizations- What AnandTech has explained</title>
		<link>http://software.intel.com/en-us/blogs/2011/11/15/understanding-intels-android-40-x86-optimizations-what-anandtech-has-explained/</link>
		<comments>http://software.intel.com/en-us/blogs/2011/11/15/understanding-intels-android-40-x86-optimizations-what-anandtech-has-explained/#comments</comments>
		<pubDate>Tue, 15 Nov 2011 19:10:16 +0000</pubDate>
		<dc:creator>Tao B Wang (Intel)</dc:creator>
				<category><![CDATA[Academic]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Intel SW Partner Program]]></category>
		<category><![CDATA[Mobility]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2011/11/15/understanding-intels-android-40-x86-optimizations-what-anandtech-has-explained/</guid>
		<description><![CDATA[Last week, I attended Android Developer Conference ( AnDevConII) at San Francisco, and had chance to get shocked by Google's latest Android 4.0 Ice Cream Sandwich (ICS) demoed by two Google senior Engineers Chet Haase and Romain Guy. The title of their keynote is "Android  Awesomeness". It is indeed Awesomeness! Chet and Romain somehow figured out using [...]]]></description>
			<content:encoded><![CDATA[<p>Last week, I attended Android Developer Conference ( AnDevConII) at San Francisco, and had chance to get shocked by Google's latest Android 4.0 Ice Cream Sandwich (ICS) demoed by two Google senior Engineers Chet Haase and Romain Guy. The title of their keynote is "<a href="http://www.andevcon.com/AnDevCon_II/keynotes.html">Android  Awesomeness</a>". It is indeed Awesomeness! Chet and Romain somehow figured out using a special adapter and a mini HDMI cable to display their ICS phone on large screen. And during the keynote, Chet and Romain joked at jealious App developers who despearately wanted an ICS phone that  I have three ICS's here, your guys has none!</p>
<p>In many classes during the 4-day conference,  a lot of developers asked about Android for x86. The most commonly agreed answers by those developers are simple and straight forward: " Are there any Android device powered with Intel chip (x86) in the market? Not yet, at least not one sold in large scale except Logitec/Google TV"; then it comes to the 2nd questions " are there any Android for x86 phone or tablet coming to the market in future? A lot  agreed: Yes, probablly a lot!"</p>
<p>So it has been said that ICS has been optimized for Intel x86, then what are those optimization? AnandTech has a  artilce that give some clues: <a href="http://www.anandtech.com/show/5080/understanding-intels-android-40-x86-optimizations">Understanding Intel's Android 4.0 x86 Optimizations</a>. Just read on!!</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2011/11/15/understanding-intels-android-40-x86-optimizations-what-anandtech-has-explained/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Getting started on Android for x86: Step-by-step guide on setting up Android 2.2/2.3 for X86 testing environment in Oracle Virtualbox</title>
		<link>http://software.intel.com/en-us/blogs/2011/10/11/getting-started-on-android-for-x86-step-by-step-guide-on-setting-up-android-2223-for-x86-testing-environment-in-oracle-virtualbox/</link>
		<comments>http://software.intel.com/en-us/blogs/2011/10/11/getting-started-on-android-for-x86-step-by-step-guide-on-setting-up-android-2223-for-x86-testing-environment-in-oracle-virtualbox/#comments</comments>
		<pubDate>Wed, 12 Oct 2011 00:07:53 +0000</pubDate>
		<dc:creator>Tao B Wang (Intel)</dc:creator>
				<category><![CDATA[Academic]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Intel SW Partner Program]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2011/10/11/getting-started-on-android-for-x86-step-by-step-guide-on-setting-up-android-2223-for-x86-testing-environment-in-oracle-virtualbox/</guid>
		<description><![CDATA[Background With Google and Intel announcing collaboration on Android for X86 Intel Architecture last month on Intel IDF, it is official that the door is open for Android to, besides ARM, support Intel CPU family. As the only open source virtual software solution under the terms of the GNU GPL v2, cross-platforms Virtualbox provide a [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Background</strong></p>
<p>With Google and Intel announcing collaboration on Android for X86 Intel Architecture last month on Intel IDF, it is official that the door is open for Android to, besides ARM, support Intel CPU family. As the only open source virtual software solution under the terms of the GNU GPL v2, cross-platforms Virtualbox provide a fast and simple solution to open source Android for x86. It allows developers to develop, test or port their existing  apps quickly without hardware. Standardized system images(iso/vdi) from Intel, Google and OEM partners repositories allow developer to test and validate their apps on designated platforms and get accepted earlier for targeted apps store. This is the first of a blog series  aiming at introducing a customer driven solution of developing, testing and validating apps with virtual Android, unconventional installation via VDI conversion, bridged networking and integration with Android Eclipse/DDMS platform.</p>
<p><strong>Oracle full visualizer for Intel X86 architecture<br />
</strong></p>
<p>Oracle Virtualbox platform packages are Open Source and Cross-Platforms which support Windows, IOS, Linux and Solaris. The binaries are released under the terms of the GPL version 2 and can be downloaded at:<a href="http://www.virtualbox.org/wiki/Downloads">http://www.virtualbox.org/wiki/Downloads</a>.  It support same virtual OS( in a single .vdi file) run on Windows, Linux and IOS, and is a critical key player in open source &amp; cross-platforms ecosystem(Host OS, Virtualbox, Eclipse( Android)).</p>
<p><strong>Download Google Android X86 iso image from Google</strong></p>
<p>Go to Google Code site ( <a href="http://code.google.com/p/android-x86/downloads/detail?name=android-x86-2.2-generic.iso&amp;can=2&amp;q=">http://code.google.com/p/android-x86/downloads/detail?name=android-x86-2.2-generic.iso&amp;can=2&amp;q=</a>), and download the Android of your preference. However, Android-x86 version 2.2  Generic and 2.3 Ginger Bread  are the versions that have been tested and confirmed the support of both LAN and Wireless connection via bridged network adapter configuration. Same iso image can also been located at <a href="http://www.android-x86.org/download">www.android-86.org </a>.</p>
<p><strong>Install and setup Android in Virtualbox</strong></p>
<p>Start Oracle VM Virtualbox Manager, and follow the steps below:</p>
<ul>
<li>Start New:  1)<strong>Name:</strong> Android-x86 2.2 Generic, 2). <strong>Operating System</strong>: Linux, 3). <strong>Version</strong>: Linux 2.6.</li>
<li><strong>Memory</strong>: 256- 512MB ( Dependent on how much memory your laptop/desktop has).</li>
<li><strong>Virtual Hard Disk</strong>: Create new hard disk</li>
<li><strong>Hard Disk Storage Type</strong>: Fixed-size storage</li>
<li><strong>Virtual Disk Location and Size</strong>: default is 8GB. Select your preferred location for the single vdi. file</li>
</ul>
<p>Before installation, make sure your parameters are set as below:</p>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2011/10/virtualboxx_11.jpg"><img class="aligncenter size-full wp-image-37048" title="virtualboxx_1" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2011/10/virtualboxx_11.jpg" alt="" width="600" height="541" /></a></p>
<p>Click Settings on the top menu, and select Storage. Click the Green + icon next to IDE Controller and add Android-x86-2.2 Generic iso image you just downloaded from Google.  Then click OK.</p>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2011/10/storage_iso.jpg"><img class="aligncenter size-full wp-image-37137" title="storage_iso" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2011/10/storage_iso.jpg" alt="" width="602" height="260" /></a></p>
<p>Click Start to continue the installation:</p>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2011/10/virtualbox_2.jpg"><img class="aligncenter size-full wp-image-37053" title="virtualbox_2" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2011/10/virtualbox_2.jpg" alt="" width="634" height="421" /></a></p>
<p>Use Up and Down Key to move the highlighted selection to <strong>Installation - Install Android-x86 to harddisk</strong>, and then press <strong>Tab</strong> key to enter edit mode, and enter the following (case sensitive. See above):</p>
<ul>
<li><strong>DATA=sda1 SDCARD=sda5</strong></li>
</ul>
<p>This step is very important as we need to set primary partition for Android and a logical partition for SD Card so that you can use simulated SD Card latter to transfer files. You will find this very handy.</p>
<p>On next screens, do the following sequentially:</p>
<ul>
<li>Create/Modify Partition</li>
<li>Highlight the Free Space, and use &lt;- and -&gt; key to select <strong>New</strong></li>
<li>Select <strong>Primary</strong></li>
<li>Set 7000MB for your sda1 partition ( or your prefered size if you have a big disk)</li>
<li>Select <strong>Beginning</strong></li>
<li>Select <strong>Bootable</strong></li>
<li>Select <strong>Write</strong></li>
<li>Select Yes to confirm Write</li>
<li>Highlight the remaining Free Space</li>
<li>Select <strong>New</strong></li>
<li>Select <strong>Logical</strong></li>
<li>Select all remain harddisk size</li>
<li>Make sure do not make this sda5 bootable (do not select Bootable)</li>
<li>Write the sda5 partition and confirm with yes.</li>
<li>Select <strong>Quit</strong></li>
<li>You will see the following table is created:</li>
</ul>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2011/10/virtualbox_4.jpg"><img class="aligncenter size-full wp-image-37057" title="virtualbox_4" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2011/10/virtualbox_4.jpg" alt="" width="600" height="390" /></a></p>
<p>Click OK to continue to install and complete the steps below:</p>
<ul>
<li>Format sda1 as ext3</li>
<li>Click Yes to install the boot loader grub</li>
<li>Click Yes to install /system directory as read-write</li>
<li>Select  Create a fake SD card</li>
<li>Use all default 2047MB size</li>
</ul>
<p>Now sit back and relax until the installation is complete. Before reboot, just remeber that you still have an Android 2.2 installation iso image loaded as virtual boot CD-rom. So you have to go back to Setting-&gt;Storage to remove the iso image. Now reboot:</p>
<p>Before startting to run virtual Android, you first need to click Machine on top menu and select <strong>Disable Mouse Integration</strong>. By clicking any area in Android, you mouse icon will change to a darker color, and now you are free to run Virtual Android on your laptop just like a real Android device.  The complete virtual Android is saved as a single .vdi file and you can find it at <strong>C:\Users\yourname\VirtualBox VM</strong></p>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2011/10/virtualbox_5.jpg"><img class="aligncenter size-full wp-image-37060" title="virtualbox_5" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2011/10/virtualbox_5.jpg" alt="" width="600" height="498" /></a></p>
<p><strong>Popular keys for virtual Android-X86 on  laptop</strong></p>
<p>At the very first start, you will need to click <strong>Machine</strong> on the top menu, and select<strong> Disable Mouse Integration </strong>to enter into virtual Android( right<strong>ctrl </strong>release the mouse)<strong>:<br />
</strong></p>
<ul>
<li>Esc key = Back 1 screen</li>
<li>Window  key =back to Home Key</li>
<li>Right Ctrl = Release Mouse key lock</li>
<li>Right Click Mouse: Back Key</li>
<li>Home = Home Button</li>
<li>Alt-F1 = Enter terminal</li>
<li>Alt-F7  = exit   Terminal</li>
<li>Menu key: Android Bottom menu</li>
<li>Alt-F4: Power off</li>
</ul>
<p><strong>Set up SD card</strong></p>
<p>Virtualbox Android  has pretty much all the functionality of an Android device except for the ability of making calls, location service and proximity sensor etc (same as any emulator including Google AVD). In addition, having the ability to run Android virtually, provides an alternative solution for those who do not want to set aside a computer for this purpose. To get startted, the first step you need to do is to install the SD Card and enable install from outside Android InMarket. To Do this, first go to Setting:</p>
<ul>
<li>Go to Setting -&gt; Appstore -&gt; Storage settings -&gt;SD card</li>
<li>Mount SD card</li>
<li>Format SD Card.</li>
</ul>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2011/10/SD_card.jpg"><img class="aligncenter size-full wp-image-37105" title="SD_card" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2011/10/SD_card.jpg" alt="" width="504" height="515" /></a></p>
<p><strong>Connect your Virtual Android to internet as a real device</strong></p>
<p>Dependent on how you connect your host laptop to Internet, you will need different network setting to connect your Android to internet:</p>
<ul>
<li><strong>Wireless</strong>: If you are connected to internet via wireless adapter, before you start your virtual Android, you need to go to <strong>Setting</strong> -&gt; <strong>Network</strong>  to Enable your wireless network Adapter:</li>
</ul>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2011/10/network_wireless.jpg"><img class="aligncenter size-full wp-image-37110" title="network_wireless" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2011/10/network_wireless.jpg" alt="" width="292" height="214" /></a></p>
<ul>
<li> <strong>Network Cable(Cat5): </strong>If you are connected to internet via your network port via cat5 cable,  before you start your virtual Android, you need to go to <strong>Setting</strong> -&gt; <strong>Network</strong>  to Enable your network Adapter:</li>
</ul>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2011/10/network_lan1.jpg"><img class="aligncenter size-full wp-image-37112" title="network_lan" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2011/10/network_lan1.jpg" alt="" width="497" height="284" /></a></p>
<p>Bridged adapter option. All network functionalities are exactly same as real device, and offers:</p>
<ul>
<li>Bi-directional access for Guest and Host in single laptop.</li>
<li>Bi-directional Access on a subnet.</li>
<li>Bi-directional access between virtual Android’s</li>
</ul>
<p>After selecting correct network adapter, now start your Android. Unlock your screen and type <strong>Alt+F1 </strong>to enter into Android terminal window, and enter very typical Linux command: <strong>netcfg</strong>.  If you see your <strong>eth0</strong> obtained an IP address from your DHCP server, your Android is connected to Internet:</p>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2011/10/netcfg1.jpg"><img class="aligncenter size-full wp-image-37116" title="netcfg" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2011/10/netcfg1.jpg" alt="" width="511" height="213" /></a></p>
<p><strong>Lets get some free apps loaded before shopping Google  Android Market</strong></p>
<p>Start your <strong>Brower</strong> and confirm that your virtual Android is connected to internet like a real device:</p>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2011/10/android_internet1.jpg"><img class="aligncenter size-full wp-image-37119" title="android_internet" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2011/10/android_internet1.jpg" alt="" width="448" height="310" /></a></p>
<p>Then, start <strong>AndAppStore</strong>, and get some free apps for your Android Apps development and testing. Currently there are around 5000 apps listed in Android-x86 2.2 AndAppStore :</p>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2011/10/android_apps2.jpg"><img class="aligncenter size-full wp-image-37123" title="android_apps" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2011/10/android_apps2.jpg" alt="" width="574" height="460" /></a></p>
<p>One of app that I found of most useful is <strong>File Expert </strong>(<strong>Utilities::File &amp; Disk Management</strong>) that you can setup a <strong>Web share</strong> and <strong>FTP share</strong> on your virtual Android so that you can freely download and upload files,  which are very convenient when you start to build your development environment:</p>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2011/10/Android_file_transfering1.jpg"><img class="aligncenter size-full wp-image-37125" title="Android_file_transfering" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2011/10/Android_file_transfering1.jpg" alt="" width="598" height="373" /></a></p>
<p>You can set up your own user name and password for increased security.</p>
<p><strong>Develop and test your Android Apps ( .apk package)</strong></p>
<p>Google apps are all packaged with .apk extension, and put in <strong>/system/app </strong>folder.  With virtual Android-x86, you can easily upload/download your .apk package:</p>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2011/10/android_app_apk.jpg"><img class="aligncenter size-full wp-image-37128" title="android_app_apk" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2011/10/android_app_apk.jpg" alt="" width="601" height="350" /></a></p>
<p>After you upload your .apk package to <strong>/system/app</strong> folder,  you can get access to terminal via Alt-F1 and run the following command:</p>
<p><strong>chown 1000:1000 /system/app/yourpackage.apk</strong></p>
<p>Then your app will show up in Android menu.<strong> </strong></p>
<p><strong>Test different screen size and resolution</strong></p>
<p>By default, Android in virtualbox is displayed in 800x600. You can easily change the screen size and resolution to your prefered size or the same size of your targeted Android  device. To do this, you need to press"e"  twice at Android start menu to reach grub edit menu and enter <strong>vga=ask </strong>at the end of entry as below:</p>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2011/10/android-vgaask.jpg"><img class="aligncenter size-full wp-image-37129" title="android-vgaask" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2011/10/android-vgaask.jpg" alt="" width="595" height="352" /></a></p>
<p>Then press "b" to boot your Android, and the screen size and resolution options are displayed as below.  You can select whatever the size/resolution you want to start the Android:</p>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2011/10/android_screensize.jpg"><img class="aligncenter size-full wp-image-37130" title="android_screensize" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2011/10/android_screensize.jpg" alt="" width="595" height="335" /></a></p>
<p><strong>Android-x86 in Virtualbox  vs  Google  Android Virtual Device (AVD)?</strong></p>
<p>There is no doubt, Android-x86 in Virtualbox is way faster than Google AVD. Below are some difference:</p>
<p>Virtual Box:</p>
<ul>
<li>Fast: X86 based ( same as iOS or WP7 emulator)</li>
<li>Only emulate User-mode</li>
<li>OS image(.vdi) easy to transfer, customizable to meet different needs.</li>
<li>Allow quick and convenient Snapshot</li>
</ul>
<div>Google AVD in Google Android SDK:</div>
<ul>
<li>Slow- ARM based(ARM-eabi)</li>
<li>Full system QEMU: emulate whole guest system.</li>
<li>Additional Dalvik VM, need to run bytecodes for Android Apps</li>
</ul>
<p><strong>Coming Next</strong></p>
<p>I will continue to blog on my projects:</p>
<ul>
<li>Android SDK Integration- Android Debugging Environment and DDMS</li>
<li>Use Eclipse ADT to Remote test/push apps to Android Virtualbox</li>
<li>Virtual Android 3.2 Honeycomb in Virtualbox and on real device.</li>
</ul>
<p>If you are on some of those topics, lets collaborate.</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2011/10/11/getting-started-on-android-for-x86-step-by-step-guide-on-setting-up-android-2223-for-x86-testing-environment-in-oracle-virtualbox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Interview with Professor Souqun Lu: Open Source Software Innovation in China (Meego, Android and beyond)</title>
		<link>http://software.intel.com/en-us/blogs/2011/08/24/interview-with-professor-souqun-lu-open-source-software-innovation-in-china-meego-android-and-beyond/</link>
		<comments>http://software.intel.com/en-us/blogs/2011/08/24/interview-with-professor-souqun-lu-open-source-software-innovation-in-china-meego-android-and-beyond/#comments</comments>
		<pubDate>Wed, 24 Aug 2011 21:05:07 +0000</pubDate>
		<dc:creator>Tao B Wang (Intel)</dc:creator>
				<category><![CDATA[Academic]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2011/08/24/interview-with-professor-souqun-lu-open-source-software-innovation-in-china-meego-android-and-beyond/</guid>
		<description><![CDATA[Last month, China Computer World Magazine, IT168 (China top IT portal), Daily News of Communication Industry and China Software and Information Service Magazine, co-interviewed Professor Lu Shouqun on  open source software innovation status in China.  Professor Lu is chairman of China Open Source Software Promotion Union (COSSPU), and  honorary president of China Linux University Promotion [...]]]></description>
			<content:encoded><![CDATA[<p>Last month, China Computer World Magazine, IT168 (China top IT portal), Daily News of Communication Industry and China Software and Information Service Magazine, co-interviewed Professor Lu Shouqun on  open source software innovation status in China.  Professor Lu is chairman of China Open Source Software Promotion Union (COSSPU), and  honorary president of China Linux University Promotion Alliance (CLUPA). He is also  adviser for Beijing Municipal government and China State Information Center, and is senior information technology consultant for China Huaneng Group, Corporation chairman for China Great Wall Computer Group and adviser of Open Source Development Labs. He also served as deputy director of the China State Council Information Office. Below is detail of media's coverage on this interview and  Professor Lu's <a href="http://blog.sina.com.cn/s/blog_4b8a02690100st0q.html">blog</a> on Meego's innovation model, and how it matters to China.</p>
<p><strong>What is Open Source Software</strong></p>
<p>Ridding on the fast blooming of open source development in China, in server, mobile Internet terminal, Internet web sites, high performance computing and embedded categories, the market share for Linux based open source OS has jump to unprecedented level, and open source software has became the major player as more fundamental Internet  backbone software ( operation system, database, middle-ware, and office suites) are developed.</p>
<p>By simple logic, we call any software that can be freely acquired, modified  and source code derived and republished as open source software ( the definition does not involve the commercial purpose of  open source software and other legal implication). Certainly different open source has different degree of freedom and openness. But strictly, by Open Source Initiatives ( OSI), Open source software must meet ten open source codes definition (so called Eric Raymond initiative):</p>
<ol>
<li>Free Redistribution.</li>
<li>Source Code: all open source software must include source code and guarantee the openness of source code.</li>
<li>Derived Works: Open Source license must allow revise and derive work ( develop and revise based on original software source code)</li>
<li>Integrity of the Author's Source Code: To respect the right of original authors, when revised open source software to be published, it must accompany the original source code.</li>
<li>No Discrimination Against Persons or Groups: keep openness, encourage maximum participation, collaboration and co-authorization.</li>
<li>No Discrimination Against Fields of Endeavor. For example, no discrimination against open source software used in security or commercial purpose.</li>
<li>Distribution of License: The license of  open source software apply to all recipients without implementing any limited condition.</li>
<li>License Must Not Be Specific to a Product</li>
<li>License Must Not Restrict Other Software</li>
<li>License Must Be Technology Neutral</li>
</ol>
<p>We must point out that without  business model and monetization, Open source will have no chance of surviving and becoming a major player, and realizing the production and commercialization; For developing infrastructure software (including those developed using open source infrastructure software), if the software is not self-controllable, the infrastructure software can not be realized or can not guarantee China's national security strategy. Then, the production and promotion to its use will be blocked; To by-pass this potential block, we must explore the innovation of open source software, to meet requirements for developing open source software in  fields such as security and commercial application. Not only should we inherit, promote and realize the value deposition of open and share of open source, but also must we control the potential legal risk of open source software.</p>
<p><strong>What Will be the Future Mobile Operation Systems?</strong></p>
<p>Currently, in global scope, the major mobile phone operation system are Android, Symbian (Open), iOS, Meego, Black Berry OS, Windows Phone(WP), WebOS etc. Among them, 2/3 are open source and 1/3 are proprietorial.</p>
<p>Some mobile computing experts believe that, after fierce competition,  in mobile arena, the mobile OS that can survive maybe not more than 3-4;  From my personal view, I am putting my bid on Android, iOS, and open sourced OS such as Meego that will likely be the top winners.</p>
<p>I have discussed five advantages of Meego in my previous article"Open Source Based Operation System" (Open source, high efficiency in development environment, Open  development environment and architecture, developers from Intel and Nokia QT team,  integrated technologies),  recently there are two additional advantages surfing out:</p>
<ol>
<li>Meego's simple and near primitive  development environment and application architecture, not as complicated as Android, which stepped on the hidden mine of patent infraction, and lead to $5-15 patent fees that Mobile phone maker GTC and Samsung etc has to pay to Microsoft and Apple . In 2011, there are significant numbers of organizations in different segment ( company, institutions, and government) that are developing customized Android OS. One way of another, Patent infractions will most likely be an agenda item on the table.</li>
<li>The open source nature of Meego and its innovation model is likely the only solution for an open source operation system to be adopted in commercial and security business and government.</li>
</ol>
<p><strong>What is the difference between Meego and Android</strong></p>
<p>Meego and Android are all open source operation system based on Linux Kernel. The major difference are:</p>
<ol>
<li>The kernel of Meego is Linux Kernel, so called major distribution kernel released by official Linux Foundation. While Kernel of Android is the branch kernel released by Google, and authorized and approved by Linux Foundation.</li>
<li>Meego uses Qt as it development environment and development framework ( Qt abide the single LGPL Open Source license);  while the development environment of Android is diversified and tangled, adopting development tools and software from multiple sources, and abide different open source licenses, may including hidden patents.</li>
<li>Meego's application frameworks or function modules ( components)  are mostly LGPL open source licenses (there are also small percentage of framework use other open source, but has not private consultations signed mutual beneficial open source agreement).While Android's application frameworks or function modules are based on Apache-2 Open Source License ( including Java virtual layer), and consists of 185 software framework, and use 19 open source licenses ( including many frameworks not approved by OSI, but signed by private limited mutual beneficial open source agreement: Reciprocal). Among them are some unavoidable hidden patent.</li>
<li>Meego and Android independently develop and design its own user interface (UI) based on different mobile terminal device (such as Smart phone, Tablet, IVI and Internet TV etc), develop and integrate various Applications and focusing on User Experience ( UE=UI+Applications). In China, and may be other countries, the majority of development work for UE for both Meego and Android has been subcontracted to mobile terminal devices (MTD) manufacturers. Android platform is focused on  3rd party application development and integration, and managed using Google Android Market App Store (Got polluted by  quite a lot of virus and junk ads due to the loose management at the earlier stage). While Meego is temporarily be supported by Intel's Appup.com and responsible by Meego.com of Linux Foundation.</li>
<li>Meego's innovative solution which singles out security strategy and security software from operation system, and allowed separate configuration, and independent development to guarantee the safety independence and controllability of operation system (Meego)</li>
<li>Meego's innovative solution which allow modifications, change and independent development of: 1): User Experience ( User Interface and various applications including popular applications provided in OS); 2): Some functional modules ( framework) of middleware. Those changed software part could be either open or proprietary. This guarantee that this OS can be independently owned and controlled by anyone, and a trusted foundation that a commercial model could be safely build on.</li>
</ol>
<p><strong>In Which Direction the Open Source OS in China Will Go</strong></p>
<p>In the past, most open source OS developed by enterprises in China, are based on Linux Kernel, and transplanted with software from other open source OS<strong>. </strong>Most companies only organize their own development and own user experience on user interface and some applications (Including integrating some localized software with OS platform, and taking order for customer specified application), and use testing technologies and development tools to Debug, Bug fix and Patch to achieve software  stability, optimization and performance gaining  ( IBM even support the quality certification for Redflag Linux) <strong>.</strong> As a mater of fact, Some OEM's of Mobile OS in Taiwan have been doing the something long time ago, except that it took about 6 months of development circle and testing/validation are conducted in a more strict way with more regulations.</p>
<p>Recently some well-known companies in China also  jump into the mobile OS development business, and started hardware and whole system design for its mobile device, and adding its own User Experience ( UE=UI+Applications) software on transplanted Android OS<strong>. S</strong>ome even developed its own application frame work software. In general,  independently developed Mobile OS's by China domestic companies are mostly self-allied, isolated and mainly based on transplanted version from open source software outside China. Since only a small portion of the software are self developed, it is very hard for a Mobile OS of this kind to surf out as one of major mobile OS version in the world, and barely have space for improvement and promotion.<strong> </strong></p>
<p>Development of the domestic mobile operating system for China market, taking a completely closed "from the ground start" development mode is not desirable; The best choice is development based on open source software OS and it must also meet the two criteria:</p>
<ol>
<li>Meet the requirement for China's national security strategy.</li>
<li>Meet the requirements of commercialization for enterprises.</li>
</ol>
<p>Thus, a complete adoption of  original version of "fully open" OS is off the table. Also some deviated version of open source OS developed domestically does not conform to the needs of self-control; thus developing an innovative model of open source software OS has become a priority.</p>
<p><strong>Why We Need to Develop an Innovative Model of Meego</strong></p>
<p>With regards to developing an open source Operation System in an innovative model, Meego has more advantage than Android in many aspects. Meego's development is  sheep-herded by Linux Foundation.  Mr. Jim Zemlin, Chair and executive director of Linux foundation, fully understand this. He wrote to Professor  Lu in June when 6th Open Source China Open Source World Summit was held Beijing"  I hope you can participate this summit, and we have opportunity to discuss the innovative model for open source, especially from the point of view of Chinese government (in consideration of national security strategy ) and entrepreneur (in consideration of commercialization and monetization) on open source development", " explorer together and find out the new innovation model for Meego open source software". Professor Lu noted that the bigest shortfall of Meego development is that so far there  are missing heavy weight corporation partners in building Meego eco-system. He encourage Linux Foundation and any corporation (big or small) to come to China to find one, and jointly develop Meego operation system, especially the innovative model for Meego open source software development.</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2011/08/24/interview-with-professor-souqun-lu-open-source-software-innovation-in-china-meego-android-and-beyond/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Meego Tablet 1.2 On Low Power Embedded Platform(China National College Student Software Innovation Contest Series)</title>
		<link>http://software.intel.com/en-us/blogs/2011/08/05/meego-tablet-12-on-low-power-embedded-platformchina-national-college-student-software-innovation-contest-series/</link>
		<comments>http://software.intel.com/en-us/blogs/2011/08/05/meego-tablet-12-on-low-power-embedded-platformchina-national-college-student-software-innovation-contest-series/#comments</comments>
		<pubDate>Fri, 05 Aug 2011 22:02:07 +0000</pubDate>
		<dc:creator>Tao B Wang (Intel)</dc:creator>
				<category><![CDATA[Academic]]></category>
		<category><![CDATA[Embedded Computing]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2011/08/05/meego-tablet-12-on-low-power-embedded-platformchina-national-college-student-software-innovation-contest-series/</guid>
		<description><![CDATA[The is a translation of a blog wrote by Zhchbin, a CS senior from Zhong Shang  University(sysu.edu.cn), China. He participated the 4th Intel Cup  National Software Innovation  Contest for College Student( NSICCS) this year. The original blog can be found here. Embedded  Platform LAB-8902 embedded platform is a new low power high-performance embedded platform made [...]]]></description>
			<content:encoded><![CDATA[<p>The is a translation of a blog wrote by Zhchbin, a CS senior from Zhong Shang   University(sysu.edu.cn), China. He participated the 4th Intel Cup  National Software  Innovation  Contest for College Student( NSICCS) this year. The original blog  can be found <a href="http://software.intel.com/zh-cn/blogs/2011/06/27/lab-8902meego-tablet/">here</a>.</p>
<div><strong>Embedded  Platform</strong></div>
<div><strong><br />
</strong></div>
<div>LAB-8902 embedded platform is a new low power high-performance embedded platform made by China North Industry Control Group (NORCO Group),  This platform consists of <strong>touch Screen supported</strong> display and motherboard with a compact  enclosure. The motherboard is based on Intel@Atom D510 processor+ ICH8M chipset,  utilizingthe a Core Duo processor (1.66 GHz Main Frequency, L2 Cache: 512KB*2)  with CPU, North Bridge and GPU integrated into one chip. The display is the LCD  of10.1"LVDS.  <strong>LAB-8902 embedded platform is the perfect embodiment of the embedded system, with rich interfaces including 1*JTAG(XDP)/1*8 bit GPIO ports/1*LPC(SMBus)/1*PCI/1*PCI-E/1*MINI PCIE/1*PC104/2*COM and 8*USB2.0 ports</strong>. All the ports are of flexible expansibility and is excellent device for being used to conduct various experiments and developments, which can facilitate the hardware design &amp; analysis. LAB-8902 embedded platform provides a display of 1*10.1" LVDS and 1*VGA port.Its VGA+LVDS dual independent display can facilitate the operation.</div>
<div><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2011/08/2010111016401055213.jpg"><img class="aligncenter size-full wp-image-35317" title="2010111016401055213" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2011/08/2010111016401055213.jpg" alt="" width="350" height="256" /></a></div>
<div><strong>Meego Installation and Configuration</strong></div>
<div>In our project, we used Meego system image: <strong>meego-tablet-ia32-pinetrail-1.2.0.90.0.20110517.1.img</strong> downloaded from Meego repository, and followed the offical Meego installation instruction for Viewsonic tablet (   <a href="http://software.intel.com/zh-cn/articles/viewsonic_tablet_meego_installation/">http://software.intel.com/zh-cn/articles/viewsonic_tablet_meego_installation/</a>):</div>
<p><strong>Required Software</strong></p>
<p>1. Meego Tablet img image: meego-tablet-ia32-pinetrail-1.2.0.90.0.20110517.1.img （download from<a href="https://www.meego.com/downloads/releases/1.2/meego-tablet-developer-preview"> here</a>）<br />
2. Kernel patch: kernel-adaptation-pinetrail-2.6.38.2-8.12.i586.rpm（download from <a href="http://software.intel.com/file/37606">here</a>）<br />
3. Patch file：ath3k-1.fw (download from <a href="http://software.intel.com/file/37607">here </a>)<br />
4. USB Bootable burning tool ：win32diskimager-RELEASE-0.2-r23-win32.zip （download from<a href="http://software.intel.com/file/36977"> here</a> ）</p>
<div><strong> </strong></div>
<div><strong>Installation Procedure</strong>&nbsp;</p>
<ul>
<li> Install win32diskimager-RELEASE-0.2-r23-win32.zip Windows PC, run Win32DiskImager.exe，and make a bootable USB stick using meego-tablet-ia32-pinetrail-1.2.0.90.0.20110517.1.img。</li>
</ul>
<ul>
<li>Insert USB bootable stick to a USB port，power on and press Delete to start  the BIOS SETUP。 Go to Boot-&gt;Hard Disk Drivers-&gt;1st Drive, and change default hard disk book from SATA to USB. Press F10 to save and reboot.</li>
</ul>
<ul>
<li>Power on the system, and select Installation Only option at Meego installation menu. Follow the step-by-step to install. If there are no enough disk volume, you can select "Remove all partitions on selected drives and create default layout" in partition option。</li>
</ul>
<ul>
<li>After installation is complete, reboot and change 1st Drive back to SATA in BIOS Setup。</li>
</ul>
<ul>
<li>After Meego tablet 1.2 OS  is running，Enter terminal mode by pressing Ctrl+Alt+F1）。Use root privilege （default password is meego）， and copy kernel-</li>
</ul>
<p>adaptation-pinetrail-2.6.38.2-8.12.i586.rpm and ath3k-1.fw  file from USB stick into  /root, and update the kernel image by following command:</p>
<ul>
<li> rpm -ivh --force  /root/kernel-adaptation-pinetrail-2.6.38.2-8.12.i586.rpm</li>
</ul>
<ul>
<li>Copy ath3k-1.fw file into /lib/firware， and then run the sync command: sync</li>
<li>Reboot the tablet, as tested, all speaker，wifi，multi touch，and bluetooth function normally.</li>
</ul>
</div>
<div>After installation, I immediately found out that Meego Tablet 1.2 OS does not support the touch screen function of this platform ( it seems no driver has been developed for it). During the multiple installation trials, mouse icon were showing up in multiple cases, which made me think that there must be a mouse driver developed in Meego Tablet 1.2 that the  Lab-8092 detected. Based on previous development experience using emulator on PC, there must be a configuration file somewhere that I can change and make it to work for this platform. Thus I started patiently searching related .conf file in /etc. My approach seems right, and I found the file and was able to do the following configuration</div>
<div>To Change Configuration to allow Meego Tablet to use Mouse</div>
<div>
<ul>
<li>Gedit the file at /etc/sysconfig/uxlaunch</li>
<li>Comment out (Add "#") the last line of code: xopts = -nocursor</li>
</ul>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2011/08/meego-embedded_s.jpg"><img class="aligncenter size-full wp-image-35320" title="meego-embedded_s" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2011/08/meego-embedded_s.jpg" alt="" width="389" height="519" /></a></p>
<p>Now with this change, I got Meego Tablet 1.2 running on my  LAB-8902 embedded platform box, much smooth and faster than the Meego emulator running in Meego SDK, and very convenient for the testing.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2011/08/05/meego-tablet-12-on-low-power-embedded-platformchina-national-college-student-software-innovation-contest-series/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Envisioning Meego from the Prospect of Android&#039;s Development (China National College Student Software Innovation Contest Series)</title>
		<link>http://software.intel.com/en-us/blogs/2011/07/31/envisioning-meego-from-the-prospect-of-androids-development-china-national-college-student-software-innovation-contest-series/</link>
		<comments>http://software.intel.com/en-us/blogs/2011/07/31/envisioning-meego-from-the-prospect-of-androids-development-china-national-college-student-software-innovation-contest-series/#comments</comments>
		<pubDate>Sun, 31 Jul 2011 19:02:28 +0000</pubDate>
		<dc:creator>Tao B Wang (Intel)</dc:creator>
				<category><![CDATA[Academic]]></category>
		<category><![CDATA[Mobility]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2011/07/31/envisioning-meego-from-the-prospect-of-androids-development-china-national-college-student-software-innovation-contest-series/</guid>
		<description><![CDATA[The is a translation of a blog wrote by Yi Zhu, a CS senior from Nanchang University, China. He participated the Intel Cup 4th National Software Innovation  Contest for College Student( NSICCS) this year. The original blog can be found here. This is the first of translation series that I would like to introduce NSICCS [...]]]></description>
			<content:encoded><![CDATA[<p>The is a translation of a blog wrote by Yi Zhu, a CS senior from Nanchang University, China. He participated the Intel Cup 4th National Software Innovation  Contest for College Student( NSICCS) this year. The original blog can be found <a href="http://software.intel.com/zh-cn/blogs/2011/07/11/androidmeego/">here</a>. This is the first of translation series that I would like to introduce NSICCS to Intel Academic Community and western world.</p>
<p>A project, or a product, once deviated from the commercialization and monetization,  will be hard to survive in the world's second largest blooming economy. Meego's birth wasn't without  the hardship. Looking back to the path of Android's development, one can easily conclude that the open source (Download today and develop! cool!) and co-development concept has, without doubt,  fueled the surprising jump of popularity of Android, so that today, it evolved into the only mobile OS that head-to-head competing  with iOS.</p>
<p>But recently,  the once seems uncontrollable wild fire of Android is calming down, According to [EOE Android Front-line News], from the beginning of this year, the momentum of the rise of the market share of Apple's iPhone is still not dieing down, and the market share of iPhone on Smart phone market has rose to 27%.  While the  market share of Goggles Android is flatten  and even to near zero growth for the first time. So there do have problems on the growth of Android products. Even though its market share is still the #1, and the commercial revenue of  Android platform is second to Apple. Some of the problems of Android are:</p>
<ol>
<li>Too frequent version change:  For each version of Android, usually the smart phone  has three difference version of firmware,  the hardware variations of different brand of smart phone are so wide  that it is causing headache. From the point of mobile phone users,  it mean that the apps on online store have too much bugs and updates, the apps may not run on their phone , or it may barely run with reduced features, or  it may run with bad user experience and inconvenience ( just remember there are more than two dozen of smart phone brands in China, and each brand has over millions' of users). As a result, some people are saying: Android phone means <em>Refresh OS-Power off-Change battery-Go back to first step</em>. On other side, since the first release of the first iPhone in 2007, Apple only made three versions of iPhone, all iPhone users can quickly update the iOS ( or sometime even unware of it), and it leads to a fact that is super sweet to Apple that the percentage  of people using the  same version of OS is much higher than Android. Good or bad? you know it!</li>
<li>Immaturity of Apps Store model: the success of Apps store contributes the critical part of Apple's rise.  While the same model of online store seems running not that smooth for Android, some deficiencies of download and payment channel,  simple Apps validation and evaluation process which lead to  penetration of some bad money-sucking app into the online store and reach to phone in people's hand, and most critical one, the volume of Apps. All lead to some negative user experience for Android user compared with Apple. For developer's point of view, even though extremely unhappy with the autocratic style of Apple, they can not overlook the fact that their apps published on App Store brought in higher revenue.</li>
<li>Price War: Similar Android on similar smart phone with similar features , but made by different vendors, of course it will lead to a hot price war.  Starting in 2011, low budget Android phones start surfing out in the China market and taking market share quickly with first come first serve strategy, and keep Motorola, Samsung and HTC from holding up their price, and forced to slam their price to compete. Some price tag even dropped 20% in months.  While Android is confronting the civil war, it is also facing the fierce competition from iOS with low budget iPhone 3GS and coming low budget phone.</li>
</ol>
<p>As the only open source operation system in the Mobile platform market ( Andriod is still qualified as open source? for how long?), Meego  draw a lot of attention at its birth. With the latest release of Tablet and IVI version of Meego 1.2 which attracted increasing # of vendors, and also with the first Meego Smart phone N9  from Nokia,  Meego seems cast a bright light in the horizon. Although people are confused with Nokia's so-called N9 being the last release of Meego Phone, and wonder what is Nokia's intention on this, people are still seeing Meego's potentials on some market segment, and some stand on the sideways waiting a bit to see what will evolve.  For Meego, there are unique advantages that we can see which are open source ( latest Open Source Tablet OS), optimization opportunity for OEM and apps developers,  Support of different hardware architecture ( Intel X86(IA), ARM etc) and extensive platform devices ( not only tablet and IVI, but wide variety of embedded devices), Apps that can be used on different devices without need of re-programming. These will effectively provide opportunity to allow OEM and Apps developers to lower the development cost and reduce the market risks.</p>
<p>Fundamentally, Meego is just a version of Linux, it want to do more, it want integrate more. From the technology viewpoint,  based on current development environment and hardware features and availability, it is still a long way to go for Meego which want to use cross-platform, stability and practical as selling point. On other side, doing better commercialization of an open source OS and attract more and more apps developers to write more apps for Meego is of vital importance ( Need to know that Nokia has only 55k apps which are QT based and can potentially be used in Meego.  Microsoft Windows Phone has  25k. Both  Nokia and Microsoft fall way behind Android (200k) and Apple iOS (424k)). From Meego's current development, we are seeing some new encouraging signs and Intel's ambitions. Hope Meego can continue to improve,  by taking lesson from what Androids just did, and pioneer to  a unique development space and revenue  generation model for developers and OEM, and cutting through its pathway in today's fiercest competition in mobile platform market.</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2011/07/31/envisioning-meego-from-the-prospect-of-androids-development-china-national-college-student-software-innovation-contest-series/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

