自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 2021-05-13

目录什么是HEIF格式HEIF能做什么?Android 对HEIF的支持HEIF解码HEIF渲染Oppo 到底改了什么?什么是HEIF格式HEIF全称是High Efficiency Image File Format(高效图像文件格式),是一种高效的图片封装格式,通常的文件后缀名为HEIC。不同于我们最常见到的JPEG格式图片,HEIF是一种封装格式,一般HEIF格式的图片,特指以HEVC(H.265)编码器进行压缩的图像文件。HEIF能做什么?由于封装格式与编码方式的相互独立

2021-05-13 16:28:21 1005 1

原创 Android R 颜色管理-开端

开篇去年11 月 18 日 OPPO INNODAY 的技术分论坛上。OPPO 第一次对外讲述了它的「全链路色彩管理系统」. 归根接地就是如下2点:相机能以 10bit 记录 P3 色彩屏幕能以 10bit 显示 P3 色域OPPO 说率先对原生 Android 的解码进行了重构,同时对原生的内存数据进行改造,还增加了渲染适配入口,最终研发出了兼容10bit图片的解决方案.我们这花点时间趴一趴OPPO的底裤,看他到底改了啥?我们这只从分析屏幕能以 10bit 显示 P3 色域这一点。这里

2021-04-29 15:45:29 400

原创 Android R 原生模糊效果原理

Android原生模糊效果原理上图是Android S上面的原生模糊效果图,在AndroidS提供了如下setBackgroundBlurRadius 函数给到app是添加模糊效果。public void setBackgroundBlurRadius (int blurRadius)Blurs the screen behind the window within the bounds of the window. The density of the blur is set by the

2021-04-22 10:31:40 4395 1

原创 AndroidR护眼模式流程分析(上)

护眼模式概述研究表明,屏幕的蓝光会对睡眠质量造成不良影响。Android 7.1.1 推出一种称为“护眼模式”的功能,可减少设备屏幕发出的蓝光量,以便达到更接近用户当前时间和地点的自然光效果。Android 8.0 推出一项附加功能,可让用户更好地控制护眼模式效果的强度。 Android 10 推出了 COLOR_DISPLAY_SERVICE 系统服务,具备系统 API 接口,使系统、“设置”和系统界面能够更好地控制所有颜色转换(包括护眼模式)。护眼模式需要实现 Hardware Composer H

2021-04-15 08:42:24 3363 2

原创 AndroidR 截屏流程分析

缘起最近App开发同事提出了一个需求,需要系统团队提供一个截屏的时候,可以过滤一些特定Layer中的内容,我这顺便记录一下调试过程。流程截屏流程一般通过 SurfaceControl.screenshot(frame, dw, dh, false, ROTATION_0);函数返回一个bitmap的图片。参数包含裁剪区域sourceCrop 和旋转角度。frameworks/base/core/java/android/view/SurfaceControl.javapublic static

2021-04-01 13:49:36 1877 2

转载 音频算法

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/weixin_31614117/article/details/898520411. 入门材料基本的音频信号处理方式https://github.com/xdyuchen/AudioScore.git2. 音频系统介绍强烈推荐...

2019-09-30 12:06:37 958

转载 记一次Android系统下解决音频UnderRun问题的过程

【前言】 因为这几天在为设备从 Android M 升级到 Android N 的 bringup 做准备,所以一直没写博客。趁现在刚刚把 Kernel 部分的移植做完,忙里偷闲把 2 周前解决的一个音频 UnderRun 问题记录一下,留作以后参考。 问题现象是:使用腾讯视频 APP 播放视频,一段时间后会出现 pop-click 噪音,听起来类似“哒哒”一样的声音。【...

2019-09-20 09:32:30 1230

转载 关于android长连接及休眠唤醒的几篇文章

极光推送技术原理:无线网络长连接  移动互联网应用现状因为手机平台本身、电量、网络流量的限制,移动互联网应用在设计上跟传统 PC 上的应用很大不一样,需要根据手机本身的特点,尽量的节省电量和流量,同时又要尽可能的保证数据能及时到达客户端。为了解决数据同步的问题,在手机平台上,常用的方法有2种。一种是定时去服务器上查询数据,也叫Polling,还有一种手机跟服务器之间维护一个 T...

2019-02-22 17:31:11 457

转载 AndroidMediaRecorder架构详解

原AndroidMediaRecorder架构详解2015年03月27日 15:38:54 phoebe_2012 阅读数:5960 标签: android MediaRecorder 架构 C层录音 更多个人分类: android AndroidMediaRecorder架构详解1.     简介在android中录制音频有两种方式,MediaRecorder和Audi...

2019-01-30 14:13:25 1899

转载 camera录像过程一

1 概述camera 的录像分为三个过程:    camera模块将从hal层的预览线程中,获取原始的未压缩的yvu视屏帧,通过回调函数传递到CameraSource模块    OMXCodec模块将从CameraSource模块的read接口获取yuv视频帧拷贝到编码模块提供的输入端口的buffer列表中,编码模块从输入端口的buffer列表读取包含yuv的buffer、编码、然后送回到...

2019-01-25 13:54:25 1614

转载 添加一个Android框架层的系统服务与实现服务的回调

概述  所谓Android系统服务其本质就是一个通过AIDL跨进程通信的小Demo的延伸而已。按照 AIDL 跨进程通信的标准创建一套程序,将服务端通过系统进程来运行实现永驻内存,在其它程序中就可以通过约定好的方式来建立通信了。而所谓回调,本质 上也是一个 AIDL 跨进程通信,只不过是将回调的服务端放在系统服务通信的客户端中而已。  本实例我们模拟一个灯光管理功能。设备中有一盏灯,我们定...

2019-01-19 10:17:16 796

转载 Android 6.0 如何添加完整的系统服务(app-framework-kernel)

