自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (6)
  • 收藏
  • 关注

转载 linux 驱动之LCD驱动(有framebuffer)

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

2020-05-19 18:49:48 567

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

SurfaceFlinger合成后就进行图像的输出的工作。在图像输出时,存在硬件合成器与不存在的情况有些差别。软件合成时用到图像缓冲区生产者与消费者模型。首先来看看图像缓冲区的初始化。void SurfaceFlinger::init() { ALOGI( "SurfaceFlinger's main thread ready to run. " "Init...

2020-04-25 14:38:24 510

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

android应用中申请的Surface在SurfaceFlinger服务中都有对应有图层Layer与之对应。将这些图层合并且输出到显示外设是SurfaceFlinger的工作重点。本文来分析下合成的过程。合成工作在接收到VSync消息(MessageQueue::REFRESH)后开始。void SurfaceFlinger::onMessageReceived(int32_t what)...

2020-04-25 14:35:14 1005

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

HWComposer模块产生VSync信号后要经过分发才能送达到关心VSync事件的模块中去。VSync信号分发大致流程为HWComposer->SurfaceFlinger->DispSync->DispSyncSource->各个具体模块。下面具体分析下这个流程。在上一篇文章中分析到硬件或者软件VSync信号产生时,会回调SurfaceFlinger的onVSync...

2020-04-25 14:32:46 306

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

Android为了增强界面流畅度引入了VSync机制。VSync信号一般由硬件产生,为了兼容一些老的机器,也可以软件产生。因些,就可以分为硬件VSync和软件VSync。VSync的生成逻辑主要在HWComposer里面。相关文件如下:frameworks/native/services/surfaceflinger/DisplayHardware/HWComposer.cpp framew...

2020-04-25 14:28:30 387

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

SurfaceFlinger有着自己的消息队列MessageQueue,用来处理显示相关的消息,比如Vsync消息。相关文件:frameworks/native/services/surfaceflinger/MessageQueue.h frameworks/native/services/surfaceflinger/MessageQueue.cpp类MessageQueue和Ha...

2020-04-25 14:26:11 430

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

在上一篇文章中,主要分析了Surface的创建过程,对于Layer图层的创建并没有深入跟踪分析。这篇文章将分析Layer图层的创建,并分析handle gbp这两个变量的来源。在SurfaceFlinger中会根据flags的值创建不同的layer。这里主要以创建普通layer为例进行分析。status_t SurfaceFlinger::createNormalLayer(const ...

2020-04-25 14:22:26 601

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

Android显示系统层次分析应用层,app从WindowManager服务获取图层,渲染图层 WindowManager管理层,主要管理APP渲染的图层,调用SurfaceFlinger服务, 创建Surface,并将Surface传递给应用 SurfaceFlinger层,对上层负责Surface的创建,对下层管理各个显示设备, 以及将Surface合成合显示到显示设备上 显示驱动层...

2020-04-25 14:19:19 334

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

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

2020-04-25 14:12:33 784

转载 很好的PyQt5中文教程

很好的PyQt5中文教程 http://code.py40.com/pyqt5/

2020-02-09 15:20:48 346

原创 Android AAPT详解

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

2020-01-20 11:06:12 1453

原创 Nexus6P 刷机 root

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

2020-01-09 09:38:13 1762

原创 使用SurfaceView绘制复杂效果

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

2019-11-13 17:34:53 312

原创 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 09:40:15 264

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

最近想画两球水滴效果所有在网上找两圆外切点和内切点的算法,找了很久没有找到所以自己写了一个工具类来计算两圆的公切线点。具体效果如下图:根据CircleUtils类的getCircleTangentPointOut方法返回外切点坐标[r1p1, r1p2, r2p1, r2p2],依次为左边圆的两个切点坐标和右边两个切点坐标。根据CircleUtils类的getCircleTangent...

2019-10-26 15:09:33 6832 1

原创 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 23:41:17 1051

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

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

2018-05-14 23:35:47 269

原创 JNI调用串口

SerialTool.c#include &lt;termios.h&gt;#include &lt;unistd.h&gt;#include &lt;sys/types.h&gt;#include &lt;sys/stat.h&gt;#include &lt;fcntl.h&gt;#include &lt;string.h&gt;#include &lt;jni.h&gt;#include &q

2018-05-14 23:33:11 423

转载 如何写RenderScript应用

简介 RenderScript本质是封装了Native OpenGL2.0接口,使界面渲染不需要通过Android虚拟机,从而达到近似Native OpenGL的渲染效率。除此之外,RenderScript名为“Script”,是一种脚本语言。这表明了它比Native OpenGL拥有更好的可移植性,能在不同处理器和GPU上运行。为了做到这一点,其实是有一个叫做Low LevelVirtual

2018-01-31 11:31:39 548

转载 RenderScript(google API)

RenderScriptRenderScript是一个基类。这个类的一个对象创建本地工作线程,用于处理来自这些对象的命令。该基类不提供任何,提供简单数据处理能力类的扩展。对于扩展功能使用派生类如RenderScriptGLElement        RenderScript最基本的数据类型。一个元素代表一个内存分配的一个单元格。元素是Renderscript的

2018-01-31 11:20:32 273

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

OpenGL ES 3.x开发上下册,高清可用,是学习OpenGL 开发很好的资源,以及随书源码

2019-10-03

dagger-compiler-2.15.jar 等关于dagger2的jar包

dagger-compiler-2.15.jar dagger-2.15.jar javax.inject-1.jar guava-19.0.jar 等关于dagger2的jar包 附上讲解 https://blog.csdn.net/piglite/article/details/47859389

2018-04-10

gcc 4.6.4 依赖以及安装说明打包

①.安装gmp4.2.3 tar -zxvf gmp-4.2.3.tar.gz cd gmp-4.3.2 /opt/gmp-4.2.3/configure --prefix=/usr/local/gmp-4.2.3 make (编译) make install (执行安装) ②安装mpfr2.4.0 bzip -d mpfr-2.4.0.tar.bz2 tar -xvf mpfr-2.4.0.tar.bz2 cd local/mpfr-2.4.0 /opt/mpfr-2.4.0/configure --prefix=/usr/local/mpfr-2.4.0 --with-gmp=/usr/local/gmp-4.2.3 (注意配置的时候要把依赖关系选项加进去) make make install ③安装mpc0.8.1 bzip -d mpc-0.8.1.tar.gz tar -xvf mpc-0.8.1.tar cd mpc-0.8.1 /opt/mpc-0.8.1/configure --prefix=/usr/local/mpc-0.8.1 --with-gmp=/usr/local/gmp-4.2.3 --with-mpfr=/usr/local/mpfr-2.4.0 make make install ④再次安装GCC 配置安装选项 cd gcc-4.6.4 /opt/gcc-4.6.4/configure --prefix=/usr/local/gcc-4.6.4 -enable-threads=posix -disable-checking -disable-multilib -enable-languages=c,c++ --with-gmp=/usr/local/gmp-4.2.3 --with-mpfr=/usr/local/mpfr-2.4.0 --with-mpc=/usr/local/mpc-0.8.1 vim /etc/ld.so.conf.d/gcclib.conf 写入一下内容 /usr/local/mpc-0.8.1/lib /usr/local/gmp-4.2.3/lib /usr/local/mpfr-2.4.0/lib /sbin/ldconfig -v 更新 make make install

2018-03-28

阿里巴巴 编程规范 android java

Apsara Clouder基础技能认证:阿里巴巴Android开发规范 《阿里巴巴Android开发手册》是阿里巴巴集团无线开发同学在手淘、天猫、闲鱼、钉钉等APP开发优化过程中经验的结晶,这些经验指导他们写出更好的代码来保障App的性能、安全和稳定性,现在手册已开放。本认证是对您的Android开发是否符合该手册的证明。

2018-03-14

廖雪峰javascript,python和git教程

廖雪峰网站到讲义包含javascript,python和git教程 有目录结构

2018-01-04

mod_wsgi.so

mod_wsgi.so 将django程序部署到Apache服务器上需要用到 123456 百度云地址 https://pan.baidu.com/s/1nuPTqD7

2017-12-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除