自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

林学森的技术专栏

深入剖析移动操作系统和人工智能等前沿技术,已出版《机器学习观止——核心原理与实践》、《Android内核设计思想》等

  • 博客(225)
  • 资源 (14)
  • 收藏
  • 关注

原创 GUI系统之SurfaceFlinger(17)handleRepaint

文章都是通过阅读源码分析出来的,还在不断完善与改进中,其中难免有些地方理解得不对,欢迎大家批评指正。转载请注明:From LXS. http://blog.csdn.net/uiop78uiop78/GUI系统之SurfaceFlinger章节目录:blog.csdn.net/uiop78uiop78/article/details/89545081.1.1 handleRepaint经过hand

2013-05-21 14:24:26 7147 2

原创 GUI系统之SurfaceFlinger(16)handleRefresh

文章都是通过阅读源码分析出来的,还在不断完善与改进中,其中难免有些地方理解得不对,欢迎大家批评指正。转载请注明:From LXS. http://blog.csdn.net/uiop78uiop78/GUI系统之SurfaceFlinger章节目录:blog.csdn.net/uiop78uiop78/article/details/89545081.1.1 handleRefresh从名称上看,

2013-05-21 14:22:20 6640

原创 GUI系统之SurfaceFlinger(15)handlePageFlip

文章都是通过阅读源码分析出来的,还在不断完善与改进中,其中难免有些地方理解得不对,欢迎大家批评指正。转载请注明:From LXS. http://blog.csdn.net/uiop78uiop78/GUI系统之SurfaceFlinger章节目录:blog.csdn.net/uiop78uiop78/article/details/89545081.1.1 handlePageFlipPageF

2013-05-21 14:21:06 9197 3

原创 GUI系统之SurfaceFlinger(14)handleTransaction

文章都是通过阅读源码分析出来的,还在不断完善与改进中,其中难免有些地方理解得不对,欢迎大家批评指正。转载请注明:From LXS. http://blog.csdn.net/uiop78uiop78/GUI系统之SurfaceFlinger章节目录:blog.csdn.net/uiop78uiop78/article/details/89545081.1.1 handleTransaction有两

2013-05-21 14:15:31 8131

原创 GUI系统之SurfaceFlinger(13)VSync信号的处理

文章都是通过阅读源码分析出来的,还在不断完善与改进中,其中难免有些地方理解得不对,欢迎大家批评指正。转载请注明:From LXS. http://blog.csdn.net/uiop78uiop78/GUI系统之SurfaceFlinger章节目录:blog.csdn.net/uiop78uiop78/article/details/89545081.1.1 VSync信号的处理经过上一小节的分析

2013-05-21 14:12:08 7788 2

原创 GUI系统之SurfaceFlinger(12)VSync信号的产生和处理

文章都是通过阅读源码分析出来的,还在不断完善与改进中,其中难免有些地方理解得不对,欢迎大家批评指正。转载请注明:From LXS. http://blog.csdn.net/uiop78uiop78/GUI系统之SurfaceFlinger章节目录:blog.csdn.net/uiop78uiop78/article/details/89545081.1 VSync的产生和处理前面小节Projec

2013-05-21 13:51:47 12795 3

原创 GUI系统之SurfaceFlinger(11)SurfaceComposerClient

文章都是通过阅读源码分析出来的,还在不断完善与改进中,其中难免有些地方理解得不对,欢迎大家批评指正。转载请注明:From LXS. http://blog.csdn.net/uiop78uiop78/GUI系统之SurfaceFlinger章节目录:blog.csdn.net/uiop78uiop78/article/details/89545081.1.1 SurfaceComposerClie

2013-05-21 13:47:53 14565 3

原创 GUI系统之SurfaceFlinger(10)SurfaceFlinger的启动与工作原理

文章都是通过阅读源码分析出来的,还在不断完善与改进中,其中难免有些地方理解得不对,欢迎大家批评指正。转载请注明:From LXS. http://blog.csdn.net/uiop78uiop78/GUI系统之SurfaceFlinger章节目录:blog.csdn.net/uiop78uiop78/article/details/89545081.1.1 SurfaceFlinger的启动Su

2013-05-21 13:42:56 7685 2

原创 GUI系统之SurfaceFlinger(9)Project Butter黄油计划

文章都是通过阅读源码分析出来的,还在不断完善与改进中,其中难免有些地方理解得不对,欢迎大家批评指正。转载请注明:From LXS. http://blog.csdn.net/uiop78uiop78/GUI系统之SurfaceFlinger章节目录:blog.csdn.net/uiop78uiop78/article/details/89545081.1 SurfaceFlinger从这一小节开始

2013-05-21 13:39:48 12158 7

原创 GUI系统之SurfaceFlinger(8)应用程序与BufferQueue的关系

文章都是通过阅读源码分析出来的,还在不断完善与改进中,其中难免有些地方理解得不对,欢迎大家批评指正。转载请注明:From LXS. http://blog.csdn.net/uiop78uiop78/GUI系统之SurfaceFlinger章节目录:blog.csdn.net/uiop78uiop78/article/details/89545081.1.1 应用程序与BufferQueue的关系

2013-05-21 13:25:26 8722 1

原创 GUI系统之SurfaceFlinger(7)应用程序的典型绘图流程

文章都是通过阅读源码分析出来的,还在不断完善与改进中,其中难免有些地方理解得不对,欢迎大家批评指正。转载请注明:From LXS. http://blog.csdn.net/uiop78uiop78/GUI系统之SurfaceFlinger章节目录:blog.csdn.net/uiop78uiop78/article/details/89545081.1.1 应用程序的典型绘图流程我们知道,Buf

2013-05-21 13:21:58 10156 1

原创 GUI系统之SurfaceFlinger(6)BufferQueue中的缓冲区分配

文章都是通过阅读源码分析出来的,还在不断完善与改进中,其中难免有些地方理解得不对,欢迎大家批评指正。转载请注明:From LXS. http://blog.csdn.net/uiop78uiop78/GUI系统之SurfaceFlinger章节目录:blog.csdn.net/uiop78uiop78/article/details/89545081.1.1 BufferQueue中的缓冲区分配我

2013-05-21 13:17:33 15941 3

原创 GUI系统之SurfaceFlinger(5)BufferQueue内部原理

文章都是通过阅读源码分析出来的,还在不断完善与改进中,其中难免有些地方理解得不对,欢迎大家批评指正。转载请注明:From LXS. http://blog.csdn.net/uiop78uiop78/GUI系统之SurfaceFlinger章节目录:blog.csdn.net/uiop78uiop78/article/details/89545081.1 BufferQueue详解上一小节我们已经

2013-05-21 13:13:28 18691 2

原创 GUI系统之SurfaceFlinger(4)opengl es本地窗口SurfaceTextureClient

文章都是通过阅读源码分析出来的,还在不断完善与改进中,其中难免有些地方理解得不对,欢迎大家批评指正。转载请注明:From LXS. http://blog.csdn.net/uiop78uiop78/1.1.1 SurfaceTextureClient针对应用程序端的本地窗口是SurfaceTextureClient,和FramebufferNativeWindow一样,它必须继承ANativeW

2013-05-21 13:06:50 12085 2

原创 GUI系统之SurfaceFlinger(3)Android中的本地窗口FramebufferNativewindow

文章都是通过阅读源码分析出来的,还在不断完善与改进中,其中难免有些地方理解得不对,欢迎大家批评指正转载请注明:From LXS. http://blog.csdn.net/uiop78uiop78/1.1 Android中的本地窗口在OpenGL的学习过程中,我们不断提及“本地窗口”(NativeWindow)这一概念。那么对于Android系统来说,它是如何将OpenGL ES本地化的呢,或者说

2013-05-21 13:01:47 13792 6

原创 GUI系统之SurfaceFlinger(2)Gralloc与Framebuffer

文章都是通过阅读源码分析出来的,还在不断完善与改进中,其中难免有些地方理解得不对,欢迎大家批评指正转载请注明:From LXS. http://blog.csdn.net/uiop78uiop78/1.1 Gralloc与Framebuffer相信做过Linux开发的人对framebuffer不会太陌生,它是内核系统提供的一个与硬件无关的显示抽象层。之所以称之为buffer,是由于它也是系统存储空

2013-05-21 11:56:18 10444

原创 GUI系统之SurfaceFlinger(1)OpenGLES与EGL

文章都是通过阅读源码分析出来的,还在不断完善与改进中,其中难免有些地方理解得不对,欢迎大家批评指正转载请注明:From LXS. http://blog.csdn.net/uiop78uiop78/第1章  GUI系统之SurfaceFlinger在进入GUI系统的学习前,建议大家可以先阅读本书应用篇中的“OpenGLES”章节,并参阅OpenGL ES官方指南。因为Android的GUI系统是基

2013-05-21 11:52:10 19904 5

原创 GUI显示系统之SurfaceFlinger---章节目录

后面的几篇博文中我将按照如下的顺序贴出各小节内容。文章都是通过阅读源码分析出来的,还在不断完善与改进中,其中难免有些地方理解得不对,欢迎大家批评指正第11章 GUI系统之SurfaceFlinger247   11.1OpenGL ES与EGL. 247   11.2Gralloc与Framebuffer249   11.3Android中的本地窗口... 253        11.3.1Fra

2013-05-21 11:44:43 17551 4

原创 GUI显示系统之SurfaceFlinger--- Gralloc与Framebuffer

GUI显示系统之SurfaceFlinger其它部分完整章节:http://blog.csdn.net/uiop78uiop78/article/details/8954508第1章  GUI系统之SurfaceFlinger在进入GUI系统的学习前,建议大家可以先阅读本书应用篇中的“OpenGLES”章节,并参阅OpenGL ES官方指南。因为Android的GUI系统是基于OpenGL/EGL

2013-05-20 11:13:26 13319 3

原创 Android进程线程之同步互斥(一)

1.1.1 Android中的同步与互斥Android系统也提供了自己的同步互斥机制,不过任何技术的本质都是类似的,更多的是把这些本质的东西应用到符合自己要求的场景。目前Android封装的同步互斥类包括:·          Mutex头文件在frameworks/native/include/utils/Mutex.h,因为实现与具体的平台有关,我们只关心如何使用它·          Con

2013-04-18 09:24:29 10983 1

原创 Android显示系统之SurfaceFlinger(一)

