[chromium][browser][idea][closed] 如何从android4.4.2的chromium_org中编译出chrome_shell_apk
来源:互联网 发布:oracle 索引优化原则 编辑:程序博客网 时间:2024/06/08 07:15
以android4.4.2为例:
1. 环境准备
1)首先ubuntu上需要有Android4.4.2代码,最好是全编通过的
2)同时需要chromium的编译环境,以及chromium的整套代码,确保编译通过
3)把Android4.4.2代码中cp出一份Chromium_org代码,准备编译
2.开始编译
1) . build/android/envsetup.sh
发现缺少toolchains的内容,从chromium工程中拷贝过来一份third_party/android_tools
2)再次执行. build/android/envsetup.sh , 可能会提示需要ORACLE的JDK,安装并修改PATCH, 再次执行. build/android/envsetup.sh 成功
3) 执行 android_gpy ,这时候会出现缺少thirdparty的情况,如下面的错误
gyp: /home/dopi/chromium_from_android4.4.2/third_party/libjpeg_turbo/libjpeg.gyp not found (cwd: /home/dopi/chromium_from_android4.4.2) while loading dependencies of /home/dopi/chromium_from_android4.4.2/ui/ui.gyp while loading dependencies of /home/dopi/chromium_from_android4.4.2/media/media.gyp while loading dependencies of /home/dopi/chromium_from_android4.4.2/content/content.gyp while loading dependencies of /home/dopi/chromium_from_android4.4.2/build/all_android.gyp while trying to load /home/dopi/chromium_from_android4.4.2/build/all_android.gyp
从chromium 根目录拷贝breakpad
从chromium 的third_party代码中拷贝 libjpeg_turbo 、openmax_dl、libsrtp、webrtc、 libyuv、libvpx、trace-viewer、hunspell、speex
替换third_party的jsr-305、guava、cacheinvalidation
注:如果碰到name 'target_subarch' is not defined时说明第三方库已经有64位的配置,但是主干gpy中还没有,修改第三方的gyp文件
4)接下来就开始编译了,试试 chrome_shell_apk
ninja: error: unknown target 'chrome_shell_apk'
版本太老,不认识chrome_shell_apk, build\all_android.gyp中可以查看对应target
5) ninja -C out/Release/ chromium_testshell
这里发现还缺少部分third_party的代码
替换third_party的sfntly 、snappy、expat/files/lib、ashmem、lss等代码
跳出总编译代码12189,总算开始编了
6)编译过程中出错
../../third_party/webrtc/modules/audio_coding/neteq4/audio_classifier.h:18:22: fatal error: analysis.h: No such file or directory
替换third_party的opus、libjingle、usrsctp代码,
需要重新android_gyp,然后再编译
但是jingle内容有编译错误
7)这样下去把Android4.4.2的根目录代码替换可不是我的本意,需要转变思路,
先把WebRTC删除(如何删除另一文章中再写)
把根目录的jingle和third_party的libjingle换回来
8)content\public\android\java\res\values\attrs.xml 文件头不对
9) 再修改ui/compositor/ui\compositor\compositor.cc 错误
10)修改third_party\WebKit\Source\core\platform\graphics\chromium\FontCacheAndroid.cpp ,把locale参数去掉
编译成功
- [chromium][browser][idea][closed] 如何从android4.4.2的chromium_org中编译出chrome_shell_apk
- [chromium][browser][idea][closed]如何从android的chromium_org中直接编译出android_webview_apk
- [chromium][browser][idea][closed] 可独立安装的Android4.4.2 Browser + AwContent(soft canvas方式)
- [chromium][browser][idea][closed]可独立安装的Android4.4.2 Browser + AwContent(SurfaceView方式 高性能模式)
- [chromium][browser][bug][closed] 编译出来的browser在Android4.1版本运行异常
- [chromium][browser][idea][closed] 如何把Chromium_testshell导到 eclipse工程中
- [chromium][browser][idea][closed]把Android Browser导入Eclipse中运行调试
- [chromium][browser][idea][closed] Part2 : 把渲染模式改成SurfaceView方式 + java端的改动
- [chromium] Android中替换chromium_org中的skia库的方法
- [chromium][browser][idea][open] 如何重写自己的android.provider.Browser
- [chromium][browser][idea][closed] Part1 : 把AwContent和Chrome_shell编译成一个so
- [chromium][browser] [bug][closed] 长按页面中图片和链接,没有弹出菜单
- Android4.4 chromium_org研究报告
- 如何编译Chromium content_shell_apk
- Linux中编译Chromium
- android 中chromium_org模块打log的方法
- 关于chromium中几个类的类图:class-diagram-webkit-webcore-to-chrome-browser
- 从源码编译cef-chromium的正确步骤
- instancetype 对比 id 的好处。
- ASP.NET 页面动态添加用户控件技巧
- Android学习日志
- 安装JavaMail
- 线程基础--同步机制
- [chromium][browser][idea][closed] 如何从android4.4.2的chromium_org中编译出chrome_shell_apk
- 关于C语言中宏定义的高级运用
- 浅谈C++多态性 .
- 据说最近有一个叫于大腚的人很狂啊。怎么诺。霖狗。
- Maven实战(一)搭建Nexus伺服器
- php 下载远程图片 函数
- Android 笔记之错误记录
- jquery注释
- UIButton