在前面的两篇文章中,分别介绍了如何下载Google Chromium源码。以及编译Android版本的chromium浏览器。

-------------------------------------------------------------------------------------------------------------

准备知识

在实际的开发中,如果直接在chrome的源码上修改代码,既费时也费力,在github找了一个可以直接用 Android studio 编辑调试的chrome的代码,见:Chromium-Android。可以直接在Android studio中打开这个工程,可以直接编译通过,在华为手机(Android 8.1版本)上运行没问题。

github上有另外一个Android版本的chromium,但是版本比较老,可以参考一下,AndroidChromium

以及几个是感觉不错的参考文档。

chromium 的开发人员文档

Chromium docs

the Chromium build system supports Android app bundles

github版本的chromium源码,这个源码之能用来查看学习,不能用来编译,因为下载到本地编译时会缺少库文件,

Chrome Custom Tabs, 这个例子值得学习,该网站上提供的例子,在APP中直接调用chrome浏览器的内核,但是具体怎么实现的现在还不清楚。

----------------------------------------------------------------------------------------------------------------------

开始定制

需求

(1)将Chromium编译成一个Android app程序,打开后,默认为指定的网站,没有工具栏,没有地址框,也没有第一次运行的开始使用界面。

(2)打包成app发布在应用市场,需要修改包名,修改app名称,修改版本号,打包签名。

(3)默认打包好的chromium是不能播放mp4格式视频的,解决这个bug。

修改步骤

(1)修改包名

文件:chrome/android/BUILD.gnmanifest_package = "org.chromium.chrome"
test_manifest_package = "org.chromium.chrome.tests"

(2)修改版本号

文件:chrome/android/java/AndroidManifest.xmlandroid:versionCode="1"
android:versionName="0.1.0"

这里需要说明的是:修改版本号的最正确的方法是在文件:chrome/VERSION  文件中,修改这个文件后,整个chromium的版本号都变了,但是这在编译的时候会出错,查找了一下,也没有找到原因,而且看Brave(chromium浏览器的变体)的版本号也只是修改了app的外层版本号,其内的版本号还是chromium的版本号。

----------------------------------
(3)去掉工具栏,地址框等。
chrome/android/java/res/layout/control_container.xml
chrome/android/java/res/values-sw600dp/dimens.xml
chrome/android/java/res/values/dimens.xml---------------------------
(4)屏蔽第一次使用的界面
chrome/android/java/res/layout/account_signin_view.xml
chrome/android/java/res/layout/fre_data_reduction_proxy.xml
chrome/android/java/res/layout/fre_tosanduma.xml
chrome/android/java/src/org/chromium/chrome/browser/firstrun/AccountFirstRunFragment.java
chrome/android/java/src/org/chromium/chrome/browser/firstrun/DataReductionProxyFirstRunFragment.java
chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAndUMAFirstRunFragment.java
---------------------------------------(5)修改app的logo
chrome/android/java/res/mipmap-XX 等
chrome/android/java/res_chromium/drawable-XX 等(6)修改app名字
文件:chrome/android/java/res_chromium/values/channel_constants.xml(7)修改首页地址
文件:chrome/android/java/src/org/chromium/chrome/browser/UrlConstants.java

在编译Android版本的chromium浏览器文章中给的args.gn文件的配置是默认的配置,这个版本是不能播放mp4的视频的,但是可与播放youtube的视频,当初猜到了是视频解码的问题,MP4的视频解码是h264,因此重新执行命令:gn args out/Default,并配置如下:

# args.gn文件
target_os = "android"
target_cpu = "arm"
enable_remoting = false
is_debug = false
is_official_build = true
is_component_build = false
use_official_google_api_keys = false
enable_resource_whitelist_generation = false
enable_nacl = false
remove_webcore_debug_symbols = false
proprietary_codecs = true
ffmpeg_branding = "Chrome"
android_channel = "stable"#解决不能播放MP4格式的视频问题
use_openh264=true chrome_pgo_phase=0 full_wpo_on_official=true
#rtc_initialize_ffmpeg = true
rtc_use_h264  = true#解决签名的问题
android_keystore_name = "hello"
android_keystore_password = "hello"
android_keystore_path = "//build/android/hello-app.jks"

附言

这个文章是近两个月的收获,希望能给大家来点干活,编译chromium浏览器,遇到了很多问题,但最后都一一解决了。

最后贴几个很有用的网站:

bromite浏览器,这个浏览器是chromium的另一个变体,并开源了编译这个浏览器的步骤,并且给了 args.gn 文件。我按照参考完全编译了一遍,是可行的。

7 Best Chromium Browsers for Android (2018),这个网站给出了7个最好用的chromium变体浏览器,如果想修改chromium,可以参考这几个,但不知道是否都是开源的。

定制Android版本的chromium之笔记相关推荐

  1. 深入浅出 - Android系统移植与平台开发(十)- Android编译系统与定制Android平台系统(瘋耔修改篇二)...

    第四章.Android编译系统与定制Android平台系统 4.1Android编译系统 Android的源码由几十万个文件构成,这些文件之间有的相互依赖,有的又相互独立,它们按功能或类型又被放到不同 ...

  2. amigo3.1 android版本,【金立E8评测】amigo OS 3.1体验再升级_金立 E8_手机评测-中关村在线...

    在系统方面,金立E8采用了全新的amigo OS 3.1版本,相比此前的amigo OS 3.0有提升了一个小版本,并且其Android版本也由此前的5.0提升至5.1,而且因为金立E8本身采用了64 ...

  3. 内部版本号android,分享个老教程:修改手机型号、品牌、内部版本号、Android版本...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 支持中文任你改手机型号.品牌.内部版本号.Android版本 首先你需要有一台root过的机器以及re管理器 打开re管理器,进入system文件夹.然后 ...

  4. 国内定制android系统吗,同样都是基于Android系统 国产定制系统差异有多大?

    目前国产手机的操作系统都是基于谷歌的Android系统深度定制的,每个厂商在进行定制时便产生了差异,也有了自家的特色功能.现在笔者手上就有荣耀V10和vivo Z3两款手机,所以今天就给大家带来这两款 ...

  5. 深入浅出 - Android系统移植与平台开发(十)- Android编译系统与定制Android平台系统

    第四章.Android编译系统与定制Android平台系统 4.1Android编译系统 Android的源码由几十万个文件构成,这些文件之间有的相互依赖,有的又相互独立,它们按功能或类型又被放到不同 ...

  6. webrtc android web,WebRTC Android版本编译

    本文简单介绍如何在Ubuntu18.04 上,编译WebRTC Android版本. 安装工具 需要用到dept_tools工具来下载webrtc源码. 安装 depot_tools git 命令获取 ...

  7. Android群英传神兵利器读书笔记——第三章:Android Studio奇技淫巧

    Android群英传神兵利器读书笔记--第三章:Android Studio奇技淫巧 这篇文章篇幅较长,可以使用版权声明下面的目录,找到感兴趣的进行阅读 目录 3.1 Android Studio使用 ...

  8. android版本360ui,国产手机UI系统有哪些

    国产手机UI系统有哪些 UI系统的用户体验.生态系统的建立等"软实力"将是移动终端厂商的主战场,拥有生态系统的厂商才能掌握主动.那么,都有国产手机UI系统?下面就和jy135小编一 ...

  9. Android版本特性

    Android每个版本特性 Android 4.4 webview的变化 4.4版本以后对http与https进行了安全认证的区分,4.4以后默认不支持https这种方式,但是提供了三种向下兼容的模式 ...

最新文章

  1. Vue 组件库 HeyUI@1.16.0 更新日志
  2. 第01章 初识Mysql
  3. linux线程调度函数,Linux调度策略及线程优先级设置
  4. 帝国cms模板仿古筝培训网站
  5. python模拟session_python使用requests.session模拟登录
  6. java对象的我可变属性,不可变对象的所有属性都必须是最终的吗?
  7. Java 8 新特性 Stream类的collect方法
  8. 四张类图理一下Streams的用法
  9. CMDN Club每周精选(第2期)
  10. 苹果mp3软件_flac、WAV、m4a等音频格式转成MP3 ,一键搞定!
  11. 计算机自动重启快捷键,待机和重启电脑的快捷键
  12. python调用dll文件
  13. 百度统计、谷歌统计原理以及自定义统计源码
  14. html广告倒计时代码,jquery实现可关闭的倒计时广告特效代码
  15. 凯撒移位密码python_凯撒密码python拓展程序
  16. 4.默认参数,不定参数,扩展参数
  17. 不知道怎么建设企业文化?这里有个案例给你!
  18. 利用ffmpeg 把.mp4转换为.flv
  19. 工业交换机的工作原理
  20. Dism 错误: 1450

热门文章

  1. 详解证券经纪业务流程
  2. 警惕黑客通过注入iFrame分离器以窃取支付数据
  3. 标题 穿越雷区 java_标题:穿越雷区
  4. HTML5实现一个时钟动画
  5. 从红帽官网下载redhat企业版系统镜像
  6. qu32调音台说明书_ALLEN-HEATH QU 系列数字调音台Qu16、Qu24、Qu32功能介绍
  7. 【云计算小知识】什么是云计算?云计算特点是什么?
  8. 【C++要笑着学】list 常用接口介绍 | 支持任意位置O(1)插入删除的顺序容器 list
  9. 北邮计科院导师简况2009-09-27 14:13:38
  10. SWIFT,国际清算与数字人民币