<?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>William Hua的Blog &#187; 开源技术</title>
	<atom:link href="http://www.williamhua.com/category/opensource/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.williamhua.com</link>
	<description>一个关于生活感悟、新奇见闻、互联网和消费电子的Blog</description>
	<lastBuildDate>Mon, 04 Jul 2011 01:29:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2</generator>
		<item>
		<title>Linux下编辑ISO文件的方法</title>
		<link>http://www.williamhua.com/2010/07/edit-iso-files-in-linux/</link>
		<comments>http://www.williamhua.com/2010/07/edit-iso-files-in-linux/#comments</comments>
		<pubDate>Thu, 15 Jul 2010 10:17:48 +0000</pubDate>
		<dc:creator>William Hua</dc:creator>
				<category><![CDATA[开源技术]]></category>
		<category><![CDATA[iso]]></category>
		<category><![CDATA[iso master]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mkisofs]]></category>
		<category><![CDATA[mount]]></category>

		<guid isPermaLink="false">http://www.williamhua.com/?p=216</guid>
		<description><![CDATA[我们知道Windows下有类似UltraISO的这样的软件可以用来编辑ISO文件，可引导ISO也没有问题。近来在Linux下玩的比较多，正好要改个ISO，于是就开始找Linux下有没有类似的软件。]]></description>
		<wfw:commentRss>http://www.williamhua.com/2010/07/edit-iso-files-in-linux/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Donut分支被合入Android主线</title>
		<link>http://www.williamhua.com/2009/07/donut-branch-has-been-merged-into-master/</link>
		<comments>http://www.williamhua.com/2009/07/donut-branch-has-been-merged-into-master/#comments</comments>
		<pubDate>Wed, 29 Jul 2009 15:03:44 +0000</pubDate>
		<dc:creator>William Hua</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[开源技术]]></category>
		<category><![CDATA[Android 2.0]]></category>
		<category><![CDATA[Android Donut]]></category>
		<category><![CDATA[Multi-Touch]]></category>

		<guid isPermaLink="false">http://www.williamhua.com/?p=192</guid>
		<description><![CDATA[这几天，Android社区比较兴奋，Android 2.0即将发布的消息在各个Android社区中传得很快。然而Adnroid Framework的开发者Romain Guy却告诉大家，<a href="http://groups.google.com/group/android-developers/browse_thread/thread/aa009932dcbe7d9d/0f2c5cd313d9cd34?pli=1">Donut并不是Android 2.0</a>，这该怎么理解呢？事实上，Donut和Cupcake，以及未来的Eclair和Flan一样，都是Android开发分支的代号，而不是发布版本号，所以就像我们不能说Cupcake就是Android 1.5一样，Donut也不等于Donut。只有当Google完成从Donut分支向主线merge，并且正式发布，我们才能知道Android的下一个版本号是多少。好吧，不管Donut合进主线以后的发布版本号是不是Android 2.0，我们还是先来看看目前有哪些改进已经被merge进去吧。]]></description>
		<wfw:commentRss>http://www.williamhua.com/2009/07/donut-branch-has-been-merged-into-master/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Palm WebOS公开部分源代码</title>
		<link>http://www.williamhua.com/2009/06/palm-webos-is-partially-opensourced/</link>
		<comments>http://www.williamhua.com/2009/06/palm-webos-is-partially-opensourced/#comments</comments>
		<pubDate>Mon, 22 Jun 2009 15:34:41 +0000</pubDate>
		<dc:creator>William Hua</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[业界动态]]></category>
		<category><![CDATA[开源技术]]></category>
		<category><![CDATA[Palm WebOS]]></category>
		<category><![CDATA[开源]]></category>

		<guid isPermaLink="false">http://www.williamhua.com/?p=174</guid>
		<description><![CDATA[上周，Palm的开源站点<a href="http://opensource.palm.com">http://opensource.palm.com</a>正式上线了，同时，Palm的全新操作系统WebOS中所用到的Linux软件包和相应的修改（以patch的形式）也都遵循GPL发布。这时候，国内很多媒体就有了类似“Palm WebOS源代码发布”这样的报道，甚至有人开始拿WebOS的开源和Android的开源来相互比较。我要说的是，WebOS开源值得肯定，但是它和和Android开源本质上是两回事。]]></description>
		<wfw:commentRss>http://www.williamhua.com/2009/06/palm-webos-is-partially-opensourced/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Android Scripting Environment动手玩</title>
		<link>http://www.williamhua.com/2009/06/try-out-android-scripting-environment/</link>
		<comments>http://www.williamhua.com/2009/06/try-out-android-scripting-environment/#comments</comments>
		<pubDate>Sat, 13 Jun 2009 14:30:58 +0000</pubDate>
		<dc:creator>William Hua</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[开源技术]]></category>
		<category><![CDATA[Android Scripting Environment]]></category>
		<category><![CDATA[ASE]]></category>
		<category><![CDATA[Sensor API]]></category>
		<category><![CDATA[SENSOR_SERVICE]]></category>

		<guid isPermaLink="false">http://www.williamhua.com/?p=167</guid>
		<description><![CDATA[在Android社群里，这几天讨论得最火热的主题不外乎是<a href="http://www.google.cn/search?hl=zh-CN&#38;q=palm+pre+iphone+3gs+magic">iPhone 3GS、Palm Pre和Magic、Dream的对比</a>，<a href="http://phandroid.com/2009/06/09/t-mobile-mytouch-3g-launching-in-june-more-androids-afterwards/">美版Magic到底何时发布</a>以及刚刚和大家见面的<a href="http://google-opensource.blogspot.com/2009/06/introducing-android-scripting.html">Android Scripting Environment</a>了。William手上没有iPhone 3GS和Palm Pre，美版的Magic虽然看起来不错（比较可靠的消息是他会有5百万像素摄像头，内存288MB，CPU是更省电、视频录制更强大的MSM7200A，似乎比欧洲已经开卖的Vodafone定制版Magic好出不少），不过手机硬件本身已经超出我的研究范围了，还是花点时间来看看动手玩一玩Android Scripting Environment吧。]]></description>
		<wfw:commentRss>http://www.williamhua.com/2009/06/try-out-android-scripting-environment/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>开始以Mercurial作为主要版本控制系统</title>
		<link>http://www.williamhua.com/2009/06/use-mercurial-as-main-scm/</link>
		<comments>http://www.williamhua.com/2009/06/use-mercurial-as-main-scm/#comments</comments>
		<pubDate>Mon, 08 Jun 2009 15:57:50 +0000</pubDate>
		<dc:creator>William Hua</dc:creator>
				<category><![CDATA[开源技术]]></category>
		<category><![CDATA[DVCS]]></category>
		<category><![CDATA[Mercurial]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[分布式版本控制]]></category>

		<guid isPermaLink="false">http://www.williamhua.com/?p=141</guid>
		<description><![CDATA[之前，我一直用SVN作为日常的版本控制工具，很多代码和文档，都放在SVN版本库中。但是在家里用的时候总是很难保证有一台server一直开机，在我的破笔记本上开server又太耗资源，所以用久了以后总觉得提交代买和查看版本历史都很不方便（还有SVN那讨厌的无处不在的.svn目录）。前阵子在Google Doce的blog上看到Google Code开始向受邀用户提供Mercurial版本控制Hosting服务以后，我也花了点时间来学习了一下分布式版本控制系统。 分布式版本控制 (DVCS) 是一种不需要中心服务器的管理文件版本的方法（它也可以使用中心服务器）。更改可以被合并到 DVCS 的任何其他用户的系统中，因此可以实现非常灵活的工作流。它的两个主要优点是：比集中的版本控制更灵活，因为它除了支持传统的（集中式）工作流，还支持其他各种工作流；它比集中式服务器快得多，因为大多数操作在客户机本地进行，而不需要网络操作。 对于分布式版本控制的理解，大家可以参考Better Explained的文章Intro to Distributed Version Control (Illustrated)。 当前比较流行的开源分布式版本控制系统有：Git、 Mercurial、 Bazaar和Darcs等，Git是Linux之父Linus Torvalds的力作，使用在Linux内核开发中，其他的几个也都是颇有来头，所以我应该选择谁来作为分布式版本控制的开始呢？因为对DVCS实在了解不多，只好从简单的入手，正好Mercurial的命令和之前比较熟悉的SVN接近，有TortoiseHg这样的图形化工具可用，而且Google的分析也显示它的性能不错。详细的分析，请看Analysis of Git and Mercurial 。更让我觉得这个选择没错的是刚刚过去的开发者大会期间，Google宣布Google Code开始正式支持Mercurial了。 Mercurial的文档工作做得不错，官方的wiki中可以找到不少的参考资料，从基本的安装、命令使用到对分布式版本控制的理解都以及和其他CMS在理念上的异同都可以找到，其中最有名的自然要属Bryan O&#8217;Sullivan的Mercurial: The Definitive Guide了（简称HGBook），本书将在今年由O&#8217;Reilly正式出版。值得注意的是，Bryan O&#8217;Sullivan在写作的过程中把完整的DocBook源文件放在了Mercurial版本库中供大家下载，我们可以拿到source以后进行修改，然后把修改的建议发给作者。i18n-zh有计划翻译Mercurial: The Definitive Guide，有兴趣的话可以去看看HGBook中文版的Mercurial仓库。 我也是分布式版本控制的初学者，下面还是给出一些不错的资源给大家，一起学习吧。 胡凯，为什么我们要放弃Subversion 风云，分布式的版本控制工具 猛禽，分布式版本控制（一） 分布式版本控制（二） Sparkle，我与Mercurial 系列等几篇文章]]></description>
		<wfw:commentRss>http://www.williamhua.com/2009/06/use-mercurial-as-main-scm/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Android完成向MIPS架构移植</title>
		<link>http://www.williamhua.com/2009/06/android-port-to-mips-completed/</link>
		<comments>http://www.williamhua.com/2009/06/android-port-to-mips-completed/#comments</comments>
		<pubDate>Thu, 04 Jun 2009 14:17:21 +0000</pubDate>
		<dc:creator>William Hua</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[业界动态]]></category>
		<category><![CDATA[开源技术]]></category>
		<category><![CDATA[MIPS]]></category>

		<guid isPermaLink="false">http://www.williamhua.com/?p=161</guid>
		<description><![CDATA[今天项目总算有点起色，Linux Kernel已经boot起来了 :)，于是大家又有了讨论Android发展的心情。Tony同学说到LinuxDevices上有报道称<a href="http://www.linuxdevices.com/news/NS2820170679.html">Android到MIPS的移植已经成功</a>，于是我也花了点时间看了一下相关的报道。

来自加州的Embedded Alley公司在当地时间6月2日公布了他们完成Android向MIPS架构移植的消息，目前是在RMI（(Raza Microelectronics） Au1250 SoC上实现的，该SoC因为低功耗、多媒体特性突出而在机顶盒和工业设备上应用广泛。Embedded Alley声称他们将把移植工作推向更多厂商的MIPS SoC，包括Sigma Designs 、Broadcom等公司面向消费电子、机顶盒产品的SoC。]]></description>
		<wfw:commentRss>http://www.williamhua.com/2009/06/android-port-to-mips-completed/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>如何构建Android 1.5系统映像</title>
		<link>http://www.williamhua.com/2009/04/how-to-build-android-15-system-image/</link>
		<comments>http://www.williamhua.com/2009/04/how-to-build-android-15-system-image/#comments</comments>
		<pubDate>Thu, 30 Apr 2009 10:05:47 +0000</pubDate>
		<dc:creator>William Hua</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[嵌入式开发]]></category>
		<category><![CDATA[开源技术]]></category>
		<category><![CDATA[build]]></category>
		<category><![CDATA[Sourcecode]]></category>
		<category><![CDATA[构建]]></category>
		<category><![CDATA[编译]]></category>

		<guid isPermaLink="false">http://www.williamhua.com/?p=144</guid>
		<description><![CDATA[上一篇文章讲到<a href="http://www.williamhua.com/2009/04/30/how-to-build-android-15-kernel-image/">如何构建Android的kernel映像</a>，我们都知道，系统要运行起来光有kernel映像是不够的，今天我就来说一说如何构建Android的系统映像。

请先参考<a href="http://www.williamhua.com/2009/04/29/git-and-repo-for-dummies/">如何取得Android源代码</a>一文，通过repo来取得当前最新的android主线代码（或者拿名为android-SDK-1.5_r1的tag也无妨）。]]></description>
		<wfw:commentRss>http://www.williamhua.com/2009/04/how-to-build-android-15-system-image/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>如何构建Android 1.5 Linux内核映像</title>
		<link>http://www.williamhua.com/2009/04/how-to-build-android-15-kernel-image/</link>
		<comments>http://www.williamhua.com/2009/04/how-to-build-android-15-kernel-image/#comments</comments>
		<pubDate>Thu, 30 Apr 2009 03:35:29 +0000</pubDate>
		<dc:creator>William Hua</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[嵌入式开发]]></category>
		<category><![CDATA[开源技术]]></category>
		<category><![CDATA[build]]></category>
		<category><![CDATA[emulator]]></category>
		<category><![CDATA[Goldfish]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[Sourcecode]]></category>
		<category><![CDATA[模拟器]]></category>
		<category><![CDATA[移植]]></category>
		<category><![CDATA[编译]]></category>

		<guid isPermaLink="false">http://www.williamhua.com/?p=142</guid>
		<description><![CDATA[和一般的Linux系统开发流程一样，Android平台开发的一个很重要的基础工作就是对其内核的编译和移植。本文的目的就在于构建出可以在Android自带的ARM QEMU模拟器上运行的内核映像，希望对于大家做内核的移植和系统构建有帮助。

请先参考我的另一篇文章<a href="http://www.williamhua.com/2009/04/29/git-and-repo-for-dummies/">如何取得Android源代码</a>，确保正确地拿到了Android <a href="http://android.git.kernel.org/?p=kernel/common.git;a=summary">kernel/common项目</a>的Goldfish分支（该分支用于构建运行在emulator上的系统内核，而主线则是用于构建运行在实际设备上的内核代码）上的内核代码。另外，需要提醒一下大家的是Android的sourcecode目前只能在Linux或者Mac OS下做交叉编译编译，Windows并没有被支持，以下将以Ubuntu 8.04为Host OS来说明。]]></description>
		<wfw:commentRss>http://www.williamhua.com/2009/04/how-to-build-android-15-kernel-image/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Git和Repo扫盲——如何取得Android源代码</title>
		<link>http://www.williamhua.com/2009/04/git-and-repo-for-dummies/</link>
		<comments>http://www.williamhua.com/2009/04/git-and-repo-for-dummies/#comments</comments>
		<pubDate>Wed, 29 Apr 2009 02:43:49 +0000</pubDate>
		<dc:creator>William Hua</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[开源技术]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[GitWeb]]></category>
		<category><![CDATA[Repo]]></category>
		<category><![CDATA[Version Control]]></category>
		<category><![CDATA[分布式版本控制]]></category>

		<guid isPermaLink="false">http://www.williamhua.com/?p=140</guid>
		<description><![CDATA[Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的分布式版本控制软件，它不同于Subversion、CVS这样的集中式版本控制系统。在集中式版本控制系统中只有一个仓库（repository），许多个工作目录（working copy），而像Git这样的分布式版本控制系统中（其他主要的分布式版本控制系统还有BitKeeper、Mercurial、GNU Arch、Bazaar、Darcs、SVK、Monotone等），每一个工作目录都包含一个完整仓库，它们可以支持离线工作，本地提交可以稍后提交到服务器上。分布式系统理论上也比集中式的单服务器系统更健壮，单服务器系统一旦服务器出现问题整个系统就不能运行了，分布式系统通常不会因为一两个节点而受到影响。 因为Android是由kernel、Dalvik、Bionic、prebuilt、build等多个Git项目组成，所以Android项目编写了一个名为Repo的Python的脚本来统一管理这些项目的仓库，使得Git的使用更加简单。 这几天William为了拿Android最新的sourcecode，学习了一下git和repo的一些基本操作，整理了一个如何取得Android代码的How-To，今天把他贴上来。 1、Git的安装 在Ubuntu 8.04上安装git只要设定了正确的更新源，然后使用apt-get就可以了，有什么依赖问题，就让它自己解决吧。其中cURL是一个利用URL语法在命令行下工作的文件传输工具，会在后面安装Repo的时候用到。 sudo apt-get install git-core curl 2、安装Repo 首先确保在当前用户的主目录下创建一个/bin目录（如果没有的话），然后把它(~/bin)加到PATH环境变量中 接下来通过cURL来下载Repo脚本，保存到~/bin/repo文件中 curl http://android.git.kernel.org/repo >~/bin/repo 别忘了给repo可执行权限 chmod a+x ~/bin/repo 3、初始化版本库 如果是想把Android当前主线上最新版本的所有的sourcecode拿下来，我们需要repo的帮助。 先建立一个目录，比如~/android，进去以后用repo init命令即可。 repo init -u git://android.git.kernel.org/platform/manifest.git 这个过程会持续很长的时间（至少可以好好睡一觉），具体要多少时间就取决于网络条件了 最后会看到 repo initialized in /android这样的提示，就说明本地的版本库已经初始化完毕，并且包含了当前最新的sourcecode。 如果想拿某个branch而不是主线上的代码，我们需要用-b参数制定branch名字，比如： repo init -u git://android.git.kernel.org/platform/manifest.git -b cupcake 另一种情况是，我们只需要某一个project的代码，比如kernel/common，就不需要repo了，直接用Git即可。 git clone git://android.git.kernel.org/kernel/common.git 这也需要不少的时间，因为它会把整个Linux [...]]]></description>
		<wfw:commentRss>http://www.williamhua.com/2009/04/git-and-repo-for-dummies/feed/</wfw:commentRss>
		<slash:comments>40</slash:comments>
		</item>
		<item>
		<title>Android SDK 1.5 Preview 发布</title>
		<link>http://www.williamhua.com/2009/04/android-cupcake-preview-released/</link>
		<comments>http://www.williamhua.com/2009/04/android-cupcake-preview-released/#comments</comments>
		<pubDate>Tue, 14 Apr 2009 06:00:15 +0000</pubDate>
		<dc:creator>William Hua</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[开源技术]]></category>
		<category><![CDATA[移动互联网]]></category>
		<category><![CDATA[1.5]]></category>
		<category><![CDATA[Bluetooth]]></category>
		<category><![CDATA[cupcake]]></category>
		<category><![CDATA[IMF]]></category>

		<guid isPermaLink="false">http://www.williamhua.com/?p=122</guid>
		<description><![CDATA[北京时间今天临晨，Android官方Blog正式对外宣布Android 1.5 SDK Preview版本发布，我期待已久的Cupcake终于露出谁面。现在我们终于可以开始基于1.5 SDK来开发Android的App了。 1.5 SDK中包含了不少更新，包括软键盘， Home页的widget， Live Folders, 语音识别，视屏录制，蓝牙(A2DP和AVCRP profiles支持，新增加了输入法框架，UI用户体验改进等等。SDK结构上的变化包括： 新增加了一个add-ons目录，我注意到Google Maps API就被移到了这个目录下。而Google的说法是，未来OEM厂商、运营商等提供的第3方的libs就可以放在这个目录，以便开发时调用 1.1的SDK也被包含在1.5SDK的发布包里面，大概Google觉得这样对开发着比较方便吧 官方Blog将在未来的数周内发布一系列的文章来讲述新API的用法，SDK的变化，以及OpenGL、异步任务、系统设定和新的Activity回调函数等主题，请大家保持关注。 需要注意的是基于1.5 SDK开发必须使用新的ADT 0.9 Eclipse插件，旧版的ADT插件与1.5 SDK并不兼容。而使用新的模拟器之前，我们需要创建一个AVD（Android Virtual Device，其实就是一个模拟器配置描述），之后就只要在Eclipse的Run Configurations里面指定一个AVD即可，当然我们无法同时启动多个使用相同AVD的模拟器进程了。另外，某些API在1.5正式发布前可能还会有变化，所以目前发布基于1.5 SDK的程序肯定是不明智的。 相关链接： Android 1.5 SDK Preview 下载 Android 1.5 SDK Hightlights]]></description>
		<wfw:commentRss>http://www.williamhua.com/2009/04/android-cupcake-preview-released/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
	</channel>
</rss>

