一个可以简单代替 android webview 的东东, 开源出来。

56 天前
 jeesk
基于 chromium content shell 123.0.6312.121 。 算是我自己从去年移植 chromium webview 的中间产物, 分享出来。

github 上面有 k32 xwalk, aw-chromium, 等等其他的项目, 多数要么是版本太老, 要么是运行打开就黑屏, 没一个能打。


https://github.com/webdev-support/chrome_content_shell
3644 次点击
所在节点    Android
14 条回复
retrocode
56 天前
能替代 x5 内核吗?
zuosiruan
56 天前
@retrocode 同问
okakuyang
56 天前
感谢,先 Fork 了
jeesk
55 天前
@retrocode 一些特殊得接口没有适配。 如果不需要应该可以代替。 比如拼多多就是使用了这种方式
linhua
55 天前
如果可以适配 低版本安卓 4.x 系统,可以用在 影视 等 tvbox 的 app 上
crystom
55 天前
强,请问占包体空间多大?
jeesk
55 天前
@crystom 和正常 chrome 基本一致大约 80m 左右。
jeesk
55 天前
@linhua 兄弟你有空的话可以试一试,我自己应该是没有时间的,所以不太可能去兼容到 chromium 都不支持 4.4 。
Parva
55 天前
star 了
shuiniushushu
35 天前
感谢,我跑起来了,在几个手机上测试没问题
jeesk
34 天前
@shuiniushushu 兄弟,放心吧。 这个兼容性我冲 7.1 测试到 Android 13 都是能用的, 只是功能确实和 webview 相差了些
shuiniushushu
32 天前
兄弟,我在一台红米 6 的机器上无法启动应用,系统为 android 9 ,机器自带的 webview 是 80 。

报错如下(部分):
```
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.github.content.shell/com.example.chromium_content_view.ContentShellActivity}: org.chromium.base.library_loader.ProcessInitException: errorCode=2
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2976)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3113)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:113)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:71)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1858)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:201)
at android.app.ActivityThread.main(ActivityThread.java:6820)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:922)
Caused by: org.chromium.base.library_loader.ProcessInitException: errorCode=2
at org.chromium.base.library_loader.LibraryLoader.loadMainDexAlreadyLocked(LibraryLoader.java:738)
at org.chromium.base.library_loader.LibraryLoader.ensureMainDexInitialized(LibraryLoader.java:528)
at org.chromium.base.library_loader.LibraryLoader.ensureInitialized(LibraryLoader.java:511)
at com.example.chromium_content_view.ContentShellActivity.initChromiumWebView(ContentShellActivity.java:136)
at com.example.chromium_content_view.ContentShellActivity.onCreate(ContentShellActivity.java:58)
at android.app.Activity.performCreate(Activity.java:7224)
at android.app.Activity.performCreate(Activity.java:7213)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1272)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2956)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3113) 
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78) 
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:113) 
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:71) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1858) 
at android.os.Handler.dispatchMessage(Handler.java:106) 
at android.os.Looper.loop(Looper.java:201) 
at android.app.ActivityThread.main(ActivityThread.java:6820) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:922) 
Caused by: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/system/framework/android.test.mock.jar", zip file "/system/framework/android.test.runner.jar", zip file "/data/app/com.github.content.shell-bXLz8BiwUBL7jXRBoiAm_A==/base.apk"],nativeLibraryDirectories=[/data/app/com.github.content.shell-bXLz8BiwUBL7jXRBoiAm_A==/lib/arm, /data/app/com.github.content.shell-bXLz8BiwUBL7jXRBoiAm_A==/base.apk!/lib/armeabi-v7a, /system/lib]]] couldn't find "libtest_trace_processor.so"
at java.lang.Runtime.loadLibrary0(Runtime.java:1012)
at java.lang.System.loadLibrary(System.java:1669)
at org.chromium.base.library_loader.LibraryLoader.loadWithSystemLinkerAlreadyLocked(LibraryLoader.java:686)
at org.chromium.base.library_loader.LibraryLoader.loadMainDexAlreadyLocked(LibraryLoader.java:721)
at org.chromium.base.library_loader.LibraryLoader.ensureMainDexInitialized(LibraryLoader.java:528) 
at org.chromium.base.library_loader.LibraryLoader.ensureInitialized(LibraryLoader.java:511) 
at com.example.chromium_content_view.ContentShellActivity.initChromiumWebView(ContentShellActivity.java:136) 
at com.example.chromium_content_view.ContentShellActivity.onCreate(ContentShellActivity.java:58) 
at android.app.Activity.performCreate(Activity.java:7224) 
at android.app.Activity.performCreate(Activity.java:7213) 
```
shuiniushushu
32 天前
@shuiniushushu MIUI 版本是:11.0.4
jeesk
32 天前
@shuiniushushu 兄弟, 你看你的日志是缺少了.so 文件呀。 自己看看项目的 readme 吧?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1059275

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX