关于Canvas子线程渲染和Webview遇到的问题

Canvas与Webview优化实践
本文探讨了在Android中优化Canvas绘图以避免UI线程阻塞的方法,并介绍了使用Webview显示摄像头视频流所需的权限及如何处理X5Webview的安全问题。

关于Canvas

新建的canvas可以在子线程中绘制,然后将生成的bitmap设置给图像,recycle掉了,但是,下次刷新的时候就不显示了,考虑可能是延时的问题导致的,所以加了post之后再回收也是原来那样,下次刷新的时候就不显示了。

主线程绘制太多导致阻塞UI线程带来的掉帧和卡顿,这个家伙处理了,在单独的线程中绘制,不过他的canvas不能从外部传进去,有点鸡肋,所以放弃

https://www.jianshu.com/p/5a0c61c286e6
https://github.com/ChillingVan/android-openGL-canvas

关于Webview

原生替换成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'

跟平时的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对这两个的功能描述就比较清晰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值