<?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>中文 &#187; 全国博客大奖赛</title>
	<atom:link href="http://software.intel.com/zh-cn/blogs/category/%e5%85%a8%e5%9b%bd%e5%8d%9a%e5%ae%a2%e5%a4%a7%e5%a5%96%e8%b5%9b/feed/" rel="self" type="application/rss+xml" />
	<link>http://software.intel.com/zh-cn/blogs</link>
	<description></description>
	<lastBuildDate>Mon, 28 May 2012 14:23:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>Android开发Service小研究</title>
		<link>http://software.intel.com/zh-cn/blogs/2012/05/09/androidservice/</link>
		<comments>http://software.intel.com/zh-cn/blogs/2012/05/09/androidservice/#comments</comments>
		<pubDate>Wed, 09 May 2012 06:41:42 +0000</pubDate>
		<dc:creator>houyewei</dc:creator>
				<category><![CDATA[Android 开发]]></category>
		<category><![CDATA[全国博客大奖赛]]></category>

		<guid isPermaLink="false">http://software.intel.com/zh-cn/blogs/2012/05/09/androidservice/</guid>
		<description><![CDATA[最近同学搞起了Android开发，自己也捡起来这个玩意来看看。这里先研究一下service Service是安卓系统提供的四种组件之一，功能与activity类似，只不过没有activity 的使用频率高。顾名思义Service就是运行在后台的一种服务程序一般很少与用户交互，没有可视化界面。 定义一个service非常简单，只要继承就可以了，实现其中的那些方法就可以了。service必须在AndroidManifest.xml配置文件中定义 intent-filter制定如何访问该service onBind(Intent intent)：是必须实现的一个方法返回接口 onCreate():当service第一次被创建有系统调用 onStart(Intent intent ,int startid):当通过startservice()方法启动service是该方法被调用 onDestory():当service不再使用，系统调用该方法 创建一个service代码 Java代码 public classs Myservice extends Service { public IBinder onBind(Intent intent) { return null; } public void onCreate() { super.onCreate(); } public void onStart(Intent intent ,int startId) { super.onStart(intent,startId); } public void onDestory() { super.onDestory(); } } 欢迎访问我的博客进行交流]]></description>
			<content:encoded><![CDATA[<p>最近同学搞起了Android开发，自己也捡起来这个玩意来看看。这里先研究一下service </p>
<p>      Service是安卓系统提供的四种组件之一，功能与activity类似，只不过没有activity 的使用频率高。顾名思义Service就是运行在后台的一种服务程序一般很少与用户交互，没有可视化界面。 </p>
<p>      定义一个service非常简单，只要继承就可以了，实现其中的那些方法就可以了。service必须在AndroidManifest.xml配置文件中定义 </p>
</p>
</p>
</p>
<p>intent-filter制定如何访问该service </p>
<p>onBind(Intent intent)：是必须实现的一个方法返回接口 </p>
<p>onCreate():当service第一次被创建有系统调用 </p>
<p>onStart(Intent intent ,int startid):当通过startservice()方法启动service是该方法被调用 </p>
<p>onDestory():当service不再使用，系统调用该方法 </p>
<p>创建一个service代码 </p>
<p>Java代码<br />
<code>public classs Myservice extends Service  </p>
<p>{  </p>
<p>   public IBinder onBind(Intent intent)  </p>
<p>{  </p>
<p>    return null;  </p>
<p>}  </p>
<p>  public void onCreate()  </p>
<p>    {  </p>
<p>      super.onCreate();  </p>
<p>    }  </p>
<p>  public void onStart(Intent intent ,int startId)  </p>
<p>   {  </p>
<p>     super.onStart(intent,startId);  </p>
<p>   }  </p>
<p>   public void onDestory()  </p>
<p>   {  </p>
<p>      super.onDestory();  </p>
<p>   }  </p>
<p>}<br />
</code><br />
欢迎访问<a href="http://houyewei.com">我的博客</a>进行交流</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/zh-cn/blogs/2012/05/09/androidservice/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OpenCV轻松进阶初级篇（三）如何添加Intel IPP和TBB库</title>
		<link>http://software.intel.com/zh-cn/blogs/2012/02/06/opencvintel-ipptbb/</link>
		<comments>http://software.intel.com/zh-cn/blogs/2012/02/06/opencvintel-ipptbb/#comments</comments>
		<pubDate>Mon, 06 Feb 2012 03:24:52 +0000</pubDate>
		<dc:creator>Yanqing Wang (Intel)</dc:creator>
				<category><![CDATA[Blog Challenge]]></category>
		<category><![CDATA[全国博客大奖赛]]></category>
		<category><![CDATA[其他]]></category>
		<category><![CDATA[图形和视觉计算]]></category>
		<category><![CDATA[英特尔® 软件网络 2.0]]></category>
		<category><![CDATA[软件技术学习及认证]]></category>

		<guid isPermaLink="false">http://software.intel.com/zh-cn/blogs/2012/02/06/opencvintel-ipptbb/</guid>
		<description><![CDATA[&#160; Intel IPP和TBB能够给OpenCV带来性能上的很大提升，那么如何在编译OpenCV的时候讲其打开呢？ &#160; OpenCV轻松进阶初级篇（二）编译OpenCV中已经介绍了使用CMake工具来产生各种编译器的项目文件，那么是否可以通过它来Enabled这些Features呢？ &#160; 非常的运气，在CMake的配置键值对中，我们找到了IPP和TBB的身影，如图1所示。 图1 编译步骤： 1）&#160; 使用CMake打开OpenCV的文件 2）&#160; 点击Configure按钮产生所有的键值对列表 3）&#160; 选择WITH_IPP和WITH_TBB选项，如图1红色边框所示。 4）&#160; 点击Generate按钮产生相关项目文件 &#160; &#160;]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal"><span lang="EN-US">&nbsp;</span></p>
<p class="MsoNormal"><span lang="EN-US">Intel IPP</span><span style='font-family:宋体'>和</span><span lang="EN-US">TBB</span><span style='font-family:宋体'>能够给</span><span class="SpellE"><span lang="EN-US">OpenCV</span></span><span style='font-family:宋体'>带来性能上的很大提升，那么如何在编译</span><span class="SpellE"><span lang="EN-US">OpenCV</span></span><span style='font-family:宋体'>的时候讲其打开呢？</span></p>
<p class="MsoNormal"><span lang="EN-US">&nbsp;</span></p>
<p class="MsoNormal"><span lang="EN-US"><a href="http://software.intel.com/zh-cn/blogs/2011/12/01/opencvopencv-2/" title="永久链接： OpenCV轻松进阶初级篇（二）编译OpenCV">OpenCV<span lang="EN-US" style='font-family:宋体'><span lang="EN-US">轻松进阶初级篇（二）编译</span></span>OpenCV</a></span><span style='font-family:宋体'>中已经介绍了使用</span><span class="SpellE"><span lang="EN-US">CMake</span></span><span style='font-family:宋体'>工具来产生各种编译器的项目文件，那么是否可以通过它来</span><span lang="EN-US">Enabled</span><span style='font-family:宋体'>这些</span><span lang="EN-US">Features</span><span style='font-family:宋体'>呢？</span></p>
<p class="MsoNormal"><span lang="EN-US">&nbsp;</span></p>
<p class="MsoNormal"><span style='font-family:宋体'>非常的运气，在</span><span class="SpellE"><span lang="EN-US">CMake</span></span><span style='font-family:宋体'>的配置键值对中，我们找到了</span><span lang="EN-US">IPP</span><span style='font-family:宋体'>和</span><span lang="EN-US">TBB</span><span style='font-family:宋体'>的身影，如图</span><span lang="EN-US">1</span><span style='font-family:宋体'>所示。</span></p>
<p class="MsoNormal"><span lang="EN-US"><!--[if gte vml 1]&gt;--></p>
<p><img border="0" width="554" height="416" src="http://software.intel.com/zh-cn/blogs/wordpress/wp-content/uploads/2012/02/CMake.png"></span></p>
<p class="MsoNormal" align="center" style='text-align:center'><span style='font-family:宋体'>图</span><span lang="EN-US">1</span></p>
<p class="MsoNormal"><b><span style='font-family:宋体'>编译步骤：</span><span lang="EN-US"></span></b></p>
<p class="MsoListParagraph" style='margin-left:18.0pt;text-indent:-18.0pt'><span lang="EN-US"><span>1）<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span></span><span style='font-family:宋体'>使用</span><span class="SpellE"><span lang="EN-US">CMake</span></span><span style='font-family:宋体'>打开</span><span class="SpellE"><span lang="EN-US">OpenCV</span></span><span style='font-family:宋体'>的文件</span></p>
<p class="MsoListParagraph" style='margin-left:18.0pt;text-indent:-18.0pt'><span lang="EN-US"><span>2）<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span></span><span style='font-family:宋体'>点击</span><span lang="EN-US">Configure</span><span style='font-family:宋体'>按钮产生所有的键值对列表</span></p>
<p class="MsoListParagraph" style='margin-left:18.0pt;text-indent:-18.0pt'><span lang="EN-US"><span>3）<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span></span><span style='font-family:宋体'>选择</span><span lang="EN-US">WITH_IPP</span><span style='font-family:宋体'>和</span><span lang="EN-US">WITH_TBB</span><span style='font-family:宋体'>选项，如图</span><span lang="EN-US">1</span><span style='font-family:宋体'>红色边框所示。</span></p>
<p class="MsoListParagraph" style='margin-left:18.0pt;text-indent:-18.0pt'><span lang="EN-US"><span>4）<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span></span><span style='font-family:宋体'>点击</span><span lang="EN-US">Generate</span><span style='font-family:宋体'>按钮产生相关项目文件</span></p>
<p class="MsoNormal"><span lang="EN-US">&nbsp;</span></p>
<p class="MsoNormal"><span lang="EN-US">&nbsp;</span></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/zh-cn/blogs/2012/02/06/opencvintel-ipptbb/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>简介Intel Media SDK 2012</title>
		<link>http://software.intel.com/zh-cn/blogs/2012/02/06/intel-media-sdk-2012-2/</link>
		<comments>http://software.intel.com/zh-cn/blogs/2012/02/06/intel-media-sdk-2012-2/#comments</comments>
		<pubDate>Mon, 06 Feb 2012 02:42:15 +0000</pubDate>
		<dc:creator>Yanqing Wang (Intel)</dc:creator>
				<category><![CDATA[Blog Challenge]]></category>
		<category><![CDATA[全国博客大奖赛]]></category>
		<category><![CDATA[其他]]></category>
		<category><![CDATA[图形和视觉计算]]></category>
		<category><![CDATA[英特尔® 软件网络 2.0]]></category>
		<category><![CDATA[软件技术学习及认证]]></category>

		<guid isPermaLink="false">http://software.intel.com/zh-cn/blogs/2012/02/06/intel-media-sdk-2012-2/</guid>
		<description><![CDATA[&#160; Intel Media SDK现在使用新的名字规则了！如果按照以前版本的名字规则，那么它对应是Intel Media SDK3.0 Gold版本。网友可以从http://software.intel.com/en-us/articles/vcsource-tools-media-sdk/?cid=sw:mediadev004 下载到最新版本。 图1 下载步骤： 1）&#160; 在图1中，选择红色方框中的下拉菜单“Intel Media SDK 2012”。 2）&#160; 点击“Download“按钮 &#160; 现在的Intel Media SDK 2012实现了双跨： 1）&#160; 跨硬件平台，在无Intel GPU支持的系统中，也能实现视音频的编解码工作。 2）&#160; 跨软件平台，在windows vista和windows 7上都能够运行，并且完整支持它们的32和64bits。 &#160; Intel Media SDK 2012不仅仅实现了高性能的视音频解码，它的APIs也为视音频开发者提供了便捷。更加可贵的是，它提供了免费的SDK下载包，对于视音频开发者来说，也是福音。 &#160; &#160;]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal"><span lang="EN-US">&nbsp;</span></p>
<p class="MsoNormal"><span lang="EN-US">Intel Media SDK</span><span style='font-family:宋体'>现在使用新的名字规则了！如果按照以前版本的名字规则，那么它对应是</span><span lang="EN-US">Intel Media SDK3.0 Gold</span><span style='font-family:宋体'>版本。网友可以从</span><span lang="EN-US"><a href="http://software.intel.com/en-us/articles/vcsource-tools-media-sdk/?cid=sw:mediadev004">http://software.intel.com/en-us/articles/vcsource-tools-media-sdk/?cid=sw:mediadev004</a><br />
</span><span style='font-family:宋体'>下载到最新版本。</span></p>
<p class="MsoNormal"><span lang="EN-US"><!--[if gte vml 1]&gt;--><br />
<img border="0" width="553" height="352" src="http://software.intel.com/zh-cn/blogs/wordpress/wp-content/uploads/2012/02/Intel-Media-SDK-2012.png"></span></p>
<p class="MsoNormal" align="center" style='text-align:center'><span style='font-family:宋体'>图</span><span lang="EN-US">1</span></p>
<p class="MsoNormal"><b><span style='font-family:宋体'>下载步骤：</span><span lang="EN-US"></span></b></p>
<p class="MsoListParagraph" style='margin-left:18.0pt;text-indent:-18.0pt'><span lang="EN-US"><span>1）<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span></span><span style='font-family:宋体'>在图</span><span lang="EN-US">1</span><span style='font-family:宋体'>中，选择红色方框中的下拉菜单“</span><span lang="EN-US">Intel Media SDK 2012</span><span style='font-family:宋体'>”。</span></p>
<p class="MsoListParagraph" style='margin-left:18.0pt;text-indent:-18.0pt'><span lang="EN-US"><span>2）<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span></span><span style='font-family:宋体'>点击“</span><span lang="EN-US">Download</span><span style='font-family:宋体'>“按钮</span></p>
<p class="MsoNormal"><span lang="EN-US">&nbsp;</span></p>
<p class="MsoNormal"><b><span style='font-family:宋体'>现在的</span><span lang="EN-US">Intel Media SDK 2012</span></b><b><span style='font-family:宋体'>实现了双跨：</span><span lang="EN-US"></span></b></p>
<p class="MsoListParagraph" style='margin-left:18.0pt;text-indent:-18.0pt'><span lang="EN-US"><span>1）<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span></span><span style='font-family:宋体'>跨硬件平台，在无</span><span lang="EN-US">Intel<br />
GPU</span><span style='font-family:宋体'>支持的系统中，也能实现视音频的编解码工作。</span></p>
<p class="MsoListParagraph" style='margin-left:18.0pt;text-indent:-18.0pt'><span lang="EN-US"><span>2）<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span></span><span style='font-family:宋体'>跨软件平台，在</span><span lang="EN-US">windows<br />
vista</span><span style='font-family:宋体'>和</span><span lang="EN-US">windows 7</span><span style='font-family:宋体'>上都能够运行，并且完整支持它们的</span><span lang="EN-US">32</span><span style='font-family:宋体'>和</span><span lang="EN-US">64bits</span><span style='font-family:宋体'>。</span></p>
<p class="MsoNormal"><span lang="EN-US">&nbsp;</span></p>
<p class="MsoNormal"><span lang="EN-US">Intel Media SDK 2012</span><span style='font-family:宋体'>不仅仅实现了高性能的视音频解码，它的</span><span lang="EN-US">APIs</span><span style='font-family:宋体'>也为视音频开发者提供了便捷。更加可贵的是，它提供了免费的</span><span lang="EN-US">SDK</span><span style='font-family:宋体'>下载包，对于视音频开发者来说，也是福音。</span></p>
<p class="MsoNormal"><span lang="EN-US">&nbsp;</span></p>
<p class="MsoNormal"><span lang="EN-US">&nbsp;</span></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/zh-cn/blogs/2012/02/06/intel-media-sdk-2012-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTML5之Web Storage</title>
		<link>http://software.intel.com/zh-cn/blogs/2011/12/26/html5web-storage/</link>
		<comments>http://software.intel.com/zh-cn/blogs/2011/12/26/html5web-storage/#comments</comments>
		<pubDate>Mon, 26 Dec 2011 04:00:27 +0000</pubDate>
		<dc:creator>章政</dc:creator>
				<category><![CDATA[Android 开发]]></category>
		<category><![CDATA[Blog Challenge]]></category>
		<category><![CDATA[全国博客大奖赛]]></category>
		<category><![CDATA[全国大学生软件创新大赛专栏]]></category>
		<category><![CDATA[其他]]></category>
		<category><![CDATA[博客征文专栏]]></category>
		<category><![CDATA[图形和视觉计算]]></category>
		<category><![CDATA[并行计算]]></category>
		<category><![CDATA[开放源代码]]></category>
		<category><![CDATA[服务器]]></category>
		<category><![CDATA[游戏]]></category>
		<category><![CDATA[移动技术]]></category>
		<category><![CDATA[英特尔® 软件网络 2.0]]></category>
		<category><![CDATA[英特尔信息技术峰会]]></category>
		<category><![CDATA[虚拟化技术]]></category>
		<category><![CDATA[软件开发工具]]></category>
		<category><![CDATA[软件技术学习及认证]]></category>
		<category><![CDATA[高校博客大奖赛]]></category>

		<guid isPermaLink="false">http://software.intel.com/zh-cn/blogs/2011/12/26/html5web-storage/</guid>
		<description><![CDATA[WebStorage的出现是为了弥补cookie的不足,cookie一方面是容量小，4k/8k，存几个电子邮件都不够，二来是全局的，容易被误用，盗用。 在HTML5中网络存储按照生命周期分为2种，一种是基于会话(session),这种存储周期只是当前会话，当网页[注1]被关被后，或者被转到其他网站后，存储也就被销毁； sessionStorage.varName = “生成新变量”; sessionStorage.varName = “变量操作”; delete sessionStorage.varName; //删除变量 另外一种是本地存储，当网页下次被打开的时候，你仍然可以访问上次打开该网页时存储的数据，比如本地存储的网站用户名就可以使用这种方式。 用法和基于会话的存储一样，只是前缀名改成了localStorage localStorage.varName = “生成新变量”; localStorage.varName = “变量操作”; delete localStorage.varName; //删除变量 从上面可以看出web storage其实也只是解决了轻量级的数据存储问题，如果是大量的数据查询，比如商品列表，还是得靠数据库,HTML5中有Web Database来支持这一操作，基本操作和SQL一致。 注1：现在的浏览器基本都支持多窗口了，一个窗口对应一个网页 注2：官方参考]]></description>
			<content:encoded><![CDATA[<p>WebStorage的出现是为了弥补cookie的不足,cookie一方面是容量小，4k/8k，存几个电子邮件都不够，二来是全局的，容易被误用，盗用。<br />
在HTML5中网络存储按照生命周期分为2种，一种是基于会话(session),这种存储周期只是当前会话，当网页[注1]被关被后，或者被转到其他网站后，存储也就被销毁；</p>
<pre name="code" class="js">
sessionStorage.varName = “生成新变量”;
sessionStorage.varName = “变量操作”;
delete sessionStorage.varName;  //删除变量
</pre>
<p>另外一种是本地存储，当网页下次被打开的时候，你仍然可以访问上次打开该网页时存储的数据，比如本地存储的网站用户名就可以使用这种方式。<br />
用法和基于会话的存储一样，只是前缀名改成了localStorage</p>
<pre name="code" class="js">
localStorage.varName = “生成新变量”;
localStorage.varName = “变量操作”;
delete localStorage.varName;  //删除变量
</pre>
<p>从上面可以看出web storage其实也只是解决了轻量级的数据存储问题，如果是大量的数据查询，比如商品列表，还是得靠数据库,HTML5中有Web Database来支持这一操作，基本操作和SQL一致。<br />
注1：现在的浏览器基本都支持多窗口了，一个窗口对应一个网页<br />
注2：<a href="http://dev.w3.org/html5/webstorage/">官方参考</a></p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/zh-cn/blogs/2011/12/26/html5web-storage/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>android多媒体-----AsyncPlayer</title>
		<link>http://software.intel.com/zh-cn/blogs/2011/12/16/android-asyncplayer/</link>
		<comments>http://software.intel.com/zh-cn/blogs/2011/12/16/android-asyncplayer/#comments</comments>
		<pubDate>Fri, 16 Dec 2011 03:58:46 +0000</pubDate>
		<dc:creator>blacklee</dc:creator>
				<category><![CDATA[Android 开发]]></category>
		<category><![CDATA[全国博客大奖赛]]></category>
		<category><![CDATA[高校博客大奖赛]]></category>

		<guid isPermaLink="false">http://software.intel.com/zh-cn/blogs/2011/12/16/android-asyncplayer/</guid>
		<description><![CDATA[AsyncPlayer是android实现异步音乐播放的一个类，它将要播放的媒体文件封装成内部类Command private static final class Command { int code; //PLAY = 1 ,STOP = 2 Context context; //上下文 Uri uri; //文件uri boolean looping; //是否循环 int stream; //audio stream type long requestTime; //...... } } 为了实现多个音乐播放，所有command都加在了 LinkedList中 当调用play或者stop方法的时候，会根据参数封装成一个command对象，启动一个thread,thread中会把LinkedList的第一个command弹出，根据command的code去判断是要播放还是停止，播放调用startSound（）方法，停止则释放所有资源，当LinkedList中没有command，线程便停止。]]></description>
			<content:encoded><![CDATA[<p>AsyncPlayer是android实现异步音乐播放的一个类，它将要播放的媒体文件封装成内部类Command<br />
 private static final class Command {<br />
        int code;    //PLAY = 1 ,STOP = 2<br />
        Context context;  //上下文<br />
        Uri uri;   //文件uri<br />
        boolean looping;  //是否循环<br />
        int stream;   //audio stream type<br />
        long requestTime;<br />
        //......<br />
        }<br />
    }<br />
为了实现多个音乐播放，所有command都加在了 LinkedList中<br />
当调用play或者stop方法的时候，会根据参数封装成一个command对象，启动一个thread,thread中会把LinkedList的第一个command弹出，根据command的code去判断是要播放还是停止，播放调用startSound（）方法，停止则释放所有资源，当LinkedList中没有command，线程便停止。</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/zh-cn/blogs/2011/12/16/android-asyncplayer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>8款浏览器对HTML5支持评测</title>
		<link>http://software.intel.com/zh-cn/blogs/2011/12/16/8html5/</link>
		<comments>http://software.intel.com/zh-cn/blogs/2011/12/16/8html5/#comments</comments>
		<pubDate>Fri, 16 Dec 2011 03:56:28 +0000</pubDate>
		<dc:creator>MR.G</dc:creator>
				<category><![CDATA[全国博客大奖赛]]></category>
		<category><![CDATA[高校博客大奖赛]]></category>

		<guid isPermaLink="false">http://software.intel.com/zh-cn/blogs/2011/12/16/8html5/</guid>
		<description><![CDATA[HTML的上一个版本诞生于1999年，从那以后，Web世界就发生了巨变，而现在的HTML5炒得火热朝天，势头之猛犹有再次创造Web历史变革的趋势。HTML5仍处于完善之中，然而，现在大部分浏览器已经开始具备对HTML5的支持了，当然，各大浏览器的开发还在继续，将来应该会全面支持HTML5的，现在我选择了8款浏览器（中外各四款），对其支持HTML5的程度进行了测试，测试内容来自html5test网站。感兴趣的人可以去测试一下！！ 当然每个浏览器的好坏不是仅凭这个就可以定义的，并且即使浏览器的功能再强大，界面再漂亮，也不一定就是你心目中最好的浏览器，因为我觉得浏览器的使用涉及到一个习惯问题，用习惯了自然就觉得好了，根本不会去考虑它功能是否强大。另外现实生活中我们使用浏览器，虽然其功能十分强大，十分完善，但是并不是每个人都能完全用到所有功能的。 所以，我做这个测试是没有感情色彩的，只是测试哈！！！至于哪个浏览器好，哪个浏览器差，各位看官自己点评吧！！ 我测试的8款浏览器分别是（国外）Chrome 15.0.874，IE 9.0.8112，Firefox 8.0.1，Opera 11.52 （国内）360浏览器 4.0.3.8，搜狗浏览器 3.1.0.3688，遨游浏览器v3.2.2.1000，QQ浏览器 6.8(10793) 这8款浏览器不出意外应该都是现在的最新版本！！！ 首先贴上我的硬件（QQ管家测的）： 现在来看看8款浏览器的总分（顺序就是我上边列的顺序哈，不代表排名顺序）： 1。Chrome 2。IE 9 3。Firefox 4。Opera （我看到别人测的是Opera12的分数为325，我是昨天从Opera官网下的啊，怎么会不是最新版的？？？） 5。360浏览器 6。搜狗浏览器 7。遨游浏览器 8。QQ浏览器 这么看来还是Chrome小胜啊！嗯，搜狗浏览器在对HTML5的支持上也很给力的！QQ浏览器有点没跟上节奏啊！！！！ 下面让我们详细看看这8种浏览器对HTML5的支持情况： OK！大概就是这样了，还是Chrome对HTML5支持的好一些，虽然国外的浏览器都大部分支持了HTML5，但国内的浏览器也不甘落后啊，搜狗和遨游还是很给力的！ HTML5还在发展完善，我相信在不久的将来，各个浏览器都会全面支持HTML5的。让我们静观其变吧！！]]></description>
			<content:encoded><![CDATA[<p> HTML的上一个版本诞生于1999年，从那以后，Web世界就发生了巨变，而现在的HTML5炒得火热朝天，势头之猛犹有再次创造Web历史变革的趋势。HTML5仍处于完善之中，然而，现在大部分浏览器已经开始具备对HTML5的支持了，当然，各大浏览器的开发还在继续，将来应该会全面支持HTML5的，现在我选择了8款浏览器（中外各四款），对其支持HTML5的程度进行了测试，测试内容来自<a href="http://html5test" class="broken_link">html5test</a>网站。感兴趣的人可以去测试一下！！</p>
<p>       当然每个浏览器的好坏不是仅凭这个就可以定义的，并且即使浏览器的功能再强大，界面再漂亮，也不一定就是你心目中最好的浏览器，因为我觉得浏览器的使用涉及到一个习惯问题，用习惯了自然就觉得好了，根本不会去考虑它功能是否强大。另外现实生活中我们使用浏览器，虽然其功能十分强大，十分完善，但是并不是每个人都能完全用到所有功能的。</p>
<p>       所以，我做这个测试是没有感情色彩的，只是测试哈！！！至于哪个浏览器好，哪个浏览器差，各位看官自己点评吧！！</p>
<p>       我测试的8款浏览器分别是（国外）Chrome 15.0.874，IE 9.0.8112，Firefox 8.0.1，Opera 11.52</p>
<p>                                                 （国内）360浏览器 4.0.3.8，搜狗浏览器 3.1.0.3688，遨游浏览器v3.2.2.1000，QQ浏览器 6.8(10793)</p>
<p>       这8款浏览器不出意外应该都是现在的最新版本！！！</p>
<p>       首先贴上我的硬件（QQ管家测的）：</p>
<p>        <img alt="" src="http://hi.csdn.net/attachment/201112/3/0_1322926186Z7Uh.gif" class="alignnone" width="429" height="152" /></p>
<p>        现在来看看8款浏览器的总分（顺序就是我上边列的顺序哈，不代表排名顺序）：</p>
<p>        1。Chrome</p>
<p>         <img alt="" src="http://hi.csdn.net/attachment/201112/3/0_1322926286lJL4.gif" class="alignnone" width="417" height="309" /></p>
<p>        2。IE 9</p>
<p>          <img alt="" src="http://hi.csdn.net/attachment/201112/3/0_1322926318tfQk.gif" class="alignnone" width="425" height="316" /></p>
<p>        3。Firefox</p>
<p>          <img alt="" src="http://hi.csdn.net/attachment/201112/3/0_13229263456SIH.gif" class="alignnone" width="410" height="308" /></p>
<p>         4。Opera （我看到别人测的是Opera12的分数为325，我是昨天从Opera官网下的啊，怎么会不是最新版的？？？）</p>
<p>          <img alt="" src="http://hi.csdn.net/attachment/201112/3/0_13229264724QEw.gif" class="alignnone" width="412" height="305" /></p>
<p>         5。360浏览器</p>
<p>          <img alt="" src="http://hi.csdn.net/attachment/201112/3/0_13229266572o3B.gif" class="alignnone" width="417" height="309" /></p>
<p>         6。搜狗浏览器</p>
<p>          <img alt="" src="http://hi.csdn.net/attachment/201112/3/0_1322926966UsC3.gif" class="alignnone" width="428" height="324" /></p>
<p>        7。遨游浏览器</p>
<p>         <img alt="" src="http://hi.csdn.net/attachment/201112/3/0_132292795771vv.gif" class="alignnone" width="410" height="306" /></p>
<p>        8。QQ浏览器</p>
<p>         <img alt="" src="http://hi.csdn.net/attachment/201112/3/0_1322927323GOa7.gif" class="alignnone" width="403" height="304" /></p>
<p>        这么看来还是Chrome小胜啊！嗯，搜狗浏览器在对HTML5的支持上也很给力的！QQ浏览器有点没跟上节奏啊！！！！</p>
<p>        下面让我们详细看看这8种浏览器对HTML5的支持情况：</p>
<p>        <img alt="" src="http://hi.csdn.net/attachment/201112/3/0_13229282429lcV.gif" class="alignnone" width="840" height="580" /></p>
<p>        <img alt="" src="http://hi.csdn.net/attachment/201112/3/0_1322928314fk7f.gif" class="alignnone" width="834" height="590" /></p>
<p>        <img alt="" src="http://hi.csdn.net/attachment/201112/3/0_13229283912Kv3.gif" class="alignnone" width="838" height="555" /></p>
<p>        <img alt="" src="http://hi.csdn.net/attachment/201112/3/0_1322928454hJVv.gif" class="alignnone" width="838" height="554" /></p>
<p>        OK！大概就是这样了，还是Chrome对HTML5支持的好一些，虽然国外的浏览器都大部分支持了HTML5，但国内的浏览器也不甘落后啊，搜狗和遨游还是很给力的！</p>
<p>        HTML5还在发展完善，我相信在不久的将来，各个浏览器都会全面支持HTML5的。让我们静观其变吧！！</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/zh-cn/blogs/2011/12/16/8html5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>动态设置和获取bean中的属性值</title>
		<link>http://software.intel.com/zh-cn/blogs/2011/12/16/bean/</link>
		<comments>http://software.intel.com/zh-cn/blogs/2011/12/16/bean/#comments</comments>
		<pubDate>Fri, 16 Dec 2011 03:56:12 +0000</pubDate>
		<dc:creator>jeliurry</dc:creator>
				<category><![CDATA[全国博客大奖赛]]></category>
		<category><![CDATA[bean]]></category>
		<category><![CDATA[hibernate]]></category>
		<category><![CDATA[动态设置]]></category>

		<guid isPermaLink="false">http://software.intel.com/zh-cn/blogs/2011/12/16/bean/</guid>
		<description><![CDATA[不怎么喜欢用框架。感觉很耗时间。所以决定自己写一个，相似的功能。每回在设置bean的属性时总是很麻烦。 所以像让程序动态的去获取bean的属性值。在方法中只要扔一个空的bean和sql进去，就可以返回一个生成好的bean方法。这样使用起来就很方便了。 下面是我的初步的一个探索，很大家分享一下 首先是一个Bean文件 &#160; &#160; package com.test.string; public class Bean { private int id; private String name; private String pwd; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String [...]]]></description>
			<content:encoded><![CDATA[<p>不怎么喜欢用框架。感觉很耗时间。所以决定自己写一个，相似的功能。每回在设置bean的属性时总是很麻烦。</p>
<p>所以像让程序动态的去获取bean的属性值。在方法中只要扔一个空的bean和sql进去，就可以返回一个生成好的bean方法。这样使用起来就很方便了。</p>
<p>下面是我的初步的一个探索，很大家分享一下</p>
<p>首先是一个Bean文件</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<pre>package com.test.string;

public class Bean {
	private int id;
	private String name;
	private String pwd;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPwd() {
		return pwd;
	}
	public void setPwd(String pwd) {
		this.pwd = pwd;
	}

}</pre>
<p>这个没什么。然后是主体类</p>
<p>&nbsp;</p>
<p>包含两个方法</p>
<p>&nbsp;</p>
<pre>package com.test.string;

import java.beans.BeanInfo;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.util.HashMap;
import java.util.Map;
import java.lang.reflect.Field;
import java.lang.reflect.Method;

public class Test {

	public Bean setBeanFromDB() {
		try {
			//这里模拟了数据库查询的内容
			Map&lt;String, Object&gt; userMap = new HashMap&lt;String, Object&gt;();
			userMap.put("id", 1001);
			userMap.put("name", "isoftstone");
			userMap.put("pwd", "234234");
			//这里模拟结束
			Bean bean = new Bean();
			BeanInfo beanInfo = Introspector.getBeanInfo(bean.getClass());
			PropertyDescriptor[] propertyDesc = beanInfo
					.getPropertyDescriptors();
			for (int i = 0; i &lt; propertyDesc.length; i++) {
				if (propertyDesc[i].getName().compareToIgnoreCase("class") == 0)
					continue;
				String column = propertyDesc[i].getName();
				System.out.print(propertyDesc[i].getName()+":");
				Object strValue = userMap.get(column);
				System.out.println(strValue);

				if (strValue != null) {
					Object[] oParam = new Object[] {};
					Method mr = propertyDesc[i].getWriteMethod();
					if (mr != null) {
						oParam = new Object[] { (strValue) };
						try {
							// 注意这里的参数。
							mr.invoke(bean, oParam);
						} catch (IllegalArgumentException iea) {
							System.out.println("参数错误。");
							iea.printStackTrace();
						}

					}
				}
			}

			return bean;
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

	public void readBean(Bean bean) {

		Method metd = null;
		String fdname = null;

		try {

			Field[] fds = bean.getClass().getDeclaredFields();// 获取他的字段数组
			for (Field field : fds) {// 遍历该数组
				fdname = field.getName();// 得到字段名，
				metd = bean.getClass().getMethod("get" + change(fdname), null);// 根据字段名找到对应的get方法，null表示无参数
				System.out.println(fdname + ":" + metd.invoke(bean, null));
			}
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	public static String change(String src) {
		if (src != null) {
			StringBuffer sb = new StringBuffer(src);
			sb.setCharAt(0, Character.toUpperCase(sb.charAt(0)));
			return sb.toString();
		} else {
			return null;
		}
	}

	public static void main(String[] args) {
		Test test = new Test();
		Bean bean = new Bean();
		bean.setId(100);
		bean.setName("hello");
		bean.setPwd("hello");
		test.readBean(bean);
		System.out.println("from DB-----------");
		bean = test.setBeanFromDB();

	}

}</pre>
<p>关键的地方都加了注释，大家可以跑跑看。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/zh-cn/blogs/2011/12/16/bean/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>web上的分页分析</title>
		<link>http://software.intel.com/zh-cn/blogs/2011/12/16/web-2/</link>
		<comments>http://software.intel.com/zh-cn/blogs/2011/12/16/web-2/#comments</comments>
		<pubDate>Fri, 16 Dec 2011 03:55:59 +0000</pubDate>
		<dc:creator>jeliurry</dc:creator>
				<category><![CDATA[全国博客大奖赛]]></category>
		<category><![CDATA[extjs]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[分页]]></category>

		<guid isPermaLink="false">http://software.intel.com/zh-cn/blogs/2011/12/16/web-2/</guid>
		<description><![CDATA[在web编写中的经常会遇到，数据需要分页的情况。当数据量不是很大的时候。 可以直接使用js来分页。可以很好的提高性能。简化代码。数据量大的时候。还是需要使用java的分页类还处理。 今天我来分析下。分页中导航的显示效果的实现。 显示效果： [页面总数小于等于10，全部显示，当前页特殊显示] 上一页  1   2   3   4   5   6   7   8   9   10   下一页 [页面总数大于10，部分显示，当前页特殊显示] 上一页  1   2   3   …   20   下一页       [当前页面为首页时，上一页不可用] 上一页  1   2   3   4    …   20   下一页 上一页  1   2   3   4   5    …   20   下一页 上一页  1   2   3   4   5   6   …   20   下一页 上一页  1   …    3     4    5    6    7     …  20  下一页 [...]]]></description>
			<content:encoded><![CDATA[<p>在web编写中的经常会遇到，数据需要分页的情况。当数据量不是很大的时候。</p>
<p>可以直接使用js来分页。可以很好的提高性能。简化代码。数据量大的时候。还是需要使用java的分页类还处理。</p>
<p>今天我来分析下。分页中导航的显示效果的实现。</p>
<p><strong>显示效果：</strong><br />
[页面总数小于等于10，全部显示，当前页特殊显示]<br />
上一页  1   2   <strong>3</strong>   4   5   6   7   8   9   10   下一页<br />
[页面总数大于10，部分显示，当前页特殊显示]<br />
上一页  <strong>1</strong>   2   3   …   20   下一页       [当前页面为首页时，上一页不可用]<br />
上一页  1   <strong>2</strong>   3   4    …   20   下一页<br />
上一页  1   2   <strong>3</strong>   4   5    …   20   下一页<br />
上一页  1   2   3   <strong>4</strong>   5   6   …   20   下一页<br />
上一页  1   …    3     4    <strong>5</strong>    6    7     …  20  下一页<br />
上一页  1   …   14   15  <strong>16</strong>  17  18    ...  20  下一页<br />
上一页  1   …   15   16  <strong>17</strong>  18  19  20  下一页<br />
上一页  1   …   16   17  <strong>18</strong>  19  20  下一页<br />
上一页  1   …   17   18  <strong>19</strong>  20  下一页<br />
上一页  1   …   18   19  <strong>20</strong>  下一页[当前页面为末页时，下一页不可用]</p>
<p><strong>算法提取：<br />
0</strong>.页码显示规则：<br />
当前页为首页时不显示上一页；      上一页  <strong>1</strong>   2   3   …   20   下一页<br />
当前页为尾页时不显示下一页；      上一页  1   …   17   18  19  <strong>20</strong>  下一页<br />
<strong>1</strong>.页面总数(n)&lt;=10 {<br />
显示全部页码：上一页  1   2   <strong>3</strong>   4   5   6   7   8   9   10   下一页<br />
}<br />
<strong>2</strong>.页面总数(n) &gt; 10 {<br />
<strong>2</strong>.1     当前页码 &lt;=  4 {<br />
左侧显示所有 +  当前页码  +  右侧2个页码 + ... + 尾页<br />
上一页  <strong>1</strong>   2   3   …   20   下一页<br />
上一页  1   <strong>2</strong>   3   4    …   20   下一页<br />
上一页  1   2   <strong>3</strong>   4   5    …   20   下一页<br />
上一页  1   2   3   <strong>4</strong>   5   6   …   20   下一页<br />
}<br />
<strong>2</strong>.2      当前页码 &gt; 4 且&lt;= 页面总数(n) - 3 {<br />
首页  + ... + 左侧2个页码  + 当前页码  + 右侧2个页码  + ...  +  尾页<br />
上一页  1   …    3     4    <strong>5</strong>    6    7     …  20  下一页<br />
上一页  1   …   14   15  <strong>16</strong>  17  18    ...  20  下一页<br />
}<br />
<strong>2</strong>.3      当前页码 &gt; 页面总数(n) - 3 {<br />
首页 + ... +  左侧2个页面 +  当前页码  +  右侧显示所有<br />
上一页  1   …   15   16  <strong>17</strong>  18  19  20  下一页<br />
上一页  1   …   16   17  <strong>18</strong>  19  20  下一页<br />
上一页  1   …   17   18  <strong>19</strong>  20  下一页<br />
上一页  1   …   18   19  <strong>20</strong>  下一页<br />
}<br />
}</p>
<p>&nbsp;</p>
<p>下面我来把他修改成java语言。<br />
[java]</p>
<pre>public class PageTest {

	public static String pageControl(int page,int count){
		String strHtml = "";

		if(page &gt; 1){
			strHtml += "上一页";
		}
		if(count &lt;= 10){
			for(int i = 1;i&lt;=count;i++){
				if(page == i){
					strHtml+=" ["+i+"]";
				}else{
					strHtml+=" "+i;
				}
			}
		}else{
			if(page&lt;4){
				for(int i = page-1;i&gt;0;i--){
					strHtml+=" "+i;
				}
				strHtml+=" ["+page+"]";
				strHtml+=" "+(page+1);
				strHtml+=" "+(page+2);
				strHtml+=" ...";
				strHtml+=" "+count;

			}
			if(page&gt;4 &amp;&amp; (page&lt;=count-3)){
				strHtml+=" "+1;
				strHtml+=" ...";
				strHtml+=" "+(page-2);
				strHtml+=" "+(page-1);
				strHtml+=" ["+page+"]";
				strHtml+=" "+(page+1);
				strHtml+=" "+(page+2);
				strHtml+=" ...";
				strHtml+=" "+count;

			}
			if(page&gt;count-3){
				strHtml+=" "+1;
				strHtml+=" ...";
				strHtml+=" "+(page-2);
				strHtml+=" "+(page-1);
				strHtml+=" ["+page+"]";
				for(int i = page+1;i&lt;count;i++){
					strHtml+=" "+i;
				}
			}

		}

		if(page &lt; count){
			strHtml += "下一页";
		}

		return strHtml;
	}

	public static void main(String[] args) {
		System.out.println(PageTest.pageControl(6, 20));
	}
}</pre>
<p>[/java]</p>
<p>这个是分页导航的效果。需要对应的效果。可以自行修改。</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/zh-cn/blogs/2011/12/16/web-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>android 获取手机GSM/CDMA信号信息</title>
		<link>http://software.intel.com/zh-cn/blogs/2011/12/16/android-gsmcdma/</link>
		<comments>http://software.intel.com/zh-cn/blogs/2011/12/16/android-gsmcdma/#comments</comments>
		<pubDate>Fri, 16 Dec 2011 03:55:45 +0000</pubDate>
		<dc:creator>wangxinasy</dc:creator>
				<category><![CDATA[Android 开发]]></category>
		<category><![CDATA[全国博客大奖赛]]></category>
		<category><![CDATA[全国大学生软件创新大赛专栏]]></category>
		<category><![CDATA[博客征文专栏]]></category>
		<category><![CDATA[高校博客大奖赛]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[CDMA]]></category>
		<category><![CDATA[GMS]]></category>
		<category><![CDATA[信号]]></category>

		<guid isPermaLink="false">http://software.intel.com/zh-cn/blogs/2011/12/16/android-gsmcdma/</guid>
		<description><![CDATA[在Android中我们常用的轻松获取WIFI信号列表，那如何获取CDMA或者GSM的手机信号呢？ 系统提供了TelephonyManager类，此类非常丰富，基本你所需要的手机信息都能获取到，那下面就来看看我们所需要的CDMA与GSM信号是如何获取的吧。 private TelephonyManager telephonyManager; private PhoneStateListener phoneStateListener; 首先声明两个变量 在onCreate()方法中初始化变量 InitPhoneStateListener(); telephonyManager = (TelephonyManager) this.ctx.getSystemService(Context.TELEPHONY_SERVICE); telephonyManager.listen(phoneStateListener, PhoneStateListener.LISTEN_SIGNAL_STRENGTHS); telephonyManager.listen(phoneStateListener,PhoneStateListener.LISTEN_CELL_LOCATION); if(telephonyManager.getCellLocation()!=null){ //获取当前基站信息 phoneStateListener.onCellLocationChanged(telephonyManager.getCellLocation()); } /** 初始化PhoneStateListener */ private void InitPhoneStateListener() { phoneStateListener = new PhoneStateListener() { @Override public void onCellLocationChanged(CellLocation location) { // TODO Auto-generated method stub if (location instanceof GsmCellLocation) {// gsm网络 phoneType = 1; GsmCell [...]]]></description>
			<content:encoded><![CDATA[<p>    在Android中我们常用的轻松获取WIFI信号列表，那如何获取CDMA或者GSM的手机信号呢？<br />
系统提供了TelephonyManager类，此类非常丰富，基本你所需要的手机信息都能获取到，那下面就来看看我们所需要的CDMA与GSM信号是如何获取的吧。</p>
<p>	private TelephonyManager telephonyManager;<br />
	private PhoneStateListener phoneStateListener;<br />
首先声明两个变量</p>
<p>在onCreate()方法中初始化变量<br />
InitPhoneStateListener();<br />
telephonyManager = (TelephonyManager) this.ctx.getSystemService(Context.TELEPHONY_SERVICE);<br />
		telephonyManager.listen(phoneStateListener, PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);<br />
		telephonyManager.listen(phoneStateListener,PhoneStateListener.LISTEN_CELL_LOCATION);<br />
		if(telephonyManager.getCellLocation()!=null){<br />
			//获取当前基站信息<br />
			phoneStateListener.onCellLocationChanged(telephonyManager.getCellLocation());<br />
		}</p>
<p>/** 初始化PhoneStateListener */<br />
	private void InitPhoneStateListener() {<br />
		phoneStateListener = new PhoneStateListener() {<br />
			@Override<br />
			public void onCellLocationChanged(CellLocation location) {<br />
				// TODO Auto-generated method stub<br />
				if (location instanceof GsmCellLocation) {// gsm网络<br />
					phoneType = 1;<br />
					GsmCell gsmCell = new GsmCell();<br />
					gsmCell.lac = ((GsmCellLocation) location).getLac();<br />
					gsmCell.cid = ((GsmCellLocation) location).getCid();<br />
					/** 获取mcc，mnc */<br />
					String mccMnc=telephonyManager.getNetworkOperator();<br />
					if(mccMnc!=null&amp;&amp;mccMnc.length()&gt;=5){<br />
						gsmCell.mcc = mccMnc.substring(0, 3);<br />
						gsmCell.mnc = mccMnc.substring(3, 5);<br />
					}<br />
					gsmCell.signal=lastSignal;<br />
					gsmCell.time = System.currentTimeMillis();<br />
					if (gsmCell.lac != -1 &amp;&amp; gsmCell.cid != -1) {<br />
						gsmCells.add(0, gsmCell);<br />
//						Collections.sort(gsmCells);<br />
//						/**最多保存近3个基站信息*/<br />
//						if (gsmCells.size() &gt;3)<br />
//							gsmCells.remove(3);<br />
					}<br />
//获取相邻基站信息<br />
					List neighboringList=telephonyManager.getNeighboringCellInfo();<br />
					for(NeighboringCellInfo ni:neighboringList){<br />
						GsmCell gb = new GsmCell();<br />
						gb.mnc=mccMnc.substring(3, 5);<br />
						gb.lac=ni.getLac();<br />
						gb.cid=ni.getCid();<br />
						gb.signal=-133+2*ni.getRssi();<br />
						gb.time=System.currentTimeMillis();<br />
						gsmCells.add(gb);<br />
					}<br />
				} else {// 其他CDMA等网络<br />
					try {<br />
						Class cdmaClass = Class.forName("android.telephony.cdma.CdmaCellLocation");<br />
						phoneType = 2;<br />
						CdmaCellLocation cdma = (CdmaCellLocation) location;<br />
						CdmaCell cdmaCell = new CdmaCell();<br />
						cdmaCell.stationId = cdma.getBaseStationId() &gt;= 0 ?<br />
								cdma.getBaseStationId(): cdmaCell.stationId;<br />
						cdmaCell.networkId = cdma.getNetworkId() &gt;= 0 ? cdma<br />
								.getNetworkId() : cdmaCell.networkId;<br />
						cdmaCell.systemId = cdma.getSystemId() &gt;= 0 ? cdma<br />
								.getSystemId() : cdmaCell.systemId;<br />
						/** 获取mcc，mnc */<br />
						String mccMnc=telephonyManager.getNetworkOperator();<br />
						if(mccMnc!=null&amp;&amp;mccMnc.length()&gt;=5){<br />
							cdmaCell.mcc = mccMnc.substring(0, 3);<br />
							cdmaCell.mnc = mccMnc.substring(3, 5);<br />
						}<br />
						cdmaCell.signal=lastSignal;<br />
						cdmaCell.time = System.currentTimeMillis();<br />
						int lat = cdma.getBaseStationLatitude();<br />
						int lon = cdma.getBaseStationLongitude();<br />
						if (lat &lt;Integer.MAX_VALUE&amp;&amp; lon &lt;Integer.MAX_VALUE) {<br />
							cdmaCell.lat = lat;<br />
							cdmaCell.lon = lon;<br />
						}<br />
						if (cdmaCell.stationId != -1&amp;&amp; cdmaCell.networkId != -1&amp;&amp; cdmaCell.systemId != -1) {<br />
							cdmaCells.add(0, cdmaCell);<br />
						}<br />
						List neighboringList=telephonyManager.getNeighboringCellInfo();<br />
						for(NeighboringCellInfo ni:neighboringList){<br />
							CdmaCell cdmaBean = new CdmaCell();<br />
							cdmaBean.systemId=cdmaCell.systemId;<br />
							cdmaBean.lac=ni.getLac();<br />
							cdmaBean.cellid=ni.getCid();<br />
							cdmaBean.signal=-113+2*ni.getRssi();<br />
							cdmaCells.add(cdmaBean);<br />
						}<br />
												} catch (ClassNotFoundException classnotfoundexception) {<br />
					}<br />
				}// end CDMA网络<br />
				super.onCellLocationChanged(location);<br />
			}// end onCellLocationChanged</p>
<p>			@Override<br />
			public void onServiceStateChanged(ServiceState serviceState) {<br />
				// TODO Auto-generated method stub<br />
				super.onServiceStateChanged(serviceState);<br />
			}<br />
			@Override<br />
			public void onSignalStrengthsChanged(SignalStrength signalStrength) {<br />
				// TODO Auto-generated method stub<br />
				int asu=signalStrength.getGsmSignalStrength();<br />
				lastSignal=-113+2*asu; //信号强度<br />
				super.onSignalStrengthsChanged(signalStrength);<br />
			}<br />
		};<br />
	}// end InitPhoneStateListener<br />
其实很简单，只要写好了监听类，一切信号都可以获取得到。<br />
这样，我们很轻松的就获取到了手机信号及周围基站的信号强度了，当然，需要的读取手机状态等的权限就在这里不说了。</p>
<p>作者：sojex<br />
Email:w.sojex@gmail.com</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/zh-cn/blogs/2011/12/16/android-gsmcdma/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android bitmap序列化</title>
		<link>http://software.intel.com/zh-cn/blogs/2011/12/16/android-bitmap/</link>
		<comments>http://software.intel.com/zh-cn/blogs/2011/12/16/android-bitmap/#comments</comments>
		<pubDate>Fri, 16 Dec 2011 03:55:10 +0000</pubDate>
		<dc:creator>tcwkid</dc:creator>
				<category><![CDATA[Android 开发]]></category>
		<category><![CDATA[全国博客大奖赛]]></category>
		<category><![CDATA[移动技术]]></category>
		<category><![CDATA[android]]></category>

		<guid isPermaLink="false">http://software.intel.com/zh-cn/blogs/2011/12/16/android-bitmap/</guid>
		<description><![CDATA[最近在开发中需要用到图片bitmap的序列化并进行传递，发现bitmap是没有序列化的，下面是自己实现的一个序列化方法，分享下。 ---------------------------------------------------------------------------------------------------------- import java.io.ByteArrayOutputStream; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Bitmap.CompressFormat; import android.os.Parcel; import android.os.Parcelable; /** *@author tcwkid *@date 2011-12-07 */ public class DetailIcon implements Parcelable{ private Bitmap draw; private static byte[] byteDraw; public Bitmap getDraw() { return draw; } public void setDraw(Bitmap draw) { this.draw = draw; } @Override public int describeContents() { return 0; [...]]]></description>
			<content:encoded><![CDATA[<p><strong>最近在开发中需要用到图片bitmap的序列化并进行传递，发现bitmap是没有序列化的，下面是自己实现的一个序列化方法，分享下。</strong><br />
----------------------------------------------------------------------------------------------------------<br />
import java.io.ByteArrayOutputStream;<br />
import android.graphics.Bitmap;<br />
import android.graphics.BitmapFactory;<br />
import android.graphics.Bitmap.CompressFormat;<br />
import android.os.Parcel;<br />
import android.os.Parcelable;</p>
<p>/**<br />
 *@author tcwkid<br />
 *@date 2011-12-07<br />
 */<br />
public class DetailIcon implements Parcelable{</p>
<p>	private Bitmap draw;<br />
	private static byte[] byteDraw;</p>
<p>	public Bitmap getDraw() {<br />
		return draw;<br />
	}</p>
<p>	public void setDraw(Bitmap draw) {<br />
		this.draw = draw;<br />
	}</p>
<p>	@Override<br />
	public int describeContents() {<br />
		return 0;<br />
	}</p>
<p>	@Override<br />
	public void writeToParcel(Parcel dest, int flags) {<br />
		byteDraw=getBytes(draw);<br />
		dest.writeByteArray(byteDraw);//其实这里写入是有顺序的，先写的先读<br />
	}</p>
<p>	public static final Parcelable.Creator CREATOR=new Creator() {</p>
<p>		@Override<br />
		public DetailIcon[] newArray(int size) {<br />
			return new DetailIcon[size];<br />
		}</p>
<p>		@Override<br />
		public DetailIcon createFromParcel(Parcel source) {<br />
			DetailIcon di=new DetailIcon();<br />
			source.readByteArray(byteDraw);<br />
			di.setDraw(getBitmap(byteDraw));<br />
			return di;<br />
		}<br />
	};</p>
<p>	private static  Bitmap getBitmap(byte[] data) {<br />
        return BitmapFactory.decodeByteArray(data, 0, data.length);<br />
    }</p>
<p>    private  byte[] getBytes(Bitmap bitmap) {<br />
        ByteArrayOutputStream baops = new ByteArrayOutputStream();<br />
        bitmap.compress(CompressFormat.PNG, 0, baops);<br />
        return baops.toByteArray();<br />
    }<br />
}</p>
<p>----------------------------------------------------------------------------------------------------------<br />
<strong>以上是通过byte[]来进行序列化的，因为bitmap是没有序列化的，需要我们去实现，可以选择继承bitmap实现序列化，这里采用byte[]方式。<br />
接下来就可以使用Intent的putExtra(String name,Parcelable value)来发送bitmap了。</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/zh-cn/blogs/2011/12/16/android-bitmap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

