高手Android与iPhone平台开发经历对比 谁更好用?
2.资源
苹果公司为开发人员提供了大量的资源,重要的概念都配有视频教程,通过观看视频掌握概念就更容易了,虽然视频发布很慢,但苹果公司也提供了大量的示例程序和代码解释API的用法。
Android开发人员也有很多资源可用,新手指南和API参考在安装SDK时就一起安装到计算机上了,因此即便是在离线状态也有很多资源可用。我发现Android的开发资源组织得非常好,只需要很少的时间进行查找,更多的时间留给发现,特别是ApiDemos示例应用程序提供了一个很好的开头。为了研究架构和API用法,我还下载了许多开源的Android项目,在这方面Android确实占了上风,因为苹果公司一直采取的是保密策略。
3.工具
我将会涉及到的工具分类包括:IDE,UI builder,调试器,分析器。
3.1 IDE
Android开发主要使用的是优秀的JDT工具,基本上只要安装了Eclipse的计算机上都会安装JDT,我使用这些工具已经有些年头了,至今仍然在用。JDT最有特性的可能要算它的增量编译了,当你输入时它可以立即提供错误和警告反馈,它消除了80和90年代普遍存在的“代码编译--等待反馈”的循环,当我在编辑器中输入代码时,警告和错误实时更新,为我提供了即时反馈,直到我在XCode中编写Objective-C时我才意识到这项功能是多么伟大,这时我才意识到在等待编译的过程中会打断编程的思路。
其它Eclipse的关键特性包括:
1、内容助手
2、快速修复
3、组织导入
4、开放式(CTRL+Shift+T)
5、重构
集成javadoc和内容助手是学习一个不熟悉的API的非常好的方法,在Eclipse中编写代码时不仅可以使用所有的类和方法,还可以使用它们的文档。
集成javadoc的内容助手
XCode就太差劲了,我甚至不知道该如何下手,下面是我想到的XCode如果想继续活下去应该改进的列表:
1、内容助手要真正能够工作,XCode提供的内容助手经常都是错的;
2、一个像样的窗口/编辑器管理系统,XCode和它的辅助工具(调试器)喜欢打开很多窗口;
3、一个项目树视图,按字母顺序对文件进行排序;
4、集成API文档,我发现我经常在IDE和搜索API文档之间切换,这样会打断连续的思考。
3.2 UI Builder
iPhone开发人员拥有一个界面美观的UI builder,它很灵活并可以展示很多精密的UI,给我的印象很深,但用起来并不顺手,可能要反复看几遍文档才能搞定。
Android UI builder外观上就差多了,而且要对UI编写很多XML代码,不过也不用担心,有内容助手和校验的帮助,可以很快构建好UI。
3.3 调试器
使用了Eclipse的Java调试器再去使用Xcode中的调试器简直就会崩溃,在Eclipse中可以看到并修改变量的值,但在Xcode中却不行,但这在调试代码时几乎是一个最常用的功能了,Xcode经常混淆对象的类型,除了提供指针值外就没有其它内容了,这与Eclipse形成了鲜明的对比。
我还发现Xcode的调试器UI很难使用,在堆栈上点击时会打开一个新窗口显示代码编辑器,最终导致打开了无数个窗口。
3.4 分析器和堆栈分析
iPhone开发工具擅长的是概要分析和堆栈分析,这些工具非常成熟且易于使用,在没有预先学习的情况下,我很快就掌握了它们的用法,并快速发现和修复程序中的内存泄漏问题。
Android开发人员必须使用Android的单播跟踪程序,虽然工作得很好,但需要很努力地配置和操作才行,当我发现必须修改其源代码才能获得用于分析的跟踪文件时我非常惊讶。
我不确定Android是否可以提供hprof格式的堆栈转储文件,如果可以的话,就可以使用强大的MAT工具分析堆栈的使用了。