Android浏览器兼容问题


         因为公司的手机项目采用混合开发模式,使用了sencha touch的js框架,不同的手机平台对此的兼容方面有些差异,公司指派我来解决这个问题。首先分析下问题的原因在什么地方,如果我们使用sdk提供的webivew加载html文件是调用的系统内置的webkit来解析渲染页面。而不同手机生产厂商对浏览器有些定制,因此造成兼容方面的差异,如果我们能使用自己的浏览器内核去解析,这个问题也就解决了。好在google有个chromium的开源项目可以利用,在android4.4系统中,google已经将基于webkit的webview实现换成了基于chromium的webview实现也就是说如果大家都使用android4.4的系统也就不存在兼容的问题,但是必竟还是有许多其他低版本的手机存在,而且手机厂商都会进行一些定制,所以还是要靠在项目中来解决这个问题。

        为了验证chromium确实能在不同手机上跑通sencha touch(在测试的时候也就小米手机不能执行),我首先对chromium项目进行了编译,生成了apk文件。怎么来做呢,google公司的网站上其实有步骤了,不过全是英文(事实说明英文对于一个程序猿真的很重要,自己平时还要多学些专业的英语,不能只是能看懂文档)。

     http://www.chromium.org/Home   这是google chromium项目的网址,按着上面的步骤来就能成功编译了,不过国内去下载源码真心慢啊,得有些耐心。

      我使用的是ubuntu,所以下面的步骤都是按照在Linux系统的步骤进行的。

一:首先是要获取源码,google有一套自己的源码管理,所以要先安装一些工具才可以。既然是开源项目,那么你也就可以对源码进行修改,而且也可以提交给google,在这儿google要求提交者要有一个svn账号。我只是要下载下来进行编译,所以这一步略过。

     1.安装git版本控制工具(linus大神的两大成就之一,膜拜)。Linux系统直接一条命令搞定:sudo apt-get install git

     2.安装depot_tools,同样很简单:git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git 然后配置环境变量  打开用户的配置文件 vi .profile  添上这么一句:$ export PATH="$PATH":`pwd`/depot_tools保存,这里的pwd就是你下载好的depot_tools的路径。

  3.在下载好的depot_tools中有下载chromium源码的脚本文件,只需要运行其中的命令就可以下载啦。 

    在命令行中输入这条语句  fetch android --nosvn=True   然后你就可以看到开始下载了,你要做的就是等待。
 4.下载成功以后:会在你的当前目录,也就是你执行下载命令时所在的目录下生成一个src文件
   cd src
  ./build/install-build-deps-android.sh
二:准备编译
   编译之前需要执行

配置GYP

   echo "{ 'GYP_DEFINES': 'OS=android', }" > chromium.gyp_env
   然后要确保你已经安装好了jdk,并且配置好了环境变量。在Linux系统下执行
    sudo apt-get install openjdk-7-jdk
默认安装的是open-jdk,
如果你想安装oracle jdk,可以执行下面的命令
   
sudo apt-get install python-software-properties
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer
然后执
java -version

你会看到下面的信息:

java version "1.8.0"
Java(TM) SE Runtime Environment (build 1.8.0-b132)
Java HotSpot(TM) 64-Bit Server VM (build 25.0-b70, mixed mode)
这就说明你已经安装成功了。
open jdk和oracle jdk有什么异同呢,网上介绍的很多,这里就不介绍了,想了解的可以google去(做一个环保的程序猿,请从拒用百度开始偷笑
现在就可以来进行编译了
~/chromium/src$ ninja -C out/Release android_webview_apk
这里我是对android的webview进行实验,所以编译了这个版本,google的网站还有其他两个版本的编译,我没有实验,感兴趣的可以自行编译出来看看。
编译过程也十分缓慢,实在不想等,可以出去转转。编译好之后,会out/Release/Android_webview_apk/下生成一个
AndroidWebView.apk
的apk文件.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值