手机网络应用客户端软件开发实践简介 - 编程入门网
特性或者缺陷编写一些代码。怎么来完成这个任务?两款手机屏幕的大小相差两倍都不止,如何来做UI界面的代码移植?以下分析几种方法:
1. 每款手机或者每类手机都各自维护一套代码 这种方法可以最好地发挥程序的性能,也可以避免无用的代码导致编译后的程序大小膨胀。但是将来如果要添加一个新的程序功能,就不得不在每套代码中都实现一遍。后期的版本跟踪和维护是一件非常困难的事情。 2. 利用编译器优化来调整代码 通过使用带有static final 变量的if else 语句,Java编译器在编译的时候可以去除那些永远也不可能被执行到的代码。例如使用if (Configuration.IS_SUPPORT_XXXX),来表示后面是针对支持XXXX特性的手机的代码,否则编译时这段代码就会被精简掉。这个方法不错,但是每款手机都要维护一个Configuration源代码文件,随着支持设备的增多,某些情况下又要对Configuration文件进行分类合并,另外一个问题是,不能“动态”地import类,也不能“动态”使用类变量类方法,在开发过程中的开发环境不能针对于某个具体的手机类型。 3. 第三方预编译工具 这种方法和上面一种方法有点类似,在代码中加入判断的预编译指令,所不同的是它在程序编译之前就对代码做了修改,这样可以实现“动态”地使用类和类的变量、方法。这种方法对于每一款手机也需要一个设备的配置文件,里面描述我们关注的一些设备的能力和参数,和上面的方法不同的是它的配置文件不需要作为源代码导入,可以保存为XML格式的文件,通过将各种手机终端设备配置文件汇聚起来,就是前面提到的设备资料库,一般是XML形式组织,随着项目的进行代码管理的复杂度不会增加。我们实践中使用的一个第三方工具J2MEPolish就是使用了使用预处理标记来区分不同手机的代码,使用预处理器对代码进行处理,使得其生成针对某一款或某一类机型的特定代码,然后再由编译器进行编译。 智能网络客户端 手机的网络条件目前还是不乐观的,一方面是速度慢,另一方因为手机信号原因,不能保证网络的稳定,用户的一次网络交互可能需要等待很长时间返回或者根本不会返回。如果采用浏览器的方式,必然导致用户体验的大幅下降。客户端之所以最近会兴起,其中一个原因就是客户端可以更智能,可以在离线和在线状态之间切换,并且在离线情况下仍然有一定的可用性。要改善用户的移动网络业务的体验必须要在这个环节下功夫。 微软的Smart Client架构是这方面一个非常强大的架构,在我们的手机报实践中,借鉴了Smart Client的思路和部分设计模式,使得用户的网络服务请求和界面操作独立开来,通过合理的服务调用流程,可以让用户获得最佳的体验:用户无需花时间等待任何网络服务请求操作,在网络服务器请求完成以后以最合理的方式通知用户而不打扰用户使用手机报。基于客户端的应用还有一个好处就是可以接收服务器Push的消息,这也使它看起来更“智能”。可以通过短信等方式将客户端软件远程唤醒并传递消息。这些功能都是传统浏览器应用所不具备的。可以预见,服务器端也需要针对于智能客户端的新特性提供新功能。 下面列出一些智能客户端环节需要关注的一些问题: 如何缓存用户操作数据,以应对网络异常,并保证用户体验? 用户的网络操作返回以后,如何判断是否要提醒用户? 如何检测网络状态,以改变客户端的工作状态? 如何针对运营商网络优化应用层通信协议,选择数据包的大小,保证通讯效率的同时保证成功率? 小结 前面简单介绍一下基于KJava的手机网络应用客户端软件开发实践中的几个关键问题上的心得,在实际程序开发、调试过程中还有很多关于开发环境、各种终端以及网络的非常规的问题,只能*自己在实践中去体会。另外因为KJava平台和手机终端本身 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |