半只烤鸭__良
码龄7年
关注
提问 私信
  • 博客:19,992
    19,992
    总访问量
  • 16
    原创
  • 2,170,573
    排名
  • 21
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:香港
  • 加入CSDN时间: 2017-07-05
博客简介:

weixin_39421817的博客

查看详细资料
个人成就
  • 获得9次点赞
  • 内容获得1次评论
  • 获得47次收藏
创作历程
  • 12篇
    2020年
  • 3篇
    2019年
  • 5篇
    2018年
成就勋章
TA的专栏
  • android s
    1篇
  • android r
  • surfacefinger
    5篇
  • python pyqt5
    1篇
  • nexus 刷机
    1篇
  • NDK开发从入门到精通
    1篇
  • RenderScript
    2篇
  • android
    7篇
  • 驱动
    2篇
  • 驾校
  • 物联网
    1篇
兴趣领域 设置
  • 数据结构与算法
    数据结构
  • 移动开发
    kotlinflutterandroid studio
  • 软件工程
    性能优化
  • 学习和成长
    面试
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

驱动模型 从底层驱动到HAL到JNI到app到云端服务器

app通过二维码开关扫描请求云服务器对蜂鸣器的开或关        概述:arm端建立服务与云端连接等待云服务器的命令,手机扫描二维码通过二维码里面的设备号和开或者关信息发送到云端服务器,云端服务器根据设备号找到对应的arm端发送相应的开或关命令,从而实现手机APP云端控制1.硬件原理图  蜂鸣器连接(GPD0_1)管脚2.芯片手册蜂鸣器的控制地址为 int id = 0xe02000a0;配置为...
原创
发布博客 2018.05.14 ·
303 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

linux 驱动之LCD驱动(有framebuffer)

<简介> LCD驱动里有个很重要的概念叫帧缓冲(framebuffer),它是Linux系统为显示设备提供的一个接口,应用程序在图形模式允许对显示缓冲区进行读写操作。用户根本不用关心物理显示缓冲区的具体位置及存放方式,因为这些都由缓冲区设备驱动完成了。启动开发板后执行ls /dev/fb* 命令可以看到,帧缓冲设备的主设备号为29,对应/dev/fbn设备文件,一般为/dev/fb0在弄清楚LCD驱动架构之前,我们先弄清楚几个重要的结构体,为了减短篇幅,有一些不是很重要...
转载
发布博客 2020.05.19 ·
661 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

Android SurfaceFlinger服务(八) ----- 图像的输出

