cordova-android源代码分析
来源:互联网 发布:细菌 线粒体 知乎 编辑:程序博客网 时间:2024/05/16 09:43
最近研究了一下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较多。
- cordova-android源代码分析
- Android源代码简要分析
- Android源代码简要分析
- android源代码结构分析
- Android源代码简要分析
- Android源代码简要分析
- Android源代码简要分析
- android源代码结构分析
- Android源代码结构分析
- Android源代码结构分析
- android源代码结构分析
- Android源代码简要分析
- Android源代码结构分析
- Android源代码结构分析
- Android LoginActivity 源代码分析
- Android surfaceflinger 源代码分析
- Android ListView源代码分析
- Android源代码结构分析
- 2012年5月SAT香港真题解析
- Android 开源项目android-open-project解析之(三) ScrollView,TimeView,TipView,FlipView
- XP下Sqlserver2005附加数据库为只读的解决方法
- C++静态成员小结
- sedna进行xquery查询
- cordova-android源代码分析
- 呼叫中心的优化经历
- iOS运行时runtime初探(强制获取并修改私有变量,强制增加及修改私有方法等)
- 学习笔记八:试图利用C++ Primer 13.5节内容分析shared_ptr指针(共享智能指针)
- linux sar命令详解
- linux查看IP地址
- C语言几种经典排序代码
- 利用referer防盗链
- 稀疏矩阵存储格式总结+存储效率对比:COO,CSR,DIA,ELL,HYB