由于项目需要,需要裁剪ROM,由于webview在新项目中是不必要的,所以有了想法对他下刀。

跟移除其他模块一样,这里采取的措施是将build/target/product/core_minimal.mk中
PRODUCT_PACKAGES +=webview屏蔽,这样重新编译就不会编译webview相关的模块了,可以在镜像编译后进入到out目录查看一下,可以看到webview文件夹没有了

很happy的进行到这没有什么毛病,然后开始烧录镜像。于是如预期一样的挂了,打印信息如下(由于编排问题,这里直接上异常截图):

根据log,我们马上定位到报错,在Zygote起来的时候,preload操作出现了问题,那这里我们已经移除了webview模块,那么肯定是不需要这个preload操作的,直接屏蔽,然后重新编译,烧录镜像。再次开机,上面那个异常已经没有了,但是又出现了新的问题

system_server神奇的结束了,然后Zygote起不来,最奇葩的是没有其他相关异常log的打印,一顿怀疑人生,然后我在没有裁剪的环境下,进入system目录,执行了下如下命令

屏蔽PRODUCT_PACKAGES +=webview,实际上会将与webview相关的so也移除,之前libwebviewchromium_loader.so移除导致了Zygote起不来,那么是不是libwebviewchromium_plat_support.so移除也会引出异常呢,带着疑问我将正常的libwebviewchromium_plat_support.so重新push到机器里,开机成功了。。。于是没说的,直接在源码中查找一下与这个so相关的东西

熟悉安卓N的应该知道,public.libraries.android.txt最后会编译成system/etc/public.libraries.txt,用以标识应用能够引用到的system目录下共用的so。对于不在这个清单中的so引用会出现异常,

java.lang.UnsatisfiedLinkError: dlopen failed: library “xxx.so” not found 或
java.lang.UnsatisfiedLinkError: dlopen failed: library “/vendor/lib64/xxx.so” needed or dlopened by “/system/lib64/libnativeloader.so” is not accessible for the namespace “classloader-namespace”

具体可以参考这篇博客的介绍 Framework基础:Android N 公共so库怎么定义呢?

将system/core/rootdir/etc/public.libraries.android.txt中的libwebviewchromium_plat_support.so删除后,再重新编译并运行,没有异常,webview移除成功

android N 移除 webview相关推荐

  1. 【Android】之【WebView】

    一.简介 WebView是一种控件,它基于webkit引擎,因此具备渲染Web页面的功能. 基于Webview的混合开发,就是在 Android os(安卓)/I os(苹果)原生APP里,通过Web ...

  2. android用户界面之WebView教程实例汇总

    一.WebView教程 1.Android---UI篇---WebView(网络视图) http://www.apkbus.com/android-14259-1-1.html 2.webview学习 ...

  3. android设置tls版本,Android O移除HttpsURLConnection中不安全的TLS版本回退

    原标题:Android O移除HttpsURLConnection中不安全的TLS版本回退 为提高安全性,在 Android O 中,已从 HttpsURLConnection 中移除不安全的 TLS ...

  4. android message 代码,Android Handler移除Message详解及实例代码

    Android Handler移除Message详解 问题: 1.removeMessage(what)函数是否只能移除对应what值的Message? 2.对于Delayed发送的Message,能 ...

  5. android webview es6,Android v 5.0 webview HTML5,CSS3和ES6兼容性

    我有一个使用Crosswalk的混合 Android应用程序.几个月前我转向Crosswalk,这是一个巨大的生产力提升.我花了很多时间测试不同的Android操作系统版本,并且在HTML5 / CS ...

  6. WebView的使用之Android与JS通过WebView互调方法

    WebView的使用之Android与JS通过WebView互调方法 一.概述:  Android与JS通过WebView实现交互,实际上是: Android调用JS的代码: JS调用Android的 ...

  7. android webview权限申请_Android应用开发之android 6.0下webview的定位权限设置方法

    本文将带你了解Android应用开发android 6.0下webview的定位权限设置方法,希望本文对大家学Android有所帮助. 如下所示: WebView webView =   (WebVi ...

  8. Android 5.x浏览器webView或者qqX5崩溃,Resources$NotFoundException:String resource ID #0x2040003

    Android 5.x浏览器webView或者qqX5崩溃,Resources$NotFoundException:String resource ID #0x2040003 周末客户反馈app中h5 ...

  9. android项目中在webview中打开pdf

    android项目中在webview中打开pdf. 关于android打开pdf文件方法有多种,下面的文章有详细说明: Android 实现 PDF 文件阅读功能调研 Android 使用PDF.js ...

  10. WebView深究之Android是如何实现webview初始化的

    webview初始化 关注Android加载webview内核的过程.我们从WebView的init过程中切入. WebView的构造方法,最终都会调用 WebView(Context context ...

最新文章

  1. boost thread 判断是否正在运行_java高端基础:Thread源码解读
  2. ubuntu /boot 空间清理
  3. paramiko安装
  4. 【人脸表情识别】不得不读的重要论文推荐(2019-2020篇)
  5. mysql-5.1.50中文_mysql5.1 中文 乱码 mysql 5.1 中文字符集问题终极解决方案
  6. 神经网络——BP算法
  7. 【英语学习】【WOTD】encroach 释义/词源/示例
  8. iview表单校验上传图片成功后,提示文字不消失
  9. Access2007数据库下载地址与AccessHelper
  10. 小度智能音响拆解 芯片_拆机解析,小度智能音箱1S,万能遥控版音箱,这做工你想不到...
  11. [附源码]计算机毕业设计JAVAJAVA大方汽车租赁管理系统
  12. QNX系统和凝思系统分别系统时间设置RTC时间方法
  13. Windows实现微信多开
  14. matlab函数accumarray,matlab函数调用问题
  15. SVG In HTML5 Pages
  16. 银河麒麟服务器操作系统V10SP1-x86_64-build20/20210518安装dzzoffice,php缺少zip_open函数问题解决
  17. Oracle 基本操作
  18. 安卓10源码开发定制(29)手电筒控制源码分析
  19. JavaFXGL框架笔记
  20. 掌握正确的指法---击键要领、雨儿五笔打字视频

热门文章

  1. 67tool.com 即用即走的在线工具箱
  2. Reading Ingestion —— Paxos Made Simple
  3. php源码字符串内部表示,PHP源码—implode函数源码分析
  4. 我对职业规划和未来发展的一些思考
  5. 【珍藏版】震撼发布2017年Android百大框架排行榜
  6. python 请假审批系统_请假审批系统
  7. 不知道为什么想起以前的事总是那么的心痛
  8. ARPG游戏DEMO
  9. 任正非《一江春水向东流》
  10. LBT(CCA) in LAA/Multefire (二)