android N 移除 webview
由于项目需要,需要裁剪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相关推荐
- 【Android】之【WebView】
一.简介 WebView是一种控件,它基于webkit引擎,因此具备渲染Web页面的功能. 基于Webview的混合开发,就是在 Android os(安卓)/I os(苹果)原生APP里,通过Web ...
- android用户界面之WebView教程实例汇总
一.WebView教程 1.Android---UI篇---WebView(网络视图) http://www.apkbus.com/android-14259-1-1.html 2.webview学习 ...
- android设置tls版本,Android O移除HttpsURLConnection中不安全的TLS版本回退
原标题:Android O移除HttpsURLConnection中不安全的TLS版本回退 为提高安全性,在 Android O 中,已从 HttpsURLConnection 中移除不安全的 TLS ...
- android message 代码,Android Handler移除Message详解及实例代码
Android Handler移除Message详解 问题: 1.removeMessage(what)函数是否只能移除对应what值的Message? 2.对于Delayed发送的Message,能 ...
- android webview es6,Android v 5.0 webview HTML5,CSS3和ES6兼容性
我有一个使用Crosswalk的混合 Android应用程序.几个月前我转向Crosswalk,这是一个巨大的生产力提升.我花了很多时间测试不同的Android操作系统版本,并且在HTML5 / CS ...
- WebView的使用之Android与JS通过WebView互调方法
WebView的使用之Android与JS通过WebView互调方法 一.概述: Android与JS通过WebView实现交互,实际上是: Android调用JS的代码: JS调用Android的 ...
- android webview权限申请_Android应用开发之android 6.0下webview的定位权限设置方法
本文将带你了解Android应用开发android 6.0下webview的定位权限设置方法,希望本文对大家学Android有所帮助. 如下所示: WebView webView = (WebVi ...
- Android 5.x浏览器webView或者qqX5崩溃,Resources$NotFoundException:String resource ID #0x2040003
Android 5.x浏览器webView或者qqX5崩溃,Resources$NotFoundException:String resource ID #0x2040003 周末客户反馈app中h5 ...
- android项目中在webview中打开pdf
android项目中在webview中打开pdf. 关于android打开pdf文件方法有多种,下面的文章有详细说明: Android 实现 PDF 文件阅读功能调研 Android 使用PDF.js ...
- WebView深究之Android是如何实现webview初始化的
webview初始化 关注Android加载webview内核的过程.我们从WebView的init过程中切入. WebView的构造方法,最终都会调用 WebView(Context context ...
最新文章
- boost thread 判断是否正在运行_java高端基础:Thread源码解读
- ubuntu /boot 空间清理
- paramiko安装
- 【人脸表情识别】不得不读的重要论文推荐(2019-2020篇)
- mysql-5.1.50中文_mysql5.1 中文 乱码 mysql 5.1 中文字符集问题终极解决方案
- 神经网络——BP算法
- 【英语学习】【WOTD】encroach 释义/词源/示例
- iview表单校验上传图片成功后,提示文字不消失
- Access2007数据库下载地址与AccessHelper
- 小度智能音响拆解 芯片_拆机解析,小度智能音箱1S,万能遥控版音箱,这做工你想不到...
- [附源码]计算机毕业设计JAVAJAVA大方汽车租赁管理系统
- QNX系统和凝思系统分别系统时间设置RTC时间方法
- Windows实现微信多开
- matlab函数accumarray,matlab函数调用问题
- SVG In HTML5 Pages
- 银河麒麟服务器操作系统V10SP1-x86_64-build20/20210518安装dzzoffice,php缺少zip_open函数问题解决
- Oracle 基本操作
- 安卓10源码开发定制(29)手电筒控制源码分析
- JavaFXGL框架笔记
- 掌握正确的指法---击键要领、雨儿五笔打字视频