<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_SkyD - 斯克迪亚（徐明璐）个人博客</title><subtitle type="text">追求创新与人性化，期望人们身边的一切都趋于完美</subtitle><id>http://feed.cnblogs.com/blog/u/40142/rss</id><updated>2012-02-01T16:55:01Z</updated><author><name>斯克迪亚</name><uri>http://www.cnblogs.com/SkyD/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/SkyD/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/40142/rss"/><entry><id>http://www.cnblogs.com/SkyD/archive/2012/02/02/2335261.html</id><title type="text">iPad最值得期待的切实改进构想</title><summary type="text">屏幕分辨率提高 它用起来就像一本杂志，它看起来也当如此。 这是在iPad2发布前就被民众广为呼唤的改进，当下种种迹象表明高清屏幕已经不远了，很可能就在iPad3上实现。 偏振光或裸眼3D显示器及双...</summary><published>2012-02-01T16:55:00Z</published><updated>2012-02-01T16:55:00Z</updated><author><name>斯克迪亚</name><uri>http://www.cnblogs.com/SkyD/</uri></author><link rel="alternate" href="http://www.cnblogs.com/SkyD/archive/2012/02/02/2335261.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/SkyD/archive/2012/02/02/2335261.html"/><content type="html">&lt;p&gt;&lt;strong&gt;屏幕分辨率提高&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201202/201202020053215807.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/SkyD/201202/201202020053228414.png" width="233" height="301"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;它用起来就像一本杂志，它看起来也当如此。&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;这是在iPad2发布前就被民众广为呼唤的改进，当下种种迹象表明高清屏幕已经不远了，很可能就在iPad3上实现。 &lt;p&gt;&lt;p&gt;&lt;strong&gt;偏振光或裸眼3D显示器及双镜头&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201202/201202020053249692.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/SkyD/201202/201202020053263794.png" width="226" height="192"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;想象一下在iPad上体验立体照片、视频、电影、杂志、教科书、游戏、地图导航、视频通话会是多么激动人心吧。&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;LG的裸眼3D手机和偏振光3D显示器已经很贴近市场了，销售成绩也不差。 &lt;p&gt;在iPad提升分辨率的前提下，提升而来的分辨率刚好足以弥补3D显示时的精度损失，所以届时实现3D显示将是非常值得考虑的并行方案。 &lt;p&gt;当下3D市场时机可说是只欠东风，苹果如果能真正引领起全民3D革命的话，必将赚得盆满钵溢。 &lt;p&gt;&lt;p&gt;&lt;strong&gt;摄像头像素提升&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201202/201202020053313516.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/SkyD/201202/201202020053338764.png" width="262" height="256"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;既然自iPad2开始配备了摄像头，就别让它沦为鸡肋，或是成为笑柄。&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;许多用户表示iPad2的摄像头几乎除了视频通话时间外就荒废不用了，而也有不少人贪恋iPad的高清体验，希望在iPad上将社交及图像后期处理等工作完整实现，因此迫切期待两枚优质的摄像头。 &lt;p&gt;&lt;p&gt;&lt;strong&gt;LED闪光灯&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201202/201202020053353389.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/SkyD/201202/201202020053363488.png" width="208" height="242"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;好马配好鞍，摄像头提升的话就不要再放弃黑夜了。&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;似乎绝大多数有摄像头的平板电脑都配备了闪光灯，而iPad2没有。 &lt;p&gt;&lt;p&gt;&lt;strong&gt;广角镜头&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201202/201202020053488713.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/SkyD/201202/201202020053532763.png" width="349" height="251"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;相较iPad2的大屏幕而言，其镜头视野真是出奇的小。&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;想用Facetime给你的小组开个会议？那得让组员拥抱在一起才能看全他们。 &lt;p&gt;我们期待能用广角镜头和网络视频连接两个不相邻的房间，让两边的人仿若生活在一起一般，如果iPad不去做这事，那也许XBox和Windows8会乐于凭借Kinect去完成。 &lt;p&gt;&lt;p&gt;&lt;strong&gt;运算性能飙升&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201202/201202020053596280.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/SkyD/201202/20120202005402132.png" width="266" height="200"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;这似乎是必行之事，相比CPU和GPU，内存更迫切需要提升，以承载专业级应用。&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;随着大量开发商涌入iOS平台，软件质量竞争愈发激烈，专业级大厂商进入iPad角逐是大势所趋，诸如图像处理、绘画、三维、影音编辑等应用目前已都有试水，但几乎都受制于内存限制无法大展拳脚。 &lt;p&gt;如果苹果不尽快解开限制，也许会很快失去既得的市场成长机遇。 &lt;p&gt;&lt;p&gt;&lt;strong&gt;蓝牙4.0或NFC&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201202/201202020054097337.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/SkyD/201202/201202020054139685.png" width="312" height="224"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;这个必须有，没有就OUT了。&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;新一代的通讯协议，理当支持起来，比较可能的情况是像iPhone4S一样仅支持蓝牙4.0。 &lt;p&gt;&lt;p&gt;&lt;strong&gt;防水涂层&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201202/201202020054211590.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/SkyD/201202/201202020054259511.png" width="352" height="226"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;泡澡时玩玩爱洗澡的小鳄鱼如何？&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;得益于外壳结构简约、一体成型特性，当下iPad的防溅射效果还凑合，但如能将iPad带入更严苛的环境，无疑是令人欢欣的。 &lt;p&gt;从展会上看来，防水涂层技术现在已经发展得不错了。 &lt;p&gt;&lt;p&gt;&lt;strong&gt;振动器&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201202/201202020054382044.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/SkyD/201202/201202020054423869.png" width="346" height="202"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;提供多一种回馈体验方式总是好事，会使游戏体验更加逼真。&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;手机和游戏机标配的功能，平板实现并无坏处，在iPad设计之初未纳入振动器的原因可能是因为平板面积大，提供均衡震感的话得使用多个振动器，使得内部设计难度增大，故而暂弃。 &lt;p&gt;&lt;p&gt;&lt;strong&gt;指纹识别器&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201202/201202020054518206.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/SkyD/201202/201202020054548155.png" width="244" height="207"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;指纹解锁、指纹登录AppStore、遗失后远程指纹锁定、指纹访问授权、指纹登录网站、指纹登录第三方应用…&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;有了指纹识别功能，商务人士会爱死iPad的，即便普通人也会为其便捷性而大声喝采。 &lt;p&gt;指纹识别器早已是高端VAIO或ThinkPad笔记本的标配，ThinkPad平板及摩托罗拉Android手机上也已配备，iPad配备上必会迎得企业市场青睐。 &lt;p&gt;&lt;p&gt;&lt;strong&gt;大猩猩玻璃加碳纤维外壳&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201202/201202020054589980.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/SkyD/201202/201202020055007736.png" width="411" height="258"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;纯爷们型刚毅组合，让贴膜和保护壳见鬼去吧。&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;i设备似乎都那么脆弱，以致使保护壳、贴膜厂家大发横财，如果苹果能使用强化的材质，用户就不用那么小心了，但显然这会重创其合作厂商利益，可苹果确也没少干过这类事嘛。 &lt;p&gt;康宁大猩猩玻璃已在Android及WindowsPhone7手机上大量采用，市场验证效果良好。 &lt;p&gt;而碳纤维很早就被索尼用在VAIO高端笔记本外壳上了，这使得索尼高端笔记本拥有出众的轻便性和抗磨损、抗变形能力，苹果碍于成本一直没舍得用，可当下iPad又迫切需要这种近乎完美的轻便而强韧的材料，不知苹果会如何抉择。            &lt;img src="http://www.cnblogs.com/SkyD/aggbug/2335261.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SkyD/archive/2012/02/02/2335261.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/SkyD/archive/2012/01/03/2310796.html</id><title type="text">RegeX 3 正则表达式实践教程之 &amp;mdash;&amp;mdash; 在Eclipse中以装饰器模式包装接口</title><summary type="text">在实现一个庞杂的接口时，往往需要付出很多体力劳动，例如这个： 以上是要实现的接口的一小部分方法，我们要实现此接口以包装其衍生类，由于仅仅是包装，只需要把所有方法都转交给被包装对象“getSource...</summary><published>2012-01-03T00:32:00Z</published><updated>2012-01-03T00:32:00Z</updated><author><name>斯克迪亚</name><uri>http://www.cnblogs.com/SkyD/</uri></author><link rel="alternate" href="http://www.cnblogs.com/SkyD/archive/2012/01/03/2310796.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/SkyD/archive/2012/01/03/2310796.html"/><content type="html">&lt;p&gt;在实现一个庞杂的接口时，往往需要付出很多体力劳动，例如这个：&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201201/20120103083121522.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/SkyD/201201/20120103083122390.png" width="659" height="853"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;以上是要实现的接口的一小部分方法，我们要实现此接口以包装其衍生类，由于仅仅是包装，只需要把所有方法都转交给被包装对象“getSource()”来执行。&lt;/p&gt; &lt;p&gt;好在有正则表达式这种东西存在，能够减轻部分工作。&lt;/p&gt; &lt;p&gt;但是，通常很难用普通正则表达式替换工具完整地完成这样的任务，我们需要移除注释部分文字、获取方法签名、转交“getSource()”执行，还要把参数完整传递过去，使用单一正则表达式几乎不可能完成该任务。&lt;/p&gt; &lt;p&gt;这时来看看&lt;a href="http://www.cnblogs.com/SkyD/archive/2012/01/02/2309769.html" target="_blank"&gt;RegeX 3&lt;/a&gt;如何解决此问题吧：&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;font color="#000000"&gt;&lt;font style="font-weight: bold"&gt;第一步 去除注释&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;输入表达式：\s*//.+&lt;/p&gt; &lt;p&gt;替换字符为空&lt;/p&gt; &lt;p&gt;执行替换&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201201/201201030831244063.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/SkyD/201201/201201030831272894.png" width="726" height="527"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;由左侧可以看到匹配到105条注释。&lt;/p&gt; &lt;p&gt;替换结果可以看到注释都被去除：&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201201/201201030831281748.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/SkyD/201201/201201030831285270.png" width="554" height="280"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;font style="font-weight: bold"&gt;第二步 匹配整个方法体&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;左侧选中OutputText节点。&lt;/p&gt; &lt;p&gt;表达式：public (\S+) (?&amp;lt;FuncName&amp;gt;\w+)\((?&amp;lt;Parameters&amp;gt;[\s\S]*?)\)\s*{\s*\n\s*(?&amp;lt;Return&amp;gt;return)?[^}]+&lt;/p&gt; &lt;p&gt;此时暂不输入替代文本&lt;/p&gt; &lt;p&gt;执行替换&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201201/201201030831319466.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/SkyD/201201/201201030831334741.png" width="664" height="483"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;font style="font-weight: bold"&gt;第三步 去除参数表中的类型声明字符&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;左侧选中${Parameters}节点&lt;/p&gt; &lt;p&gt;通过集合记录导航条查看匹配到的各项记录&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201201/20120103083134182.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/SkyD/201201/201201030831359527.png" width="615" height="297"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;表达式：[\w\&amp;lt;\&amp;gt;\[\]]+\s+(\w+)&lt;/p&gt; &lt;p&gt;替代文本：$1&lt;/p&gt; &lt;p&gt;执行替换&lt;/p&gt; &lt;p&gt;&lt;font color="#000000"&gt;左侧选中&lt;/font&gt;&lt;a href="mailto:$@{Parameters"&gt;$@{Parameters&lt;/a&gt;}节点，再通过集合记录导航条查看替换后的各项记录结果&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201201/20120103083138691.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/SkyD/201201/201201030831405410.png" width="721" height="524"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;font style="font-weight: bold"&gt;第四步 去除参数中的换行符&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;有些过长的方法参数书写了多行，去除换行符使生成代码更美观。&lt;/p&gt; &lt;p&gt;表达式：[\r\n]&lt;/p&gt; &lt;p&gt;替代文本为空&lt;/p&gt; &lt;p&gt;执行替换&lt;/p&gt; &lt;p&gt;左侧选中&lt;a href="mailto:$@@{Parameters"&gt;$@@{Parameters&lt;/a&gt;}节点，再通过集合记录导航条查看替换后的各项记录结果&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201201/201201030831436259.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/SkyD/201201/201201030831452407.png" width="714" height="519"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;font style="font-weight: bold"&gt;第五步 完成最后输出&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;左侧点选上面的OutputText&lt;/p&gt; &lt;p&gt;替代文本：&lt;/p&gt; &lt;p&gt;public $1 ${FuncName} (${Parameters}){&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ${Return} getSource().${FuncName}($@@{Parameters});&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/p&gt; &lt;p&gt;再次执行替换&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201201/20120103083148714.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/SkyD/201201/201201030831518956.png" width="759" height="539"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;左侧点选最下面的OutputText以查看最终结果：&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201201/201201030831536282.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/SkyD/201201/201201030831532072.png" width="756" height="350"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt; &lt;p&gt;这样就完成了，复制后粘贴回Eclipse吧：&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201201/201201030831554905.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/SkyD/201201/201201030831571185.png" width="683" height="909"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;font style="font-weight: bold"&gt;结语&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;借助全新的 &lt;a href="http://www.cnblogs.com/SkyD/archive/2012/01/02/2309769.html" target="_blank"&gt;RegeX 3&lt;/a&gt;，可以把复杂的匹配工作拆解为多个小工序分步执行，再通过创新的$@引用符号功能轻松实现以往需要单独写程序才能完成的工作。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/SkyD/aggbug/2310796.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SkyD/archive/2012/01/03/2310796.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/SkyD/archive/2012/01/02/2309769.html</id><title type="text">正则表达式替换器 RegeX 3 发布 （Silverlight版）</title><summary type="text">继上一版本RegeX发布以来已有三年多了，此次发布全新设计的RegeX 3供广大开发者使用。新版基于Silverlight开发，支持安装到本地运行，采用类似WindowsPhone7的Metro风格设计。新版本的主打功能有两点：支持无限层级的复杂多重匹配与替换支持在替换时以$@符号引用经过处理后的组内容这两个功能主要为了解决如下问题：冗长的表达式结构。在匹配复杂的格式时，使用的表达式不仅冗长，且晦涩如天书，一旦修改时不小心改变了某个符号后患无穷。无限级多重替换功能将极大改善这一情况，你可以将替换工作拆分成若干个步骤，分别处理，使得思路清晰，表达式易于维护。不可能的任务。正则表达式是万能的，但万这个数字并不大，有很多格式是不可能或很难用一个表达式来完成的，很多时候我们需要自己来写一个新程序予以解决，而当有了$@引用功能，很多问题迎刃而解。$@符</summary><published>2012-01-01T20:28:00Z</published><updated>2012-01-01T20:28:00Z</updated><author><name>斯克迪亚</name><uri>http://www.cnblogs.com/SkyD/</uri></author><link rel="alternate" href="http://www.cnblogs.com/SkyD/archive/2012/01/02/2309769.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/SkyD/archive/2012/01/02/2309769.html"/><content type="html">&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201201/201201020427464269.png"&gt;&lt;img style="margin: 22px 22px 0px 0px" title="RXICON128" border="0" alt="RXICON128" align="right" src="http://images.cnblogs.com/cnblogs_com/SkyD/201201/201201020427464236.png" width="128" height="128" /&gt;&lt;/a&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201201/201201020427495334.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/SkyD/201201/201201020427524132.png" width="698" height="525" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;继&lt;a href="http://www.cnblogs.com/SkyD/archive/2008/09/22/1295621.html" target="_blank"&gt;上一版本RegeX&lt;/a&gt;发布以来已有三年多了，此次发布全新设计的RegeX 3供广大开发者使用。&lt;/p&gt;&#xD;
&lt;p&gt;新版基于Silverlight开发，支持安装到本地运行，采用类似WindowsPhone7的Metro风格设计。&lt;/p&gt;&#xD;
&lt;p&gt;新版本的主打功能有两点：&lt;/p&gt;&#xD;
&lt;ul&gt;&#xD;
     &lt;li&gt;支持无限层级的复杂多重匹配与替换&lt;/li&gt;&#xD;
     &lt;li&gt;支持在替换时以$@符号引用经过处理后的组内容&lt;/li&gt;&#xD;
