<?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>转烛空间android-x86 &#187; </title>
	<atom:link href="http://wangliping.net/tag/android-x86/feed" rel="self" type="application/rss+xml" />
	<link>http://wangliping.net</link>
	<description>记录生活，学习技术</description>
	<lastBuildDate>Fri, 30 Jul 2010 02:30:16 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Android-x86 1.6-r2 釋出</title>
		<link>http://wangliping.net/android-x86-donut-r2</link>
		<comments>http://wangliping.net/android-x86-donut-r2#comments</comments>
		<pubDate>Thu, 25 Mar 2010 00:54:29 +0000</pubDate>
		<dc:creator>转烛</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[3G]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[android-x86]]></category>
		<category><![CDATA[busybox]]></category>

		<guid isPermaLink="false">http://wangliping.net/android-x86-donut-r2</guid>
		<description><![CDATA[你还在为Android兴奋却拿不到Nexus one手机吗？不用着急，这里有你需要的，android-x86在PC上跑出越来越多的功能，或许某些地方比Nexus one还强大呢，而且也越来越稳定。还等什么，来看看阿偉的個人天地关于Android-x86 1.6-r2 釋出。]]></description>
			<content:encoded><![CDATA[<p>　　你还在为Android兴奋却拿不到Nexus one手机吗？不用着急，这里有你需要的，android-x86在PC上跑出越来越多的功能，或许某些地方比Nexus one还强大呢，而且也越来越稳定。还等什么，来看看<a href="http://cwhuang.info/">阿偉的個人天地</a>关于<a href="http://cwhuang.info/2010/03/android-x86-1-6-r2-release">Android-x86 1.6-r2 釋出</a>。</p>
<p><span id="more-649"></span><br />
<blockquote>
<p>最近在 donut-x86 branch 新增不少功能或修正，因此釋出了 1.6 release 2。主要的特色包括 </p>
<ul>
<li>錄影功能可正常使用了。
<li>3G USB 網卡的支援。
<li>加入 mksh 取代原本的 Android shell。
<li>加入 busybox。
<li>從 eclair-x86 移植過來的觸控螢幕校正功能。
<li>更新一些 apps，例如 LIME、ConnectBot。
<li>其餘的小修正，例如移除開機時的警告訊息，還有 console 可以 ctrl-C 了。 </li>
</ul>
<p>細節以及下載地點，請參考 <a href="http://www.android-x86.org/releases/releasenote_1_6_r2">release note</a>。</p>
</blockquote>
<p>　　如果这个信息能在cnBeta上发出，或许可以受到更多人的追捧呢，呵呵～</p>
<h3  class="related_post_title">你可能也感兴趣的文章：</h3><ul class="related_post"><li><a href="http://wangliping.net/android-x86-20-eclair-release" title="Android-x86-2.0-eclair出pub-test版了">Android-x86-2.0-eclair出pub-test版了</a></li><li><a href="http://wangliping.net/source-insight-see-source-code" title="Source-Insight-看大规模大工程源代码">Source-Insight-看大规模大工程源代码</a></li><li><a href="http://wangliping.net/eclair-virtuebox-boot" title="Eclair已经在VirtualBox上跑起来了">Eclair已经在VirtualBox上跑起来了</a></li><li><a href="http://wangliping.net/android-x86-camrecord-and-opensource" title="Android-x86录像功能完善——兼谈开源">Android-x86录像功能完善——兼谈开源</a></li><li><a href="http://wangliping.net/android-x86-begin-to-accept-donate" title="Android-x86项目开始接受捐款">Android-x86项目开始接受捐款</a></li><li><a href="http://wangliping.net/android-x86-1-6-stable" title="Android-x86出1.6版了">Android-x86出1.6版了</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://wangliping.net/android-x86-donut-r2/feed</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Android-x86-2.0-eclair出pub-test版了</title>
		<link>http://wangliping.net/android-x86-20-eclair-release</link>
		<comments>http://wangliping.net/android-x86-20-eclair-release#comments</comments>
		<pubDate>Sat, 16 Jan 2010 16:04:37 +0000</pubDate>
		<dc:creator>转烛</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[android-x86]]></category>
		<category><![CDATA[cwhuang]]></category>
		<category><![CDATA[eclair]]></category>
		<category><![CDATA[release]]></category>

		<guid isPermaLink="false">http://wangliping.net/android-x86-20-eclair-release</guid>
		<description><![CDATA[Android-2.0对于Android-1.6来说是一个跨越，Android-x86-2.0对于android-x86-1.6也是一个跨越，首先，Android之身的特性 ，对于Android-x86来说几乎都继承了，然后添加了一些针对x86平台的一些特有的特性。譬如说x86支持以太网，支持大屏幕，支持多种x86平台等等。]]></description>
			<content:encoded><![CDATA[<p>　　Android-2.0对于Android-1.6来说是一个跨越，Android-x86-2.0对于android-x86-1.6也是一个跨越，首先，Android之身的特性 ，对于Android-x86来说几乎都继承了，然后添加了一些针对x86平台的一些特有的特性。譬如说x86支持以太网，支持大屏幕，支持多种x86平台等等。</p>
</p>
<p><span id="more-606"></span>
<p>　　2.0的释出，是多个工作者努力的结果，感谢开源。说起开源，就说起google对于Android的开放程度还是存在些许问题。譬如<a href="http://cwhuang.info" target="_blank">cwhuang</a>提到2.0没有history信息，即git log找不到任何修改信息。其实个人还认为部分代码不全才是最重要的问题，细细检查可以发现部分代码缺失。废话不多说，想了解android-x86更详细内容，敬请登陆<a href="http://www.android-x86.org">http://www.android-x86.org</a>去细细研究，要讨论则去<a title="https://groups.google.com/group/android-x86/" href="https://groups.google.com/group/android-x86/">https://groups.google.com/group/android-x86/</a>。当然本来地址是http协议的，不过由于国内不能访问groups，于是用https协议多数时候倒是可以访问的。下载地址：<a href="http://code.google.com/p/android-x86/downloads/list">http://code.google.com/p/android-x86/downloads/list</a></p>
</p>
<p>　　下面摘录部分关于Andorid-x86-2.0的有关信息。原文地址：<a href="http://www.android-x86.org/releases/build-20100115">http://www.android-x86.org/releases/build-20100115</a> 转载请注明原文地址。</p>
<blockquote><p>Build 20100115<br />Test build for Android-x86 2.0 on EeePC platforms<br />The Android-x86 project is glad to announce a new test build<br />20100115 for public testing. A live CD ISO and USB image are<br />available from our site:<br />http://www.android-x86.org/download<br />http://code.google.com/p/android-x86/downloads/list<br />Features:<br />Build 20100115 is Android 2.0 (Eclair) based and it is a release candidate for android-x86 2.0 stable release.<br />In addition to the features available in 1.6 release, the new build contains<br />* Auto detection for touch screen calibration.<br />* Enabled Keyguard window.<br />* Improved sleep and wakeup handling.<br />* Eclair NDK for X86 platforms<br />* Added backlight support for EeePC platforms.<br />* New framework to support different x86 platforms from different vendors.<br />* Kernel 2.6.32 support (not included in the prebuilt images)<br />Released Files:<br />* Live CD iso: android-x86-eeepc-2.0.iso<br />SHA1 Checksum: 0de5f73720e4280aa192d4eb43af63656234d430<br />* Live USB image: android-x86-eeepc-2.0_usb.img.gz<br />SHA1 Checksum: 50c2288690dc6060f0878c5c479b8ed461081e9a<br />Source code:<br />The source code is available in our git server, see http://www.android-x86.org/getsourcecode for the instructions about how to get the source code.<br />Test reports (success or fail) are welcome.<br />Please send the reports to the Android-x86 discussion group.<br />http://groups.google.com/group/android-x86<br />Known issues:<br />1. the libghl is not merged yet.<br />2. the graphic performance is very bad<br />3. the Camcorder does not work.<br />4. WIFI does not work for certain devices<br />5. low sound volume</p>
</blockquote>
<h3  class="related_post_title">你可能也感兴趣的文章：</h3><ul class="related_post"><li><a href="http://wangliping.net/eclair-virtuebox-boot" title="Eclair已经在VirtualBox上跑起来了">Eclair已经在VirtualBox上跑起来了</a></li><li><a href="http://wangliping.net/android-x86-donut-r2" title="Android-x86 1.6-r2 釋出">Android-x86 1.6-r2 釋出</a></li><li><a href="http://wangliping.net/source-insight-see-source-code" title="Source-Insight-看大规模大工程源代码">Source-Insight-看大规模大工程源代码</a></li><li><a href="http://wangliping.net/android-x86-camrecord-and-opensource" title="Android-x86录像功能完善——兼谈开源">Android-x86录像功能完善——兼谈开源</a></li><li><a href="http://wangliping.net/android-x86-begin-to-accept-donate" title="Android-x86项目开始接受捐款">Android-x86项目开始接受捐款</a></li><li><a href="http://wangliping.net/android-x86-1-6-stable" title="Android-x86出1.6版了">Android-x86出1.6版了</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://wangliping.net/android-x86-20-eclair-release/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Source-Insight-看大规模大工程源代码</title>
		<link>http://wangliping.net/source-insight-see-source-code</link>
		<comments>http://wangliping.net/source-insight-see-source-code#comments</comments>
		<pubDate>Thu, 07 Jan 2010 08:49:20 +0000</pubDate>
		<dc:creator>转烛</dc:creator>
				<category><![CDATA[编程技术]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[android-x86]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[source code]]></category>
		<category><![CDATA[Source-Insight]]></category>

		<guid isPermaLink="false">http://wangliping.net/source-insight-see-source-code</guid>
		<description><![CDATA[如果你只是看或者编写一个小应用，这个东西当然还没有UltraEdit好，但是你要管理成百上千，成千上万的代码，那你最好还是考虑一下这个吧，UltraEdit此时只能是束手无策或者是黔驴技穷了。你估计想说，有那么多文件需要管理吗？其实，最简单最广泛的，Linux的Kernel就是一个典型的例子。解压后的代码都有几百M，你说你怎么看？说实话最初我不知道这软件的时候，是一个目录一个目录，一个文件一个文件看的。]]></description>
			<content:encoded><![CDATA[<p>　　如果你只是看或者编写一个小应用，这个东西当然还没有UltraEdit好，但是你要管理成百上千，成千上万的代码，那你最好还是考虑一下这个吧，UltraEdit此时只能是束手无策或者是黔驴技穷了。你估计想说，有那么多文件需要管理吗？其实，最简单最广泛的，Linux的Kernel就是一个典型的例子。解压后的代码都有几百M，你说你怎么看？说实话最初我不知道这软件的时候，是一个目录一个目录，一个文件一个文件看的。</p>
<p><span id="more-599"></span>　　然而你要知道，翻目录翻文件，你的确需要毅力。还有就是想找一个文件，你又得用find，找一个函数你还得有search，更或者要用grep，如此这般。然后你想知道一个函数被谁调用，你却无从下手，然后你想知道一个变量怎么改变的，你依然要费大力气。那么，就从这些劳动中解脱出来吧，用上Source Insight或许就可以减轻你这样的负担了。</p>
<p>　　原来看Android的源码树时，用的是Eclipse，当时觉得挺好用的。但是后来发现Eclair居然不能导入到Eclipse。得，本来也觉得Eclipse不能很好地看C代码很不爽，那么就用SourceInsight吧。全部导入并sync后，发现貌似SourceInsight看源码树比Eclipse还好一些，特别是最近几乎看的都是C和C++部分的代码，其实对于Java代码也一样好。可以在代码间跳转，可以很快地定位需要的文件，虽然不能完全所有想定位的都能定位，但已经足以比Eclipse好一些了。</p>
<p>　　建议看源代码时，要将代码sync一下，这样就可以跳转了。虽然这样要花费较多的时间去sync，花费较多的磁盘空间，不过，磁盘嘛，1G总是相对比较少的，时间嘛，花一次这样的时间，以后都方便还是很好的。而且这个软件还是免费的，最初看到这个软件的推荐是在IBM的开发网站上，呵～IBM推荐的，也可以让大家信任吧。截图看一下：</p>
<p><a href="http://pimg.swodestatic.com/NjQxMTc3Nixzd2FuZGxl.jpg" target="_blank"><img style="border-right: 0px; border-top: 0px; display: block; float: none; margin-left: auto; border-left: 0px; margin-right: auto; border-bottom: 0px" title="Source-Insight" src="http://pimg.swodestatic.com/NjQxMTc3Nixzd2FuZGxl_medium.jpg" border="0" alt="Source-Insight" width="484" height="295" /></a></p>
<p align="center"><strong>原创文章，如需转载请注明【</strong><a href="http://wangliping.net" target="_blank"><strong>转烛空间</strong></a><strong>】：</strong><a href="http://wangliping.net"><strong>http://wangliping.net</strong></a></p>
<p align="center"><strong>本文地址：</strong><a href="http://wangliping.net/source-insight-see-source-code"><strong>http://wangliping.net/source-insight-see-source-code</strong></a></p>
<h3  class="related_post_title">你可能也感兴趣的文章：</h3><ul class="related_post"><li><a href="http://wangliping.net/android-x86-donut-r2" title="Android-x86 1.6-r2 釋出">Android-x86 1.6-r2 釋出</a></li><li><a href="http://wangliping.net/android-x86-20-eclair-release" title="Android-x86-2.0-eclair出pub-test版了">Android-x86-2.0-eclair出pub-test版了</a></li><li><a href="http://wangliping.net/linux-android-x86-test-keyboard-mouse-touch-screen" title="Linux下测试键盘鼠标触摸屏触摸板">Linux下测试键盘鼠标触摸屏触摸板</a></li><li><a href="http://wangliping.net/eclair-virtuebox-boot" title="Eclair已经在VirtualBox上跑起来了">Eclair已经在VirtualBox上跑起来了</a></li><li><a href="http://wangliping.net/android-x86-camrecord-and-opensource" title="Android-x86录像功能完善——兼谈开源">Android-x86录像功能完善——兼谈开源</a></li><li><a href="http://wangliping.net/android-x86-begin-to-accept-donate" title="Android-x86项目开始接受捐款">Android-x86项目开始接受捐款</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://wangliping.net/source-insight-see-source-code/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Linux下测试键盘鼠标触摸屏触摸板</title>
		<link>http://wangliping.net/linux-android-x86-test-keyboard-mouse-touch-screen</link>
		<comments>http://wangliping.net/linux-android-x86-test-keyboard-mouse-touch-screen#comments</comments>
		<pubDate>Wed, 23 Dec 2009 11:29:56 +0000</pubDate>
		<dc:creator>转烛</dc:creator>
				<category><![CDATA[编程技术]]></category>
		<category><![CDATA[android-x86]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[代码]]></category>
		<category><![CDATA[测试]]></category>

		<guid isPermaLink="false">http://wangliping.net/linux-android-x86-test-keyboard-mouse-touch-screen</guid>
		<description><![CDATA[在Linux或者Android-x86系统下，会用到测试键盘、鼠标、触摸屏、触摸板等各种输入设备的功能，那么下面的这段代码是个好的选择。以下文章出自于猫出没的地方，本文做了一些小改动。

　　最近玩了下Android-x86的eclair，主题风格相对之前的1.6好看了很多，而且还加了不少之前没有的功能。但是触摸屏不能用，于是想自己试着去解决这个问题，首先编写了个Linux输入设备的测试小程序来检测问题所在，测试结果发现没有校正，总算也小有成就。接下来应该再dig触摸屏的校正问题：-)

　　现在把写的测试程序放上来供大家参考：
　　代码中宏定义KEY_DEV、MOU_DEV、TOUS_DEV、TOUP_DEV是Linux下键盘，鼠标，触摸屏和触摸板的设备文件路径，对于不同的系统和机器可能有所不同，大家可以用cat /proc/bus/input/devices查看自己机器的设备文件。]]></description>
			<content:encoded><![CDATA[<p>　　在Linux或者Android-x86系统下，会用到测试键盘、鼠标、触摸屏、触摸板等各种输入设备的功能，那么下面的这段代码是个好的选择。以下文章出自于猫出没的地方，本文做了一些小改动。
<p>　　最近玩了下Android-x86的eclair，主题风格相对之前的1.6好看了很多，而且还加了不少之前没有的功能。但是触摸屏不能用，于是想自己试着去解决这个问题，首先编写了个Linux输入设备的测试小程序来检测问题所在，测试结果发现没有校正，总算也小有成就。接下来应该再dig触摸屏的校正问题：-)
<p>　　现在把写的测试程序放上来供大家参考：<br />　　代码中宏定义KEY_DEV、MOU_DEV、TOUS_DEV、TOUP_DEV是Linux下键盘，鼠标，触摸屏和触摸板的设备文件路径，对于不同的系统和机器可能有所不同，大家可以用cat /proc/bus/input/devices查看自己机器的设备文件。</p>
<p><span id="more-555"></span>
<p>　　用gcc -o outfilename filename编译生成可执行文件。如你将代码保存为test.c，那么你可以用gcc -o test test.c来编译连接。然后在目录下使用./test运行文件，注意修改生成的可执行文件权限(sudo chmod a+x test)，不想修改权限的用sudo ./test。目前还没加入测试过程中切换测试设备的功能，只能用CTRL+Z结束程序，再重新执行文件。有时间可以再摸索下加个这个功能，呵呵~~
<div style="border-bottom: #a9a9a9 1px solid; border-left: #a9a9a9 1px solid; background-color: rgb(249,247,237); font-family: consolas, 'Lucida Console', 'Courier New'; color: rgb(0,0,0); border-top: #a9a9a9 1px solid; border-right: #a9a9a9 1px solid" class="source"><span style="color: rgb(0,136,0)">#include &lt;stdio.h&gt;</span><br /><span style="color: rgb(0,136,0)">#include &lt;unistd.h&gt;</span><br /><span style="color: rgb(0,136,0)">#include &lt;sys/types.h&gt;</span><br /><span style="color: rgb(0,136,0)">#include &lt;fcntl.h&gt;</span><br /><span style="color: rgb(0,136,0)">#include &lt;linux/input.h&gt;</span><br /><span style="color: rgb(0,136,0)">#define KEY_DEV "/dev/input/event5"</span><br /><span style="color: rgb(0,136,0)">#define MOU_DEV "/dev/input/event6″</span><br /><span style="color: rgb(0,136,0)">#define TOUS_DEV "/dev/input/event7″</span><br /><span style="color: rgb(0,136,0)">#define TOUP_DEV "/dev/input/event11″</span></p>
<p><span style="color: rgb(170,34,255); font-weight: bold">static</span> <span style="color: rgb(0,187,0); font-weight: bold">int</span> <span style="color: rgb(0,0,0)">ts_fd</span> <span style="color: rgb(102,102,102)">=</span> <span style="color: rgb(102,102,102)">-</span><span style="color: rgb(102,102,102)">1</span>;<br /><span style="color: rgb(170,34,255); font-weight: bold">static</span> <span style="color: rgb(170,34,255); font-weight: bold">struct</span> <span style="color: rgb(0,0,0)">input_event</span> <span style="color: rgb(0,0,0)">data</span>;</p>
<p><span style="color: rgb(170,34,255); font-weight: bold">static</span> <span style="color: rgb(0,187,0); font-weight: bold">int</span> <span style="color: rgb(0,160,0)">init_device</span>(<span style="color: rgb(0,187,0); font-weight: bold">char</span> <span style="color: rgb(102,102,102)">*</span><span style="color: rgb(0,0,0)">TS_DEV</span>)<br /><span style="color: rgb(0,0,0)">{</span><br />&nbsp;&nbsp;&nbsp; <span style="color: rgb(170,34,255); font-weight: bold">if</span>((<span style="color: rgb(0,0,0)">ts_fd</span> <span style="color: rgb(102,102,102)">=</span> <span style="color: rgb(0,0,0)">open</span>(<span style="color: rgb(0,0,0)">TS_DEV</span><span style="color: rgb(0,0,0)">,</span> <span style="color: rgb(0,0,0)">O_RDONLY</span>)) <span style="color: rgb(102,102,102)">&lt;</span> <span style="color: rgb(102,102,102)">0</span>)<br />&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">{</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">printf</span>(<span style="color: rgb(187,68,68)">"Error open %s</span><span style="color: rgb(187,102,34); font-weight: bold">\n\n</span><span style="color: rgb(187,68,68)">"</span><span style="color: rgb(0,0,0)">,</span> <span style="color: rgb(0,0,0)">TS_DEV</span>);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(170,34,255); font-weight: bold">return</span> <span style="color: rgb(102,102,102)">-</span><span style="color: rgb(102,102,102)">1</span>;<br />&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">}</span><br />&nbsp;&nbsp;&nbsp; <span style="color: rgb(170,34,255); font-weight: bold">return</span> <span style="color: rgb(0,0,0)">ts_fd</span>;<br /><span style="color: rgb(0,0,0)">}</span></p>
<p><span style="color: rgb(170,34,255); font-weight: bold">static</span> <span style="color: rgb(0,187,0); font-weight: bold">int</span> <span style="color: rgb(0,160,0)">test_key</span>()<br /><span style="color: rgb(0,0,0)">{</span><br />&nbsp;&nbsp;&nbsp; <span style="color: rgb(170,34,255); font-weight: bold">if</span>(<span style="color: rgb(0,0,0)">init_device</span>(<span style="color: rgb(0,0,0)">KEY_DEV</span>) <span style="color: rgb(102,102,102)">&lt;</span> <span style="color: rgb(102,102,102)">0</span>)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(170,34,255); font-weight: bold">return</span> <span style="color: rgb(102,102,102)">-</span><span style="color: rgb(102,102,102)">1</span>;<br />&nbsp;&nbsp;&nbsp; <span style="color: rgb(170,34,255); font-weight: bold">while</span>(<span style="color: rgb(102,102,102)">1</span>)<br />&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">{</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">read</span>(<span style="color: rgb(0,0,0)">ts_fd</span><span style="color: rgb(0,0,0)">,</span> <span style="color: rgb(102,102,102)">&amp;</span><span style="color: rgb(0,0,0)">data</span><span style="color: rgb(0,0,0)">,</span> <span style="color: rgb(170,34,255); font-weight: bold">sizeof</span>(<span style="color: rgb(0,0,0)">data</span>));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(170,34,255); font-weight: bold">if</span> (<span style="color: rgb(0,0,0)">data</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(0,0,0)">type</span> <span style="color: rgb(102,102,102)">==</span> <span style="color: rgb(0,0,0)">EV_KEY</span>)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">printf</span>(<span style="color: rgb(187,68,68)">"&nbsp; type: EV_KEY, event = %d, value = %d</span><span style="color: rgb(187,102,34); font-weight: bold">\n</span><span style="color: rgb(187,68,68)">"</span><span style="color: rgb(0,0,0)">,</span><span style="color: rgb(0,0,0)">data</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(0,0,0)">code</span><span style="color: rgb(0,0,0)">,</span> <span style="color: rgb(0,0,0)">data</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(0,0,0)">value</span>);<br />&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">}</span><br />&nbsp;&nbsp;&nbsp; <span style="color: rgb(170,34,255); font-weight: bold">return</span> <span style="color: rgb(102,102,102)">0</span>;<br /><span style="color: rgb(0,0,0)">}</span></p>
<p><span style="color: rgb(170,34,255); font-weight: bold">static</span> <span style="color: rgb(0,187,0); font-weight: bold">int</span> <span style="color: rgb(0,160,0)">test_mouse</span>()<br /><span style="color: rgb(0,0,0)">{</span><br />&nbsp;&nbsp;&nbsp; <span style="color: rgb(170,34,255); font-weight: bold">if</span>(<span style="color: rgb(0,0,0)">init_device</span>(<span style="color: rgb(0,0,0)">MOU_DEV</span>) <span style="color: rgb(102,102,102)">&lt;</span> <span style="color: rgb(102,102,102)">0</span>)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(170,34,255); font-weight: bold">return</span> <span style="color: rgb(102,102,102)">-</span><span style="color: rgb(102,102,102)">1</span>;<br />&nbsp;&nbsp;&nbsp; <span style="color: rgb(170,34,255); font-weight: bold">while</span>(<span style="color: rgb(102,102,102)">1</span>)<br />&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">{</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">read</span>(<span style="color: rgb(0,0,0)">ts_fd</span><span style="color: rgb(0,0,0)">,</span> <span style="color: rgb(102,102,102)">&amp;</span><span style="color: rgb(0,0,0)">data</span><span style="color: rgb(0,0,0)">,</span> <span style="color: rgb(170,34,255); font-weight: bold">sizeof</span>(<span style="color: rgb(0,0,0)">data</span>));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(170,34,255); font-weight: bold">if</span> (<span style="color: rgb(0,0,0)">data</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(0,0,0)">type</span> <span style="color: rgb(102,102,102)">==</span> <span style="color: rgb(0,0,0)">EV_KEY</span>)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">{</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">printf</span>(<span style="color: rgb(187,68,68)">"&nbsp; type = EV_KEY, code = %s, value = %d</span><span style="color: rgb(187,102,34); font-weight: bold">\n</span><span style="color: rgb(187,68,68)">"</span><span style="color: rgb(0,0,0)">,</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">data</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(0,0,0)">code</span> <span style="color: rgb(102,102,102)">==</span> <span style="color: rgb(0,0,0)">BTN_LEFT</span> <span style="color: rgb(102,102,102)">?</span> <span style="color: rgb(187,68,68)">"MOUSE_LEFT"</span> <span style="color: rgb(102,102,102)">:</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">data</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(0,0,0)">code</span> <span style="color: rgb(102,102,102)">==</span> <span style="color: rgb(0,0,0)">BTN_RIGHT</span> <span style="color: rgb(102,102,102)">?</span> <span style="color: rgb(187,68,68)">"MOUSE_RIGHT"</span> <span style="color: rgb(102,102,102)">:</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">data</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(0,0,0)">code</span> <span style="color: rgb(102,102,102)">==</span> <span style="color: rgb(0,0,0)">BTN_MIDDLE</span> <span style="color: rgb(102,102,102)">?</span> <span style="color: rgb(187,68,68)">"MOUSE_MIDDLE"</span> <span style="color: rgb(102,102,102)">:</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">data</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(0,0,0)">code</span> <span style="color: rgb(102,102,102)">==</span> <span style="color: rgb(0,0,0)">BTN_SIDE</span> <span style="color: rgb(102,102,102)">?</span> <span style="color: rgb(187,68,68)">"MOUSE_SIDE"</span> <span style="color: rgb(102,102,102)">:</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(187,68,68)">"Unkonw"</span><span style="color: rgb(0,0,0)">,</span> <span style="color: rgb(0,0,0)">data</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(0,0,0)">value</span>);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">}</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(170,34,255); font-weight: bold">else</span> <span style="color: rgb(170,34,255); font-weight: bold">if</span>(<span style="color: rgb(0,0,0)">data</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(0,0,0)">type</span> <span style="color: rgb(102,102,102)">==</span> <span style="color: rgb(0,0,0)">EV_REL</span>)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">{</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">printf</span>(<span style="color: rgb(187,68,68)">"&nbsp; type = EV_ABS, code = %s, value = %d</span><span style="color: rgb(187,102,34); font-weight: bold">\n</span><span style="color: rgb(187,68,68)">"</span><span style="color: rgb(0,0,0)">,</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">data</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(0,0,0)">code</span> <span style="color: rgb(102,102,102)">==</span> <span style="color: rgb(0,0,0)">REL_X</span> <span style="color: rgb(102,102,102)">?</span> <span style="color: rgb(187,68,68)">"ABS_X"</span> <span style="color: rgb(102,102,102)">:</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">data</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(0,0,0)">code</span> <span style="color: rgb(102,102,102)">==</span> <span style="color: rgb(0,0,0)">REL_Y</span> <span style="color: rgb(102,102,102)">?</span> <span style="color: rgb(187,68,68)">"ABS_Y"</span> <span style="color: rgb(102,102,102)">:</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">data</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(0,0,0)">code</span> <span style="color: rgb(102,102,102)">==</span> <span style="color: rgb(0,0,0)">ABS_WHEEL</span> <span style="color: rgb(102,102,102)">?</span> <span style="color: rgb(187,68,68)">"MOUSE_WHEEL"</span> <span style="color: rgb(102,102,102)">:</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">data</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(0,0,0)">code</span> <span style="color: rgb(102,102,102)">==</span> <span style="color: rgb(0,0,0)">ABS_PRESSURE</span> <span style="color: rgb(102,102,102)">?</span> <span style="color: rgb(187,68,68)">"ABS_PRESSURE"</span> <span style="color: rgb(102,102,102)">:</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(187,68,68)">"Unkown"</span><span style="color: rgb(0,0,0)">,</span> <span style="color: rgb(0,0,0)">data</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(0,0,0)">value</span>);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">}</span><br />&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">}</span><br />&nbsp;&nbsp;&nbsp; <span style="color: rgb(170,34,255); font-weight: bold">return</span> <span style="color: rgb(102,102,102)">0</span>;<br /><span style="color: rgb(0,0,0)">}</span></p>
<p><span style="color: rgb(170,34,255); font-weight: bold">static</span> <span style="color: rgb(0,187,0); font-weight: bold">int</span> <span style="color: rgb(0,160,0)">test_touch_screen</span>()<br /><span style="color: rgb(0,0,0)">{</span><br />&nbsp;&nbsp;&nbsp; <span style="color: rgb(170,34,255); font-weight: bold">if</span>(<span style="color: rgb(0,0,0)">init_device</span>(<span style="color: rgb(0,0,0)">TOUS_DEV</span>) <span style="color: rgb(102,102,102)">&lt;</span> <span style="color: rgb(102,102,102)">0</span>)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(170,34,255); font-weight: bold">return</span> <span style="color: rgb(102,102,102)">-</span><span style="color: rgb(102,102,102)">1</span>;<br />&nbsp;&nbsp;&nbsp; <span style="color: rgb(170,34,255); font-weight: bold">while</span>(<span style="color: rgb(102,102,102)">1</span>)<br />&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">{</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">read</span>(<span style="color: rgb(0,0,0)">ts_fd</span><span style="color: rgb(0,0,0)">,</span> <span style="color: rgb(102,102,102)">&amp;</span><span style="color: rgb(0,0,0)">data</span><span style="color: rgb(0,0,0)">,</span> <span style="color: rgb(170,34,255); font-weight: bold">sizeof</span>(<span style="color: rgb(0,0,0)">data</span>));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(170,34,255); font-weight: bold">if</span> (<span style="color: rgb(0,0,0)">data</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(0,0,0)">type</span> <span style="color: rgb(102,102,102)">==</span> <span style="color: rgb(0,0,0)">EV_KEY</span>)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">{</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">printf</span>(<span style="color: rgb(187,68,68)">"&nbsp; type: EV_KEY, event = %s, value = %d</span><span style="color: rgb(187,102,34); font-weight: bold">\n\n</span><span style="color: rgb(187,68,68)">"</span><span style="color: rgb(0,0,0)">,</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">data</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(0,0,0)">code</span> <span style="color: rgb(102,102,102)">==</span> <span style="color: rgb(0,0,0)">BTN_TOUCH</span> <span style="color: rgb(102,102,102)">?</span> <span style="color: rgb(187,68,68)">"BTN_TOUCH"</span> <span style="color: rgb(102,102,102)">:</span> <span style="color: rgb(187,68,68)">"Unkown"</span><span style="color: rgb(0,0,0)">,</span> <span style="color: rgb(0,0,0)">data</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(0,0,0)">value</span>);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">}</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(170,34,255); font-weight: bold">else</span> <span style="color: rgb(170,34,255); font-weight: bold">if</span>(<span style="color: rgb(0,0,0)">data</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(0,0,0)">type</span> <span style="color: rgb(102,102,102)">==</span> <span style="color: rgb(0,0,0)">EV_ABS</span>)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">{</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">printf</span>(<span style="color: rgb(187,68,68)">"&nbsp; type: EV_ABS, event = %s, value = %d</span><span style="color: rgb(187,102,34); font-weight: bold">\n\n</span><span style="color: rgb(187,68,68)">"</span><span style="color: rgb(0,0,0)">,</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">data</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(0,0,0)">code</span> <span style="color: rgb(102,102,102)">==</span> <span style="color: rgb(0,0,0)">ABS_X</span> <span style="color: rgb(102,102,102)">?</span> <span style="color: rgb(187,68,68)">"ABS_X"</span> <span style="color: rgb(102,102,102)">:</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">data</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(0,0,0)">code</span> <span style="color: rgb(102,102,102)">==</span> <span style="color: rgb(0,0,0)">ABS_Y</span> <span style="color: rgb(102,102,102)">?</span> <span style="color: rgb(187,68,68)">"ABS_Y"</span> <span style="color: rgb(102,102,102)">:</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">data</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(0,0,0)">code</span> <span style="color: rgb(102,102,102)">==</span> <span style="color: rgb(0,0,0)">ABS_PRESSURE</span> <span style="color: rgb(102,102,102)">?</span> <span style="color: rgb(187,68,68)">"ABS_PRESSURE"</span> <span style="color: rgb(102,102,102)">:</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(187,68,68)">"Unkown"</span><span style="color: rgb(0,0,0)">,</span> <span style="color: rgb(0,0,0)">data</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(0,0,0)">value</span>);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">}</span><br />&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">}</span><br />&nbsp;&nbsp;&nbsp; <span style="color: rgb(170,34,255); font-weight: bold">return</span> <span style="color: rgb(102,102,102)">0</span>;<br /><span style="color: rgb(0,0,0)">}</span></p>
<p><span style="color: rgb(170,34,255); font-weight: bold">static</span> <span style="color: rgb(0,187,0); font-weight: bold">int</span> <span style="color: rgb(0,160,0)">test_touch_pancel</span>()<br /><span style="color: rgb(0,0,0)">{</span><br />&nbsp;&nbsp;&nbsp; <span style="color: rgb(170,34,255); font-weight: bold">if</span>(<span style="color: rgb(0,0,0)">init_device</span>(<span style="color: rgb(0,0,0)">TOUP_DEV</span>) <span style="color: rgb(102,102,102)">&lt;</span> <span style="color: rgb(102,102,102)">0</span>)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(170,34,255); font-weight: bold">return</span> <span style="color: rgb(102,102,102)">-</span><span style="color: rgb(102,102,102)">1</span>;<br />&nbsp;&nbsp;&nbsp; <span style="color: rgb(170,34,255); font-weight: bold">while</span>(<span style="color: rgb(102,102,102)">1</span>)<br />&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">{</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">read</span>(<span style="color: rgb(0,0,0)">ts_fd</span><span style="color: rgb(0,0,0)">,</span> <span style="color: rgb(102,102,102)">&amp;</span><span style="color: rgb(0,0,0)">data</span><span style="color: rgb(0,0,0)">,</span> <span style="color: rgb(170,34,255); font-weight: bold">sizeof</span>(<span style="color: rgb(0,0,0)">data</span>));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(170,34,255); font-weight: bold">if</span> (<span style="color: rgb(0,0,0)">data</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(0,0,0)">type</span> <span style="color: rgb(102,102,102)">==</span> <span style="color: rgb(0,0,0)">EV_KEY</span>)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">{</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">printf</span>(<span style="color: rgb(187,68,68)">"&nbsp; type = EV_KEY, code = %s, value = %d</span><span style="color: rgb(187,102,34); font-weight: bold">\n</span><span style="color: rgb(187,68,68)">"</span><span style="color: rgb(0,0,0)">,</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">data</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(0,0,0)">code</span> <span style="color: rgb(102,102,102)">==</span> <span style="color: rgb(0,0,0)">BTN_LEFT</span> <span style="color: rgb(102,102,102)">?</span> <span style="color: rgb(187,68,68)">"MOUSE_LEFT"</span> <span style="color: rgb(102,102,102)">:</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">data</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(0,0,0)">code</span> <span style="color: rgb(102,102,102)">==</span> <span style="color: rgb(0,0,0)">BTN_RIGHT</span> <span style="color: rgb(102,102,102)">?</span> <span style="color: rgb(187,68,68)">"MOUSE_RIGHT"</span> <span style="color: rgb(102,102,102)">:</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">data</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(0,0,0)">code</span> <span style="color: rgb(102,102,102)">==</span> <span style="color: rgb(0,0,0)">BTN_MIDDLE</span> <span style="color: rgb(102,102,102)">?</span> <span style="color: rgb(187,68,68)">"MOUSE_MIDDLE"</span> <span style="color: rgb(102,102,102)">:</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">data</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(0,0,0)">code</span> <span style="color: rgb(102,102,102)">==</span> <span style="color: rgb(0,0,0)">BTN_SIDE</span> <span style="color: rgb(102,102,102)">?</span> <span style="color: rgb(187,68,68)">"MOUSE_SIDE"</span> <span style="color: rgb(102,102,102)">:</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(187,68,68)">"Unkonw"</span><span style="color: rgb(0,0,0)">,</span> <span style="color: rgb(0,0,0)">data</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(0,0,0)">value</span>);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">}</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(170,34,255); font-weight: bold">else</span> <span style="color: rgb(170,34,255); font-weight: bold">if</span>(<span style="color: rgb(0,0,0)">data</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(0,0,0)">type</span> <span style="color: rgb(102,102,102)">==</span> <span style="color: rgb(0,0,0)">EV_REL</span>)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">{</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">printf</span>(<span style="color: rgb(187,68,68)">"&nbsp; type = EV_ABS, code = %s, value = %d</span><span style="color: rgb(187,102,34); font-weight: bold">\n</span><span style="color: rgb(187,68,68)">"</span><span style="color: rgb(0,0,0)">,</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">data</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(0,0,0)">code</span> <span style="color: rgb(102,102,102)">==</span> <span style="color: rgb(0,0,0)">REL_X</span> <span style="color: rgb(102,102,102)">?</span> <span style="color: rgb(187,68,68)">"ABS_X"</span> <span style="color: rgb(102,102,102)">:</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">data</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(0,0,0)">code</span> <span style="color: rgb(102,102,102)">==</span> <span style="color: rgb(0,0,0)">REL_Y</span> <span style="color: rgb(102,102,102)">?</span> <span style="color: rgb(187,68,68)">"ABS_Y"</span> <span style="color: rgb(102,102,102)">:</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">data</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(0,0,0)">code</span> <span style="color: rgb(102,102,102)">==</span> <span style="color: rgb(0,0,0)">ABS_WHEEL</span> <span style="color: rgb(102,102,102)">?</span> <span style="color: rgb(187,68,68)">"MOUSE_WHEEL"</span> <span style="color: rgb(102,102,102)">:</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">data</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(0,0,0)">code</span> <span style="color: rgb(102,102,102)">==</span> <span style="color: rgb(0,0,0)">ABS_PRESSURE</span> <span style="color: rgb(102,102,102)">?</span> <span style="color: rgb(187,68,68)">"ABS_PRESSURE"</span> <span style="color: rgb(102,102,102)">:</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(187,68,68)">"Unkown"</span><span style="color: rgb(0,0,0)">,</span> <span style="color: rgb(0,0,0)">data</span><span style="color: rgb(0,0,0)">.</span><span style="color: rgb(0,0,0)">value</span>);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">}</span><br />&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">}</span><br />&nbsp;&nbsp;&nbsp; <span style="color: rgb(170,34,255); font-weight: bold">return</span> <span style="color: rgb(102,102,102)">0</span>;<br /><span style="color: rgb(0,0,0)">}</span></p>
<p><span style="color: rgb(0,187,0); font-weight: bold">int</span> <span style="color: rgb(0,160,0)">main</span>()<br /><span style="color: rgb(0,0,0)">{</span><br />&nbsp;&nbsp;&nbsp; <span style="color: rgb(170,34,255); font-weight: bold">static</span> <span style="color: rgb(0,187,0); font-weight: bold">int</span> <span style="color: rgb(0,0,0)">i</span>;<br /><span style="color: rgb(160,160,0)">select:</span>&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">printf</span>(<span style="color: rgb(187,68,68)">"Please select device:</span><span style="color: rgb(187,102,34); font-weight: bold">\n</span><span style="color: rgb(187,68,68)">0.KeyBoard</span><span style="color: rgb(187,102,34); font-weight: bold">\n</span><span style="color: rgb(187,68,68)">1.Mouse</span><span style="color: rgb(187,102,34); font-weight: bold">\n</span><span style="color: rgb(187,68,68)">2.TouchScreen</span><span style="color: rgb(187,102,34); font-weight: bold">\n</span><span style="color: rgb(187,68,68)">3.TouchPanel</span><span style="color: rgb(187,102,34); font-weight: bold">\n\Your choice is:</span><span style="color: rgb(187,68,68)">"</span>);<br />&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">scanf</span>(<span style="color: rgb(187,68,68)">"%d"</span><span style="color: rgb(0,0,0)">,</span><span style="color: rgb(102,102,102)">&amp;</span><span style="color: rgb(0,0,0)">i</span>);<br />&nbsp;&nbsp;&nbsp; <span style="color: rgb(170,34,255); font-weight: bold">switch</span>(<span style="color: rgb(0,0,0)">i</span><span style="color: rgb(0,0,0)">){</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(170,34,255); font-weight: bold">case</span> <span style="color: rgb(102,102,102)">0</span><span style="color: rgb(0,0,0)">:</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">test_key</span>();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(170,34,255); font-weight: bold">break</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(170,34,255); font-weight: bold">case</span> <span style="color: rgb(102,102,102)">1</span><span style="color: rgb(0,0,0)">:</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">test_mouse</span>();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(170,34,255); font-weight: bold">break</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(170,34,255); font-weight: bold">case</span> <span style="color: rgb(102,102,102)">2</span><span style="color: rgb(0,0,0)">:</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">test_touch_screen</span>();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(170,34,255); font-weight: bold">break</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(170,34,255); font-weight: bold">case</span> <span style="color: rgb(102,102,102)">3</span><span style="color: rgb(0,0,0)">:</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">test_touch_pancel</span>();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(170,34,255); font-weight: bold">break</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(170,34,255); font-weight: bold">default</span><span style="color: rgb(102,102,102)">:</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">printf</span>(<span style="color: rgb(187,68,68)">"Wrong device, Please select again!</span><span style="color: rgb(187,102,34); font-weight: bold">\n\n</span><span style="color: rgb(187,68,68)">"</span>);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(170,34,255); font-weight: bold">break</span>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">}</span><br />&nbsp;&nbsp;&nbsp; <span style="color: rgb(170,34,255); font-weight: bold">goto</span> <span style="color: rgb(0,0,0)">select</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(170,34,255); font-weight: bold">return</span> <span style="color: rgb(102,102,102)">0</span>;<br /><span style="color: rgb(0,0,0)">}</span></div>
<p>原文出处：<a href="http://zhougaofeng.ixiezi.com/2009/12/23/inputtest/">http://zhougaofeng.ixiezi.com/2009/12/23/inputtest/</a></p>
<h3  class="related_post_title">你可能也感兴趣的文章：</h3><ul class="related_post"><li><a href="http://wangliping.net/source-insight-see-source-code" title="Source-Insight-看大规模大工程源代码">Source-Insight-看大规模大工程源代码</a></li><li><a href="http://wangliping.net/how-to-use-fdisk-in-linux" title="实例解说 fdisk 使用方法">实例解说 fdisk 使用方法</a></li><li><a href="http://wangliping.net/android-x86-donut-r2" title="Android-x86 1.6-r2 釋出">Android-x86 1.6-r2 釋出</a></li><li><a href="http://wangliping.net/c-change-file-permission" title="C语言查看和更改文件的权限">C语言查看和更改文件的权限</a></li><li><a href="http://wangliping.net/android-x86-20-eclair-release" title="Android-x86-2.0-eclair出pub-test版了">Android-x86-2.0-eclair出pub-test版了</a></li><li><a href="http://wangliping.net/eclair-virtuebox-boot" title="Eclair已经在VirtualBox上跑起来了">Eclair已经在VirtualBox上跑起来了</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://wangliping.net/linux-android-x86-test-keyboard-mouse-touch-screen/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Eclair已经在VirtualBox上跑起来了</title>
		<link>http://wangliping.net/eclair-virtuebox-boot</link>
		<comments>http://wangliping.net/eclair-virtuebox-boot#comments</comments>
		<pubDate>Thu, 03 Dec 2009 01:07:05 +0000</pubDate>
		<dc:creator>转烛</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[android-x86]]></category>
		<category><![CDATA[eclair]]></category>
		<category><![CDATA[google]]></category>

		<guid isPermaLink="false">http://wangliping.net/?p=522</guid>
		<description><![CDATA[　　这里指的当然是Android-x86了。今天上Android-x86主站一看，就发现了这个事情，不错啊不错。经过他们艰苦卓绝的努力，终于将这个初步完成。鼓掌。Eclair是Google对Android2.0的称呼吧，由于以前Android-x86都是用的1.0，1.5，1.6版本，现在转到2.0版本，改动非常大，且不说界面上的影响，从部分源码上的改动已经对x86伤筋动骨了吧。所以说Google一动手，别人就要做好多事情。那个Acer现在不是已经出了一部安装Android的上网本吗？不过那个用的是1.0版本，而早在它发布之前，Android-86已经用了1.5版本，所以说，Android-x86项目算是紧跟技术前沿，呵呵～]]></description>
			<content:encoded><![CDATA[<p>　　这里指的当然是Android-x86了。今天上Android-x86主站一看，就发现了这个事情，不错啊不错。经过他们艰苦卓绝的努力，终于将这个初步完成。鼓掌。Eclair是Google对Android2.0的称呼吧，由于以前Android-x86都是用的1.0，1.5，1.6版本，现在转到2.0版本，改动非常大，且不说界面上的影响，从部分源码上的改动已经对x86伤筋动骨了吧。所以说Google一动手，别人就要做好多事情。那个Acer现在不是已经出了一部安装Android的上网本吗？不过那个用的是1.0版本，而早在它发布之前，Android-86已经用了1.5版本，所以说，Android-x86项目算是紧跟技术前沿，呵呵～</p>
<p>　　为了让大家更好地知道具体过程，现将原文引用如下，图片我下载后重新上传了，以便大家访问，原文地址：<a href="http://blog.android-x86.org/2009/12/eclair-is-up-running-on-virtualbox.html">http://blog.android-x86.org/2009/12/eclair-is-up-running-on-virtualbox.html</a>：<span id="more-522"></span></p>
<blockquote>
<h3><a href="http://blog.android-x86.org/2009/12/eclair-is-up-running-on-virtualbox.html" target="_blank">Eclair is up running on VirtualBox</a></h3>
<div>After the thanksgiving holiday, we had worked on the Eclair merge for 24 hours a day on everyday (well, I'm in US, Chih-wei is in Taiwan, so both of us worked together for 24 hours a day). After fixed audioflinger, camera code, removed opengl, fixed linker and merge conflicts and ...... when I open my e-mail box this morning, I saw Chih-wei's e-mail named "First Screenshots of Eclair on vbox", so I can not just stop myself to write this blog even longer to let people know this news. We will clean up the things and push the changes to master tree. Surely, we have a lot of fixup works need to be done, but, hi, it boots. It is a good start <img src='http://wangliping.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </div>
<div><a href="http://pimg.swodestatic.com/NjA2OTM0Nixzd2FuZGxl.jpg"><img class="alignnone" title="Eclair-boot" src="http://pimg.swodestatic.com/NjA2OTM0Nixzd2FuZGxl.jpg" alt="" width="480" height="389" /></a><a href="http://pimg.swodestatic.com/NjA2OTM0Nyxzd2FuZGxl.jpg"><img class="alignnone" title="Eclair-Settings" src="http://pimg.swodestatic.com/NjA2OTM0Nyxzd2FuZGxl.jpg" alt="" width="480" height="389" /></a></div>
</blockquote>
<h3  class="related_post_title">你可能也感兴趣的文章：</h3><ul class="related_post"><li><a href="http://wangliping.net/android-x86-20-eclair-release" title="Android-x86-2.0-eclair出pub-test版了">Android-x86-2.0-eclair出pub-test版了</a></li><li><a href="http://wangliping.net/android-x86-donut-r2" title="Android-x86 1.6-r2 釋出">Android-x86 1.6-r2 釋出</a></li><li><a href="http://wangliping.net/source-insight-see-source-code" title="Source-Insight-看大规模大工程源代码">Source-Insight-看大规模大工程源代码</a></li><li><a href="http://wangliping.net/android-x86-camrecord-and-opensource" title="Android-x86录像功能完善——兼谈开源">Android-x86录像功能完善——兼谈开源</a></li><li><a href="http://wangliping.net/android-x86-begin-to-accept-donate" title="Android-x86项目开始接受捐款">Android-x86项目开始接受捐款</a></li><li><a href="http://wangliping.net/android-x86-1-6-stable" title="Android-x86出1.6版了">Android-x86出1.6版了</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://wangliping.net/eclair-virtuebox-boot/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Android-x86录像功能完善——兼谈开源</title>
		<link>http://wangliping.net/android-x86-camrecord-and-opensource</link>
		<comments>http://wangliping.net/android-x86-camrecord-and-opensource#comments</comments>
		<pubDate>Wed, 02 Dec 2009 11:41:47 +0000</pubDate>
		<dc:creator>转烛</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[0xAndroid]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[android-x86]]></category>
		<category><![CDATA[开源]]></category>
		<category><![CDATA[录像]]></category>

		<guid isPermaLink="false">http://wangliping.net/?p=519</guid>
		<description><![CDATA[　　Android-x86是什么东西，就不要我再过多介绍吧？如果你看了本博客还不了解Android-x86，就要打五十大板了，呵呵～多看看我前面的文章，会对你理解Android-x86有所帮助的。

　　一直以来，录像功能对于Android-x86都不完善。其实，连完善都谈不上，因为根本就没办法启动录像功能，仅仅有个界面而已。不知道Google 没将真正的录像功能加入它的主branch，还是根本就没写，查看一下源码，发现缺很多东西，而且看文件头，还是HTC写的。或许真的是没放到 master branch吧。既然这样，我们就只能自己动手改了。

　　0xAndroid也是个好东西，不过个人还是觉得 Android-x86比较好，用起来方便。哈哈～到处搜相关内容，没想到搜到了0xAndroid项目好像提到了这个问题。于是就看看它的代码，貌似还真的是处理了录像功能，于是借过来编译试试，果然涉及到这个问题，虽然并不完善，不过至少让录像功能跑起来了。

　　当然，0xAndroid的毛病也不少，不知道是我们下载的branch有问题，还是的确本来就存在这些问题：譬如照相过后就一块黑，录像不能预览，录像出来的文件基本是灰色的，录像完后会卡死机，照相的分辨率跟录像都是352×288，这显然不能容忍，即使将就录出来，也是没有声音的，看Log信息还报很多错误。于是借鉴代码，却要好好改改这些代码。]]></description>
			<content:encoded><![CDATA[<p>Android-x86是什么东西，就不要我再过多介绍吧？如果你看了本博客还不了解Android-x86，就要打五十大板了，呵呵～多看看我前面的文章，会对你理解Android-x86有所帮助的。</p>
<p>一直以来，录像功能对于Android-x86都不完善。其实，连完善都谈不上，因为根本就没办法启动录像功能，仅仅有个界面而已。不知道Google没将真正的录像功能加入它的主branch，还是根本就没写，查看一下源码，发现缺很多东西，而且看文件头，还是HTC写的。或许真的是没放到master branch吧。既然这样，我们就只能自己动手改了。</p>
<p>0xAndroid也是个好东西，不过个人还是觉得Android-x86比较好，用起来方便。哈哈～到处搜相关内容，没想到搜到了0xAndroid项目好像提到了这个问题。于是就看看它的代码，貌似还真的是处理了录像功能，于是借过来编译试试，果然涉及到这个问题，虽然并不完善，不过至少让录像功能跑起来了。</p>
<p><span id="more-519"></span> 当然，0xAndroid的毛病也不少，不知道是我们下载的branch有问题，还是的确本来就存在这些问题：譬如照相过后就一块黑，录像不能预览，录像出来的文件基本是灰色的，录像完后会卡死机，照相的分辨率跟录像都是352×288，这显然不能容忍，即使将就录出来，也是没有声音的，看Log信息还报很多错误。于是借鉴代码，却要好好改改这些代码。 经过这两天的努力，上述问题基本得到解决，一切基本正常，现在的主要问题就是照相分辨率可以达到640×480，但是没法往上提高，怎么设置，都无效。这个还在查看中，难道是Android某个代码中限制了分辨率超过640×480？没有相关log信息，那么就只能继续查看了。不过至少不再是352×288了。而其它问题也已得到解决，基本稳定了，更多的测试当然就不太清楚了。</p>
<p>说到这里，就要谈到开源了。0xAndroid和Android-x86都是开源项目，当然Android也是开源项目了。它们都引起很多很多人的兴趣，并且还参与进去，使得项目开展得越来越好，这就是开源的魅力所在吧，所有人都可以参与进去，为之贡献自己的力量。将自己的智慧与大家分享。这就叫众人拾柴火焰高吧。国内也有好多项目是开源的，貌似政府也在牵头开源项目（忘记那个网址了）。</p>
<p>虽然开源就是开放源代码，不过个人认为仅仅开放源代码并不代表着真正地开源。国内也好多程序开放源代码，但是往往依然只在那几个人中开发，别人根本没法融入进去，参与开发（或许也跟国内的开发环境有关）。而且国内的开放源代码的程序貌似基本都会加上一条：“不得以任何形式的商业行为”。这样的规定就完全限制了开源的精神，限制了它的发展。好多开源项目都有公司的参与，如果不能有商业行为，这兴趣就减弱了。Linux最初吧不也是规定不可以有任何商业行为吗？后来发现这样太限制它的发展了，于是加入到GNU协议，使得Linux有了持久的突飞猛进的发展。想想Ubuntu/RedHat还不都是基于Linux的，不也是可以从事商业活动吗？所以国内很多项目一加上这个条件，明显就是限制发展了，于是永远就那么几个人在坚持开发，不像Linux那样全球参与。</p>
<p>顺便提一下，本博客采用的WordPress也是一个开源项目，全球参与开发，现在不是发展得很好很好吗？开放源代码很好，更重要的是能够吸引别人参与开发，这才是开源的目的和意义，仅仅公开代码是不够的。</p>
<h3  class="related_post_title">你可能也感兴趣的文章：</h3><ul class="related_post"><li><a href="http://wangliping.net/android-x86-donut-r2" title="Android-x86 1.6-r2 釋出">Android-x86 1.6-r2 釋出</a></li><li><a href="http://wangliping.net/android-x86-20-eclair-release" title="Android-x86-2.0-eclair出pub-test版了">Android-x86-2.0-eclair出pub-test版了</a></li><li><a href="http://wangliping.net/source-insight-see-source-code" title="Source-Insight-看大规模大工程源代码">Source-Insight-看大规模大工程源代码</a></li><li><a href="http://wangliping.net/eclair-virtuebox-boot" title="Eclair已经在VirtualBox上跑起来了">Eclair已经在VirtualBox上跑起来了</a></li><li><a href="http://wangliping.net/android-x86-begin-to-accept-donate" title="Android-x86项目开始接受捐款">Android-x86项目开始接受捐款</a></li><li><a href="http://wangliping.net/android-x86-1-6-stable" title="Android-x86出1.6版了">Android-x86出1.6版了</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://wangliping.net/android-x86-camrecord-and-opensource/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Android-x86项目开始接受捐款</title>
		<link>http://wangliping.net/android-x86-begin-to-accept-donate</link>
		<comments>http://wangliping.net/android-x86-begin-to-accept-donate#comments</comments>
		<pubDate>Tue, 24 Nov 2009 00:50:03 +0000</pubDate>
		<dc:creator>转烛</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[android-x86]]></category>
		<category><![CDATA[donate]]></category>
		<category><![CDATA[捐款]]></category>

		<guid isPermaLink="false">http://wangliping.net/?p=505</guid>
		<description><![CDATA[　　为了更好地支持这个项目的发展，Android-x86已经开始接受捐款。如果您觉得这个项目不错，如果您想这个项目继续发展下去，请您能支持这个项目，对这个项目进行捐款。如果您对这个项目有什么疑义，可以前往项目主站查看详情，或者前往讨论区询问。以下是引用cwhuang的博客文章。]]></description>
			<content:encoded><![CDATA[<p>　　为了更好地支持这个项目的发展，Android-x86已经开始接受捐款。如果您觉得这个项目不错，如果您想这个项目继续发展下去，请您能支持这个项目，对这个项目进行捐款。如果您对这个项目有什么疑义，可以前往<a title="Android-x86项目主站" href="http://www.android-x86.org" target="_blank">项目主站</a>查看详情，或者前往<a title="Android-x86项目讨论区" href="http://groups.google.com/group/android-x86" target="_blank">讨论区</a>询问。以下是引用<a title="阿偉的個人天地" href="http://cwhuang.info/2009/11/android-x86-accept-donation" target="_blank">cwhuang</a>的博客文章。<span id="more-505"></span></p>
<blockquote><p>隨著 Android-x86 1.6 版的釋出，為了給各位辛苦的開發者一些鼓勵，讓這個計劃能更長久穩健的走下去，我們決定開始接受捐款。在<a href="http://www.android-x86.org/">主網站首頁</a>，已經放了 Donate icon，點選下去，便會連到 Paypal 的捐款頁面。</p>
<p>如果真的收到捐款，能做什麼呢? 首先，當然是支付一些經常性的開銷。還好目前這樣的費用還不多，只有花費在註冊 android-x86.org 這個 domain 上，是由 Yi 先行墊付。如果收到的錢夠多，也許可以買點不同的設備來測試。特別像我就想買支 Android 的手機，畢竟玩 Android 系統已經有一段時間了，卻還沒有用過真正的 Android 手機，不免有點可惜。跟朋友借來玩個幾分鐘的不算…</p>
<p>如果你覺得我們的計劃做得不錯，希望我們更進一步，請考慮捐款給我們。或者，如果希望 Android-x86 能更完整的支援你的裝置，也請考慮捐贈該裝置給我們。請點選下面的圖示：</p>
<p align="center"><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&amp;business=cwhuang%40linux%2eorg%2etw&amp;lc=US&amp;item_name=Android%2dx86%2eorg&amp;currency_code=USD&amp;bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted"><img src="https://www.paypal.com/en_US/i/btn/btn_donateCC_LG.gif" alt="Donate to Android-x86.org" /></a></p>
</blockquote>
<p style="text-align: left;">　　以下是引用<a title="Android-x86项目主站" href="http://www.android-x86.org" target="_blank">Android-x86项目主站</a>上的文字：</p>
<blockquote>
<p style="text-align: left;"><strong>We began to accept donations via Paypal. Please click the right <a rel="nofollow" href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&amp;business=cwhuang%40linux%2eorg%2etw&amp;lc=US&amp;item_name=Android%2dx86%2eorg&amp;currency_code=USD&amp;bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted">Donate icon</a>. If you think we have done a good job and hope we continue the work, please consider to donate us some money, so we can pay the expenditure and buy devices for testing. Besides, if you hope we support your device, please consider to donate some devices to us. Thank you for your supporting. </strong></p>
</blockquote>
<h3  class="related_post_title">你可能也感兴趣的文章：</h3><ul class="related_post"><li><a href="http://wangliping.net/android-x86-donut-r2" title="Android-x86 1.6-r2 釋出">Android-x86 1.6-r2 釋出</a></li><li><a href="http://wangliping.net/android-x86-20-eclair-release" title="Android-x86-2.0-eclair出pub-test版了">Android-x86-2.0-eclair出pub-test版了</a></li><li><a href="http://wangliping.net/source-insight-see-source-code" title="Source-Insight-看大规模大工程源代码">Source-Insight-看大规模大工程源代码</a></li><li><a href="http://wangliping.net/eclair-virtuebox-boot" title="Eclair已经在VirtualBox上跑起来了">Eclair已经在VirtualBox上跑起来了</a></li><li><a href="http://wangliping.net/android-x86-camrecord-and-opensource" title="Android-x86录像功能完善——兼谈开源">Android-x86录像功能完善——兼谈开源</a></li><li><a href="http://wangliping.net/android-x86-1-6-stable" title="Android-x86出1.6版了">Android-x86出1.6版了</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://wangliping.net/android-x86-begin-to-accept-donate/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android-x86出1.6版了</title>
		<link>http://wangliping.net/android-x86-1-6-stable</link>
		<comments>http://wangliping.net/android-x86-1-6-stable#comments</comments>
		<pubDate>Sun, 22 Nov 2009 15:02:20 +0000</pubDate>
		<dc:creator>转烛</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[android-x86]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[OS]]></category>

		<guid isPermaLink="false">http://wangliping.net/?p=497</guid>
		<description><![CDATA[　　Android-x86出1.6版了，虽然Chrome OS的发布吸引了众多的眼球，但是Android-x86也是不错的系统。Chrome OS据说非常依赖于网络，并且还不怎么支持硬盘，也即是说没有本地文件，但是Android-x86则不同，所以，也是值得期待的，而且现在也开源。对 Android-x86还不是很了解的，可以看华人软件工程师移植Android系统入驻上网本，或者直接去Android-x86站点看。废话不多说，直接转载这篇文章（应该可以转载吧）。

　　原文来自于：http://www.android-x86.org/releases/releasenote_1_6
　　转载请注明。]]></description>
			<content:encoded><![CDATA[<p>Android-x86出1.6版了，虽然Chrome OS的发布吸引了众多的眼球，但是Android-x86也是不错的系统。Chrome OS据说非常依赖于网络，并且还不怎么支持硬盘，也即是说没有本地文件，但是Android-x86则不同，所以，也是值得期待的，而且现在也开源。对Android-x86还不是很了解的，可以看<a rel="bookmark" href="../android-x86-2">华人软件工程师移植Android系统入驻上网本</a>，或者直接去<a title="Android-x86站点" href="http://www.android-x86.org" target="_blank">Android-x86</a>站点看。废话不多说，直接转载这篇文章（应该可以转载吧）。</p>
<p>原文来自于：<a title="Android-x86 1.6" href="http://www.android-x86.org/releases/releasenote_1_6" target="_blank">http://www.android-x86.org/releases/releasenote_1_6</a></p>
<p><span style="font-size: small;"> </span></p>
<p>转载请注明。<span id="more-497"></span></p>
<blockquote><p>The Android-x86 project is glad to release the new stable version 1.6 to the public. The live cd iso and usb image are available from our site, as usual:</p>
<ul>
<li><a href="http://www.android-x86.org/download">http://www.android-x86.org/download</a></li>
<li><a href="http://code.google.com/p/android-x86/downloads/list">http://code.google.com/p/android-x86/downloads/list</a></li>
</ul>
<p>Test reports (success or fail) are welcome as always. Please send the reports to the <a href="http://groups.google.com/group/android-x86">Android-x86 discussion group</a>. If you are working on Android for x86 platform, welcome to join us. See the below contact information.</p>
<h3>Key Features</h3>
<ul>
<li>Kernel 2.6.29 with KMS enabled. Most netbooks can run Android-x86 in the native resolution.</li>
<li>Hardware OpenGL support on i915/i945 family chipsets. This feature improves greatly the performance of 3D effect and video playback. It is turned on by default if the i915 driver is available. However, if you have trouble with it, you can disable it by adding HWACCEL=0 to the cmdline. (by olv from 0xlab)</li>
<li>Wifi and Ethernet support. Both are configured from the GUI.</li>
<li>A new text based GUI installer which supports ext3/ext2/ntfs/fat32 filesystems.</li>
<li>Support basic bluetooth for builtin device and external bluetooth dongle.</li>
<li>Keyboard layout is configurable. Ten layouts are supported in this release. To use this feature, you have to install Android-x86 to harddisk and reboot after changing the setting.</li>
<li>Fn hotkeys support for Eee PC platforms.</li>
<li>Add touch features to simulate Home/Menu/Back keys, useful for touchscreen only devices.</li>
<li>Add software mouse cursor. Mouse wheel is also supported.</li>
</ul>
<ul>
<li>Better keyboard support, including PageUp, PageDown, and so on. The Ctrl key is usable in the Terminal emulator.</li>
<li>Touchscreen support for Eee PC T91 and Eee Top.</li>
<li>External usb drive and sdcard are auto mounted on plugging.</li>
<li>Add shutdown and reboot dialog. To invoke it, press the power button.</li>
<li>A hotplug tool to load driver firmwares.</li>
<li>Audio and Camera support.</li>
<li>Drivers auto detection.</li>
<li>Battery status.</li>
<li>Suspend to RAM and wakeup.</li>
<li>Adjustable Alarm Clock volume.</li>
<li>Add proxy setting.</li>
<li>Be able to su in the Terminal emulator.</li>
<li>Software keyboard is workable.</li>
<li>Support larger resolutions.</li>
<li>Chinese Pinyin IME works correctly.</li>
<li>Add video player.</li>
<li>Add more sample applications.</li>
<li>Add third party applications, include
<ul>
<li>OpenIntents File Manager.</li>
<li>ConnectBot ssh client.</li>
<li>AndAppStore client 1.5.8.</li>
<li>LIME IME 1.6.3.</li>
<li>RockOn 1.4.8 For Android.</li>
</ul>
</li>
<li>Compressed filesystem (squashfs).</li>
<li>Debug mode including busybox.</li>
</ul>
<li>NDK for x86 platforms is supported.</li>
<p>Android-x86 1.6 is based on the Android 1.6, aka the Donut branch. We fixed and added many x86 specified code to let the system runs smoothly on x86 platforms, especially for netbooks. The key features of this release contain  In addition to the key features, here is the list of all other improvements</p></blockquote>
<h3  class="related_post_title">你可能也感兴趣的文章：</h3><ul class="related_post"><li><a href="http://wangliping.net/chrome-os-smile-finally-and-any-answer" title="Chrome OS 终于露出真容，我们有了答案了吗？">Chrome OS 终于露出真容，我们有了答案了吗？</a></li><li><a href="http://wangliping.net/android-x86-donut-r2" title="Android-x86 1.6-r2 釋出">Android-x86 1.6-r2 釋出</a></li><li><a href="http://wangliping.net/android-x86-20-eclair-release" title="Android-x86-2.0-eclair出pub-test版了">Android-x86-2.0-eclair出pub-test版了</a></li><li><a href="http://wangliping.net/source-insight-see-source-code" title="Source-Insight-看大规模大工程源代码">Source-Insight-看大规模大工程源代码</a></li><li><a href="http://wangliping.net/eclair-virtuebox-boot" title="Eclair已经在VirtualBox上跑起来了">Eclair已经在VirtualBox上跑起来了</a></li><li><a href="http://wangliping.net/android-x86-camrecord-and-opensource" title="Android-x86录像功能完善——兼谈开源">Android-x86录像功能完善——兼谈开源</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://wangliping.net/android-x86-1-6-stable/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>华人软件工程师移植Android系统入驻上网本</title>
		<link>http://wangliping.net/android-x86-2</link>
		<comments>http://wangliping.net/android-x86-2#comments</comments>
		<pubDate>Tue, 27 Oct 2009 03:36:38 +0000</pubDate>
		<dc:creator>转烛</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[android-x86]]></category>
		<category><![CDATA[上网本]]></category>
		<category><![CDATA[移植]]></category>

		<guid isPermaLink="false">http://swandle.free2.iisiisiis.com/?p=12</guid>
		<description><![CDATA[在几位华人软件工程师的努力下，中国的用户已经可以享受到真正在上网本上可以安装使用的Android了，这就是孙翊、黄志伟和 Corentin Chary和其他几位活跃的开发人员正在参与的Android-x86开源项目。此外，还有其他的开发人员如Kelly.Blue、Wu Hai Gang、Swandle和 Wallace.wang，他们都来自中国大陆和台湾的华人软件工程师。]]></description>
			<content:encoded><![CDATA[<p>　　如果你想体验Google手机操作系统Android的神奇魅力，但不愿意花几千元钱购买昂贵的Android手机，那Android的PC移植版本可能是不错的一个选择。</p>
<p>　　大家可能还记得之前媒体刚刚公布有人成功的在华硕上网本上安装了Android系统时的新闻，但对于普通用户来说，那还只是一个实验性的产品。要真正安装上，还有巨大的困难和工作。</p>
<p>　　不过，在几位华人软件工程师的努力下，中国的用户已经可以享受到真正在上网本上可以安装使用的Android了，这就是孙翊、黄志伟和 Corentin Chary和其他几位活跃的开发人员正在参与的Android-x86开源项目。此外，还有其他的开发人员如Kelly.Blue、Wu Hai Gang、Swandle和 Wallace.wang，他们都来自中国大陆和台湾的华人软件工程师。<span id="more-18"></span></p>
<p>　　在孙翊发来的最新版本更新说明中，明确表示：他们已经解决了众多的技术难题，包括中文拼音输入法的bug修订，蓝牙支持，无线网卡支持、SSL 的bug修订等，甚至已经可以直接安装到上网本上，从硬盘启动。有了这些问题的解决，中国的用户在PC使用Android用于工作和学习变得真正可行。这一系统现在已经可以在<a href="http://code.google.com/p/android-x86/downloads/list">http://code.google.com/p/android-x86/downloads/list</a>下载。10秒左右的启动时间，实用的上网功能，对于很多用户来说应该是个很好的试用理由。</p>
<p>　　据介绍，这个项目最初有大量工作是Google的工程师Dima Zavin进行的，而后又有很多人贡献了一些代码，比如VMware和VirtualBox上的支持是由一个叫Chen Yang(也是一位在北京的中国程序员)完成的。孙翊说，“在他们工作的基础上我们又进行了大量的完善和修改，然后才有了现在的发布。 ”</p>
<p>　　孙翊认为，这个项目的意义在于，第一，它可以作为一个起点去为PC的桌面环境提供一个完整的Android解决方案，现在的Android- x86很适合UMPC或者MID，但是对于传统的桌面应用，Android还有很多工作要做。第二，它可以为开发人员提供一个快速的低成本的开发环境，我知道很人多都是用Andorid-x86作为他们的开发工具。第三，很多人使用Android-x86最为学习Android的工具。</p>
<p>　　据了解，这个开源项目一开始就是完全国际化的。孙翊说：“国外对我们项目的关注度还是不错的。从Google Analytics 上看到的国外用户主要来自美国，意大利，法国和英国。从总体上看，我们网站的浏览者来自120多个不同的国家。我们项目的网站的流量也不断的在增加。”</p>
<p>　　当然，为这个开源项目他们也投入了大量时间。孙翊说：“我每天晚上的时间基本都花在这个项目上。”有时还会得到一些Android工程师的帮助。</p>
<p>　　此外，当问及他们如何看待Chrome OS时，孙翊表示，“我还没有见到过ChromeOS，所以还不好说。根据Google的blog，开源的ChromeOS将会在本月底公布，到时候我们也许会有一些比较。”</p>
<p>　　站点：<a href="https://sites.google.com/a/android-x86.org/web/home">https://sites.google.com/a/android-x86.org/web/home</a></p>
<h3  class="related_post_title">你可能也感兴趣的文章：</h3><ul class="related_post"><li><a href="http://wangliping.net/android-x86-donut-r2" title="Android-x86 1.6-r2 釋出">Android-x86 1.6-r2 釋出</a></li><li><a href="http://wangliping.net/android-x86-20-eclair-release" title="Android-x86-2.0-eclair出pub-test版了">Android-x86-2.0-eclair出pub-test版了</a></li><li><a href="http://wangliping.net/source-insight-see-source-code" title="Source-Insight-看大规模大工程源代码">Source-Insight-看大规模大工程源代码</a></li><li><a href="http://wangliping.net/eclair-virtuebox-boot" title="Eclair已经在VirtualBox上跑起来了">Eclair已经在VirtualBox上跑起来了</a></li><li><a href="http://wangliping.net/android-x86-camrecord-and-opensource" title="Android-x86录像功能完善——兼谈开源">Android-x86录像功能完善——兼谈开源</a></li><li><a href="http://wangliping.net/android-x86-begin-to-accept-donate" title="Android-x86项目开始接受捐款">Android-x86项目开始接受捐款</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://wangliping.net/android-x86-2/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
