阿里云手机应用开发点滴
前些天参与了阿里云手机应用开发,现在应用上线了,也想写一些自己对于云应用开发的一些心得。
云应用开发我理解是以html与js对应与android里的xml与java开发模式的一套映射性质的开发模式。其中很多东西都继承了android开发的理念,比如android里的activity对应了云应用里的page,另外是整个page的生命周期的思想也基本了android的理念。下面就与android对比着来看下云app的开发模式。
?
1、生命周期
?
?在app容器内部插入一个关于当前pageid的div,云app的编程模式虽然与android有很大类似,但实现的方式却是完全不一样的。android是通过线程类切换的方式来组织activity的,而云app是通过类似于对singlepage的html写入模板来组织切换的。当init的时候平台会插入一个div并初始化里面的一些容器和动作监听器类似的。并将它显示到用户可视范围。这和android也有异曲同工之处,android的可视周期也是从onStart开始到onDestory进程销毁结束的,但不同的是云app并没有类似与onDestory的机制,只有类似与onStop的dispose方法类实现,当一个page离开用户视觉范围平台为调用这个方法,但不会对于容器这个div进行销毁,另外类似与android的onResume在云app中则是reset这个方法,按照android的onResume形式这个reset方法是在page第一次初始化的时候跟在init之后调用的,另外当page切换回来的时候也会调用的,所以其实这个方法是page内部方法中比较关键的方法。因为跳转时候的page的参数传递都是需要靠这个方法来接受并处理的。?
2、跳转方式
下面来对比看一下跳转。
?
?而在对应的page类中增加以do_为前缀的action响应事件方法。这个_action默认只对于a和button标签有效。
?
?再这样声明:
?
this.initActionElements(this._self, this, ['li']);这样就对li这个标签action有效化了,另外还有如果是动态的载入DOM节点,上面的action是不起效果的,需要在动态载入后重新执行一下initActionElements这个方法。
?
先写到这儿,云app开发其实还是很快的,对于开发功能性的app开发时间较java的android开发时间会缩短很多。开发效率也是非常高的,这种手机端利用js来mvc式的开发应用感觉还是不错的,但是现在平台限制比较大,只是适用于阿里云平台,这点有点局限性,如果平台方面能开发出一个在普通android下运行云app的apk平台,那将是很好的应用啊~另外感觉可以将caf这个框架和phonegap这种本地应用框架api结合弄出一个新的mvc式的框架,毕竟phonegap只是提供与本地的挂接并没有将里面的东西进行mvc化模式的应用,这方面还是有的搞搞的~~写的不好,不足的还请大伙拍砖
?