最近一段时间总是被一些杂事搞得自己整天很忙的样子,其实呢?真正从技术收获的角度来讲的话,这段时间自己并没有收获多少新的技术知识。
首先,我想好好总结一下自己老东家--.net平台。说实话,这个平台是我认为最易用、同时也是最好用的。在这个平台上面进行开发,我们一般都能达到很高的工作效率,但是最近经历的一个项目着实恶心到我了。怎么说呢?是不是有点恶意中伤呢?且听我慢慢道来吧,这个项目我接的一个私活项目,从项目功能评估,最多一个月就可以完成开发工作。但是前前后后,一直搞了3-4个月,是项目没有管理好吗?当然有这个原因,抛开这些我想好好吐槽一下.net,vistual studio 2013 update4+windows 8.1的64位专业版,足足有6-7G大小呀,然后安装过程中及其容易失败,不知道是不是跟电脑有关系。好不容易安装好了,激动了一把,赶快打开VS是不是新家uap项目(通用项目)。好吧,可以新建出来了,部署到手机/电脑都是没有问题的。于是,我认为这个环境估计可以了,开始项目开发了,等到功能开发到一定程度的时候,我找到配置文件修改一些图片、应用名称等配置,再次部署的时候,出现了令人疑惑不解的系统异常。好了好久,同时网上找了好多解决方法,还是不知道为什么?这意味着之前的开发工作相当于白做了,有点不甘心,但是还是忍痛放下了。找到官方提供新建uap项目的网站,领用官网提供的模板新建了一个项目,继续后面的功能开发。说也奇怪,UAP项目是基于windows内核的,所以只能部署到wp8.1系统之上,也就意味着之前的wp7,wp8系统将没有办法安装该应用。不兼容显然是一个令人恶心的事情之一,还有开发控件库的变化,开发第三方框架库的变化等。
让我们抛开微软的那套东西不说,重点好好讲一下android平台,说实话,刚刚上手android平台的时候,感觉这个平台的sdk,还有一些开发方法都很奇怪有没有?比如elicpse里面新建出来的android项目结构就另新手觉得很奇怪,至少对我这种从.net平台转过来的同学是这样的。所有的页面布局放在哪里呢?res文件夹里面的layout文件夹里面,为什么要这样做呢?layout文件夹下面能不能像.net平台针对不同的功能模块分子文件夹摆放不同的页面呢?答案是不可以的,那么如果我们想要从n多个layout里面找到出问题的布局岂不是很困难吗?我们是不是要一个一个页面去好好过一下呢?答案是是的,那么后台的java文件又放在哪里呢?原来是放在src文件夹下面,在这个src文件夹下面我们可以分级摆放java文件,所以要找到一个页面的最快方法往往是java类里面一级一级跳转逻辑。既然android里面layout和java文件是分离开来的,那么两者又是怎样联系起来的呢?通过两步完成:首先将java文件注册到amanifest.xml文件里面,然后没有java文件继承自activity类,重写onCreate方法,在这个方法里面我们可以通过调用setContentView(xxxx)方法,设置这个java文件所关联的页面布局。对于熟悉VS的人来说,这样做实在是太模仿了,说白了这样就是赤裸裸的MVC嘛,就是为了代码结构的清晰化。时间久了,你就会发现android项目结构比起windows phone里面自己写的mvc模式要好管理很多,为什么这么说呢?且看,如果要适配不用的android手机分辨率,我们只需要在res文件下里面新建不同的dreable文件夹就可以了。我们需要很好地组织整个APP文字、样式、间距、颜色,只需要在values文件夹下面的对应.xml文件里面定义好就可以了,实现最大程度的代码复用。我们再来对比一下windows phone和android的sdk吧,是实话,在我看来google提供的sdk比微软的要好太多了,android里面四大组件、本地数据库、http/https、xml/json等app需要常用的api都是非常的易于使用。但是windows phone里面可能一个后台线程下载的api就能让人疑惑半天,同时sdk可能每个版本都会发生变化,而且搞不好在原来没有问题的地方,现在就可能出现问题。
自从转向android之后,慢慢的开始学习elicpse环境,开始发现该环境的强大了。要说elicpse除了android开发之外,另外一个比较常用的开发用途就是java服务端开发了。说到这里,我要好好谢谢一位同事的帮组,在他的帮组下,我慢慢了解了一些服务端的技术。