SurfaceFlinger合成后就进行图像的输出的工作。在图像输出时,存在硬件合成器与不存在的情况有些差别。软件合成时用到图像缓冲区生产者与消费者模型。首先来看看图像缓冲区的初始化。void SurfaceFlinger::init() { ALOGI( "SurfaceFlinger's main thread ready to run. " "Init...
原创
发布博客 2020.04.25 ·
572 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Android SurfaceFlinger服务(七) ----- 图像的合成

android应用中申请的Surface在SurfaceFlinger服务中都有对应有图层Layer与之对应。将这些图层合并且输出到显示外设是SurfaceFlinger的工作重点。本文来分析下合成的过程。合成工作在接收到VSync消息(MessageQueue::REFRESH)后开始。void SurfaceFlinger::onMessageReceived(int32_t what)...
原创
发布博客 2020.04.25 ·
1109 阅读 ·
1 点赞 ·
0 评论 ·
9 收藏

Android SurfaceFlinger服务(六) ----- VSync信号的分发

HWComposer模块产生VSync信号后要经过分发才能送达到关心VSync事件的模块中去。VSync信号分发大致流程为HWComposer->SurfaceFlinger->DispSync->DispSyncSource->各个具体模块。下面具体分析下这个流程。在上一篇文章中分析到硬件或者软件VSync信号产生时,会回调SurfaceFlinger的onVSync...
原创
发布博客 2020.04.25 ·
360 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Android SurfaceFlinger服务(五) ----- VSync信号的产生

Android为了增强界面流畅度引入了VSync机制。VSync信号一般由硬件产生,为了兼容一些老的机器,也可以软件产生。因些,就可以分为硬件VSync和软件VSync。VSync的生成逻辑主要在HWComposer里面。相关文件如下:frameworks/native/services/surfaceflinger/DisplayHardware/HWComposer.cpp framew...
原创
发布博客 2020.04.25 ·
473 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Android SurfaceFlinger服务(四) ----- 消息机制MessageQueue

SurfaceFlinger有着自己的消息队列MessageQueue,用来处理显示相关的消息,比如Vsync消息。相关文件:frameworks/native/services/surfaceflinger/MessageQueue.h frameworks/native/services/surfaceflinger/MessageQueue.cpp类MessageQueue和Ha...
原创
发布博客 2020.04.25 ·
486 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Android SurfaceFlinger服务(三) ----- 本地图层Layer创建

在上一篇文章中,主要分析了Surface的创建过程,对于Layer图层的创建并没有深入跟踪分析。这篇文章将分析Layer图层的创建,并分析handle gbp这两个变量的来源。在SurfaceFlinger中会根据flags的值创建不同的layer。这里主要以创建普通layer为例进行分析。status_t SurfaceFlinger::createNormalLayer(const ...
原创
发布博客 2020.04.25 ·
687 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Android SurfaceFlinger服务(二) ----- 本地Surface创建

Android显示系统层次分析应用层,app从WindowManager服务获取图层,渲染图层 WindowManager管理层,主要管理APP渲染的图层,调用SurfaceFlinger服务, 创建Surface,并将Surface传递给应用 SurfaceFlinger层,对上层负责Surface的创建,对下层管理各个显示设备, 以及将Surface合成合显示到显示设备上 显示驱动层...
原创
发布博客 2020.04.25 ·
393 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Android SurfaceFlinger服务(一) ----- BufferQueue分析

生产者和消费者模型是编程中运用比较广泛的模型。在SurfaceFlinger图像绘制、合成、显示也用到了该模型。利用该模型合理的管理图像缓冲区buffer。让整个android系统从绘制到显示的过程有条不紊的进行。BufferQueue图像缓冲管理者。其成员函数createBufferQueue创建一个缓冲区队列。void BufferQueue::createBufferQueue(s...
原创
发布博客 2020.04.25 ·
877 阅读 ·
0 点赞 ·
0 评论 ·
6 收藏

很好的PyQt5中文教程

很好的PyQt5中文教程 http://code.py40.com/pyqt5/
转载
发布博客 2020.02.09 ·
372 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

Android AAPT详解

AAPT是什么AAPT - Android Asset Packaging Tool,看全称,就可知道AAPT是Android资源打包工具。在讲这个之前,是有必要简单说下Android是如何构建一个APK的。上图是Google官方发布的一张非常经典的Apk打包流程图。流程概述:工程的资源文件(res文件夹下的文件),通过AAPT打包成R.java类(资源索引表),...
原创
发布博客 2020.01.20 ·
1548 阅读 ·
0 点赞 ·
0 评论 ·
6 收藏

Nexus6P 刷机 root

刷机1.配置ADB环境变量点此链接下载platform-tools,最新的windows版本名称为platform-tools-latest-windows.zip,然后解压(本人解压到download目录下),配置环境变量。2.安装手机驱动一般USB链接上手机,电脑会自动下载并安装上驱动。3.在设置开发者选项中打开oem选项4.解锁BootLoader手机关机,长按...
原创
发布博客 2020.01.09 ·
1853 阅读 ·
0 点赞 ·
0 评论 ·
5 收藏

使用SurfaceView绘制复杂效果

效果如下风扇动画粒子动画1.动画分析:根据复杂动画分解成简单的动画上面的两个动画可以分解成最外层扩展动画以及里面六边形动画最外层动画分解:一个六边形从中心出发到外边,然后到另一个角,然后收回。里面的动画可以遮挡外边的六边形,最里面的六边形路径动画被里面六边形黑色背景遮挡。中心六边形动画:可以分成4层,最下层为六边形半透明背景,第二层为风扇或...
原创
发布博客 2019.11.13 ·
353 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

Windows 中 使用python 一键下载android s代码

为了在window方便看代码,所以下载google原生android q代码,写了一段python脚本方便下载1. 安装GITgit官网下载:https://git-scm.com/downloads/安装git到如下路径C:/Program Files/Git2. 安装PYTHONpython官网下载:https://www.python.org/downloads/...
原创
发布博客 2019.11.05 ·
305 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

两圆的外切线与内切线的切点算法

最近想画两球水滴效果所有在网上找两圆外切点和内切点的算法,找了很久没有找到所以自己写了一个工具类来计算两圆的公切线点。具体效果如下图:根据CircleUtils类的getCircleTangentPointOut方法返回外切点坐标[r1p1, r1p2, r2p1, r2p2],依次为左边圆的两个切点坐标和右边两个切点坐标。根据CircleUtils类的getCircleTangent...
原创
发布博客 2019.10.26 ·
7161 阅读 ·
4 点赞 ·
1 评论 ·
10 收藏

Opengl ES 3.x开发上下册以及随书源码

发布资源 2019.10.03 ·
zip

ESP8266

开发环境地址https://pan.baidu.com/s/1dD8kEYX乐鑫芯片论坛网站https://bbs.espressif.com/安信集成商可论坛https://www.ai-thinker.com/https://github.com/espressif/ESP8266_RTOS_SDKhttps://github.com/espressif/ESP8266_NONOS_SDKht...
原创
发布博客 2018.05.14 ·
1117 阅读 ·
1 点赞 ·
0 评论 ·
4 收藏
加载更多