AndroidChromium icon indicating copy to clipboard operation
AndroidChromium copied to clipboard

Chromium升级内核

Open novono opened this issue 8 years ago • 37 comments

最近的稳定版本是56.0.2924.87,然后我看到了这个项目,也想尝试将此迁移为最新的稳定版本 但是发现有很多文件位置和依赖都有较大修改,有些库也被切割 所以想咨询一下作者,是否有更加详细的理论操作文档?想加入到移植中来

novono avatar Feb 17 '17 09:02 novono

@novono 多谢参与。目前还只能使用旧版移植方案去做,新版的还在尝试。如果你有问题就把具体的问题贴出来一起解决。如果涉及到文件或类找不到,一般是临时文件,在out目录下搜索即可。

JackyAndroid avatar Feb 17 '17 09:02 JackyAndroid

目前检索了out目录下的文件,下面这些jar应该是缺少的 android_data_chart_java android_webview_java device_battery_java device_bluetooth_java device_vibration_java dom_distiller_java external_video_surface_java invalidation_java invalidation_proto_java mojo_public_java mojo_system_java service_tab_launcher_java signin_core_browser_java

novono avatar Feb 17 '17 09:02 novono

@novono 首先确认下是整个编译出了chrome.apk,然后在确认这些jar包是否是真的需要的,如果引用的类没什么作用就去除,再不行就在整个chromium工程里面搜索试试

JackyAndroid avatar Feb 17 '17 09:02 JackyAndroid

OK,现在我是在用https://chromium.googlesource.com/chromium/src.git/+/master/docs/android_studio.md 这里的方法进行AS下的开发,大部分时候用的是脚本~

我也依据这个工程的思想找下依赖吧~

谢谢~

novono avatar Feb 17 '17 09:02 novono

@novono 加油! 👍

JackyAndroid avatar Feb 17 '17 09:02 JackyAndroid

@novono 最近代码已经升级到55内核,基于这个版本升级到56版本应该简单些,有问题随时沟通☺️

JackyAndroid avatar Feb 21 '17 13:02 JackyAndroid

您好,我基于54和您的55版本去构建56,但是都会报“E/cr_tabmodel: State file does not exist.”的错误,然后apk就会崩溃。我查看是在TabPersistentStore.java中的startFetchTabListTask中报的,也就是"/data/data/org.chromium.chrome.browser/app_tabs/0/tab_state0"这个文件不存在造成的。如果我用我的工程编出来的apk直接覆盖您的工程编出来的apk,就没有上述问题,查看tab_state0那个文件也在,应该是在覆盖的时候这个文件没有被清除掉。我想请问您有遇到这类问题吗?

rkshuai avatar Mar 08 '17 02:03 rkshuai

@rkshuai 升级版本的时候最好只采用一个版本去构建升级,或者基于54或者基于55,chromium文件太多容易造成混乱,如果class找不到就去chromium源码和out目录下去搜索,如果这样还找不到就解压生成的jar看看是否在里面。

JackyAndroid avatar Mar 08 '17 02:03 JackyAndroid

嗯,我是指我在54和55上分别做了升级,但是都会报“E/cr_tabmodel: State file does not exist.”,请问您那边有这样的问题吗?

rkshuai avatar Mar 08 '17 02:03 rkshuai

@rkshuai 没有

JackyAndroid avatar Mar 08 '17 02:03 JackyAndroid

找到问题的原因了,56代码已经抽出,感谢你的贡献。

rkshuai avatar Mar 09 '17 06:03 rkshuai

棒👍,如果可以记得提交PR

JackyAndroid avatar Mar 09 '17 06:03 JackyAndroid

你编译出来的chromium能播放视频吗?

rkshuai avatar Mar 13 '17 12:03 rkshuai

@rkshuai 目前播放视频还有点问题

JackyAndroid avatar Mar 24 '17 08:03 JackyAndroid

哈哈,现在视频能播放了。

rkshuai avatar Apr 10 '17 02:04 rkshuai

