Android专栏
文章平均质量分 85
林学森
《机器学习观止——核心原理与实践》
《深入理解Android内核设计思想》
展开
-
Android虚拟机章节——1.3.2 ELF的加载和动态链接过程
android 虚拟机 ELF 动态链接 原理原创 2016-09-21 21:14:20 · 2285 阅读 · 1 评论 -
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(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(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(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(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 阅读 · 0 评论 -
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(18)postFramebuffer
文章都是通过阅读源码分析出来的,还在不断完善与改进中,其中难免有些地方理解得不对,欢迎大家批评指正。转载请注明:From LXS. http://blog.csdn.net/uiop78uiop78/GUI系统之SurfaceFlinger章节目录:blog.csdn.net/uiop78uiop78/article/details/89545081.1.1 postFramebuffer在多缓冲原创 2013-05-21 14:25:38 · 11461 阅读 · 9 评论 -
Handler, MessageQueue, Runnable与Looper
相信不少人对这几个概念深恶痛绝,因为它们“像雾像雨又像风”——自我感觉都很熟识,如果下一次再相遇,却又陌生得很。这种“隔靴搔痒”的感觉促使我们必须与这些“顽固分子”来个彻底的决断。 先不要想太多,任头脑中随意画下对这些概念的第一印象,如图5-5所示。 ▲图5 5 概念初探 图5-5是我们对这几个概念的“感官”释义,读者可以尝试着思考下是否和自己所想的基本一致。 那么,如果把这些概念糅原创 2015-03-27 22:59:04 · 3792 阅读 · 3 评论 -
本书版权输出到台湾地区,《深入理解Android内核设计思想》诚挚感谢大家一直以来的支持!
深入理解Android内核设计思想 android内核 全面 显示系统 音频系统 基础知识原创 2014-06-12 16:27:03 · 5241 阅读 · 10 评论 -
《深入理解Android内核设计思想》已陆续在全国各大书店及网上书店上市,感谢大家一直以来的支持~~
《深入理解Android内核设计思想》已陆续在全国各大书店上市,电子书店也在陆续上架中(不断增加):1. http://product.china-pub.com/3803721书本目录和一些章节内容将陆续与各位亲爱的读者们分享,感谢大家一直以来的支持和鼓励~~原创 2014-04-28 10:07:39 · 5990 阅读 · 22 评论 -
诚征书本封面啦
新书 诚征封面 建议原创 2013-12-16 12:52:01 · 4852 阅读 · 65 评论 -
我的Android4.3新书即将上市,同时有奖征书名
Android4.3 新书 基本原理 设计者理念 思考 有奖征书名原创 2013-08-25 15:11:48 · 6770 阅读 · 40 评论 -
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 阅读 · 0 评论 -
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 评论 -
Android音频系统之AudioTrack(一)
1.1 AudioTrack1.1.1 AudioTrack应用实例对于Android应用开发人员来讲,音频回放最熟悉的莫过于MediaPlayer,而AudioTrack相信用的人相对会少很多。这是因为MediaPlayer提供了更完整的封装和状态控制,使得我们用很少的代码就可以实现一个简单的音乐播放器。而相比MediaPlayer,AudioTrack更为精练、高效,实际上MediaPlaye原创 2013-04-15 18:29:09 · 29256 阅读 · 7 评论 -
Android音频系统之AudioPolicyService
1.1 AudioPolicy Service在AudioFlinger小节,我们反复强调它只是策略的执行者,而AudioPolicyService则是策略的制定者。这种分离方式有效地降低了整个系统的藕合性,而且为各个模块独立扩展功能提供了保障。1.1.1 AudioPolicyService概述汉语中有很多与策略有关联的俗语,比如“因地制宜”、“具体问题具体分析”;战争中只遵照兵书制原创 2013-04-15 18:12:42 · 20175 阅读 · 1 评论 -
Android音频系统之AudioFlinger(四)
1.1.1 AudioMixer每一个MixerThread都有一个唯一对应的AudioMixer(在MixerThread中用mAudioMixer表示),它的作用如其名所表示的,就是为了完成音频的混音操作。 图 13‑14 MixerThread示意图 如上图,MixerThread对外开放的接口主要涉及到Parameter(比如setPar原创 2013-04-15 18:08:49 · 13938 阅读 · 4 评论 -
Android音频系统之AudioFlinger(二)
1.1.1 音频设备的管理虽然AudioFlinger实体已经成功创建并初始化,但到目前为止它还是一块静态的内存空间,没有涉及到具体的工作。从职能分布上来讲,AudioPolicyService是策略的制定者,比如什么时候打开音频接口设备、某种Stream类型的音频对应什么设备等等。而AudioFlinger则是策略的执行者,例如具体如何与音频设备通信,如何维护现有系统中的音频设备,以及多原创 2013-04-15 18:05:12 · 22378 阅读 · 2 评论 -
Android音频系统之AudioFlinger(一)
1.1 AudioFlinger在上面的框架图中,我们可以看到AudioFlinger(下面简称AF)是整个音频系统的核心与难点。作为Android系统中的音频中枢,它同时也是一个系统服务,启到承上(为上层提供访问接口)启下(通过HAL来管理音频设备)的作用。只有理解了AudioFlinger,才能以此为基础更好地深入到其它模块,因而我们把它放在前面进行分析。 1.1.1 AudioF原创 2013-04-15 18:01:24 · 37350 阅读 · 3 评论 -
Android音频系统之AudioFlinger(三)
1.1.1 PlaybackThread的循环主体当一个PlaybackThread进入主循环后(threadLoop),音频事务就正式开启了。仔细观察的话,我们会发现这个循环中会不断地调用以“threadLoop_”开头的若干接口,比如threadLoop_mix、threadLoop_sleepTime、threadLoop_standby等等。以这样的前缀开头,是因为这些函数都是在thr原创 2013-04-15 18:06:15 · 17168 阅读 · 1 评论 -
Android音频系统之音频基础
第1章 音频系统转载请注明:LXS, http://blog.csdn.net/uiop78uiop78/article/details/8787779对于一部嵌入式设备来说,除了若干基础功能外(比如手机通话、短信),最重要的可能就是多媒体了——那么一个最简单的问题,什么是多媒体呢?这个术语对应的英文单词是“Multi-Media”,直译过来就是多媒体。名称就原创 2013-04-11 13:41:56 · 18489 阅读 · 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 评论 -
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 阅读 · 0 评论 -
Android音频系统之AudioTrack(二)
1.1.1 AudioPolicyService的路由实现我们在AudioPolicyService小节曾将其比作是一个“路由器”,不过还没有深入解析它是如何完成路由选择的。这部分的功能与使用者——AudioTrack有很大关联,所以我们特别将它的实现原理剖析放在这里,以使读者可以综合起来理解。路由器功能由如下几个部分组成:l 与发送方(AudioTrack)的接口就好像路由器首先要接收到一个I原创 2013-04-15 18:30:11 · 13281 阅读 · 1 评论 -
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(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(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 · 18692 阅读 · 2 评论 -
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 阅读 · 0 评论 -
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音频系统之音频框架
1.1 音频框架转载请注明,From LXS, http://blog.csdn.net/uiop78uiop78/article/details/8796492Android的音频系统在很长一段时间内都是外界诟病的焦点。的确,早期的Android系统在音频处理上相比于IOS有一定的差距,这也是很多专业的音乐播放软件开发商没有推出Android平台产品的一个重要原因。但这并不代表它的音原创 2013-04-13 11:58:12 · 51907 阅读 · 12 评论