在
http://rensanning.iteye.com/blog/2020843已经介绍过通过Cordova CLI创建Cordova工程。
Cordova生成的Android工程主要来自于以下目录:
引用
C:\Documents and Settings\RenSanNing\.cordova\lib\android\cordova\3.4.0\bin\templates\project
其中所用的CordovaLib来自于以下目录:
引用
C:\Documents and Settings\RenSanNing\.cordova\lib\android\cordova\3.4.0\framework
从Cordova 3.3.0以后,方便调试,CordovaLib的提供形式从jar文件变成了Android Library。
参考:
https://issues.apache.org/jira/browse/CB-5232
CordovaLib中的代码主要包括:
com.squareup.okhttp:
导入HTTP+SPDY客户端的OkHTTP,获取网络资源。
org.apache.cordova:
剩下的所有代码都在该包下(以前还有过org.apache.cordova.api)
基础类:
- CordovaInterface.java CordovaActivity的接口(使plugin不依赖CordovaLib更独立)
- CordovaActivity.java 应用的主Activity需要继承自该类。
- Config.java 解析config.xml
- Whitelist.java 白名单列表
- LinearLayoutSoftKeyboardDetect.java 布局(检测软键盘)
Webview相关:
- CordovaWebView.java 核心Webview类
- CordovaWebViewClient.java 捕获Webview事件回调(2.x版本没有WebResourceResponse)
- IceCreamCordovaWebViewClient.java 在3.x、4.x版本中拦截网页中资源请求,比如js,css,img,ajax
- CordovaChromeClient.java 捕获JavaScript事件,其中onJsPrompt() 对应2.3模拟器的交互Bug
- AuthenticationToken.java Http请求的认证
- ScrollEvent.java 回传onScrollChanged事件坐标
- CordovaResourceApi.java 获取资源
Plugin相关:
- PluginManager.java 插件管理
- PluginEntry.java 插件实体
- CordovaPlugin.java Plugin的基类
- CordovaArgs.java 接收JSON参数
- PluginResult.java 执行结果
- CallbackContext.java 通过sendPluginResult回传结果
- ExposedJsApi.java JS桥接
- NativeToJsMessageQueue.java 回传结果的消息队列
无用类:
- DirectoryManager.java 3.1开始@Deprecated,移动了file的plugin中
- ExifHelper.java 3.1开始@Deprecated,移动了camera的plugin中
- FileHelper.java 3.1开始@Deprecated,移动了camera和file的plugin中
- JSONUtils.java 3.1开始@Deprecated,无用类
- DroidGap.java 2.7开始@Deprecated,DroidGap.java名字太难听,改成了CordovaActivity。参考:https://issues.apache.org/jira/browse/CB-2657
****这些文件中有些Java文件已经不再建议使用,在未来的某个版本将会被删除!!!
其他:
- App.java 清缓存、loadUrl、退出程序等的plugin(以后会被单做成一个plugin)
- LOG.java 日志util
Android WebView由于版本的问题,存在很多局限和Bug,而Android 4.4开始默认搭载Google的最新渲染引擎Blink/Chromium。
①
ChromeView使用Chromium代替WebView的一个实现,也有
cordova-android-chromeview,不过更新比较慢。
②
Intel Crosswalk构建于Chromium之上,提供更加丰富的功能。同时提供了
crosswalk-cordova-android。
使用以上2中解决方案都能改善Webview的问题,但是同时你的apk文件的大小将增加20M左右。
程序入口:
public class CordovaSample extends CordovaActivity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
// 读取config.xml,设置UI
super.onCreate(savedInstanceState);
// 初始化Webview后添加到UI中
super.init();
// 加载首页file:///android_asset/www/index.html
// 其中index.html是在config.xml中配置的。
super.loadUrl(Config.getStartUrl());
}
}
启动序列图:
Plugin序列图:
- 大小: 8.8 KB
- 大小: 129.5 KB
- 大小: 104 KB
分享到:
相关推荐
NULL 博文链接:https://rensanning.iteye.com/blog/2047322
NULL 博文链接:https://rensanning.iteye.com/blog/2072034
实实在在经过ant编译的cordova-2.9.1.jar 而不是有些人坑蒙拐骗的rar文件
NULL 博文链接:https://rensanning.iteye.com/blog/2023480
热更新时,我们执行命令 npm install -g cordova-hot-code-push-cli安装插件,但运行cordova-hcp server会报错,如:Could not create tunnel: { Error: ngrok is not yet ready to start tunnels...,这时我们找到...
cordova扫码插件phonegap-plugin-barcodescanner,修复了在ios10上面的内存泄漏导致的闪退bug
Cordova 3.x(aka PhoneGap)的基础知识、实用插件、源码分析、实例开发。
cordova-plugin-app-update App updater for Cordova/PhoneGap Demo Try it yourself: Just clone and install this demo. cordova-plugin-app-update-DEMO :tada: 如果喜欢它,请别忘了给我一颗鼓励的星 Support ...
启动cordova-hcp server报错 Could not create tunnel: { Error: ngrok is not yet ready to start tunnels 时,将路径 下的cordova-hot-code-push-cli文件下用下载的文件替换就可以了
NULL 博文链接:https://rensanning.iteye.com/blog/2021619
记录了我安全完成cordova工具后,用它生成apk的过程记录
NULL 博文链接:https://rensanning.iteye.com/blog/2029362
NULL 博文链接:https://rensanning.iteye.com/blog/2163892
NULL 博文链接:https://rensanning.iteye.com/blog/2034061
cordova-plugin-firebase-analytics, 用于Firebase分析的Cordova插件 cordova-plugin-firebase-analytics Firebase分析插件的Cordova插件。安装cordova plugin add cordova-plugin-firebase-analyti
最新的cordova-js版本
Ionic3.x+、Angular4.x+ Cordova 介 绍以及Ionic3.x+环境搭建 一、Ionic 介绍............................................................................................................................1 二...