黑屏手势的性能提升

黑屏手势

  1. 画C打开相机
  2. 画W打开微信
  3. 画V打开手电筒
  4. 双指下滑打开/关闭音乐
  5. 右箭头>下一首
  6. 左箭头<上一首

这里写图片描述

性能优化

具体思路流程本地电脑留存

本次进行其他细节的优化

动画缓存图片保存

frameworks/base/services/core/java/com/android/server/wm/WindowState.java

private boolean shouldSaveSurface() {
    // save blackgesture
}

CPU进行调频

黑屏手势的keycode识别的同时进行CPU调频

mPerfService.enableCPUHightMode(1500);

后台线程HandlerThread启动应用

    private HandlerThread mBackThread;
    private Handler mBackHandler;

    mBackThread = new HandlerThread("wms_background_thread");
    mBackThread.start();
    mBackHandler = new Handler(mBackThread.getLooper());

    mBackHandler.post(new Runnable() {

    @Override
    public void run() {
        openAppBg();
    }

暂时禁用系统动画

WindowManagerService服务的方法控制

数组切换画图片

    private void drawImage(){
        if (mImageView != null && mCurrentDrawableIds != null && mCurrentDrawableIndex >= 0 && mCurrentDrawableIndex < mCurrentDrawableIds.length){
            Log.d("BlackGesture", "drawImage mCurrentKeyCode = " + mCurrentKeyCode + ", mCurrentDrawableIndex = " + mCurrentDrawableIndex);
            mImageView.setImageResource(mCurrentDrawableIds[mCurrentDrawableIndex]);
            invalidate();
        }
    }

底层直接解锁

Framwork层进行解锁,绕开API调用解锁,因为API调用慢

底层直接亮屏

防止亮屏过快,闪现壁纸,尤其是第一次黑屏手势图片还没加载出来的情况,这里需要规避

小结

这里提供性能思路。目前优化后的黑屏手势效果是如丝般顺滑

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

法迪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值