1.1 SurfaceFlinger的启动SurfaceFlinger的启动和ServiceManager有点类似,它们都属于系统的底层支撑服务,必需在设备开机的早期就运行起来。/*frameworks/base/cmds/system_server/library/System_init.cpp*/extern "C" status_t  system_init(){…       proper

2013-04-16 17:20:08 11157

原创 Android音频系统之AudioTrack(二)

1.1.1 AudioPolicyService的路由实现我们在AudioPolicyService小节曾将其比作是一个“路由器”,不过还没有深入解析它是如何完成路由选择的。这部分的功能与使用者——AudioTrack有很大关联,所以我们特别将它的实现原理剖析放在这里,以使读者可以综合起来理解。路由器功能由如下几个部分组成:l  与发送方(AudioTrack)的接口就好像路由器首先要接收到一个I

2013-04-15 18:30:11 13280 1

原创 Android音频系统之AudioTrack(一)

1.1 AudioTrack1.1.1 AudioTrack应用实例对于Android应用开发人员来讲,音频回放最熟悉的莫过于MediaPlayer,而AudioTrack相信用的人相对会少很多。这是因为MediaPlayer提供了更完整的封装和状态控制,使得我们用很少的代码就可以实现一个简单的音乐播放器。而相比MediaPlayer,AudioTrack更为精练、高效,实际上MediaPlaye

2013-04-15 18:29:09 29254 7

原创 Android音频系统之AudioPolicyService

1.1 AudioPolicy Service在AudioFlinger小节,我们反复强调它只是策略的执行者,而AudioPolicyService则是策略的制定者。这种分离方式有效地降低了整个系统的藕合性,而且为各个模块独立扩展功能提供了保障。1.1.1 AudioPolicyService概述汉语中有很多与策略有关联的俗语,比如“因地制宜”、“具体问题具体分析”;战争中只遵照兵书制

2013-04-15 18:12:42 20174 1

原创 Android音频系统之AudioFlinger(四)

1.1.1 AudioMixer每一个MixerThread都有一个唯一对应的AudioMixer(在MixerThread中用mAudioMixer表示),它的作用如其名所表示的,就是为了完成音频的混音操作。 图 13‑14 MixerThread示意图 如上图,MixerThread对外开放的接口主要涉及到Parameter(比如setPar

2013-04-15 18:08:49 13937 4

原创 Android音频系统之AudioFlinger(三)

1.1.1 PlaybackThread的循环主体当一个PlaybackThread进入主循环后(threadLoop),音频事务就正式开启了。仔细观察的话,我们会发现这个循环中会不断地调用以“threadLoop_”开头的若干接口,比如threadLoop_mix、threadLoop_sleepTime、threadLoop_standby等等。以这样的前缀开头,是因为这些函数都是在thr

2013-04-15 18:06:15 17167 1

原创 Android音频系统之AudioFlinger(二)

1.1.1 音频设备的管理虽然AudioFlinger实体已经成功创建并初始化,但到目前为止它还是一块静态的内存空间,没有涉及到具体的工作。从职能分布上来讲,AudioPolicyService是策略的制定者,比如什么时候打开音频接口设备、某种Stream类型的音频对应什么设备等等。而AudioFlinger则是策略的执行者,例如具体如何与音频设备通信,如何维护现有系统中的音频设备,以及多

2013-04-15 18:05:12 22376 2

原创 Android音频系统之AudioFlinger(一)

1.1 AudioFlinger在上面的框架图中,我们可以看到AudioFlinger(下面简称AF)是整个音频系统的核心与难点。作为Android系统中的音频中枢,它同时也是一个系统服务,启到承上(为上层提供访问接口)启下(通过HAL来管理音频设备)的作用。只有理解了AudioFlinger,才能以此为基础更好地深入到其它模块,因而我们把它放在前面进行分析。 1.1.1 AudioF

2013-04-15 18:01:24 37349 3

原创 Android音频系统之音频框架

1.1 音频框架转载请注明,From LXS, http://blog.csdn.net/uiop78uiop78/article/details/8796492Android的音频系统在很长一段时间内都是外界诟病的焦点。的确,早期的Android系统在音频处理上相比于IOS有一定的差距,这也是很多专业的音乐播放软件开发商没有推出Android平台产品的一个重要原因。但这并不代表它的音

2013-04-13 11:58:12 51904 12

原创 Android音频系统之音频基础

第1章  音频系统转载请注明:LXS, http://blog.csdn.net/uiop78uiop78/article/details/8787779对于一部嵌入式设备来说,除了若干基础功能外(比如手机通话、短信),最重要的可能就是多媒体了——那么一个最简单的问题,什么是多媒体呢?这个术语对应的英文单词是“Multi-Media”,直译过来就是多媒体。名称就

2013-04-11 13:41:56 18487 8

原创 Android应用程序的编译和打包

应用程序的编译和打包转载请注明:LXS, blog.csdn.net/uiop78uiop78/article/details/8504128文章是在word上写好后,复制到csdn的,csdn不支持live writer,每次编辑都很伤脑筋,最终的效果也很差。有知道方法的朋友告知一下,感谢。同步发布在http://www.cnblogs.com/lxs-android/archi

2013-01-15 09:26:48 5210 1

转载 linux重定向

在shell 程式中,最常使用的FD 大概有三個,分別为: 0: Standard Input (STDIN)1: Standard Output (STDOUT)2: Standard Error Output (STDERR) 在标准情況下,這些FD 分別跟如下设备关联:stdin(0): keyboardstdout(1): monitorstderr(2):

2012-12-12 18:25:03 1466

转载 Linux系统调用讲义

Linux下系统调用的实现Unix/Linux操作系统的体系结构及系统调用介绍什么是操作系统和系统调用    操作系统是从硬件抽象出来的虚拟机,在该虚拟机上用户可以运行应用程序。它负责直接与硬件交互,向用户程序提供公共服务,并使它们同硬件特性隔离。因为程序不应该依赖于下层的硬件,只有这样应用程序才能很方便的在各种不同的Unix系统之间移动。系统调用是Unix/Lin

2012-11-02 08:50:12 2334

转载 jvm中堆栈以及内存区域分配

堆栈这个概念存在于数据结构中,也存在于jvm虚拟机中,在这两个环境中是截然不同的意思。在数据结构中,堆栈是:堆 和栈两种数据结构,堆是完全二叉树,堆中各元素是有序的。在这个二叉树中所有的双亲节点和孩子节点存在着大小关系,如所有的双亲节点都大于孩子节点则 为大头堆,如果所有的双亲节点都小于其孩子节点说明这是一个小头堆,建堆的过程就是一个排序的过程,堆得查询效率也很高。栈是一种先进后出的线性表。

2012-09-01 08:48:00 1792

转载 Android Adb Analyse

TABLE OF CONTENTS1            Introduction1.1      Purpose1.2      Definitions, Acronyms, and Abbreviations2            Architecture2.1      Module Architecture Diagram3

2012-05-12 09:49:47 1965

转载 Android开发工具——ADB(Android Debug Bridge)

Android开发工具——ADB(Android Debug Bridge) 概览Android Debug Bridge (adb) 是一个android开发人员必会的多功能的调试工具,确实它的名字一样,它在开发者和目标机器之间,架起了一座bridge。        adb的用法很简单,只要看完SDK文档关于ADB的部分,(android-sdk-linux_86/docs/g

2012-05-12 09:36:09 3047

转载 android中生成和使用jar

参考资料1: http://blogold.chinaunix.net/u/9577/showart_1826330.html    Export LibraryPrepare source codeCreate an Android projectCreate source code, and fix all bugRemove res/*Remove unuse

2012-05-08 16:45:07 1625

转载 8086 CPU 寄存器简介

引子打算写几篇稍近底层或者说是基础的博文,浅要介绍或者说是回顾一些基础知识,自然,还是得从最基础的开始,那就从汇编语言开刀吧,从汇编语言开刀的话,我们必须还先要了解一些其他东西,像  CPU ,内存这些知识点还是理解深刻一点的比较好,所以这一篇博文就绕着 80x86  CPU 中寄存器的基础部分下手,至于其他的一些将会在后续的博文中介绍 。同时在这里

2012-05-06 17:23:30 1502

原创 Android 自动化测试初探

开个文研究自动化测试。前期先用来搜集各种概念资料1. android 官方测试参考   http://developer.android.com/guide/topics/testing/index.html2. 冒烟测试   http://baike.baidu.com/view/120013.htm3. 从测试的对象来看,测试分黑盒,白盒。    白盒,我的

2012-05-04 15:53:39 1899

转载 EQ均衡器原理

做音乐最离不开的效果器是什么?相信大多数朋友都会回答:是EQ!不错,正是有了这个所谓“均衡”的效果器,我们的音乐才不会过载,乐器音色才会如此丰富。然而知道1加1等于2更要知道1加1为什么等于2。今天我把这个效果器扒光,从根本上来分析它的工作原理。“EQ的原理??我知道我知道!!声波是由不同谐波组成的!所谓均衡处理就是改变这些谐波的振幅。”这个说法也对也不对。说它对是因为均衡效果器的初衷是这

2012-05-04 11:26:14 12058 3

实战无线通信应知应会 完整版

实战无线通信应知应会 完整版

2019-04-16

百面机器学习 hulu

人工智能 面试 百面机器学习 hulu

2018-12-09

智能革命 李彦宏

智能革命 李彦宏

2018-12-09

分布式服务框架

分布式 服务框架 开发 技术 经典书 分布式 服务框架 开发 技术 经典书

2018-01-18

单元测试之道Java版

单元测试之道Java版

2017-03-08

《Site.Reliability.Engineering 》英文原版

《Site.Reliability.Engineering 》英文原版,中文名《SRE:Google运维解密》

2017-03-08

Adw launcher的源码

Adw launcher是非常受欢迎的android项目,并且它是开源的,这对想学习launcher开发的同学是不错的资源

2011-11-15

STL源文件剖析-台湾侯老师精典之作

STL入门提高必读之作,侯老师经典之作.为DOC文件类型

2011-03-21

LINUX 经典GTK图形编程

非常经典的教材,示例也很不错,希望对大家有帮助。

2010-11-03

LINUX基本命令集锦

linux基本命令的详细解释及使用,比较实用

2010-10-14

自己动手写一个操作系统

利用开源软件,阐述如何自己动手写一个操作系统,包括计算机启动,保护模式设计等等

2009-05-19

空空如也

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

TA关注的人

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