一、 准备工作
    环境自行配置:
    ubuntu 16.04, nodejs,nginx, jdk, android studio 2.3.3, android sdk等

二、 安装cordova, 请参考cordova官网
三、创建android项目并增加相关插件与配置
    1. 创建项目
    cordova create TestHotCodeUpdate com.test.example
    其中,com.test.example为包名,可以省略使用默认。
    2. 进入TestHotCodeUpdate,增加android平台:
    cordova platform add android
    3. 安装热更新插件
    cordova plugin add cordova-hot-code-push-plugin,然后安装CLI,我是没有安装成功,直接拷贝一个过来的,下载, 密码: eeac
    下载后,放到你的node目录中,因为我的node是手动安装的,具体路径:/usr/local/node-v6.11.4-linux-x64/lib/node_modules,并解压cordova-hot-code-push-cli,将bin中的cordova-hcp软链到/usr/local/node-v6.11.4-linux-x64/bin目录下,再软链到/usr/local/bin/cordova-hcp,这样整个用户均可用。
    4. 修改配置文件config.xml,加入以下配置:

  1. <chcp>
  2.     <config-file url="http://127.0.0.1/cordova-hot-code-push/TestHotCodeUpdate/www/chcp.json"/><!--更新地址-->
  3.     <auto-download enabled="true"/><!--是否自动下载-->
  4.     <auto-install enabled="true"/><!--是否自动更新-->
  5.     <native-interface version="1"/><!--最小版本号,整数-->
  6. </chcp>
    5. 在TestHotCodeUpdate/platforms/android/assets目录下加入配置模板(cordova-hcp.json)内容如下:
  1. {
  2.   "name": "TaskList",
  3.   "update": "start",
  4.   "autogenerated": true,
  5.   "min_native_interface": "1",
  6.   "content_url": "http://127.0.0.1/cordova-hot-code-push/TestHotCodeUpdate/www"
  7. }
    其中,update值:now:有更新则立即更新;start:应用启动时更新(默认);resume:从后台切换返回到应用时更新;本次使用默认配置,我也推荐使用start配置。而且经过测试这三种其实效果是基本一样,都要更新完成后重启应用。配置好后,使用步骤3中的cordova-hcp,进行build (cordova-hcp buil),生成chcp.json(更新配置)与chcp.manifest(文件清单)
     6. 导入android studio
     导入时注意,选择路径为:TestHotCodeUpdate/platforms/android,目录结构如图:
    cordova热更新for android-LMLPHP    
      cordova热更新for android-LMLPHP
将应用部署到android手机或 模拟器中,如上图
四、web服务器搭建
    本文使用的是nginx,如何搭建具体请参考nginx官网 或 中文相关网站
     安装web服务完成后,在nginx根目录创建:~/nginx/html/cordova-hot-code-push/TestHotCodeUpdate 相关目录,并将项目中的www整个目录放到TestHotCodeUpdate目录中

五、如何使用?
    在步骤6时,已经安装好app到模拟器了。此时,我们仅需要修改下www中的页面,并cordova-hcp build,然后将www目录重新放到nigix的TestHotCodeUpdate目录
    我们现在把index.html页面进行修改成经典编程时的

  1. <h1>Hello world!</h1>
然后打开app,下载完成后,再重新打开,此时已经更新好了。如下:
cordova热更新for android-LMLPHP
此方式不能进行永久更新,只能临时更新,也就是如果用户在settings中把应用的缓存数据清空了,又会变成原来的样子。
谢谢,转发请标注出处。


10-29 13:21