最近在开发一个bbs的安卓和ios的客户端,用的是Cordova + AngularJS + Ionic来开发的。如果直接把整个app run到安卓设别里面的话,就会发现非常的卡,一个比较好的解决办法就是用Crosswalk。
Hybrid app放到安卓设备上运行的话,其实就相当于你的整个app有很多的网页,安卓设备只是浏览这些网页而已。那么如果你直接运行这个无Crosswalk的app的话,使用的浏览器就是手机里面内置的浏览器,所以就会发生很卡的现象,解决办法就是装一个合适的Webview。这样用指定的Webview来浏览的话,就会没有那么卡了,但是实际上哪怕是装了Crosswalk,在流畅度上和原生的还是会有比较明显的差别。
1.官网上下载对应的Crosswalk.
类似我下载的是Cordova Android(ARM) 10.39.235.15这个。下载后直接解压就可以。
2.到对应的目录下信件一个Project
C:\Users\lenovo\crosswalk-cordova-9.38.208.10-arm\bin
比如我是在这个目录下,然后可以直接create helloworld创建一个名为helloworld的工程。
3.把之前写的Crosswalk中的www文件夹复制到helloworld\assets下面并覆盖。
其实这个时候就已经可以运行helloworld\cordova里面的run.bat来把app run到设备里面去了。
但是这个时候用crosswalk生成的程序你会发现你之前用的一些对应的cordova插件全都没有了,这样肯定是不行的。那么我们就需要把之前的一些插件添加进来。
1.首先我们需要下载plugman
用npm install -g plugman很快就能下好。
2.然后到之前的工程目录里面就可以用plugman来添加插件了,官网上给的例子是
$ plugman install --platform android --project . \
--plugin https://git-wip-us.apache.org/repos/asf/cordova-plugin-device-motion.git#r0.2.4
这样就导入了cordova-plugin-device-motion的r0.2.4这个版本的插件。
到这个网站里面
https://git-wip-us.apache.org/repos/asf/
你还能看到好多其他的插件,都可以用上面那个命令clone下来,而且clone下来之后,对应的www下面的cordova_plugins.js和android.json等配置文件全部都是配置好的。是不是很方便呢?
3.其他插件
有一些上面那个网站没有的插件,很多人应该都清楚怎么弄,不过这里还是说一下。比如说我用到的一个com.synconset.cordovaHTTP的插件就是没有的。
那么其实这些插件全都是从git上clone下来的。所以只要直接把插件的名字Google一下,就能找到对应的插件在Github上的位置,就能够下载下来了。同时plugman也能够把配置文件全都配置好。然后再用之前的方法生成app就能看见一个插件完备的app了。