4 个开源的 Java 代码静态分析工具

1. PMD

PMD是一款采用BSD协议发布的Java程序代码检查工具。该工具可以做到检查Java代码中是否含有未使用的变量、是否含有空的抓取块、是否含有不必要的对象等。该软件功能强大,扫描效率高,是Java程序员debug的好帮手。

PMD支持的编辑器包括:
JDeveloper、 Eclipse、JEdit、JBuilder、BlueJ、CodeGuide、NetBeans/Sun Java Studio Enterprise/Creator、IntelliJ IDEA、TextPad、Maven、Ant,、Gel、JCreator和Emacs。

2. FindBugs

FindBugs是一个能静态分析源代码中可能会出现Bug的Eclipse插件工具。它也可以分析被编译过的程序。这个工具已经被下载了超过70万次。

 

 

3. JLint

Jlint 可以帮助你检查 Java 代码找出 Bug,不一致和同步问题。JLint 运行非常快速,即使你的项目非常大,它也只需要几秒钟就能检查所有的类。Jlint 已经成功的商业环境中应用。

 

 

4. Checkstyle

Checkstyle 是一个用来帮助开发者编写符合编码标准的代码的工具。它是高度可以配置的,几乎可以支持任何编码标准。它也可以用来帮助发现类的设计问题,重复代码,问题代码等等。这个工具可以和 Ant 整合。

手机浏览器 HTML5 支持情况调查

最近过去的几个月中,手机浏览器领域的口水战不断,UC、海豚、欧朋、腾讯都或多或少的卷入了些许。抛开是非不谈,他们共同关注的一个非常重要的领域就是对HTML5的跑分支持。

前端时间Facebook的移动开发者关系部门主管Pearce也向TechCrunch表示,只有移动浏览器的进步才能带动HTML5应用的发 展,苹果和谷歌在浏览器对HTML5应用的支持上做的还不够。那么我们就来看看现在中国市场的手机浏览器对HTML5的支持情况吧。

正如笔者年初在一篇文章中提到的,目前对浏览器HTML5兼容性测试做的最好的是html5test.com.浏览器在这个网站上取得的得分越高说 明对HTML5的支持越好。这个网站最近一次升级是在2012年4月2日,目前的满分是500分。(感觉我好像总是在给这个网站的升级做广告。)

整体情况

手机浏览器HTML5支持情况调查

在测试的过程中发现,只有UC和欧朋是支持Android 4.0的系统的,天天和QQ在Android 4.0仍然是跑不起来。而今年新进加入HTML5跑分争夺的百度和海豚都采取了偷巧的方式,用户需另外再下载一个内核才能获得更好的支持体验,用户体验上 还是差了不少。

从总跑分来看,欧朋的HTML5跑分最高,使用了最新版的Presto内核。其次是UC,新做的这个U3内核相当有冲击 力,短短三个月就将跑分提高了近一百分。百度的表现也不错,突破了300分。海豚在4.0上虽然能跑出364的高分,但是还不支持2.3,有不小的硬伤。 而去年年底炒的风生水起的Q立方和天天都没有再发过新版,跑分变动完全是因为html5test网站升级带来的。

从市场份额看,UC浏 览器是已经公开发布的正式版产品,据UC的公开数据,已经有超过5千万Android平台的用户在使用。欧朋HD在这个月刚刚去掉了后面的beta标识开 始正式向市场推广,不过依据Opera的行事风格,市场份额还有待观察,但是应该不错。百度手机浏览器在2月份发布正式版之后,已经开始发力做一些市场推 广活动,似乎也是百度无线开放平台的重要一环。海豚的自有内核目前只能在Android4.0平台上运行,而现在装载4.0系统的手机份额大约只有3%, 市场空间可能还很小。

跑分细节

上面看的是总分,接下来让我们看一下这几款浏览器在html5test.com上各个项目的跑分情况:

手机浏览器HTML5支持情况调查