&lt;/ul&gt;&#xD;
&lt;p&gt;这两个功能主要为了解决如下问题：&lt;/p&gt;&#xD;
&lt;ol&gt;&#xD;
     &lt;li&gt;冗长的表达式结构。&lt;br /&gt;&#xD;
     在匹配复杂的格式时，使用的表达式不仅冗长，且晦涩如天书，一旦修改时不小心改变了某个符号后患无穷。&lt;br /&gt;&#xD;
     无限级多重替换功能将极大改善这一情况，你可以将替换工作拆分成若干个步骤，分别处理，使得思路清晰，表达式易于维护。&lt;/li&gt;&#xD;
     &lt;li&gt;不可能的任务。&lt;br /&gt;&#xD;
     正则表达式是万能的，但万这个数字并不大，有很多格式是不可能或很难用一个表达式来完成的，很多时候我们需要自己来写一个新程序予以解决，而当有了$@引用功能，很多问题迎刃而解。&lt;br /&gt;&#xD;
     $@符号允许引用目标组的处理结果，比如以前我们在替换时以$1形式引用组1的内容，现在我们可以对$1组再进行正则替换，然后以$@1形式引用其替换结果，这在处理复杂格式时极为有用。&lt;/li&gt;&#xD;
&lt;/ol&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&lt;font size="4"&gt;立即开始使用RegeX3：&lt;/font&gt;&lt;/strong&gt;&lt;a href="http://www.cnblogs.com/SkyD/articles/regex3.html" target="_blank"&gt;&lt;strong&gt;&lt;font size="4"&gt;http://www.cnblogs.com/SkyD/articles/regex3.html&lt;/font&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;/blockquote&gt;&#xD;
&lt;p&gt;提示：程序中单击右键可以安装到桌面，并脱离浏览器运行： &lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201201/201201020427536018.png"&gt;&lt;img title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/SkyD/201201/201201020427537032.png" width="347" height="193" /&gt;&lt;/a&gt; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201201/201201020427564292.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="SNAGHTML74fecf3" border="0" alt="SNAGHTML74fecf3" src="http://images.cnblogs.com/cnblogs_com/SkyD/201201/201201020427579177.png" width="486" height="222" /&gt;&lt;/a&gt; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&lt;font style="font-weight: bold"&gt;使用入门&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;首先在源文本框中输入要处理的字符，通常通过剪切板粘贴入：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201201/201201020427597027.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/SkyD/201201/201201020428007800.png" width="754" height="344" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;然后输入表达式及匹配选项：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201201/201201020428004669.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/SkyD/201201/201201020428015159.png" width="771" height="124" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;再输入替代内容及替代选项：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201201/201201020428019553.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/SkyD/201201/201201020428025584.png" width="767" height="159" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;单击执行替换按钮：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201201/201201020428023599.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/SkyD/201201/201201020428035518.png" width="159" height="58" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;此时匹配项和结果都将出现在左栏，展开以查看：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201201/201201020428031897.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/SkyD/201201/201201020428031548.png" width="223" height="146" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;此时在右侧你可以通过集合记录导航功能查看具有多个结果的节点：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201201/201201020428043924.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/SkyD/201201/201201020428053302.png" width="762" height="342" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;此时你可以继续对任意节点进行正则替换操作，以达成需求。&lt;/p&gt;&#xD;
&lt;p&gt;全部处理完毕后，点击复制最终输出结果按钮可以复制最下面的OutPutText节点文本到剪切板：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201201/201201020428057172.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/SkyD/201201/201201020428065187.png" width="185" height="56" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;通过导入导出功能可以读取和保存所有数据：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201201/201201020428066550.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/SkyD/201201/201201020428078120.png" width="160" height="60" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201201/201201020428074499.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/SkyD/201201/201201020428076418.png" width="165" height="58" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&lt;font style="font-weight: bold"&gt;特别提示&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201201/201201020428095381.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/SkyD/201201/201201020428105838.png" width="376" height="533" /&gt;&lt;/a&gt; &lt;/p&gt;&#xD;
&lt;p&gt;这里形如$0或${FuncName}或$@{Parameters}的名称即是在替换时的引用标记，上述三个形式分别代表组、命名组和经过处理的命名组，替换时可以以$形式引用子级节点内容，或以$@形式引用孙级节点内容。 &lt;/p&gt;&#xD;
&lt;p&gt;当前所选节点能够引用的后代节点都使用浅黄色表示。 &lt;/p&gt;&#xD;
&lt;p&gt;后面的[105]表示该组有105个项，可以通过滑动导航条查看每一项： &lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201201/201201020428118596.png"&gt;&lt;img title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/SkyD/201201/201201020428117691.png" width="761" height="67" /&gt;&lt;/a&gt; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&lt;font style="font-weight: bold"&gt;小技巧&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;点选任意一个&lt;font color="#c0504d"&gt;&lt;strong&gt;$开头的节点&lt;/strong&gt;&lt;/font&gt;后，按&lt;strong&gt;&lt;font color="#c0504d"&gt;Ctrl+C&lt;/font&gt;&lt;/strong&gt;可以直接复制其替换时的引用字符到剪切板： &lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201201/201201020428114593.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/SkyD/201201/201201020428122052.png" width="347" height="231" /&gt;&lt;/a&gt; &lt;/p&gt;&#xD;
&lt;p&gt;除此之外，还有个更方便的办法，就是直接在$开头的节点上点鼠标&lt;strong&gt;&lt;font color="#c0504d"&gt;右&lt;/font&gt;&lt;font color="#c0504d"&gt;键&lt;/font&gt;&lt;/strong&gt;，即可直接将其引用字符复制到剪切板： &lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201201/2012010204281234.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/SkyD/201201/20120102042813524.png" width="353" height="363" /&gt;&lt;/a&gt; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;如果引用孙级节点的处理结果还不能满足你的话，你还可以继续对其进行处理，每多一层处理，引用时就多些一个@：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201201/201201020428154263.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/SkyD/201201/201201020428169147.png" width="450" height="702" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;这样你的表达式可以像树杈一样不断延展，但始终都不脱离主干。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/SkyD/aggbug/2309769.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SkyD/archive/2012/01/02/2309769.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/SkyD/archive/2011/12/31/2309014.html</id><title type="text">Silverlight中后台代码设置TreeView选定项的方法</title><summary type="text">当TreeView在XAML中以嵌套数据模板（HierarchicalDataTemplate）方式绑定数据时，其子元素都是特定类型的对象，而非TreeViewItem，这样就没法通过设置TreeVi...</summary><published>2011-12-31T09:43:00Z</published><updated>2011-12-31T09:43:00Z</updated><author><name>斯克迪亚</name><uri>http://www.cnblogs.com/SkyD/</uri></author><link rel="alternate" href="http://www.cnblogs.com/SkyD/archive/2011/12/31/2309014.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/SkyD/archive/2011/12/31/2309014.html"/><content type="html">&lt;p&gt;当TreeView在XAML中以嵌套数据模板（HierarchicalDataTemplate）方式绑定数据时，其子元素都是特定类型的对象，而非TreeViewItem，这样就没法通过设置TreeViewItem子元素的IsSelected属性实现选定效果。&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201112/201112311742187230.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/SkyD/201112/201112311742207315.png" width="923" height="171"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;这时可以通过Silverlight Toolkit项目提供的扩展功能实现选取，项目网址：&lt;a href="http://silverlight.codeplex.com/" target="_blank"&gt;http://silverlight.codeplex.com/&lt;/a&gt;&lt;/p&gt; &lt;p&gt;下载并安装后引入System.Windows.Controls.Toolkit.dll：&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201112/201112311742223279.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/SkyD/201112/201112311742239592.png" width="286" height="272"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;此时TreeView控件就可以获得如下扩展方法支持：&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201112/201112311742315320.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/SkyD/201112/201112311742351303.png" width="1241" height="867"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;只需利用其中的SelectItem()方法，传入目标对象即可实现对其选定。&lt;/p&gt; &lt;p&gt;需注意的是，有时候此方法并不起作用，这可能是因为数据变更后UI布局尚未更新导致的，你可以在SelectItem()方法执行之前执行UpdateLayout()方法强制更新一下即可。&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201112/20111231174236921.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/SkyD/201112/201112311742363679.png" width="276" height="68"&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/SkyD/aggbug/2309014.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SkyD/archive/2011/12/31/2309014.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/SkyD/archive/2011/12/27/2303631.html</id><title type="text">Eclipse中Android项目引用其他项目时链接源码的方法</title><summary type="text">参照前一篇文章《Eclipse中Android公共库的正确建立及调用方法》，以前只要在Android库中添加了引用，就能自动在项目中引入源码： 但是更新了新版SDK及ADT插件之后，源码不会被自动引...</summary><published>2011-12-27T07:33:00Z</published><updated>2011-12-27T07:33:00Z</updated><author><name>斯克迪亚</name><uri>http://www.cnblogs.com/SkyD/</uri></author><link rel="alternate" href="http://www.cnblogs.com/SkyD/archive/2011/12/27/2303631.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/SkyD/archive/2011/12/27/2303631.html"/><content type="html">&lt;p&gt;参照前一篇文章《&lt;a href="http://www.cnblogs.com/SkyD/archive/2011/09/01/2161502.html"&gt;Eclipse中Android公共库的正确建立及调用方法&lt;/a&gt;》，以前只要在Android库中添加了引用，就能自动在项目中引入源码：&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201112/201112271532383306.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/SkyD/201112/201112271532405730.png" width="525" height="222" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;但是更新了新版SDK及ADT插件之后，源码不会被自动引用进来，在当前项目中只能以只读方式访问经编译后的源码：&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201112/201112271532438569.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/SkyD/201112/201112271532459639.png" width="281" height="538" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;那么如何手动引入源码呢？&lt;/p&gt; &lt;p&gt;你需要在项目上右键点选属性菜单，然后左栏选择&amp;#8220;Java Build Path&amp;#8221;，在右侧&amp;#8220;Source&amp;#8221;标签中点击&amp;#8220;Link Source&amp;#8230;&amp;#8221;按钮：&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201112/201112271532503755.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="SNAGHTML3c8397a" border="0" alt="SNAGHTML3c8397a" src="http://images.cnblogs.com/cnblogs_com/SkyD/201112/201112271532565222.png" width="752" height="567" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;单击&amp;#8220;Browse&amp;#8230;&amp;#8221;按钮：&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201112/201112271533006174.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="SNAGHTML3c99c42" border="0" alt="SNAGHTML3c99c42" src="http://images.cnblogs.com/cnblogs_com/SkyD/201112/20111227153306738.png" width="545" height="588" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;浏览并选取引用项目的src目录：&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201112/201112271533104166.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="SNAGHTML3ca8a58" border="0" alt="SNAGHTML3ca8a58" src="http://images.cnblogs.com/cnblogs_com/SkyD/201112/201112271533113775.png" width="354" height="394" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;确定后修改一下文件夹显示名称：&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201112/201112271533128890.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/SkyD/201112/201112271533134006.png" width="519" height="359" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;这样源码就被正确链接引用，可以随时跳转后修改了：&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201112/201112271533179942.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/SkyD/201112/201112271533199301.png" width="281" height="523" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;另需注意的是，这种方法在编译时会引发臭名昭著傻逼至极的&amp;#8220;Conversion to Dalvik format failed with error 1&amp;#8221;错误，无法通过编译，这时只需从项目中删除该链接源码目录，即可通过编译，但你在编译之后还得按上述方法添加回来以方便编码，不得不称赞Android SDK研发小组真乃绝世脑瘫组合，每次升级SDK都会带来大把大把诡异的错误给开发者。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/SkyD/aggbug/2303631.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SkyD/archive/2011/12/27/2303631.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/SkyD/archive/2011/09/01/2161502.html</id><title type="text">Eclipse中Android公共库的正确建立及调用方法</title><summary type="text">引言 之前一直头痛于没有办法在多个程序中共享资源，用作公共类库的方法也是使用的导出jar再导入的办法，现在终于初步搞明白了，可算解脱了~，分享出来。 建立公共库 首先建立公共库的Android项目，...</summary><published>2011-08-31T20:59:00Z</published><updated>2011-08-31T20:59:00Z</updated><author><name>斯克迪亚</name><uri>http://www.cnblogs.com/SkyD/</uri></author><link rel="alternate" href="http://www.cnblogs.com/SkyD/archive/2011/09/01/2161502.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/SkyD/archive/2011/09/01/2161502.html"/><content type="html">&lt;p&gt;&lt;strong&gt;&lt;font style="font-weight: bold"&gt;引言&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;之前一直头痛于没有办法在多个程序中共享资源，用作公共类库的方法也是使用的导出jar再导入的办法，现在终于初步搞明白了，可算解脱了~，分享出来。&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;font style="font-weight: bold"&gt;建立公共库&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;首先建立公共库的Android项目，名为MyCoreLib：&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201109/201109010458393585.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="SNAGHTML664342b" border="0" alt="SNAGHTML664342b" src="http://images.cnblogs.com/cnblogs_com/SkyD/201109/201109010458426914.png" width="737" height="975" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;完成后在左侧包浏览器里右键点选我们新建的这个项目，选择Properties项：&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201109/201109010458439587.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/SkyD/201109/201109010458441638.png" width="395" height="676" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;左侧选择Android分类，右侧勾选Is Library选项：&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201109/201109010458475490.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="SNAGHTML668b0c9" border="0" alt="SNAGHTML668b0c9" src="http://images.cnblogs.com/cnblogs_com/SkyD/201109/201109010458502723.png" width="769" height="871" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;完成后在包资源管理器中删除默认生成的资源，以避免以后被引用时冲突：&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201109/20110901045850837.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/SkyD/201109/201109010458513411.png" width="237" height="299" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;打开AndroidManifest.xml，删除下图中红色部分代码：&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201109/201109010458526085.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/SkyD/201109/201109010458535071.png" width="698" height="299" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;font style="font-weight: bold"&gt;添加测试用资源&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;至此初始的空库就建立完成了，现在我们来添加一个资源以供其他程序使用，我在这里仅添加了一个名为libName的字符串资源：&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201109/201109010458556632.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/SkyD/201109/201109010458563383.png" width="1054" height="695" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;font style="font-weight: bold"&gt;建立测试项目并引入公共库&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;现在新建一个名为LibTest的项目来尝试调用公共库：&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201109/201109010458589470.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/SkyD/201109/201109010458598763.png" width="695" height="845" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;还是右键点选项目，选择Properties：&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201109/201109010459019800.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/SkyD/201109/201109010459021851.png" width="395" height="676" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;还是左边选择Android分类，右边点击Add按钮选择以添加MyCoreLib类库到项目：&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201109/201109010459047099.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="SNAGHTML673f825" border="0" alt="SNAGHTML673f825" src="http://images.cnblogs.com/cnblogs_com/SkyD/201109/201109010459077919.png" width="655" height="888" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;完成后即添加到项目中来了：&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201109/201109010459079622.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/SkyD/201109/201109010459084148.png" width="273" height="222" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;此时还能看到gen目录下也已经有MyCoreLib的包名及其资源ID了：&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201109/201109010459106265.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/SkyD/201109/201109010459114968.png" width="274" height="620" /&gt;&lt;/a&gt;&lt;/p&gt;   &lt;p&gt;但此时你会发现字符串资源里莫名其妙多出两个之前已经删除的资源，这其实是因为此时已将引用的资源与程序默认包里的资源混编在一起了，你可以看到上面默认包里的资源ID和下面这里也是一模一样的。&lt;/p&gt; &lt;p&gt;换言之，你可以以使用本地资源的方式直接调用引用来的资源。&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;font style="font-weight: bold"&gt;测试调用公共库的资源&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;比如在AndroidManifest.xml里这样修改：&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201109/201109010459134643.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/SkyD/201109/201109010459142300.png" width="1014" height="695" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;在java代码中也同样是使用调用默认资源的方式直接调用即可，当然也可以显示加入公共库的包名以调用；但加入显示包名的方法在XML文件中行不通，多次尝试都提示找不到资源，也就是说在XML中只能以调用默认包资源的方式调用公共库资源。&lt;/p&gt; &lt;p&gt;编译并运行效果：&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201109/201109010459173992.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="SNAGHTML68111cd" border="0" alt="SNAGHTML68111cd" src="http://images.cnblogs.com/cnblogs_com/SkyD/201109/201109010459198684.png" width="827" height="592" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;可以看到之前我们在公共库中设置的资源内容被正确显示出来了。&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;font style="font-weight: bold"&gt;结语&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;这种调用方式不只是使资源调用成为可能，公共代码在编辑起来也比jar方式方便许多，非常实用。&lt;/p&gt; &lt;p&gt;之前网上寻找此方法许久都没获知，此时突然想起参考Scoreloop的引用方法，总算将其搞明白了。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/SkyD/aggbug/2161502.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SkyD/archive/2011/09/01/2161502.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/SkyD/archive/2011/02/01/1948785.html</id><title type="text">Android 超级水平仪 金属红色仪表风格发布</title><summary type="text">下载：http://cid-0612298d2255e149.office.live.com/self.aspx/.Public/%E8%BD%AF%E4%BB%B6/SuperBubbleLevel...</summary><published>2011-02-01T14:12:00Z</published><updated>2011-02-01T14:12:00Z</updated><author><name>斯克迪亚</name><uri>http://www.cnblogs.com/SkyD/</uri></author><link rel="alternate" href="http://www.cnblogs.com/SkyD/archive/2011/02/01/1948785.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/SkyD/archive/2011/02/01/1948785.html"/><content type="html">&lt;p&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 0px 22px 22px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="SuperBubbleLevelIconr" border="0" alt="SuperBubbleLevelIconr" align="right" src="http://images.cnblogs.com/cnblogs_com/SkyD/201102/201102012210583952.jpg" width="105" height="105" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201102/201102012210593768.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="spbs" border="0" alt="spbs" src="http://images.cnblogs.com/cnblogs_com/SkyD/201102/20110201221100279.jpg" width="200" height="140" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201102/201102012211031623.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="SBLMarketShow3" border="0" alt="SBLMarketShow3" src="http://images.cnblogs.com/cnblogs_com/SkyD/201102/201102012211074103.jpg" width="1044" height="520" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;embed src="http://player.youku.com/player.php/sid/XMjQwOTQzOTY0/v.swf" quality="high" width="480" height="400" align="center" allowScriptAccess="sameDomain" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201102/20110201221113553.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="豌豆荚截屏(72)" border="0" alt="豌豆荚截屏(72)" src="http://images.cnblogs.com/cnblogs_com/SkyD/201102/201102012211218937.png" width="500" height="820" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201102/2011020122112754.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="豌豆荚截屏(73)" border="0" alt="豌豆荚截屏(73)" src="http://images.cnblogs.com/cnblogs_com/SkyD/201102/201102012211351436.png" width="500" height="820" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201102/201102012211398343.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="豌豆荚截屏(74)" border="0" alt="豌豆荚截屏(74)" src="http://images.cnblogs.com/cnblogs_com/SkyD/201102/201102012211472691.png" width="500" height="820" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;下载：&lt;a href="http://cid-0612298d2255e149.office.live.com/self.aspx/.Public/%E8%BD%AF%E4%BB%B6/SuperBubbleLevelRed.apk" target="_blank"&gt;http://cid-0612298d2255e149.office.live.com/self.aspx/.Public/%E8%BD%AF%E4%BB%B6/SuperBubbleLevelRed.apk&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;img src="http://www.cnblogs.com/SkyD/aggbug/1948785.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SkyD/archive/2011/02/01/1948785.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/SkyD/archive/2011/01/31/1948290.html</id><title type="text">Android 新作 —— 语音购物清单</title><summary type="text">方便实用的日常工具。当你想起要买什么东西时，就可以通过它的语音输入功能来快速记录下来，这样下次去超市时只要参照这个清单，就不会有遗漏了。另外此程序还支持通过“Google购物搜索”查询已登商品信息的功...</summary><published>2011-01-31T07:20:00Z</published><updated>2011-01-31T07:20:00Z</updated><author><name>斯克迪亚</name><uri>http://www.cnblogs.com/SkyD/</uri></author><link rel="alternate" href="http://www.cnblogs.com/SkyD/archive/2011/01/31/1948290.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/SkyD/archive/2011/01/31/1948290.html"/><content type="html">&lt;p&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 0px 22px 22px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="vsliconb2" border="0" alt="vsliconb2" align="right" src="http://images.cnblogs.com/cnblogs_com/SkyD/201101/201101311519252777.jpg" width="110" height="110" /&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201101/201101311519267337.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="icsh" border="0" alt="icsh" src="http://images.cnblogs.com/cnblogs_com/SkyD/201101/201101311519272976.jpg" width="200" height="140" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;方便实用的日常工具。&lt;br /&gt;&#xD;
当你想起要买什么东西时，就可以通过它的语音输入功能来快速记录下来，这样下次去超市时只要参照这个清单，就不会有遗漏了。&lt;br /&gt;&#xD;
另外此程序还支持通过&amp;#8220;Google购物搜索&amp;#8221;查询已登商品信息的功能，便于与超市中的售价作对比。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;embed src="http://player.youku.com/player.php/sid/XMjQwNTU1NDg0/v.swf" quality="high" width="480" height="400" align="center" allowScriptAccess="sameDomain" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201101/201101311519288681.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="vslshow" border="0" alt="vslshow" src="http://images.cnblogs.com/cnblogs_com/SkyD/201101/201101311519338129.jpg" width="980" height="1620" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;下载：&lt;a title="http://goo.gl/5Wai7" href="http://goo.gl/5Wai7" target="_blank"&gt;http://goo.gl/5Wai7&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/SkyD/aggbug/1948290.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SkyD/archive/2011/01/31/1948290.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/SkyD/archive/2011/01/13/1934175.html</id><title type="text">Android 动态壁纸（Live Wallpaper）编写注意事项小记</title><summary type="text">不要使用Thread应直接使用Handler与Runnable接口对象组合运行。使用Thread会产生一些莫名其妙的问题，比如：壁纸预览时报错；壁纸设置时报错；壁纸设置后闪一下即消失变为默认静态壁纸；壁纸设置后停止运行但切换到待机状态再切回还是能运行的。当壁纸设置后消失时，在DDMS中看到产生的异常信息类似...</summary><published>2011-01-12T20:28:00Z</published><updated>2011-01-12T20:28:00Z</updated><author><name>斯克迪亚</name><uri>http://www.cnblogs.com/SkyD/</uri></author><link rel="alternate" href="http://www.cnblogs.com/SkyD/archive/2011/01/13/1934175.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/SkyD/archive/2011/01/13/1934175.html"/><content type="html">&lt;p&gt;&lt;strong&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201101/201101130427523530.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 0px 22px 22px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://images.cnblogs.com/cnblogs_com/SkyD/201101/201101130427525789.png" width="72" height="120" /&gt;&lt;/a&gt;不要使用Thread&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;应直接使用Handler与Runnable接口对象组合运行。&lt;/p&gt;&#xD;
&lt;p&gt;使用Thread会产生一些莫名其妙的问题，比如：壁纸预览时报错；壁纸设置时报错；壁纸设置后闪一下即消失变为默认静态壁纸；壁纸设置后停止运行但切换到待机状态再切回还是能运行的。&lt;/p&gt;&#xD;
&lt;p&gt;当壁纸设置后消失时，在DDMS中看到产生的异常信息类似：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;01-13 03:04:53.734: INFO/DEBUG(1856): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***&lt;br /&gt;&#xD;
01-13 03:04:53.734: INFO/DEBUG(1856): Build fingerprint: 'hkcsl_cht/htc_bravo/bravo/bravo:2.2/FRF91/236241:user/release-keys'&lt;br /&gt;&#xD;
01-13 03:04:53.734: INFO/DEBUG(1856): pid: 2830, tid: 2867&amp;nbsp; &amp;gt;&amp;gt;&amp;gt; com.skyd.mantrawheel &amp;lt;&amp;lt;&amp;lt;&lt;br /&gt;&#xD;
01-13 03:04:53.734: INFO/DEBUG(1856): signal 11 (SIGSEGV), fault addr deadbaad&lt;br /&gt;&#xD;
01-13 03:04:53.734: INFO/DEBUG(1856):&amp;nbsp; r0 00000000&amp;nbsp; r1 afd14699&amp;nbsp; r2 00000027&amp;nbsp; r3 00000074&lt;br /&gt;&#xD;
01-13 03:04:53.734: INFO/DEBUG(1856):&amp;nbsp; r4 afd42328&amp;nbsp; r5 00000000&amp;nbsp; r6 00000000&amp;nbsp; r7 0000a000&lt;br /&gt;&#xD;
01-13 03:04:53.734: INFO/DEBUG(1856):&amp;nbsp; r8 00000000&amp;nbsp; r9 48533900&amp;nbsp; 10 485338d8&amp;nbsp; fp 000001e0&lt;br /&gt;&#xD;
01-13 03:04:53.734: INFO/DEBUG(1856):&amp;nbsp; ip 00001730&amp;nbsp; sp 48533590&amp;nbsp; lr deadbaad&amp;nbsp; pc afd11cf0&amp;nbsp; cpsr 60000030&lt;br /&gt;&#xD;
01-13 03:04:53.734: INFO/DEBUG(1856):&amp;nbsp; d0&amp;nbsp; 643a64696f72646e&amp;nbsp; d1&amp;nbsp; 6472656767756265&lt;br /&gt;&#xD;
01-13 03:04:53.734: INFO/DEBUG(1856):&amp;nbsp; d2&amp;nbsp; 062b818b0627c18a&amp;nbsp; d3&amp;nbsp; 0633418d062f818c&lt;br /&gt;&#xD;
01-13 03:04:53.734: INFO/DEBUG(1856):&amp;nbsp; d4&amp;nbsp; 0000018f0000018f&amp;nbsp; d5&amp;nbsp; 0000018f0000018f&lt;br /&gt;&#xD;
01-13 03:04:53.734: INFO/DEBUG(1856):&amp;nbsp; d6&amp;nbsp; be6659913f797051&amp;nbsp; d7&amp;nbsp; 0000000043c24000&lt;br /&gt;&#xD;
01-13 03:04:53.734: INFO/DEBUG(1856):&amp;nbsp; d8&amp;nbsp; 000001e000000000&amp;nbsp; d9&amp;nbsp; 40790000000000a0&lt;br /&gt;&#xD;
01-13 03:04:53.734: INFO/DEBUG(1856):&amp;nbsp; d10 3fd34413509f79fe&amp;nbsp; d11 bfe3441350ad386e&lt;br /&gt;&#xD;
01-13 03:04:53.734: INFO/DEBUG(1856):&amp;nbsp; d12 3ddb7cdfd9d7bdbb&amp;nbsp; d13 0000000000000000&lt;br /&gt;&#xD;
01-13 03:04:53.734: INFO/DEBUG(1856):&amp;nbsp; d14 0000000000000000&amp;nbsp; d15 0000000000000000&lt;br /&gt;&#xD;
01-13 03:04:53.734: INFO/DEBUG(1856):&amp;nbsp; d16 018e41d4018e7b6a&amp;nbsp; d17 018dcea8018e083e&lt;br /&gt;&#xD;
01-13 03:04:53.734: INFO/DEBUG(1856):&amp;nbsp; d18 018ed1b2018dd842&amp;nbsp; d19 0190c492018fcb22&lt;br /&gt;&#xD;
01-13 03:04:53.734: INFO/DEBUG(1856):&amp;nbsp; d20 0000000000000000&amp;nbsp; d21 0000000000000000&lt;br /&gt;&#xD;
01-13 03:04:53.734: INFO/DEBUG(1856):&amp;nbsp; d22 0000018f0000018f&amp;nbsp; d23 0000018f0000018f&lt;br /&gt;&#xD;
01-13 03:04:53.744: INFO/DEBUG(1856):&amp;nbsp; d24 0000018f0000018f&amp;nbsp; d25 0000018f0000018f&lt;br /&gt;&#xD;
01-13 03:04:53.744: INFO/DEBUG(1856):&amp;nbsp; d26 ffff19a8ffff19a8&amp;nbsp; d27 ffff19a8ffff19a8&lt;br /&gt;&#xD;
01-13 03:04:53.744: INFO/DEBUG(1856):&amp;nbsp; d28 0003e5c00003e5c0&amp;nbsp; d29 0003e5c00003e5c0&lt;br /&gt;&#xD;
01-13 03:04:53.744: INFO/DEBUG(1856):&amp;nbsp; d30 0001000000010000&amp;nbsp; d31 0001000000010000&lt;br /&gt;&#xD;
01-13 03:04:53.744: INFO/DEBUG(1856):&amp;nbsp; scr 60000012&lt;br /&gt;&#xD;
01-13 03:04:53.814: INFO/DEBUG(1856):&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #00&amp;nbsp; pc 00011cf0&amp;nbsp; /system/lib/libc.so&lt;br /&gt;&#xD;
01-13 03:04:53.814: INFO/DEBUG(1856):&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #01&amp;nbsp; pc 0000be62&amp;nbsp; /system/lib/libc.so&lt;br /&gt;&#xD;
01-13 03:04:53.814: INFO/DEBUG(1856):&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #02&amp;nbsp; pc 0000cdc2&amp;nbsp; /system/lib/libc.so&lt;br /&gt;&#xD;
01-13 03:04:53.814: INFO/DEBUG(1856):&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #03&amp;nbsp; pc 000008d8&amp;nbsp; /system/lib/libstdc++.so&lt;br /&gt;&#xD;
01-13 03:04:53.814: INFO/DEBUG(1856):&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #04&amp;nbsp; pc 0004d3f8&amp;nbsp; /system/lib/libskia.so&lt;br /&gt;&#xD;
01-13 03:04:53.814: INFO/DEBUG(1856):&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #05&amp;nbsp; pc 0006ad50&amp;nbsp; /system/lib/libskia.so&lt;br /&gt;&#xD;
01-13 03:04:53.814: INFO/DEBUG(1856):&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #06&amp;nbsp; pc 0006d5b0&amp;nbsp; /system/lib/libskia.so&lt;br /&gt;&#xD;
01-13 03:04:53.814: INFO/DEBUG(1856): code around pc:&lt;br /&gt;&#xD;
01-13 03:04:53.814: INFO/DEBUG(1856): afd11cd0 2d00682d e029d1fb b12b68db c05cf8df &lt;br /&gt;&#xD;
01-13 03:04:53.814: INFO/DEBUG(1856): afd11ce0 f8442001 4798000c e054f8df 26002227 &lt;br /&gt;&#xD;
01-13 03:04:53.814: INFO/DEBUG(1856): afd11cf0 2000f88e eee4f7fb f7fd2106 f04fe802 &lt;br /&gt;&#xD;
01-13 03:04:53.814: INFO/DEBUG(1856): afd11d00 91035180 460aa901 96012006 f7fc9602 &lt;br /&gt;&#xD;
01-13 03:04:53.814: INFO/DEBUG(1856): afd11d10 a905eb88 20024632 eb92f7fc eed0f7fb &lt;br /&gt;&#xD;
01-13 03:04:53.814: INFO/DEBUG(1856): code around lr:&lt;br /&gt;&#xD;
01-13 03:04:53.814: INFO/DEBUG(1856): deadba8c ffffffff ffffffff ffffffff ffffffff &lt;br /&gt;&#xD;
01-13 03:04:53.814: INFO/DEBUG(1856): deadba9c ffffffff ffffffff ffffffff ffffffff &lt;br /&gt;&#xD;
01-13 03:04:53.814: INFO/DEBUG(1856): deadbaac ffffffff ffffffff ffffffff ffffffff &lt;br /&gt;&#xD;
01-13 03:04:53.814: INFO/DEBUG(1856): deadbabc ffffffff ffffffff ffffffff ffffffff &lt;br /&gt;&#xD;
01-13 03:04:53.814: INFO/DEBUG(1856): deadbacc ffffffff ffffffff ffffffff ffffffff &lt;br /&gt;&#xD;
01-13 03:04:53.814: INFO/DEBUG(1856): stack:&lt;br /&gt;&#xD;
01-13 03:04:53.814: INFO/DEBUG(1856):&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 48533550&amp;nbsp; 00000015&amp;nbsp; &lt;br /&gt;&#xD;
01-13 03:04:53.814: INFO/DEBUG(1856):&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 48533554&amp;nbsp; afd146c9&amp;nbsp; /system/lib/libc.so&lt;br /&gt;&#xD;
01-13 03:04:53.814: INFO/DEBUG(1856):&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 48533558&amp;nbsp; afd425a0&amp;nbsp; /system/lib/libc.so&lt;br /&gt;&#xD;
01-13 03:04:53.814: INFO/DEBUG(1856):&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4853355c&amp;nbsp; afd4254c&amp;nbsp; /system/lib/libc.so&lt;br /&gt;&#xD;
01-13 03:04:53.814: INFO/DEBUG(1856):&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 48533560&amp;nbsp; 00000000&amp;nbsp; &lt;br /&gt;&#xD;
01-13 03:04:53.814: INFO/DEBUG(1856):&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 48533564&amp;nbsp; afd156e3&amp;nbsp; /system/lib/libc.so&lt;br /&gt;&#xD;
01-13 03:04:53.814: INFO/DEBUG(1856):&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 48533568&amp;nbsp; afd14699&amp;nbsp; /system/lib/libc.so&lt;br /&gt;&#xD;
01-13 03:04:53.814: INFO/DEBUG(1856):&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4853356c&amp;nbsp; afd14699&amp;nbsp; /system/lib/libc.so&lt;br /&gt;&#xD;
01-13 03:04:53.814: INFO/DEBUG(1856):&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 48533570&amp;nbsp; 00000074&amp;nbsp; &lt;br /&gt;&#xD;
01-13 03:04:53.814: INFO/DEBUG(1856):&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 48533574&amp;nbsp; afd42328&amp;nbsp; /system/lib/libc.so&lt;br /&gt;&#xD;
01-13 03:04:53.814: INFO/DEBUG(1856):&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 48533578&amp;nbsp; 00000000&amp;nbsp; &lt;br /&gt;&#xD;
01-13 03:04:53.814: INFO/DEBUG(1856):&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4853357c&amp;nbsp; 485335a4&amp;nbsp; &lt;br /&gt;&#xD;
01-13 03:04:53.814: INFO/DEBUG(1856):&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 48533580&amp;nbsp; 0000a000&amp;nbsp; [heap]&lt;br /&gt;&#xD;
01-13 03:04:53.814: INFO/DEBUG(1856):&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 48533584&amp;nbsp; afd1493b&amp;nbsp; /system/lib/libc.so&lt;br /&gt;&#xD;
01-13 03:04:53.814: INFO/DEBUG(1856):&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 48533588&amp;nbsp; df002777&amp;nbsp; &lt;br /&gt;&#xD;
01-13 03:04:53.814: INFO/DEBUG(1856):&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4853358c&amp;nbsp; e3a070ad&amp;nbsp; &lt;br /&gt;&#xD;
01-13 03:04:53.814: INFO/DEBUG(1856): #00 48533590&amp;nbsp; afd438e4&amp;nbsp; /system/lib/libc.so&lt;br /&gt;&#xD;
01-13 03:04:53.814: INFO/DEBUG(1856):&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 48533594&amp;nbsp; afd1040c&amp;nbsp; /system/lib/libc.so&lt;br /&gt;&#xD;
01-13 03:04:53.814: INFO/DEBUG(1856):&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 48533598&amp;nbsp; afd42328&amp;nbsp; /system/lib/libc.so&lt;br /&gt;&#xD;
01-13 03:04:53.814: INFO/DEBUG(1856):&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4853359c&amp;nbsp; 48e40628&amp;nbsp; &lt;br /&gt;&#xD;
01-13 03:04:53.814: INFO/DEBUG(1856):&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 485335a0&amp;nbsp; 48e40628&amp;nbsp; &lt;br /&gt;&#xD;
01-13 03:04:53.814: INFO/DEBUG(1856):&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 485335a4&amp;nbsp; fffffbdf&amp;nbsp; &lt;br /&gt;&#xD;
01-13 03:04:53.814: INFO/DEBUG(1856):&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 485335a8&amp;nbsp; afd42328&amp;nbsp; /system/lib/libc.so&lt;br /&gt;&#xD;
01-13 03:04:53.814: INFO/DEBUG(1856):&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 485335ac&amp;nbsp; afd4372c&amp;nbsp; /system/lib/libc.so&lt;br /&gt;&#xD;
01-13 03:04:53.814: INFO/DEBUG(1856):&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 485335b0&amp;nbsp; 48e40628&amp;nbsp; &lt;br /&gt;&#xD;
01-13 03:04:53.814: INFO/DEBUG(1856):&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 485335b4&amp;nbsp; afd0be67&amp;nbsp; /system/lib/libc.so&lt;br /&gt;&#xD;
01-13 03:04:53.814: INFO/DEBUG(1856): #01 485335b8&amp;nbsp; 48e40660&amp;nbsp; &lt;br /&gt;&#xD;
01-13 03:04:53.814: INFO/DEBUG(1856):&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 485335bc&amp;nbsp; 00142180&amp;nbsp; [heap]&lt;br /&gt;&#xD;
01-13 03:04:53.814: INFO/DEBUG(1856):&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 485335c0&amp;nbsp; 00001404&amp;nbsp; &lt;br /&gt;&#xD;
01-13 03:04:53.814: INFO/DEBUG(1856):&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 485335c4&amp;nbsp; 485338b0&amp;nbsp; &lt;br /&gt;&#xD;
01-13 03:04:53.814: INFO/DEBUG(1856):&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 485335c8&amp;nbsp; 00000000&amp;nbsp; &lt;br /&gt;&#xD;
01-13 03:04:53.814: INFO/DEBUG(1856):&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 485335cc&amp;nbsp; 48e40628&amp;nbsp; &lt;br /&gt;&#xD;
01-13 03:04:53.814: INFO/DEBUG(1856):&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 485335d0&amp;nbsp; 48e40628&amp;nbsp; &lt;br /&gt;&#xD;
01-13 03:04:53.814: INFO/DEBUG(1856):&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 485335d4&amp;nbsp; 00000000&amp;nbsp; &lt;br /&gt;&#xD;
01-13 03:04:53.814: INFO/DEBUG(1856):&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 485335d8&amp;nbsp; 485338b0&amp;nbsp; &lt;br /&gt;&#xD;
01-13 03:04:53.814: INFO/DEBUG(1856):&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 485335dc&amp;nbsp; afd0cdc5&amp;nbsp; /system/lib/libc.so&lt;br /&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;目前经过多次尝试仍未探知具体出错的地方。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;可以指定一个Activity为动态壁纸设置界面&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;需在壁纸设置文件中这样指定：&lt;/p&gt;&#xD;
&lt;p&gt;&amp;lt;?xml&amp;nbsp; version="1.0"&amp;nbsp; encoding="utf-8"?&amp;gt;&lt;br /&gt;&#xD;
&amp;lt;wallpaper&amp;nbsp; xmlns:android="&lt;a href="http://schemas.android.com/apk/res/android%22"&gt;http://schemas.android.com/apk/res/android"&lt;/a&gt;&lt;br /&gt;&#xD;
android:author="@+string/author"&lt;br /&gt;&#xD;
android:description="@string/description"&lt;br /&gt;&#xD;
android:thumbnail="@drawable/mani1"&lt;br /&gt;&#xD;
&amp;nbsp;&lt;strong&gt;android:settingsActivity="com.skyd.mantrawheel.Main"&lt;/strong&gt;&lt;br /&gt;&#xD;
/&amp;gt;&lt;/p&gt;&#xD;
&lt;p&gt;并且该Activity必须在AndroidManifest.xml中这样注册：&lt;/p&gt;&#xD;
&lt;p&gt;&amp;lt;activity android:name=".Main" android:label="@string/app_name" &lt;strong&gt;android:exported="true"&lt;/strong&gt;&amp;gt;&amp;lt;/activity&amp;gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;最好指定uses-feature标记&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;在AndroidManifest.xml中指定如下代码会使程序在市场中对不支持动态壁纸功能的用户隐藏： &lt;/p&gt;&#xD;
&lt;p&gt;&amp;lt;uses-feature android:name="android.software.live_wallpaper" /&amp;gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;必须在onCreate(SurfaceHolder surfaceHolder)中指定setTouchEventsEnabled(true);&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;如果你放在onSurfaceCreated(SurfaceHolder holder)中指定，你会很郁闷地发现动态壁纸在2.1版本的系统中可以运行，2.2版本却报错。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201101/201101130427578269.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/SkyD/201101/201101130428064177.png" width="890" height="677" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;参考资料&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a title="http://www.androiddevblog.net/android/creating-android-live-wallpaper#" href="http://www.androiddevblog.net/android/creating-android-live-wallpaper#" target="_blank"&gt;http://www.androiddevblog.net/android/creating-android-live-wallpaper#&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a title="http://code.google.com/p/krvarma-android-samples/source/browse/trunk/patternwallpaper/?r=80" href="http://code.google.com/p/krvarma-android-samples/source/browse/trunk/patternwallpaper/?r=80" target="_blank"&gt;http://code.google.com/p/krvarma-android-samples/source/browse/trunk/patternwallpaper/?r=80&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/SkyD/aggbug/1934175.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SkyD/archive/2011/01/13/1934175.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/SkyD/archive/2011/01/10/1931847.html</id><title type="text">2011年的MVP礼包</title><summary type="text">比上回的小，原因见下文。 貌似因为是连任的，所以礼包里只有这么个玩意，没有奖杯，囧。  放在以前的奖杯上。</summary><published>2011-01-10T04:40:00Z</published><updated>2011-01-10T04:40:00Z</updated><author><name>斯克迪亚</name><uri>http://www.cnblogs.com/SkyD/</uri></author><link rel="alternate" href="http://www.cnblogs.com/SkyD/archive/2011/01/10/1931847.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/SkyD/archive/2011/01/10/1931847.html"/><content type="html">&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201101/201101101239407939.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="DSC02093" border="0" alt="DSC02093" src="http://images.cnblogs.com/cnblogs_com/SkyD/201101/201101101239422658.jpg" width="740" height="560" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;比上回的小，原因见下文。&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201101/201101101239458523.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="DSC02094" border="0" alt="DSC02094" src="http://images.cnblogs.com/cnblogs_com/SkyD/201101/201101101239472163.jpg" width="740" height="560" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201101/201101101239498933.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="DSC02095" border="0" alt="DSC02095" src="http://images.cnblogs.com/cnblogs_com/SkyD/201101/201101101239516750.jpg" width="740" height="560" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201101/201101101239538471.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="DSC02096" border="0" alt="DSC02096" src="http://images.cnblogs.com/cnblogs_com/SkyD/201101/201101101239566189.jpg" width="740" height="560" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201101/201101101239589546.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="DSC02097" border="0" alt="DSC02097" src="http://images.cnblogs.com/cnblogs_com/SkyD/201101/201101101240012629.jpg" width="740" height="560" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201101/201101101240034100.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="DSC02098" border="0" alt="DSC02098" src="http://images.cnblogs.com/cnblogs_com/SkyD/201101/201101101240057805.jpg" width="740" height="560" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;貌似因为是连任的，所以礼包里只有这么个玩意，没有奖杯，囧。&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/SkyD/201101/201101101240077051.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="DSC02099" border="0" alt="DSC02099" src="http://images.cnblogs.com/cnblogs_com/SkyD/201101/201101101240098423.jpg" width="560" height="740" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;放在以前的奖杯上。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/SkyD/aggbug/1931847.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SkyD/archive/2011/01/10/1931847.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
