cordova-android源代码分析

最近研究了一下cordova的源码,以下是从初始化到载入页面的部分。

从代码看,主activity是下面的MainActivity:


如上图。可以看出此类继承自CordovaActivity父类,这是Cordova自己封装的类。

MainActivity这个类很简单,就只有一个onCreate方法,了解android的就不多说这个方法本身了,现在只看他的内容,主要实现了两个方法:super.init()以及loadUrl(launchUrl)。先看第一个方法,super也就是执行了父类的方法,所以先看这个init方法:


init方法中只有一句,this.init(appView,null,null);this就是调用这个类本身的方法,也就是当前init方法下面的init方法:如上图。

下面这个init方法初始化了很多数据,而且还获取了传来的几个参数,比如"appView"。那么"appView"变量的值是多少呢。其实我们在执行子类的oncreate方法时还执行了一个方法,上面没有提,就是super.onCreate(saveInstanceState);方法。这个方法同样也是执行了父类的方法-----onCreate。所以我们需要先看这个父类方法。如下:


首先看到initConfig()方法,是用来初始化配置参数的。



主要作用是读取config.xml文件,并存储在相应的变量或者Sharedpreference中用于之后的使用。然后是设置标题方法,设置是否全屏等。所以现在再回去看init方法,


其中有初始化载入图片时间以及载入图片名称,初始化appView,最重要的我们看createViews()方法,如下:


注释相信写的也比较明白了,这个也就是cordova的主view界面,主要有个LinearLayout和在其中的webview。这个部分就相当于activity的xml布局了,当然现在还没有数据载入因为这个布局主要是一个webView(当然这里的webview是CordovaWebView)。那么从哪里载入数据呢,我们再回到最初的MainActivity中就可以看到最后一个方法:loadUrl(launchUrl);这就是往webView载入页面的方法。当然这个也是继承自CordovaActivity的方法,所以我们再看这个方法的具体内容:


别的就不谈了,直接进入到CordovaWebView的appView.loadUrlInfoView(url,true);



最后执行了super.loadUrl(url);也就是执行了webView的loadUrl方法。

以上就是cordova载入页面的整个过程,之后再补充插件的内容,这部分涉及js较多。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值