﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-A Pisces Programmer</title><link>http://www.cppblog.com/boymaster/</link><description>漂亮的程序，开心地工作</description><language>zh-cn</language><lastBuildDate>Tue, 07 Apr 2026 19:53:45 GMT</lastBuildDate><pubDate>Tue, 07 Apr 2026 19:53:45 GMT</pubDate><ttl>60</ttl><item><title>Ubunut 12.10 64位编译 android 4.2.1_r1 源代码</title><link>http://www.cppblog.com/boymaster/archive/2013/01/22/197461.html</link><dc:creator>双鱼座的程序员</dc:creator><author>双鱼座的程序员</author><pubDate>Tue, 22 Jan 2013 02:20:00 GMT</pubDate><guid>http://www.cppblog.com/boymaster/archive/2013/01/22/197461.html</guid><wfw:comment>http://www.cppblog.com/boymaster/comments/197461.html</wfw:comment><comments>http://www.cppblog.com/boymaster/archive/2013/01/22/197461.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/boymaster/comments/commentRss/197461.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/boymaster/services/trackbacks/197461.html</trackback:ping><description><![CDATA[<div>google推荐的编译环境是在Ubuntu LTS（10.04），但是最新版本12.10已经出来，没必要在旧版本上做文章了<br /></div><div></div><div>对于2.3.X和更新的版本，需要64位的系统，之前的老版本2.2以下（包括2.2）可以在32位版本上编译<br /></div><div>对于虚拟机，官网上写的虚拟机配置参数：16G RAM/swap ＆ 30G+ 硬盘空间<br /></div><div></div><div>PS: 全部编译完毕后，才发现真的很耗空间</div><div>源代码下载／编译完成后，磁盘空间一共是33G</div><div><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->$&nbsp;du&nbsp;-h&nbsp;--max-depth=1&nbsp;./4.2/<br />4.2M&nbsp;&nbsp;&nbsp;&nbsp;./4.2/bootable<br />120K&nbsp;&nbsp;&nbsp;&nbsp;./4.2/libnativehelper<br />282M&nbsp;&nbsp;&nbsp;&nbsp;./4.2/packages<br />88M&nbsp;&nbsp;&nbsp;&nbsp;./4.2/development<br />1.6G&nbsp;&nbsp;&nbsp;&nbsp;./4.2/external<br />19G&nbsp;&nbsp;&nbsp;&nbsp;./4.2/<span style="color: #0000FF; ">out</span><br />53M&nbsp;&nbsp;&nbsp;&nbsp;./4.2/hardware<br />18M&nbsp;&nbsp;&nbsp;&nbsp;./4.2/bionic<br />9.1M&nbsp;&nbsp;&nbsp;&nbsp;./4.2/system<br />138M&nbsp;&nbsp;&nbsp;&nbsp;./4.2/cts<br />336K&nbsp;&nbsp;&nbsp;&nbsp;./4.2/pdk<br />116K&nbsp;&nbsp;&nbsp;&nbsp;./4.2/abi<br />5.1M&nbsp;&nbsp;&nbsp;&nbsp;./4.2/gdk<br />40M&nbsp;&nbsp;&nbsp;&nbsp;./4.2/libcore<br />1.2G&nbsp;&nbsp;&nbsp;&nbsp;./4.2/frameworks<br />4.9M&nbsp;&nbsp;&nbsp;&nbsp;./4.2/build<br />34M&nbsp;&nbsp;&nbsp;&nbsp;./4.2/tools<br />2.4G&nbsp;&nbsp;&nbsp;&nbsp;./4.2/prebuilts<br />43M&nbsp;&nbsp;&nbsp;&nbsp;./4.2/device<br />7.5G&nbsp;&nbsp;&nbsp;&nbsp;./4.2/.repo<br />55M&nbsp;&nbsp;&nbsp;&nbsp;./4.2/sdk<br />5.9M&nbsp;&nbsp;&nbsp;&nbsp;./4.2/docs<br />41M&nbsp;&nbsp;&nbsp;&nbsp;./4.2/dalvik<br />31M&nbsp;&nbsp;&nbsp;&nbsp;./4.2/ndk<br />33G&nbsp;&nbsp;&nbsp;&nbsp;./4.2/</div><br />言归正题，按照官网的文档，安装所需要的工具<br /></div><div></div><div>Python 2.5 -- 2.7, 下载地址 python.org</div><div>GNU Make 3.81 -- 3.82, 下载地址 gnu.org</div><div>JDK 6 ：2.3以上的版本; JDK 5 2.2和2.2以下的版本. 下载地址http://www.oracle.com/technetwork/java/javase/downloads/index.html</div><div>Git 1.7 以上. 下载地址 git-scm.com.<br /></div><div></div><div>前两条Ubuntu 12.10系统自带（新系统的好处），git后面会通过安装必须包来安装，所以只需要我们手动安装JDK</div><div></div><div><br /><strong>安装必要的编译工具包<br /><br /></strong></div><div>$ sudo apt-get install git-core gnupg flex bison gperf build-essential \</div><div>&nbsp; zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \</div><div>&nbsp; libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \</div><div>&nbsp; libgl1-mesa-dev g++-multilib mingw32 openjdk-6-jdk tofrodos \</div><div>&nbsp; python-markdown libxml2-utils xsltproc zlib1g-dev:i386</div><div>$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so<br /></div><div></div><div>PS: 后来发现这里可以选择不安装openjdk。android生成主要用到的是 jdk1.6<br /></div><div></div><div><strong>安装JDK 1.6.0<br /><br /></strong></div><div><strong>1.下载</strong></div><div>2013-1-22,当前最新版本是 1.6.0_38<br />http://www.oracle.com/technetwork/java/javase/downloads/jdk6u38-downloads-1877406.html</div><div>这里请选择64位的linux版本，对应的下载文件名：jdk-6u38-linux-x64.bin.<br /></div><div></div><div><strong>2.安装</strong></div><div>修改文件权限，复制到/usr/lib/jvm，安装</div><div><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->chmod&nbsp;a+x&nbsp;jdk-6u38-linux-x64.bin<br />sudo&nbsp;mv&nbsp;jdk-6u38-linux-x64.bin&nbsp;/usr/lib/jvm<br />cd&nbsp;/usr/lib/jvm<br />sudo&nbsp;./jdk-6u38-linux-x64.bin</div></div><div></div><div>安装后，在/usr/lib/jvm上会多出一个目录（jdk1.6.0_38），其实执行.bin文件感觉就是一个解压文件<br /></div><div></div><div><strong>3.环境配置<br /><br /></strong></div><div>修改/etc/profile文件</div><div><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->export&nbsp;JAVA_HOME="/usr/lib/jvm/jdk1.6.0_38"<br />export&nbsp;PATH=$PATH:$JAVA_HOME/bin<br />export&nbsp;CLASSPATH=".:$JAVA_HOME/bin"</div></div><div></div><div>建议重启或注销一下系统，让配置生效～～～<br /></div><div>此时输入: java --version查看一下版本<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->java&nbsp;version&nbsp;"1.6.0_38"<br />Java(TM)&nbsp;SE&nbsp;Runtime&nbsp;Environment&nbsp;(build&nbsp;1.6.0_38-b05)<br />Java&nbsp;HotSpot(TM)&nbsp;64-Bit&nbsp;Server&nbsp;VM&nbsp;(build&nbsp;20.13-b02,&nbsp;mixed&nbsp;mode)</div></div><div></div><div></div><div>如果系统中有时候会安装openjdk，我们还需要修改一下java的默认程序，让他使用jdk1.6.0进行android编译<br /></div><div></div><div>安装java/javac/jar，执行如下命令：</div><div><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->sudo&nbsp;update-alternatives&nbsp;--install&nbsp;/usr/bin/java&nbsp;java&nbsp;/usr/lib/jvm/jdk1.6.0_38/bin/java&nbsp;300<br />sudo&nbsp;update-alternatives&nbsp;--install&nbsp;/usr/bin/javac&nbsp;javac&nbsp;/usr/lib/jvm/jdk1.6.0_38/bin/javac&nbsp;300<br />sudo&nbsp;update-alternatives&nbsp;--install&nbsp;/usr/bin/jar&nbsp;jar&nbsp;/usr/lib/jvm/jdk1.6.0_38/bin/jar&nbsp;300</div><br />执行后这三个命令，网上的资源说可以自动切换到jdk1.6.0_38，但是我配置的时候不行，可能再通过下面这三个命令，手动指定了</div><div><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->sudo&nbsp;update-alternatives&nbsp;--config&nbsp;java<br />sudo&nbsp;update-alternatives&nbsp;--config&nbsp;javac<br />sudo&nbsp;update-alternatives&nbsp;--config&nbsp;jar</div><br /><strong>代码下载：<br /><br /></strong></div><div>下载repo，初始化下载环境，repo配置，同步</div><div><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->$&nbsp;mkdir&nbsp;~/bin&nbsp;&nbsp;<br />$&nbsp;PATH=~/bin:$PATH&nbsp;<br />$&nbsp;curl&nbsp;https:<span style="color: #008000; ">//</span><span style="color: #008000; ">dl-ssl.google.com/dl/googlesource/git-repo/repo&nbsp;&gt;&nbsp;~/bin/repo</span><span style="color: #008000; "><br /></span>$&nbsp;chmod&nbsp;a+x&nbsp;~/bin/repo&nbsp;<br />$&nbsp;mkdir&nbsp;~/android/sources<br />$&nbsp;cd&nbsp;~/android/sources<br />$&nbsp;repo&nbsp;init&nbsp;-u&nbsp;https:<span style="color: #008000; ">//</span><span style="color: #008000; ">android.googlesource.com/platform/manifest&nbsp;-b&nbsp;android-4.2.1_r1</span><span style="color: #008000; "><br /></span>$&nbsp;repo&nbsp;sync</div></div><div></div><div><br />下载是个漫长的过程，我的机子一个周末开着下载～～～good lucky～～～</div><div></div><div><br /><strong>编译代码:</strong></div><div><br />初始化脚本, make编译</div><div><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->$&nbsp;source&nbsp;build/envsetup.sh<br />$&nbsp;lunch&nbsp;full-eng<br />$&nbsp;make&nbsp;-jN</div></div><div></div><div><br />这里的三个命令参考官方的文档，官网上说明很详细。特别是第二条命令的参数,你想生成什么样的配置，就设定什么样的参数</div><div>http://source.android.com/source/building.html</div><div></div><div><br /><strong>运行emulator<br /><br /></strong></div><div>编译成功后，运行模拟器<br /><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->$&nbsp;emulator</div></div><div></div><div>模拟器就运行起来了。。。</div><div></div><img src ="http://www.cppblog.com/boymaster/aggbug/197461.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/boymaster/" target="_blank">双鱼座的程序员</a> 2013-01-22 10:20 <a href="http://www.cppblog.com/boymaster/archive/2013/01/22/197461.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Install Oracle Java JRE/JDK 6 in Ubuntu 12.10</title><link>http://www.cppblog.com/boymaster/archive/2013/01/14/197268.html</link><dc:creator>双鱼座的程序员</dc:creator><author>双鱼座的程序员</author><pubDate>Mon, 14 Jan 2013 12:34:00 GMT</pubDate><guid>http://www.cppblog.com/boymaster/archive/2013/01/14/197268.html</guid><wfw:comment>http://www.cppblog.com/boymaster/comments/197268.html</wfw:comment><comments>http://www.cppblog.com/boymaster/archive/2013/01/14/197268.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/boymaster/comments/commentRss/197268.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/boymaster/services/trackbacks/197268.html</trackback:ping><description><![CDATA[<div><p> 	<span style="font-family:Verdana,Arial,sans-serif;font-size:16px;color:#009900;">Here&#8217;s a quick tip that shows you how to install Oracle (Sun) Java 6 JRE  / JDK in Ubuntu 12.10 via PPA. If you still need Java 6 JRE/JDK&nbsp; in  Ubuntu 12.10, then continue below to learn how to install it.</span>  </p> <p> 	<span style="font-family:Verdana,Arial,sans-serif;font-size:16px;color:#009900;"> 	</span></p><p> 		The advantage of using PPA installer is that you get access to  feature updates and bug fixes automatically when you update your system. 	</p> 	<p> 		 	</p> 	<p> 		<strong><span style="font-size:medium;">Objectives:</span></strong> 	</p> 	<ul><li> 			Install Oracle ( Sun ) Java 6 JRE / JDK in Ubuntu 12.10 		</li><li> 			Enjoy! 		</li></ul> 	<p> 		To get started, press <strong><span style="font-size:small;">Ctrl &#8211; Alt &#8211; T</span></strong> on your keyboard to open the terminal. When it opens, run the commands below to add this PPA. 	</p> <pre style="background-color:#c1bfc0;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:14px;">sudo add-apt-repository ppa:webupd8team/java</pre></div><br /><div><p> 		Finally, run the commands below to update your system and install Oracle Java 6 (Sun Java) 	</p> <pre style="background-color:#c1bfc0;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:14px;">sudo apt-get update &amp;&amp; sudo apt-get install oracle-java6-installer</pre></div><br /><div> 		Enjoy! 	</div><img src ="http://www.cppblog.com/boymaster/aggbug/197268.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/boymaster/" target="_blank">双鱼座的程序员</a> 2013-01-14 20:34 <a href="http://www.cppblog.com/boymaster/archive/2013/01/14/197268.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[整理] 常用正则表达式收集&amp;勘误</title><link>http://www.cppblog.com/boymaster/archive/2006/09/04/12014.html</link><dc:creator>双鱼座的程序员</dc:creator><author>双鱼座的程序员</author><pubDate>Mon, 04 Sep 2006 07:58:00 GMT</pubDate><guid>http://www.cppblog.com/boymaster/archive/2006/09/04/12014.html</guid><wfw:comment>http://www.cppblog.com/boymaster/comments/12014.html</wfw:comment><comments>http://www.cppblog.com/boymaster/archive/2006/09/04/12014.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/boymaster/comments/commentRss/12014.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/boymaster/services/trackbacks/12014.html</trackback:ping><description><![CDATA[
		<p>匹配中文字符的正则表达式： [\u4e00-\u9fa5]<br /><font color="sienna">评注：匹配中文还真是个头疼的事，有了这个表达式就好办了</font></p>
		<p>匹配双字节字符(包括汉字在内)：[^\x00-\xff]<br /><font color="sienna">评注：可以用来计算字符串的长度</font><font color="sienna">（一个双字节字符长度计2，ASCII字符计1）</font></p>
		<p>匹配空白行的正则表达式：\n\s*\r<a id="more-25"></a><br /><font color="sienna">评注：可以用来删除空白行</font></p>
		<p>匹配HTML标记的正则表达式：&lt; (\S*?)[^&gt;]*&gt;.*?<!--\1-->|&lt; .*? /&gt;<br /><font color="sienna">评注：网上流传的版本太糟糕，上面这个也仅仅能匹配部分，对于复杂的嵌套标记依旧无能为力</font></p>
		<p>匹配首尾空白字符的正则表达式：^\s*|\s*$<br /><font color="sienna">评注：可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等)，非常有用的表达式</font></p>
		<p>匹配Email地址的正则表达式：\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*<br /><font color="sienna">评注：表单验证时很实用</font></p>
		<p>匹配网址URL的正则表达式：[a-zA-z]+://[^\s]*<br /><font color="sienna">评注：网上流传的版本功能很有限，上面这个基本可以满足需求</font></p>
		<p>匹配帐号是否合法(字母开头，允许5-16字节，允许字母数字下划线)：^[a-zA-Z][a-zA-Z0-9_]{4,15}$<br /><font color="sienna">评注：表单验证时很实用</font></p>
		<p>匹配国内电话号码：\d{3}-\d{8}|\d{4}-\d{7}<br /><font color="sienna">评注：匹配形式如 0511-4405222 或 021-87888822</font></p>
		<p>匹配腾讯QQ号：[1-9][0-9]{4,}<br /><font color="sienna">评注：腾讯QQ号从10000开始</font></p>
		<p>匹配中国邮政编码：[1-9]\d{5}(?!\d)<br /><font color="sienna">评注：中国邮政编码为6位数字</font></p>
		<p>匹配身份证：\d{15}|\d{18}<br /><font color="sienna">评注：中国的身份证为15位或18位</font></p>
		<p>匹配ip地址：\d+\.\d+\.\d+\.\d+<br /><font color="sienna">评注：提取ip地址时有用</font></p>
		<p>匹配特定数字：<br />^[1-9]\d*$　 　 //匹配正整数<br />^-[1-9]\d*$ 　 //匹配负整数<br />^-?[1-9]\d*$　　 //匹配整数<br />^[1-9]\d*|0$　 //匹配非负整数（正整数 + 0）<br />^-[1-9]\d*|0$　　 //匹配非正整数（负整数 + 0）<br />^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$　　 //匹配正浮点数<br />^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$　 //匹配负浮点数<br />^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$　 //匹配浮点数<br />^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$　　 //匹配非负浮点数（正浮点数 + 0）<br />^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$　　//匹配非正浮点数（负浮点数 + 0）<br /><font color="sienna">评注：处理大量数据时有用，具体应用时注意修正</font></p>
		<p>匹配特定字符串：<br />^[A-Za-z]+$　　//匹配由26个英文字母组成的字符串<br />^[A-Z]+$　　//匹配由26个英文字母的大写组成的字符串<br />^[a-z]+$　　//匹配由26个英文字母的小写组成的字符串<br />^[A-Za-z0-9]+$　　//匹配由数字和26个英文字母组成的字符串<br />^\w+$　　//匹配由数字、26个英文字母或者下划线组成的字符串<br /><font color="sienna">评注：最基本也是最常用的一些表达式</font></p>
<img src ="http://www.cppblog.com/boymaster/aggbug/12014.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/boymaster/" target="_blank">双鱼座的程序员</a> 2006-09-04 15:58 <a href="http://www.cppblog.com/boymaster/archive/2006/09/04/12014.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>