从各项上看,各大浏览器对canvas、video、Location and Orientation等基础项目支持的都已经不错了,但是在一些项目上有不小的差异。

比如可以为绘图提供硬件加速的WebGL项目上面,目前只有UC、欧朋和天天能支持的较好,这个会是游戏类应用比较关注的点。

在Communication项目上,各家的支持程度也不尽相同,UC和海豚都已经做到了支持WebSocket,其他家的支持还有待提高。

在Local multimedia项目上,目前只有UC和欧朋可以做到支持调用本地的多媒体设备接口。

在Form项目上,欧朋依然保持着领先的势头,拥有超过100分的跑分,不愧是语义化的倡导者。

后记

随着各家浏览器对HTML5支持度的提升,对基于HTML5应用的兼容性和稳定性都有了一定的优化。一些对性能要求略高的应用,比如2011 Google I/O时播放的倒计时demo,用UC、百度、海豚打开都能够获得流畅的体验。

而从开发者角度,越来越多的人开始了解并接受Web应用也能够在移动平台上大展身手。在近期HTML5小组的Code jam上的作品水平也是越来越高,不少作品已经可以在做一些稳定性优化之后都是可以拿出来当做商业产品发布的。现在阿里云、盛大、新浪、百度都在搭建云服 务平台,供开发者使用,其中也涌现出一些优秀Web App RAD工具。

不错的浏览器支持环境已经有了,良好的开发者支持体系也出现了,HTML5应用的爆发,可能就在一触之间。或许,就是明天。

三星将放弃 Bada,全面投靠 Android

三星终于想清楚自己要什么了,它决心抛弃自己的手机操作系统Bada,全身心拥抱Android系统。三星公布的最新消息称,将于2013年内彻底结束对Bada平台智能手机的开发,运行Bada系统的设备也会逐渐淡出市场。Bada时代将要终结。

几乎与此同时发生的,是三星新战略机型的发布。5月3日,三星在伦敦伯爵宫展览中心发布新一代旗舰手机Galaxy S III。外界对这位Galaxy家族新成员是否够得上“旗舰”称号有些争议:Galaxy S III使用了三星独立开发的芯片,在功能方面加入了眼部识别技术和类似苹果Siri的语音识别功能,更趋于“人工智能”,但也有评论认为,这只是一款充满 了微创新但缺乏直观新鲜感的机器。

但三星自己明白这款手机对于公司的重大意义。三星正是借Galaxy S III表明它将继续深化对Android的体验,保持目前的领先优势。“最新一代Galaxy S III旗舰手机表明公司已经重新将重点放在Android智能手机上。” 三星移动业务总裁J.K.Shin说。

三星和苹果已经成为全球范围内手机厂商中的两大主力。根据分析网站Asymco的统计,2012年第一季度苹果占了所有手机厂商利润的73%,三星占了26%,而与苹果还拥有在Pad产品中绝对的领先优势不同,三星对手机产品的依赖很深。根据今年第一季度的财务情况,三星季度利润同比上涨82%,其中3/4来自手机业务。

和苹果机型甚少不同,三星正是通过覆盖Android、Windows Phone和自主研发的Bada系统,以在智能手机界型号多,价格范围广著称。据市场研究公司IDC发布的报告,2012年第一季度三星在全球智能手机的 市场份额是 29.1%,同比增长了267%;而在全部手机市场三星的份额则为23.5%,超过诺基亚20.8%的份额,成为全球最大的手机厂商。

但长期以来,三星也一直被诟病为过度依赖Android和随波逐流,所以三星一度试图通过自主研发Bada系统、学习苹果打造自己的生态系统来改变这一情况,但Bada并没带来新机会,反而让三星陷入进退两难境地。

依赖Android系统始终是在支持Google推出的生态系统,而Google又将在2012年上半年完成对摩托罗拉的收购,摩托罗拉从而可能在Android系统的技术方面占据有利地位。三星对此多少感到不安。

