Android系统开发研究

时间:2022-07-25 03:54:39

Android系统开发研究

摘 要:随着智能手机的普及应用,Android以其独有的优势已经成为了智能手机、平板电脑的主流系统。笔者根据Android系统开发过程的经验,提出Android系统开发的几点技巧。

关键词:Android系统 开发 研究

一、Android系统开发面临的问题

1.Android版本的问题

在Android以APaehe Lieense开放出来之后,这个时候的Android系统的版本和SOK的版本都是1.0。作为工作在移动开发领域的开发者,我就常常有这么一个困惑:Android的版本将会如何演进?根据不同版本开发的应用程序之间的兼容性如何保证?看一下APPle在iPhone系统上的策略:ApPle的策略很简单,应用程序必须兼容我的最新版本。因为ApPIe控制了从手机,系统到应用程序分发的所有渠道,它完全可以这么做。但是Android就不一样了,由于Android系统的开放性,类似于iPhone的强制手段是无法执行的这必然造成应用程序的兼容性问题。而且,作为Android应用的官方分发渠道,AndroidMarket又如何控制不同版本的系统需要的适应不同版本的应用呢?

2.在厂商定制系统上运行的应用的兼容性问题

作为一个开放的系统,如何使得根据Google的AndroidSDK开发出来的应用程序能够在各个厂商或多或少的定制中都能工作?这是一个比前面的适应Android系统的不同版本更严重的问题。厂商或者运营商定制的系统往往会加入很多自己的应用甚至自己的修改。不过厂商或者运营商定制的系统是否能够运行来自于Androidmarket的,基于Google提供的AndroidSOK开发的应用呢?这个是很不确定的。

山寨,著名的山寨

Android系统一,大家都欢欣鼓舞,真是山寨的理想系统啊"然而,事情哪有想象的那么美好,对Androjd系统的移植与定制不是山寨厂商的软件力量能够顺利完成的。如果按照山寨的惯例,直接用现成的整体方案复制,那么,采用Android有什么意义吗?还不如沿用MTK的好,至少那个成熟有效几乎不需要任何研发成本。所以,寄希望于山寨能将Android发扬光大乃至繁荣昌盛是不切实际的,至少我个人这么认为。

二、Android系统开发技巧

Android系统是目前对JAVA支持最好的系统,在Android系统封装的JAVA API可以直接操作系统硬件。 Android现在的发展势头强劲,很多大品牌的移动终端设备商都加入到Android阵营。未来必将占领大面积的平板电脑市场。一旦平板电脑成为移动手持设备主流的话,在性能相对较高的平板电脑上的各种类型软件的需求量肯定要比手机更大。

1.webservice接口。Android作为view层,要实现和服务层低耦合,必须使用webservice接口,目前还没有十分完善的插件。可以使用axis的Android包,不过使用中也很麻烦,特别是复杂数据类型的传递,而且bug也很多。推荐在Android端使用Apache的httpclient发送交互请求,定义好xml接口传输数据,接收可以使用dom4j解析,后端使用servlet机制,再利用java反射根据xml文件描述动态调用指定的spring服务和方法,这样就可以完全按自己的方式做更多灵活的扩展。

2.用户会话信息的保存。httpclient的作用很大,但作为无状态访问协议,http无法保存用户会话信息。通过研究axis的源码可以发现,其工作机制是把用户的首次访问信息保存至特定文件,而后根据心跳机制,定时做校验。基于此原理,可以将用户首次访问信息保存在数据库会话表中,将其作为一个用户自定义存储过程,定时把会话中登录时间距离当前时间超过30分钟的记录做删除操作,用户每次登录都与会话表进行匹配,没有记录即刻超时强退。通过此方法用户每次访问系统都得在xml文件里带着系统给它的串号,也就是sessIOnid,这样才可以完成一次完整的会话。

3.Android系统画图技术。Android系统画图技术是很复杂的,虽然可以通过画图插件来实现,但是都会存在这样或那样的问题,效果不够良好。基于此提出如下建议:如果只是统计图表而非专业游戏,可以借助服务端来做,例如采用jfreechart在服务端画好,图片http流到手机端显示,图表效果直观清晰。

4.UIUI是个难点,若采用px单位会有些问题,为了适应不同分辨率,可以改为dip定位。或使用选项卡样式,统一风格。比如可以给tabhost加样式动态改变效果,按钮透明,listview去横线加箭标加动态发亮加下拉翻页,还有手势滑动,各种各样的widget特效和动画切屏。可以说UI设计在Android布局和美化方面存在较大难度。主要因为美工无法直接介入而且很难使用模拟器测试,因此大多采用真机测UI,速度较快。

5.Android的客户端更新功能。Android的客户端更新功能的技术更为复杂,要想做好这一功能,需要注意以下几点:一要做好断点续传,二要做好数据库的初始化工作,三要做好签名,四要做好版本校验的算法并且能显示动态进度条和百分比。

6.webviewwebview中可以调用后端的java代码,它类似dwr功能,不过这个功能较不稳定,兼容性较差。Android既然提供了那么多的UI控件,就说明webview是无法替代它的,毕竟还需要调用底层服务。

7.模板类。Android也应该遵循MVC的编程规范,activity只负责处理跳转,UI,和简单数据校验工作,业务逻辑放置在service类中,sqlite操作稍加封装下,做个类似jdbcUtil的那种模板类,提供增删改查,分页等方法,这样dao操作就完善许多。

上一篇:重塑信任关系是构建和谐医患关系的关键 下一篇:浅谈银行营业网点加强柜面业务分流的有效举措