一种深度定制WebView,对外提供独立WebviewAAR的方法及装置制造方法及图纸

技术编号:33723493 阅读:12 留言:0更新日期:2022-06-08 21:16
本发明专利技术公开了一种深度定制WebView,对外提供独立Webview AAR的方法,在原生WebView APK原本通道的基础上,将原生WebView APK中的众多模块整体编译成一个Custom WebView AAR,将Custom WebView AAR单独提供给三方开发者编译依赖,将Custom WebView AAR和三方APP最终编译在同一个APK中,能够最大限度的避免不同APP使用的WebView内核相互之间的冲突和污染。本发明专利技术提供的一种深度定制WebView,对外提供独立Webview AAR的方法及装置,使得三方app可以自由定制WebView内核,并且三方app更可以独立升级WebView内核,而对同样使用WebView接口的其它APP没有任何影响,不同APP所集成使用的Custom WebView AAR相互之间隔离,避免在使用时的相互冲突和污染。用时的相互冲突和污染。

【技术实现步骤摘要】
AAR的方法,在原生WebView APK原本通道的基础上,将原生WebView APK中的众多模块整体编译成一个Custom WebView AAR,将Custom WebView AAR单独提供给三方开发者编译依赖,将Custom WebView AAR和三方APP最终编译在同一个APK中,能够最大限度的避免不同APP使用的WebView内核相互之间的冲突和污染。
[0011]进一步地,Custom WebView AAR包括上下两大模块,下边的模块为Custom WebView AAR模块,将整个Chromium模块编译打包成一个独立的AAR;上边的模块为使用WebView接口的三方app模块。
[0012]进一步地,Custom WebView AAR直接编译至三方APP中,直接调用Custom WebView AAR的Glue桥接层,然后通过Chromium的内部分层架构,依次通过AWContent层、Content层、WebKit Glue层,最终调用到最核心的Blink模块。
[0013]进一步地,使将一个基于System WebView构建的APP快速改造成使用Custom WebView AAR,即三方APP改造使用Custom WebView AAR,包括以下步骤:
[0014]将原有Chromium中的System WebView的相关包名更改为Custom WebView AAR相关包名;
[0015]将layout文件中使用的System WebView改为全称的Custom WebView AAR包名;
[0016]添加对Custom WebView AAR包的依赖,并重新编译。
[0017]进一步地,生成Custom WebView AAR,具体包括以下步骤:
[0018]移植AOSP FWK WebView SDK code,添加android_library模板编译成单独的jar;
[0019]修改Chromium Code,编译生成Custom WebView AAR;
[0020]基于Custom WebView AAR接口编写Demo,验证Custom WebView AAR功能。
[0021]进一步地,移植AOSP FWK WebView SDK code,添加android_library模板编译成单独的jar,具体是将AOSP FWK中frameworks/base/core/java/android/webkit/目录下的java文件移到chromium代码仓的预选目录,再修改依赖的包名为Custom WebView包名后(比如custom.webkit.webview),添加android_library gn模板,将其编译成Custom WebView JAR。
[0022]进一步地,移植AOSP FWK WebView SDK code,添加android_library模板编译成单独的jar,具体包括以下步骤:
[0023]将AOSP FWK层frameworks/base/core/java/android/webkit/目录下的java文件移到Chromium代码仓的预选目录,并修改包名为Custom WebView包名;
[0024]将原先AOSP FWK层frameworks/base/core/java/android/webkit/目录下原先对WebView APK的反射调用改为直接调用;
[0025]编译android_library模板,编译Custom WebView JAR,供后面编译Custom WebView AAR依赖使用。
[0026]进一步地,修改Chromium Code,编译生成Custom WebView AAR,具体是修改src/android_webview目录,将src/android_webview目录下原先对System WebView接口的依赖改成对Custom WebView接口的依赖,最后通过chromium内部gn构建系统的dist_aar模板,参照原生webview apk的gn编译链,将chromium内部的众多模块一起编译生成Custom WebView AAR。
[0027]进一步地,修改Chromium Code,编译生成Custom WebView AAR,具体包括以下步
骤:
[0028]将src/android_webview目录下原先对System WebView接口的依赖改成对Custom WebView接口的依赖;
[0029]梳理WebView gn编译依赖链,为后续的工作做准备;
[0030]通过dist_aar模板,将梳理得到的WebView gn编译依赖链所涉及的模块全部编译打包成aar。
[0031]进一步地,通过dist_aar模板,将梳理得到的WebView gn编译依赖链所涉及的模块全部编译打包成aar,具体在通过dist_aar模板生成aar时,通过resource_included_patterns,jar_excluded_patterns将特定的res和class排除掉,否则编译出的Custom WebView AAR非常大,且当三方app也依赖android.support包时,编译会报错。
[0032]本专利技术又一较佳实施例提供了一种深度定制WebView,对外提供独立Webview AAR的装置,装置在原生WebView APK原本通道的基础上,将原生WebView APK中的众多模块整体编译成一个Custom WebView AAR,将Custom WebView AAR单独提供给三方开发者编译依赖,将Custom WebView AAR和三方APP最终编译在同一个APK中,能够最大限度的避免不同APP使用的WebView内核相互之间的冲突和污染。
[0033]进一步地,Custom WebView AAR包括上下两大模块,下边的模块为Custom WebView AAR模块,将整个Chromium模块编译打包成一个独立的AAR;上边的模块为使用WebView接口的三方app模块。
[0034]进一步地,Custom WebView AAR直接编译至三方APP中,直接调用Custom WebView AAR的Glue桥接层,然后通过Chromium的内部分层架构,依次通过AWContent层、Content层、WebKit Glue层,最终调用到最核心的Blink模块。
[0035]进一步地,使将一个基于System WebView构建的APP快速改造成使用Custom WebView AAR,包括以下模块:
[0036]第一更名模块,用于将原有Chromium中的System WebView的相关包名更改为Custom WebView AAR相关包名;
[0037]第二更名模块,用于将layout文件中使本文档来自技高网
...

