文章目录
混合开发模式的背景
APP的三种开发模式:Native App、 Web App、Hybrid App。
一、 Hybrid App
乍一看和Web App没啥差别,但涉及到的技术成本、开发成本、学习成本比Web
App高,它综合了Web App的开发速度和Native App的高性能体验。
App按网页语言与程序语言的混合,通常分为三种类型:多View混合型,单View混合型,Web主体
(1)多View混合型
即Native View和Web View独立展示,交替出现。2012年常见的Hybrid App是Native View与WebView交替的场景出现。这种应用混合逻辑相对简单。即在需要的时候,将WebView当成一个独立的View(Activity)运行起来,在WebView内完成相关的展示操作。这种移动应用主体通常是Native App,Web技术只是起到补充作用。开发难度和Native App基本相当。
(2)单View混合型
即在同一个View内,同时包括Native View和Web View。互相之间是覆盖(层叠)的关系。这种Hybrid App的开发成本较高,开发难度较大,但是体验较好。如百度搜索为代表的单View混合型移动应用,既可以实现充分的灵活性,又能实现较好的用户体验。
(3)Web主体型
即移动应用的主体是Web View,主要以网页语言编写,穿插Native功能的Hybrid
App开发类型。这种类型开发的移动应用体验相对而言存在缺陷,但整体开发难度大幅降低,并且基本可以实现跨平台。
从分析可见,Hybrid App中的Web主体型只要能够解决用户体验差的问题,就可以变成最佳Hybrid App解决方案类型,而这也是目前最难解决的问题。
Cordova(科尔多瓦)是一款Apache的开源移动开发平台。目前已经将核心代码贡献给Apache cordova,它是基于HTML,CSS和JavaScript的,可以使用一些开源的框架比如jQuery Mobile,Dojo Mobile,Sencha Touch等等来提高用户体验,也提供了比较丰富的原生插件调用。
特性
1.代码开源,开发者可以放心使用。
2.兼容性,一次开发,多处运行。
3.使用JS+HTML5,成本低。
优点:
- Native接口比较丰富,通过封装的API可以直接访问硬件,比如说加速,相机,指南针,GPS,文件访问等。
2.接口文档描述非常详细。(https://github.com/xu-li/cordova-plugin-wechat
例子)
3.支持平台多,包括iOS,Android,Blackberry,Symbian,bada,Windows Phone
7,Windows Phone 8 等。
缺点:
1.需要针对相应的平台环境配置,进行编译,打包测试,发布等等。由于使用Hybrid开发的用户群,需要对各个平台的开发都要需要了解,对硬件等等都要配置,加大开发成本。
2.使用效果启动慢,页面切换响应慢,数据请求慢。
3.因为是国外的框架,技术支持不够到位,出现问题,无法排解,成为技术攻关的难点。
cordova 安装使用
1.安装 nodejs
2.安装 cordova
打开cmd命令行,执行:npm install -g cordova
创建App
创建cordova项目
cordova create hello com.example.hello HelloWorld
添加平台
后续的命令都需要在cordova工程目录下进行,所以先进到工程根目录
cd hello
添加目标平台,以下命令行添加了ios和Android平台,并保存到根目录下的config.xml配置文件中
cordova platform add ios --save
cordova platform add android --save
通过以下命令查看自己添加的平台
Cordova platform list
Cordova platform add 平台
Cordova platform remove 平台
cordova-plugin-badge
cordova-plugin-badge
对应平台环境搭建
打包,编译和运行app,需要搭建各个平台的开发和运行环境,如果只是开发前端项目无需各平台环境。
讲一下android 平台的环境搭建,附上android-studio的下载链接(http://www.android-studio.org/) 傻瓜式安装,一直点击,不要额外下载SDK,android-studio 安装完成后让其自动下载SDK,android-studio是JAVA代码,需要为其配置JAVA JDK,下载链接(https://www.oracle.com/technetwork/cn/java/javase/downloads/jdk8-downloads-2133151-zhs.html)注意:版本为1.8,不要下载最新版,这里附上环境变量的配置方法的地址(https://www.cnblogs.com/cnwutianhao/p/5487758.html)。
前端开发完成后,要进行APP打包流程,
Cordova plugin list 查看工程安装的插件
Cordova plugin add 插件名
Cordova plugin remove 插件名
打包命令:
Cordova build android
Cordova run android
这是打的开发模式包,假如需要打正式包还需要对APP进行签名,
使用Java自带的keytool工具,生成keystore文件。
打开cmd命令行工具,把当前目录设置成 java安装目录/bin
使用keytool工具。
我要生成的keystore文件叫做 MyFirstTest.keystore ;
为了便于记忆和书写,我给它想了一个别名叫做 MyKeystore ;
我希望它的有效期是1000天。
于是,我输入如下的命令:
keytool -genkey -v -keyalg RSA -keystore MyFirstTest.keystore -alias MyKeystore -validity 1000
然后根据提示一步步往下走就可以了,
这样就生成了keystore文件了,
keytool -importkeystore -srckeystore ./gcjx_debug.keystore -destkeystore ./gcjx_debug.keystore -deststoretype pkcs12
这个命令是对秘钥文件转类型,
接下来就可以用这个文件去打正式的发布包了。