与此同时,Bada系统却很不争气。据市场研究公司Canalys的报告,三星相继推出过10余款搭载Bada系统的手机,却在2011年全球智能手机市场所占份额还不到3%,与使用Android系统的Galaxy系列影响力相去甚远。

尽管如此,三星也没有完全放弃打造自己手机系统的打算。J.K.Shin表示,三星可能会在移动行业展开收购。有分析师认为,三星可能是RIM 的潜在买家。若三星收购RIM成功,就能够将RIM的部分系统功能植入Android操作系统中,创造独有的竞争力,从而摆脱对Google的过分依赖。

三星手机为何销量不错

Google的帮助:Google使三星Galaxy Nexus智能手机成为其主要的Nexus设备之一,有效地确立了自己在市场中的地位。

产品线够长:三星目前拥有运行Android、Windows Phone等系统、价位区间足够大的各种手机。

引起关注:有关被苹果专利诉讼使三星成为新闻报道的头条,并将三星成功塑造成苹果的有效竞争对手形象。

运营商的帮助:运营商更倾向于和可能取得成功的产品合作,以便吸引更多客户。三星因此成为运营商乐于合作的对象,这也进一步帮助三星打开局面。

文/第一财经周刊

2012Q1全球手机市场率数据:Android占大半

编者:上个礼拜 oschina 做了一期专门针对开发者所使用手机的调查(详情),下面这份调查是针对于所有人群的。

市场调研机构Gartner日前发布了2012年第一季度全球手机市场数据。首先来看智能手机市场的情况,2012年第一季度全球共售出手机4.19亿部,其中智能手机1.44亿部。Windows Phone的全球总销量环比保持稳定,2011年第四季度售出了275.9万部,而2012年第一季度则售出271.25万部,市场占有率保持在 1.9%,而与去年同期相比,销量有所增加,但市场份额有小幅下降。

值得注意的是,2012年第一季度有200万部Windows Phone都是诺基亚卖出的,独占Windows Phone平台的大半壁江山,份额达到66%。

此外Android以56.1%的市场份额(8106.74万部)是现在无可争议的市场老大,比去年同期增加了20个百分点。但由于Android 生态系统的混乱,反倒为Windows Phone攫取Android的大量用户带来了机会。iOS的份额小幅上升,从去年同期的16.9增长到22.9,售出3312.05万部。

Symbian和RIM缩水明显,Symbian从27.7%大跌到8.6%,RIM从13%跌到6.9%。

再来看一下各手机品牌的市场份额。像我们已经知道的那样,三星几乎主导了Android平台,并取代诺基亚成为全球市场份额冠军。三星在2012年 第一季度共售出8656.76万部手机,市场份额达到20.7%,其中智能手机3800万部,占智能手机市场的26%。而诺基亚则从去年同期的25.1% 衰退到19.8%。苹果是全球手机市场的第三名,市场份额为7.9%,在智能手机中则排名第二,市场份额23%。智能手机的第三大品牌目前是RIM,占 7%。

中国厂商中,中兴和华为都有不错的增长,分别取得了第四和第六名的位置,超越了黑莓。

LG、摩托罗拉、HTC和索尼的市场份额和销量都有不同程度的下降,从之前的报道我们也知道,他们都亏本了。

诺基亚销量的大部分是Symbian功能手机,下一季度它的市场份额恐怕还会进一步下降,不过第二名的位置暂时还不会丢掉。诺基亚面临的最大问题是 如何将相对廉价的Symbian手机用户转换成Windows Phone用户,现在Symbian用户流失极快,如果诺基亚在Windows Phone不能取得突破,很快就没牌可打了。

微软的Windows Phone平台不同凡响的体验和优秀的开发工具都很吸引人,但除了开发者微软还需要赢得大量用户的芳心才行。如果微软和诺基亚的表现仍然不能改善,Windows Phone成为主流平台的机会就越来越小。

编译/WPMind  via:wpcentral, WMP