gpt4 book ai didi

安卓NDK : custom WebView compiling from source

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:35:10 26 4
gpt4 key购买 nike

我的目标是在 Android 中创建 WebView 的修改版本(称为 WebViewCustom)以供我在我的应用程序中使用。 WebView 是基于 WebKit 的,所以我需要通过 NDK 在 C 中编译它。我现在没有兴趣参与开源的Android项目,所以我的需求只是能够编译WebView的原始C源代码,并在我的Android应用程序中将其用作自定义控件(SDK和NDK都是可能的环境)为申请)。我认为没有我不感兴趣的所有 GIT WebKit 东西是可能的,但我不是 Android 和 WebKit 项目的专家。是否可以只编辑和编译 WebView 代码并将其作为新控件放入我的应用程序中?你能告诉我这个任务的主要步骤吗?

最佳答案

这当然是可能的。从源代码重建 android.webkit 的主要困难在于缺乏正确的构建环境。它从未打算在目标平台之外构建,但围绕源代码进行一些简单的修改使其很容易实现。

首先,由于显而易见的原因,整个 android.webkit 包业务必须重命名,因为 android.webkit.WebView 类在运行时已经可用.例如,在所有 frameworks/base/core/java/android/webkit 树上使用 sed

基本上你必须获取完整的源代码树,初始化构建环境(更多信息在这里 http://source.android.com/source/initializing.html ),make framework 使内部运行时环境可用,创建一个新的开发平台,替换framework.jar 中的所有类(在 out/target/common/obj/JAVA_LIBRARIES/framework_intermediaries/classes.jar 中构建后)到 android.jar 平台,针对这个包含内部结构的新平台构建您自己的 webkit 包。

查看 https://devmaze.wordpress.com/2011/01/18/using-com-android-internal-part-1-introduction/有关获取可用于开发目的的内部运行时的更多信息。

你还需要core_intermediariesbouncycaSTLe_intermediaries等来编译webkit,这些都可以在make framework 被调用,在构建你的 webkit 包时查看错误并 grep out/target/common/obj/JAVA_LIBRARIES/ 找出哪些类包含这些符号.

然而,这还不是全部,该包使用 libwebcore.so 将本地方法暴露给 android.webkit 包;这将必须将所有 native 方法绑定(bind)注册到您的新包名称(在 external/webkit/WebKit/android/jni 中)并重新编译无需预链接(制作 libwebcore) 并将您的应用程序打包为 native 库。

一切都满足之后,您就可以使用自己的包中的 WebView 类,而不是 android.webkit 类。如果你打算完全替换 android.webview - 你必须重新编译一个 framework.jar 并在 system/framework/ 中替换它(root需要权限)。

关于安卓NDK : custom WebView compiling from source,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10717257/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com