基于chromium for android开发Android浏览器

基于chromium for android开发Android浏览器在上一篇文章<>中谈到了Google已经完全开源了ChromiumforAndroid,这样我们就完全可以开发与ChromeforAndroid媲美的Android浏览器了。通常浏览器的一些新特性和新功能会先出现在ChromiumforAndroid上,稳定后才会出现在ChromeforAndroid上,如果我们基于Chromiu

大家好,又见面了,我是你们的朋友全栈君。

在上一篇文章<< Chromium for Android开源了 >>中谈到了Google已经完全开源了Chromium for Android,这样我们就完全可以开发与Chrome for Android媲美的Android浏览器了。通常浏览器的一些新特性和新功能会先出现在Chromium for Android上,稳定后才会出现在Chrome for Android上,如果我们基于Chromium for Android开发浏览器产品,在新特性和新功能方面不会落后于Chrome浏览器.

Chromium开源项目的代码及其庞大,也相当的复杂。对于Android开发人员,特别是UI开发人员来说,没有一个合适的IDE环境,会是一个非常痛苦的事情。我们通常是这样开发的,在sublime text中阅读、修改代码,使用chromium的构建系统build出apk,安装到手机,进行调试。对于native代码来说,这样的开发方式也不会有太多麻烦,因为native部分的代码通常修改很少。但如果主要进行UI的定制,这种开发方式就非常痛苦了。

为了应对这个问题,考虑如下方案:

  1. 采用Android Studio作为开发环境,从Chromium for Android抽取chrome模块的源码,加入Android project。
  2. native代码在chromium环境中build,作为so加入Android project
  3. 基础模块(base, content, net等)在chromium环境build为jar包,加入Android project
  4. content, chrome, ui等模块的资源文件加入Android library project

资源文件为什么不能直接都添加到Android project呢?因为命名空间的原因,比如content模块的资源的命名空间为org.chromium.content, chrome模块的资源的命名空间为org.chromium.chrome,所以需要建立不同的Android library project, 指定不同的包名。最后整个项目的结构如下:

browser
  |_ app
  | |_ libs
  | |_ src
  | |_ main
  | |_ aidl
  | |_ assets
  | |_ java
  | |_ jniLibs
  | |_ res
  |_ libraries
       |_ androidmedia_res
       |_ chrome_res
       |_ content_res
       |_ datausagechart_res
       |_ ui_res

注意事项:

  1. chromium项目的源码和资源有些是自动生成的,需要到out目录下去复制
  2. pak和dat等文件需要加入到assets目录,而且不能压缩
  3. aidl文件加入到main/aidl下,android studio会自动处理

实践证明,这种方案是行之有效的,请参考github上的项目: 365browser。在script目录下有从chromium项目同步代码和资源的脚本。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/146479.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • eclipse设置系统字体

    eclipse设置系统字体

    2022年2月1日
    52
  • 【第01题】A + B | 基础输入输出,开启学习C语言打卡的序章

    【第01题】A + B | 基础输入输出,开启学习C语言打卡的序章难度:★☆☆☆☆,开启学习C语言打卡的序章

    2022年7月24日
    8
  • python编写简单网页_python制作动态数据图

    python编写简单网页_python制作动态数据图Django项目是一个定制的框架,可以和Python一起相结合制作网页。Django框架是用于创建模型的对象关系映射,也是为最终用户设计完美的管理界面。学习python语言的朋友可能尝试过用Django做一个网站,有的朋友可能会用bootstrap的CSS库来做,事实上做的还挺好看的。本文给大家介绍的是一个简单的网页制作,利用pythonDjango来做的,下面我们一起来看看吧。1、创建一个d…

    2022年10月13日
    4
  • 操作系统知识整理 – 进程控制块

    操作系统知识整理 – 进程控制块前提系统中需要有描述进程存在和能够反映其变化的物理实体,即进程的静态描述。进程的静态描述由3部分组成:进程控制块(ProcessControlBlock,PCB),有关程序段和该程序段操作的数据结构集。PCB是系统感知进程的唯一实体,用于描述进程的当前情况以及管理进程运行的全部信息,是操作系统中最重要的记录型数据结构。程序段以及数据结构集是进程完成所需功能的物质基础。一个进…

    2025年6月25日
    3
  • POJ 2486 Apple Tree ( 树型DP )

    POJ 2486 Apple Tree ( 树型DP )

    2022年1月26日
    43
  • 一个软件完整的开发流程介绍

    一个软件完整的开发流程介绍刚开始写博文的时候就应该将这个文章更新一下,虽然不是什么大牛,但是对于软件的开发流程还是比较了解的,毕竟大大小小做过了好几个项目了,今天就大概的说一下,用我做过的一个项目来说吧,写的不好的,请多多见谅,毕竟小生不才。开发流程百度的解释是:不是我懒得写,而是觉得写出来也不是自己的,还不如直接告诉你们我是百度的概念…但是下面的我们就不要百度了,因为百度说的太专业,让你看了很烦,最起码我是很烦(都是…

    2022年7月16日
    24

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号