【技术保护点】

【技术特征摘要】
AAR依赖使用。8.如权利要求5所述的一种深度定制WebView,对外提供独立Webview AAR的方法,其特征在于,修改Chromium Code,编译生成Custom WebView AAR,具体是修改src/android_webview目录,将src/android_webview目录下原先对System WebView接口的依赖改成对Custom WebView接口的依赖,最后通过chromium内部gn构建系统的dist_aar模板,参照原生webview apk的gn编译链,将chromium内部的众多模块一起编译生成Custom WebView AAR。9.如权利要求8所述的一种深度定制WebView,对外提供独立Webview AAR的方法,其特征在于,修改Chromium Code,编译生成Custom WebView AAR,具体包括以下步骤:将src/android_webview目录下原先对System WebView接口的依赖改成对Custom WebView接口的依赖;梳理WebView gn编译依赖链,为后续的工作做准备;通过dist_aar模板,将梳理得到的WebView gn编译依赖链所涉及的模块全部编译打包成aar。10.如权利要求9所述的一种深度定制WebView,对外提供独立Webview AAR的方法,其特征在于,通过dist_aar模板,将梳理得到的WebView gn编译依赖链所涉及的模块全部编译打包成aar,具体在通过dist_aar模板生成aar时,通过resource_included_patterns,jar_excluded_patterns将特定的res和class排除掉,否则编译出的Custom WebView AAR非常大,且当三方app也依赖android.support包时,编译会报错。11.一种深度定制WebView,对外提供独立Webview AAR的装置,其特征在于,所述装置在原生WebView APK原本通道的基础上,将原生WebView APK中的众多模块整体编译成一个Custom WebView AAR,将所述Custom WebView AAR单独提供给三方开发者编译依赖,将所述Custom WebView AAR和三方APP最终编译在同一个APK中,能够最大限度的避免不同APP使用的WebView内核相互之间的冲突和污染。12.如权利要求11所述的一种深度定制WebView,对外提供独立Webview AAR的装置,其特征在于,所述Custom WebView AAR包括上下两大模块,下边的模块为Custom WebView AAR模块,将整个Chromium模块编译打包成一个独立的AAR;上边的模块为使用WebView接口的三方app模块。13.如权利要求12所述的一种深度定制WebView,对外提供独立Webview AAR的装置,其特征在于,所述Custom WebView AAR直接编译至三方APP中,直接调用Custom WebView AAR的Glue桥接层,然后通过Chromium的内部分层架构,依次通过AWContent层、Content层、WebKit Glue层,最终调用到最核心的Blink模块。14.如权利要求11所述的一种深度定制WebView,对外提供独立Webview AAR的装置,其特征在于,使将一个基于System WebView构建的APP快速改造成使用Custom WebView AAR,包括以下模块:第一更名模块,用于将原有Chromium中的System WebView的相关包名更改为Custom WebView AAR相关包名;第二更名模块,用于将layout文件中使用的System WebView改为全称的Custom WebView AAR包名;
添加模块,用于添加对Custom WebView AAR包的依赖,并重新编译。15.如权利要求11所述的一种深度定制WebView,对外提供独立Webv...

【专利技术属性】
技术研发人员:顾怀建
申请(专利权)人:视若飞信息科技上海有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1