最近学习了如何在Android 6.0上添加一个系统服务,APP如何通过新增的系统服务访问底层驱动。在这学习过程中,收获颇多,并结合学习了《Embeded Android》--Karim Yaghmour 一书中的Appendix B. Adding Support For New Hardware章节,受益匪浅,讲述了如何添加一个完整的系统服务(app->framework->...

2019-01-11 11:10:54 547

转载 MediaCodec与ACodec通知分析

ACodec与MediaCodec的通知。OMX的组件解码之后,当ACodec的onOMXFillBufferDone会被回调,去取得解码后的数据。ACodec在onOMXFillBufferDone调用后会调用notify通知MediaCodec(notify->setInt32("what", CodecBase::kWhatDrainThisBuffer);//发给MediaCode...

2019-01-10 18:16:38 1262

转载 Android Tombstone 分析

1.什么是tombstone当一个动态库(native 程序)开始执行时,系统会注册一些连接到 debuggerd 的 signal handlers,当系统 crash 的时候,会保存一个 tombstone 文件到/data/tombstones目录下(Logcat中也会有相应的信息),文件的确就像墓碑一样记录了死亡了的进程的基本信息(例如进程的进程 号,线程号),死亡的地址(在哪个地址上...

2019-01-04 15:32:03 323 1

转载 Android广播机制详解

1 广播类型        从广播的注册方式来分,分为以下2种:静态注册:通过<receiver></receiver>的形式在AndroidManifest.xml中注册的广播;动态注册:通过context. registerReceiver在程序中显示注册的广播;       上面静态广播和动态广播比较明显的3个区别:(1)静态广播在进程没有运行的时候,...

2018-12-13 22:35:49 1001

转载 watchdog ,hang_detect分析

作用:用于监控,system_server 中的watchdog 线程的行为是否异常。实现:mtk 在kernel 中专门注册了一个设备( /dev/RT_Monitor ),用于和上层通信监控 watchdog是否正常。大概为:watchdog 向/dev/RT_Monitor 设置一个值,然后hang_detect根据此值,计算出一个时间,在此时间内,watchdog,必须再次通知一下...

2018-11-12 23:23:55 565

转载 散列 - C语言实现(摘自数据结构与算法分析 C语言描述)

一、概述  散列表(hash table)ADT只支持二叉查找树所允许的一部分操作,散列表的实现常常叫做散列(hashing)。散列是一种以常数平均时间执行插入、删除和查找的技术。但是,那些需要元素间任何排序信息的操作将不会得到有效的支持。二、实现  理想的散列表数据结构只不过是一个包含有关关键字的具有固定大小的数组。典型情况下,一个关键字就是一个带有相关值的字符串。我们把表的大小记作

2012-12-05 19:18:23 651

转载 白话经典算法系列之十 一道有趣的GOOGLE面试题

最近在微博上看到一道有趣的GOOGLE面试题,见下图:文字版:一个大小为n的数组,里面的数都属于范围[0, n-1],有不确定的重复元素,找到至少一个重复元素,要求O(1)空间和O(n)时间。     这个题目要求用O(n)的时间复杂度,这意味着只能遍历数组一次。同时还要寻找重复元素,很容易想到建立哈希表来完成,遍历数组时将每个元素映射到哈希表中,如果哈希表中已经存在这个元

2012-11-25 23:41:29 390

转载 想成为嵌入式程序员应知道的0x10个基本问题

C语言测试是招聘嵌入式系统程序员过程中必须而且有效的方法。这些年,我既参加也组织了许多这种测试,在这过程中我意识到这些测试能为带面试者和被面试者提供许多有用信息,此外,撇开面试的压力不谈,这种测试也是相当有趣的。从被面试者的角度来讲,你能了解许多关于出题者或监考者的情况。这个测试只是出题者为显示其对ANSI标准细节的知识而不是技术技巧而设计吗?这个愚蠢的问题吗?如要你答出某个字符的ASCII值

2012-11-25 11:19:24 369

转载 RLE行程长度编码压缩算法

1.RLE概述RLE(Run LengthEncoding行程编码)算法是一个简单高效的无损数据压缩算法,其基本思路是把数据看成一个线性序列,而这些数据序列组织方式分成两种情况:一种是连续的重复数据块,另一种是连续的不重复数据块。对于连续的重复数据快采用的压缩策略是用一个字节(我们称之为数据重数属性)表示数据块重复的次数,然后在这个数据重数属性字节后面存储对应的数据字节本身,例如某一个文件有如

2012-11-25 02:31:56 4122

转载 哈希算法

哈稀函数按照定义可以实现一个伪随机数生成器(PRNG),从这个角度可以得到一个公认的结论:哈希函数之间性能的比较可以通过比较其在伪随机生成方面的比较来衡量。一些常用的分析技术,例如泊松分布可用于分析不同的哈希函数对不同的数据的碰撞率(collision rate)。一般来说,对任意一类的数据存在一个理论上完美的哈希函数。这个完美的哈希函数定义是没有发生任何碰撞,这意味着没有出现重复的散列值。在

2012-11-25 02:05:31 838

转载 最短路算法

最短路径问题旨在寻找图中两节点之间的最短路径,常用的算法有以下四种。注意是把图处理成无向还是有向Dijkstra's (权值非负)1 Dijkstra's算法解决的是图中单个源点到其它顶点的最短路径。只能解决权值非负2 Dijkstral只能求出任意点到达源点的最短距离(不能求出任意两点之间的最短距离),同时适用于有向图和无向图,复杂度为O(n^2).3算法的过程: 1设置

2012-11-25 01:39:24 11771

转载 MD5 算法

MD5(单向散列算法)的全称是Message-Digest Algorithm 5(信息-摘要算法),经MD2、MD3和MD4发展而来。MD5算法的使用不需要支付任何版权费用。MD5功能:输入任意长度的信息,经过处理,输出为128位的信息(数字指纹);不同的输入得到的不同的结果(唯一性);根据128位的输出结果不可能反推出输入的信息(不可逆); MD5属不属于加密算法:

2012-11-25 01:06:28 589

转载 平衡二叉树算法详解

转自  http://www.cnblogs.com/fornever/archive/2011/11/15/2249492.html 平衡二叉树(解惑)平衡二叉树定义(AVL):它或者是一颗空树,或者具有以下性质的二叉树:它的左子树和右子树的深度之差的绝对值不超过1,且它的左子树和右子树都是一颗平衡二叉树。平衡因子(bf):结点的左子树的深度减去右子树的深度,

2012-11-24 11:28:16 531

转载 嵌入式系统开发:C语言中的位结构体 .

在嵌入式开发中,经常需要表示各种系统状态,位结构体的出现大大方便了我们,尤其是在进行一些硬件层操作和数据通信时。但是在使用位结构体的过程中,是否深入思考一下它的相关属性?是否真正用到它的便利性,来提高系统效率?下面我将进行一些相关实验(这里以项目开发中的实际代码为例):1.位结构体类型设计[cpp] view plaincopyprint?//dat

2012-11-23 12:44:05 578

空空如也

空空如也

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

TA关注的人

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