从Windows到Android开发
这是一篇不错的文章,虽然是2011年的,但是说明Android开发的核心没变,fragmentation问题还是没有解决。
http://nick.typepad.com/blog/2011/08/from-windows-to-android-with-glassboard.html
根据自己学习Android开发的经验,我很赞同几点:
1.a new language (Java), a new IDE (Eclipse), a new platform (Android)
多多少少也要懂Java,虽然和C#很类似,但是用起来还是要有段适应期。其实我在10年前做过差不多1年的Java,主要是做JSP。但是做Android还是很多不适应,特别是一些对事件处理的Interface(Listeners)。感觉Android对界面的处理大家的写法都不一样,例如按钮点击那么简单,有些人implement Listeners的interface,而有些人用java inline class。而且Java是over Object Oriented的语言,总不习惯。
Eclipse,由于习惯了Resharper,所以我更偏向于 IntelliJ IDEA ,可惜其对编辑程序界面的支持不好,所以不得不在两个IDE上调来跳去。最终决定用Eclipse。感觉编辑,调试,快捷键等等都比不是VS,也比不上Xcode,主要是我不熟悉。
2.There's an awful lot to learn - intents , activities , AsyncTasks , XML layouts , services , BroadcastReceivers and on and on and on
这些都是Android开发的核心,要写好Android开发就是不断的熟悉这些概念。下面是我对这些组件的理解:
intents 是各个组件通信时的载体。好像在Windows Phone和iOS中没有找到相对应的概念。
activities 是功能的实体,由于大部分的Activities都与用户交互,所以其通过 setContentView(View) 启动用户界面。最关键的部分是学会它的生命周期
AsyncTasks ,异步处理,现在那个手机app是一直挂block了用户响应的话,用户马上就卸载了。
XML layouts ,有点类似于XAML,对各种机器分辨率支持是难点,除此之外,这个Layout系统不难。
services ,后台服务,其他平台(iOS和WP,Windows8)梦寐以求的功能,但是这也是电的杀手,用的时候权衡。
BroadcastReceivers ,用于接收intents,为其他模块提供功能,我觉得这是Android比其他平台先进的地方,Windows Phone8和Windows8实现了一部分,通过URL来实现app之间的交互,我预计这会是iOS7新增的功能。
除了上述几个核心,其他东西,例如GPS,地图,HTTP访问网络,RESTful api,JSON等等各个平台都一样,只是实现上有点差异。
个人感觉,从开发者角度来看,学习和开发的难度如下
iOS <= XAML(Windows Phone/Windows 8)< Android
由于iOS有大量的开源实现,大大地减低了开发难度,而XAML有微软的支持和VS等强大的工具,难度与iOS差不多,对我来说Android是最麻烦的。但Android的目标设备最广,不仅仅可以在Android手机和平板上使用,还可以通过BlueStacks在Windows上使用,也可以在BB10和Tizen上使用。听说Meego也能用Android app了。我感觉Android开发平台就像手机的HTML5,以后哪里都难用。
本文很多主观看法,欢迎拍砖,我会轻微还击,^_^
作者: Jake Lin ( Jake's Blog on 博客园 )
出处: http://procoder.cnblogs.com
本 作品 由 Jake Lin 创作,采用 知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议 进行许可。 任何转载必须保留完整文章,在显要地方显示署名以及原文链接。如您有任何疑问或者授权方面的协商,请 给我留言 。
分类: 移动开发系列
标签: Android
作者: Leo_wl
出处: http://www.cnblogs.com/Leo_wl/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
版权信息查看更多关于从Windows到Android开发的详细内容...