@rkshuai 怎么解决的?直接升到了56内核吗?记得提交代码😃

JackyAndroid avatar Apr 10 '17 02:04 JackyAndroid

不是的,和哪个内核版本没关系,设置一些编译选项就行了

rkshuai avatar Apr 10 '17 02:04 rkshuai

@rkshuai 好,尽快把解决方案和代码提交下👍

JackyAndroid avatar Apr 10 '17 02:04 JackyAndroid

@rkshuai请问如何才能解决视频能播放的问题?

hulpi avatar Apr 19 '17 07:04 hulpi

@JackyAndroid 非常感谢~~~ 最近开始做瘦身了,从源码下看依赖,发现里面有大量硬件等等相关的内容,但是实际上我们一般应用场景里面应该很少需要这些功能~~ 这部分挺有趣的~~哈哈哈~~

novono avatar Apr 24 '17 02:04 novono

@novono 好的,如果有比较好的依赖方案和瘦身记得提交出来,分享给大家👍

JackyAndroid avatar Apr 24 '17 02:04 JackyAndroid

好咧~

novono avatar Apr 24 '17 02:04 novono

@rkshuai 你好,我在 58 版本上遇到了相同的错误

E/cr_tabmodel: State file does not exist.

请问你怎么解决的?

kuoruan avatar May 23 '17 03:05 kuoruan

这是我导出的项目:https://github.com/kuoruan/Chromium-Android

kuoruan avatar May 23 '17 03:05 kuoruan

已解决,新版多了个 webapk1.dex 文件,放到 assets 下即可

kuoruan avatar May 23 '17 04:05 kuoruan

@rkshuai 还是有问题 😢 现在能进去了,但是还是报

E/cr_tabmodel: State file does not exist.

第一次进入浏览器能正常打开网页,后面几次就不行了

05-23 16:15:05.257 14631-14631/org.chromium.chrome A/chromium: [FATAL:compositor_impl_android.cc(625)] **Timed out waiting for GPU channel.**
05-23 16:15:05.437 14631-14631/org.chromium.chrome W/google-breakpad: ### ### ### ### ### ### ### ### ### ### ### ### ###
05-23 16:15:05.437 14631-14631/org.chromium.chrome W/google-breakpad: Chrome build fingerprint:
05-23 16:15:05.437 14631-14631/org.chromium.chrome W/google-breakpad: 1.0
05-23 16:15:05.437 14631-14631/org.chromium.chrome W/google-breakpad: 1
05-23 16:15:05.437 14631-14631/org.chromium.chrome W/google-breakpad: ### ### ### ### ### ### ### ### ### ### ### ### ###
05-23 16:15:05.437 14631-14631/org.chromium.chrome A/libc: Fatal signal 6 (SIGABRT), code -6 in tid 14631 (chromium.chrome)

kuoruan avatar May 23 '17 08:05 kuoruan

@kuoruan 我最后发现不是这个问题,是资源文件的问题。 因为BuildConfig.java在chromium56和之前的版本不同。新版本中增加了两个变量COMPRESSED_LOCALES和 UNCOMPRESSED_LOCALES,我们需要将COMPRESSED_LOCALES数组置空,而将UNCOMPRESSED_LOCALES数组置为”en-US”, ”zh-CN”(反之也行)。

rkshuai avatar May 31 '17 14:05 rkshuai

@hulpi 在args.gn中添加 proprietary_codecs=true ffmpeg_branding="Chrome" 即可

rkshuai avatar May 31 '17 14:05 rkshuai

@rkshuai https://github.com/kuoruan/Chromium-Android/blob/master/app/src/main/java/org/chromium/base/BuildConfig.java 已加,无效。。。

kuoruan avatar May 31 '17 14:05 kuoruan

@kuoruan 在assets中添加en-US.pak和zh-CN.pak两个资源文件,我是针对56版本的(并不是针对E/cr_tabmodel: State file does not exist.,这句基本上每个版本都会打印,但不影响程序运行)

rkshuai avatar May 31 '17 15:05 rkshuai