关于Canvas
新建的canvas可以在子线程中绘制,然后将生成的bitmap设置给图像,recycle掉了,但是,下次刷新的时候就不显示了,考虑可能是延时的问题导致的,所以加了post之后再回收也是原来那样,下次刷新的时候就不显示了。
主线程绘制太多导致阻塞UI线程带来的掉帧和卡顿,这个家伙处理了,在单独的线程中绘制,不过他的canvas不能从外部传进去,有点鸡肋,所以放弃
https://www.jianshu.com/p/5a0c61c286e6
https://github.com/ChillingVan/android-openGL-canvas
关于Webview
对于网页直接显示摄像头的问题需要访问权限
安利一下这篇文章,看下这个项目的源码
https://blog.youkuaiyun.com/ddwhan0123/article/details/51564626
原生替换成X5Webview还可以用crosswalk,crosswalk的api文档
https://crosswalk-project.org/apis/embeddingapidocs_v7/index.html
- 项目的gradle配置
buildscript {
repositories {
maven {
url 'https://download.01.org/crosswalk/releases/crosswalk/android/maven2'
}
...
}
}
allprojects {
repositories {
maven {
url 'https://download.01.org/crosswalk/releases/crosswalk/android/maven2'
}
...
}
}
- app的gradle配置
implementation 'org.xwalk:xwalk_core_library:23.53.589.4'
- 最新版地址
https://download.01.org/crosswalk/releases/crosswalk/android/maven2/org/xwalk/xwalk_core_library/
跟平时的webview使用差不多,不过遇到自签名的时候要处理下签名问题,Webview在处理自签名的ssl证书会有个回调,比较容易处理,不过xwalkview就比较麻烦,修改后的arr包
https://download.youkuaiyun.com/download/u011208377/10455913
ERR_INSECURE_RESPONSE问题导致部分https验证不通过,可以直接替换
.gradle/caches/modules-2/files-2.1/org.xwalk/23.53.589.4下的aar包,也可以放在项目下,最开始我像webview那样处理,好像没回调这个,不过也加上吧
@Override
public void onReceivedSslError(XWalkView view, ValueCallback<Boolean> callback, SslError error) {
callback.onReceiveValue(true);
}
参考这篇文章处理的
https://blog.youkuaiyun.com/qq_33543960/article/details/79578629
WebViewClient–>XWalkResourceClient(网页加载的时候一些回调处理,比如onPageStarted)
WebChromeClient–>XWalkUIClient(UI呈现时候的一些回调处理,比如alert)
我发现XWalk对这两个的功能描述就比较清晰