webview
1.webview extends AbsoluteLayout ViewGroup
2.Android 4.4 之前使用 WebKit 作为渲染内核,4.4 之后采用 chrome 内核
3.uid 1000的进程是不能运行webview组件的
final int uid = android.os.Process.myUid();
if (uid == android.os.Process.ROOT_UID || uid == android.os.Process.SYSTEM_UID
|| uid == android.os.Process.PHONE_UID || uid == android.os.Process.NFC_UID
|| uid == android.os.Process.BLUETOOTH_UID) {
throw new UnsupportedOperationException(
"For security reasons, WebView is not allowed in privileged processes");
}
为什么要将Chromium动态库打包在一个WebView Package中呢?而不是像其它的系统动态库一样,直接放在/system/lib目录下。
原因为了方便以后升级WebView。例如,Chromium有了新的版本之后,就可以将它打包在一个更高版本的WebView Package中。当用户升级WebView Package的时候,就获得了基于新版本Chromium实现的WebView了。
adnroid 与js交互
Native 调用 Js:mWebView.loadUrl(js);
https://www.jianshu.com/p/345f4d8a5cfa
Js 调用 Native :AndroidNative.getAndroid();
WebView 缓存原理
webview 优化
1.webview创建
2.连接网络
webview性能,功耗情况。
参考美团:
https://tech.meituan.com/2017/06/09/webviewperf.html
参考:
https://www.jianshu.com/p/3c94ae673e2a
https://75team.com/post/android-webview-and-js.html
https://www.jianshu.com/p/345f4d8a5cfa