有一天,可怕的消息传来了。它可能出自你顶头上司之口,也可能来自他老板之口,或者甚至是负责北美业务或西部业务的高级副总裁,无论如何,这条消息内容都是一样的,而且同样令人焦躁不安: “我们需要一个移动应用。” 如果你是那少数几个“负责”开发团队的倒霉蛋中的一员,那么,其恐惧和兴奋程度就与10年前“我们需要一个web应用”这句话随之而来的东西不相上下。同样的问题和不安全感萦绕在你的开发团队周围,而如果你实际上成为开发世界的一员已经超过10个年头的话,对于你不知道自己不知道什么,你也许会记得那种即时的发现和事后诸葛亮式的认识。
轻松一点,尽管一篇900字的短文无法覆盖到移动应用开发的林林总……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
有一天,可怕的消息传来了。它可能出自你顶头上司之口,也可能来自他老板之口,或者甚至是负责北美业务或西部业务的高级副总裁,无论如何,这条消息内容都是一样的,而且同样令人焦躁不安:
“我们需要一个移动应用。”
如果你是那少数几个“负责”开发团队的倒霉蛋中的一员,那么,其恐惧和兴奋程度就与10年前“我们需要一个web应用”这句话随之而来的东西不相上下。同样的问题和不安全感萦绕在你的开发团队周围,而如果你实际上成为开发世界的一员已经超过10个年头的话,对于你不知道自己不知道什么,你也许会记得那种即时的发现和事后诸葛亮式的认识。
轻松一点,尽管一篇900字的短文无法覆盖到移动应用开发的林林总总,有关于Android的一些事情,以及你的团队与其的关系,甚至在他们开始捡起第一本有关Android的书之前,这些都是很容易说清楚的。
它就是Java
从一位Java团队经理的观点来看,Android其中一个最棒的“好处”,就是90%的工具、生态系统以及经验,对于Java开发团队来说都是很熟悉的。那是因为,Android其核心就是“Java”。开发团队用Java语言编写代码,扩展并使用其他的Java类,调用Java方法并使用Java IDE。
那么,这意味着,对于熟悉Java或任何Java虚拟机编译语言的团队来说,它都将变得相对没有什么痛苦,可以开始着手为Android编码,这要比为iOS设备写要快得多,因为那要学习一门新语言(Objective-C),还要熟悉全新的集成开发环境(Xcode)以及新平台(iOS)。除此以外,大多数Java生态系统的元素,包括流行的开源库都是很轻易就能得到的,如JUnit或log4j。
它不仅仅是Java
另一方面,Android又不是Java,在某些情况下会令人迷惑。Android实际上并非一个Java虚拟机,而是Dalvik虚拟机。在Java类被编译完后有一个独立的工具会把JVM代码转换为Dalvik代码。而且也不是说Java虚拟机的所有行为都将会与Dalvik的保持一致,比如说ClassLoaders,可能就会有细微的不同,或者某些在Java5虚拟机中出现的某些特定的类可能会不见。通常而言这些不会成为Java开发人员需要担心的事情,但某些项目,尤其是那些希望实时操纵Java字节代码的(比如Seam),或者是那些希望实时发行字节代码的(某些面向方面的工具包)就会遇到问题。
那只是一部手机而已
关于Android设备及其家族的说法已经是连篇累牍,使用了“革命性”和“游戏规则改变者”的辞藻,但在开发过程中有一件事必须弄清楚:那就是说到底它只是一部手机,仅此而已。它的不动产——手机屏幕容积有限(一般是320*480的分辨率),处理能力也很低,工作内存及/或存储更是少之又少,是属于“M”级而非“G”的。
还有,Android不用传统的Java API来为用户开发UI,Android不用Swing或AWT(传统的Java桌面API)、或者servlet/JSP/JSF(传统的Web API),而是带来了自己的UI象征物——活动、服务以及意图,这些东西开发团队都需要时间去适应。
为这样一种设备设计应用需要全新的视角以及对期望和实现方案进行细致的复检。用户界面和用户体验都将会与标准的“数据表单”式Web应用的风格和方案有所不同。没有那么大的屏幕空间给你玩那种东西,还有,如果这一切有必要的话,用户会通过手机的浏览器点击你的Web应用来实现。麻雀虽小,但是手机也有全新的一组机会和技术特性等着你去探索,如地理定位、照相、声音以及二维/三维动画,这些特性在Web应用里是很难找到的。
性能问题不是仅仅通过安装个缓存或者在服务器端再装上一对G级的内存、或者再装多一台服务器就能够搞定的,比如说,实际上,Android密切关注着设备上运行的应用,非常有侵略性地回收其所需的资源,似乎是别的应用对它有点情不自禁、失去了自制力,Android却对为了确保设备保持响应并可进行通话而杀死一个应用(那个可怕的“强制关闭”对话窗)毫无愧疚之心。
在这里网络延迟将会是至关重要的,这一点应该是很明显的:不仅仅是因为手机不会在数据中心跟服务器泡在一起的环境里,还在于它很有可能处于一个要比传统的宽带网络要慢得多的网络中(3G或4G)。因此,传统的像数据库数据的加载偷懒(lazy-loading)那样的小伎俩几乎是起不到在传统的Web应用里的那种作用的。从很多方面来说,这整个故事可以被概括为“客户/服务器之复仇”。
它不仅仅是手机
过经过全面考虑之后,有关这一设备令人惊异的事情是,尽管它是一部手机,却又远远超越了一部手机:它还是一个多用途的计算平台,可以带给我们如此多的好东西,包括你的业务及其货品和服务,可以跃然呈现在用户的眼前,其方式甚至比家庭电脑的Web浏览器还要亲密和私人化。人们随身携带自己的手机:工作、娱乐、洗澡(!),甚至带上床。对于新平台所带来的东西,如果你勇于挑战,那么你就将得到超过竞争者的一个重要优势的机会,与此同时,可能还会享受到那么一点点的乐趣。
作者
相关推荐
-
内存数据网格提供商一头扎进Java
10年的时间里,应用性能解决方案提供商Alachisoft一直在用NCache(针对N-Tier和网格计算.NET应用的内存计算和数据网格产品)为.NET社区服务。
-
企业内是否一定要支持Android?
让我们看看Google正在如何改进Android的功能,去帮助运行业务,并且重新思考该平台是否是企业可用的工具。
-
移动设备遗留应用现代化
如果你的企业已经成立超过20年,一定有一些不是为移动而构建的遗留系统。这些系统可能也不是为Web而构建的。那么应该怎么处理这些应用?
-
遇到这样一个问题:通过java service wrapper部署应用,wrapper进程占用的内存会一直升高, 直到把内存吃完应用崩溃,但是这个wrapper
遇到这样一个问题:通过java service wrapper部署应用,wrapper进程占用的内存会一直升高 […]