当前位置:操作系统 > 安卓/Android >>

阿里云手机应用开发点滴

 

前些天参与了阿里云手机应用开发,现在应用上线了,也想写一些自己对于云应用开发的一些心得。

 

       云应用开发我理解是以html与js对应与android里的xml与java开发模式的一套映射性质的开发模式。其中很多东西都继承了android开发的理念,比如android里的activity对应了云应用里的page,另外是整个page的生命周期的思想也基本了android的理念。下面就与android对比着来看下云app的开发模式。

 

1、生命周期

 

Js代码 

_package("tuantju.page");  

 

_import("caf.ui.Page");  

_import("caf.mui.ScrollView");  

 

_class("DetailPage", Page, function(){  

      

    this._init = function(){  

        _super._init.call(this);  

        this._scrollview = null;  

    };  

      

    this.create = function(parent){  

        var obj = this.createTplElement(parent, "detail.xml");  

        this.init(obj);  

        return obj;  

    };  

      

      

    this.reset = function(params){  

 

        //TODO  

 

    };  

      

    this.init = function(){  

        _super.init.apply(this, arguments);  

        this.initComponents();  

        this.initActionElements();  

    };  

      

      

    this.dispose = function(){  

        _super.dispose.apply(this);  

        this._scrollview.dispose();  

        this._scrollview = null;  

    };  

      

}); 

 

_package("tuantju.page");

 

_import("caf.ui.Page");

_import("caf.mui.ScrollView");

 

_class("DetailPage", Page, function(){

      

       this._init = function(){

              _super._init.call(this);

           this._scrollview = null;

       };

      

       this.create = function(parent){

              var obj = this.createTplElement(parent, "detail.xml");

              this.init(obj);

              return obj;

       };

      

      

       this.reset = function(params){

 

              //TODO

 

       };

      

       this.init = function(){

              _super.init.apply(this, arguments);

              this.initComponents();

              this.initActionElements();

       };

      

      

       this.dispose = function(){

              _super.dispose.apply(this);

              this._scrollview.dispose();

              this._scrollview = null;

       };

      

});  

 

我们按照android的生命周期来解析下云应用的生命周期,我们可以有差不多下面的这么一张状态映射表:

 

 

 

Android 云应用
onCreate this.create
onStart this.init
onResume this.reset
onStop

this.dispose

 

 

 

 

 

 

当然android的只是部分的生命周期,列出来的是对应云应用的一些状态。整个生命周期是从create开始的,跟android一样云app中在create方法中通常都是进行page类与相应的html模板匹配工作,类似与android的setContentView(R.layout.main)云中也是this.createTplElement(parent, "detail.xml"),继续进入init的话则是当用户跳转page时做的,其实在

 

创建page的实体,所谓创建实体就是如下图:

 

\
 

 

      在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、跳转方式

 

       下面来对比看一下跳转。

 

 

 

Java代码 

Intent it = new Intent();  

it.putExtra("accountStr", accountEtStr);  

it.putExtra("passwordStr", passwordEtStr)

补充:移动开发 , Android ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,