自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Innost的专栏

微信公众号”神农和朋友们的杂文集”,一专多能,深入理解Android,前后台全栈,产品,管理,人生百态,团队建设

  • 博客(232)
  • 资源 (18)
  • 收藏
  • 关注

原创 Android深入浅出之Audio 第二部分 AudioFlinger分析

<br />一目的<br />本文承接Audio第一部分的AudioTrack,通过AudioTrack作为AF(AudioFlinger)的客户端,来看看AF是如何完成工作的。<br />在AT(AudioTrack)中,我们涉及到的都是流程方面的事务,而不是系统Audio策略上的内容。WHY?因为AT是AF的客户端,而AF是Android系统中Audio管理的中枢。AT我们分析的是按流程方法,那么以AT为切入点的话,AF的分析也应该是流程分析了。<br />对于分析AT来说,只要能把它的调用顺序(也就是

2011-01-15 20:22:00 18021 17

Android深入浅出之Binder机制一

太长了,拆开看太不方便。见附件吧。

2011-01-14 15:51:16 463

原创 Android深入浅出之Audio 第一部分 AudioTrack分析

<br />Android深入浅出之Audio<br />第一部分 AudioTrack分析<br />一目的<br />本文的目的是通过从Audio系统来分析Android的代码,包括Android自定义的那套机制和一些常见类的使用,比如Thread,MemoryBase等。<br />分析的流程是:<br />l         先从API层对应的某个类开始,用户层先要有一个简单的使用流程。<br />l         根据这个流程,一步步进入到JNI,服务层。在此过程中,碰到不熟悉或者第一次见到的类

2011-01-09 21:30:00 24451 30

原创 Android深入浅出之Binder机制

<br />Android深入浅出之Binder机制<br />一说明<br /> Android系统最常见也是初学者最难搞明白的就是Binder了,很多很多的Service就是通过Binder机制来和客户端通讯交互的。所以搞明白Binder的话,在很大程度上就能理解程序运行的流程。<br />我们这里将以MediaService的例子来分析Binder的使用:<br />l         ServiceManager,这是Android OS的整个服务的管理程序<br />l         Media

2011-01-08 21:27:00 34258 115

原创 Android MediaScanner 详尽分析

MediaScanner分析一 MediaScannerService多媒体扫描是从MediaScannerService开始的。这是一个单独的package。位于packages/providers/MediaProvider:含以下java文件l         MediaProvider.javal         MediaScannerReceiver.javal         MediaScannerService.javal         MediaThumbRequest.java分析这

2010-12-18 08:17:00 38236 51

原创 Android Looper和Handler分析

android的looper和handler分析

2010-12-05 10:59:00 51321 41

原创 软件开发方法的探索[2]

昨天夜里做梦又被”重构,重构”声中醒了,这是我从事IT行业以来体会最深的一个词语了。太富有内涵和伟大思想了。 上篇大概提到了敏捷开发中的一些内容,这回聊聊测试驱动开发和目前工作中如何推广这些技术的一些感想。 测试驱动开发,其道理很简单,即在编写程序乃至设计程序的时候,先想着如何写测试程序…确实很难转过弯来。尤其是在UI方面的测试大多数都是直观看的情况下,或者涉及到并发,网络,多线程编程的情况下,很少能有用到测试的(恕我孤陋寡闻!)。我在看完kent beck的测试驱动开发后,体会到一个东东----》针对

2010-11-30 20:49:00 3729 3

原创 软件开发方法的探索[1]

来到公司后,发现几个问题: 1 需求经常变动,而且变化经常扩散到相对比较稳定的framework层。 2 某些同学在开发过程中,大部分都是接手既有的或者老的代码,没时间没信心没胆量去修改既有代码,只能在上面修修补补,这种后果就是代码僵化,改动及其困难。 我承认开发过程中有些东西确实之前就比较stink,但是我实在不愿意在烂泥塘中挣扎,我要从这里解脱出来。所以我就想花一些时间来关注来思考这个可能在很多公司都存在的问题。 目前我只研究了下敏捷开发中部分理论,例如重构和TDD,在具体技术上我没有深究,而

2010-11-28 22:05:00 4117 8

原创 Android 系统分析[1]

<br /> ANDROID搞了大概5个月了,总感觉到它的这个java封装非常的不爽。这次下载了Froyo的源码,准备好好分析下Android的运行流程。一直有个暗想--能否替换掉JAVA层?搞android最麻烦的就是老记不住它那几个文件的位置,这里将给出详细的路径,方便其他看客了解。<br />没有固定的顺序,不过大概就是从启动开始的一些东西吧。我的想法是对android了解越多,才越可能在此基础上做最好最完善的改动。真的很不喜欢它的java层。<br /> <br />一 用户空间init<br />

2010-11-28 20:49:00 11336 7

原创 设计模式之 template method 与 visitor

<br />template method要注意一点的是在父类中定义了一个框架,而这个框架中有几个步骤可以由子类来重载或者扩充,这是template method和我最初想得不一样的地方,我开始把他当成了factory method的东西了。这个两个还是非常类似的。<br />visitor模式,有点像STL中的函数对象,尤其是我在copy,find的时候。但感觉比函数对象又要深刻一点。<br />visitor模式目的是把数据结构的组织和处理分开来,啥意思呢,假如我遍历一个列表,同时想对某个元素处理点东西

2010-07-25 20:58:00 2666 1

原创 设计模式之 strategy和state

<br />这个叫策略模式。最近感觉后面这几个行为模式都特别得像!<br />策略模式对某些算法进行了封装(不一定是算法咯)!<br />比如翻译一句话,用法语,日语,英语等翻译,就可以采用策略模式。<br />input...<br />translate..<br />output...<br />在translate中这里传入策略对象,即可完成相应功能。<br />这种将算法的变化部分独立出来的方式,就是策略。<br /> <br />state模式是状态模式,这个主要解决了大量使用if,else的情

2010-07-25 20:34:00 2506

原创 设计模式之 memento与observer

<br />memento的意思是备忘录,这种模式的存在道理很简单,保存类的某些状态,到以后好恢复。<br />memento的实现来说包括:<br />1 定义memento接口,这个接口最好有窄接口和宽接口,窄接口是给客户用的,一般来说不会透露很多详细信息给客户<br />宽接口是给originator用的,其实memento保存了originator自己的某些状态。<br />2 client从originator中得到一个memento<br />3 后续想恢复的时候,将保存的memento传给or

2010-07-25 15:35:00 2316

原创 设计模式之 mediator

<br />中介者?这个名字没完全表达本身的含义,这个应该是调停者或者叫仲裁者,都比中介者强。<br />啥个意思?就是多个对象相互影响,为了好控制,好管理,把交互的逻辑全部交到仲裁者那去做,这就是<br />mediator的中心思想。<br />再举那个BT的VADialg为例,涉及到太多的交互了,换一个list导致界面很多元素都得换,所以到处都是修改修改修改....<br />如果采用仲裁者方法,很多东西就可以在一处地方修改了。<br />从实现角度看,创建控件可以也放到仲裁者那里去做,采用abstr

2010-07-24 11:46:00 2407

原创 设计模式之 interpreter和iterator

<br />这个是我所谓的两I模式。其中第一个interpreter叫解释模型,感觉比较复杂和难用。道理是这样的,(难道只能做语法分析?)<br />一个句子,是某种格式的组合,所以,每种组合都可以单独由一个解释器来解释,这样就把整个难度划分开来了。它这有几个难度<br />1 必须按某种顺序来调用解释器,目前的方法是搞成个什么语法树,通过遍历的方式来解释(分析的目的最终是要得到一个简化的结果)<br />光这个,就已经比较复杂了。<br />2 必须保存某种状态...<br />我接触到的编码中还没有用到

2010-07-24 08:45:00 2229

原创 设计模式之 command

<br />command这种方式我非常喜欢,觉得这样把处理和invoke分开了,挺好。<br />它的想法是,以MFC的UI操作为例。当用户单击一个按钮的时候,以前的做法是直接在OnClickButton中处理这个事情,当然,代码<br />也是写死到函数中。所以比较麻烦的是在每个button处理中代码都很多,并且当一个button还需要根据外界情况来分别处理的时候,if else会挺烦。有了command就很方便了(想起大洋那个巨复杂,巨乱的VADialog,真是垃圾中的垃圾代码),所有操作都在comm

2010-07-24 08:22:00 2323

原创 设计模式之 chain of responsibility

<br />中文叫职责链,啥个意思?这个和我开始想的不太一样。<br />我开始觉得有个队列,外头有个使用队列的地方,然后轮询调用这个队列的每个成员来处理。<br />但是职责链的链是一个隐式的。每个对象有一个隐式得指向后续对象的指针,但该对象自己处理不了的时候,会交给<br />后续对象处理。<br />这种情况在一般的编程中很少有对应的场景,但是在GUI编程中是很常见的。GUI编程中,每个控件都有一个父,当自己处理不了的时候,就把它交给父对象处理了。注意,这里要区别交给父类函数处理。到底交给父类还是父对

2010-07-24 08:05:00 2183

原创 设计模式之 proxy

<br />proxy是代理的意思。其实我更感觉想某种意义上的封装,例如最常用的智能指针,和android的AutoLock,都是利用对象的<br />构造和析购函数来完成创建和清理的工作,那么代理类有什么需要注意的吗?<br />proxy和被代理的对象必须有同样的接口,这保证了client使用proxy和使用被代理对象一致。这种问题我从来没有从面向对象的角度去考虑过,以前肯定做过代理类,但是没想到过从同一个基类派生。<br />代理类的作用,<br />1 远程代理,当被代理在另外一个进程中,需要这种代

2010-07-24 07:56:00 2625

原创 设计模式之 facade与flyweight

<br />facade是外观的意思,啥意思呢?这个模式主要是针对子系统的复杂类的情况下,通过它可以提供一个简单的功能类。比如目前做的dlna库,写了好几个接口,而且基本上只有我知道是怎么个用法。但是dlna的客户端真得需要了解这么复杂的东西吗?不用,所以后面单独弄了一个dlna类,接口非常简单。这个就是facade的目的,把子系统的功能积聚到一个简单的类中去。注意,facade和之前的adapter等目的明显不同,这个是为了屏蔽子系统的复杂性而做的。<br /> <br />flyweight,是轻量级的

2010-07-18 20:29:00 2276

原创 设计模式之composite decorator模式

<br />composite是复合的意思,就是一个对象可包含其他同类对象的东西。<br />有两种实质不同的对象--leaf与component,leaf是叶子对象,component是容器对象,可用于容纳其他leaf或子component的。<br />这里在实现的时候要注意一个问题:component和leaf是同一类型的,也就是有共同的基类。为何这么做?因为composite的本质是把leaf和component看做同一个东西,不用区别对待,所以有共同基类是必然的。<br />这样就有一个问题,基类

2010-07-18 10:48:00 3690

原创 设计模式之adapter bridge模式

<br />先说adapter模式<br />adapter中文为适配器模式,目的和想法很简单,就是一种封装,只不过这种封装是为了从接口A到达接口B,啥个意思呢,A已经提供功能了,但是另外一个东西只能使用B的接口,所以得弄一个东西将A转换成B接口,这个转换器就是adpater。从这个描述可以看到,我们实际上有三个东西。<br />  A----adapter-----B。其中A叫adaptee,B叫target。<br />怎么实现呢?通常有2种方法:<br />adapter---继承A,B,这样使用B的

2010-07-17 20:21:00 4884

原创 设计模式之 prototype和singleton

先说singleton,就是无论怎么调函数,其实返回得都是同一个对象。这个相对来说比较简单,至于有什么作用吗?要看应用了。不如数据库连接一般就给你一个连接,管你上面供几个对象同时使用。无需多说。在实现上,要注意了,用接口怎么返回子类对象?我一般用一个API,而不是类函数来做这个,这就不是面向对象了,考虑考虑JAVA吧。通过类似注册表,create()--->read type from registry 来创建不同子类...够可以的....现在说说这个比较少见的proto type,为啥有这个玩意? 注意我

2010-07-15 21:29:00 3179

原创 设计模式之Factory method

<br />刚开始一直没搞清楚abstract factory 和factory method有什么区别..因为二者常常混在一起用。再仔细想想:<br />AF出来的是一个Factory,这个factory可以创造一系列产品。而FM所属对象本身就是一个factory,调用FM函数将产生一个产品。<br />AF---->Factory(自己可能就提供FM)---->Product。它这个和AF是面向不同层次的,AF更加广泛高一些。当然也可以做一个AF类,而且只有一个createProduct函数(本来一个F

2010-07-15 21:00:00 2806

原创 设计模式之Builder

<br />Builder模式干啥子用的?其实是把创建的工作交给builder做了。另外一个是builder可以控制一个产品每一个部件是怎么装配的。<br />说实话,一般情况下,当然希望一下就builder好了,谁希望一步一步得去builder呢?<br />我记得java中的XML解析好像有这个,由于XML很大,所以每builder一步都会回调一下告诉用户一个东西已经builder完了。这可能<br />是builder的一个好处吧。<br />[可否在网络中解析协议也这么干?恩,对。以前常用的KLV

2010-07-15 20:32:00 3305

原创 设计模式之Abstract Factory

<br />前言:<br />  最近在研究android的时候,发现该系统大量使用了设计模式的知识。说来惭愧,在此之前,我从来没见过C++代码中有如此多重继承的<br />使用方法,并曾一度认为是android故意搞这么复杂,想让我们看不明白。后来在用JAVA开发android的程序时候,发现JAVA的API大部分也是这么弄的,不过用了Implements罢了....反思之,一定是我弄错了。这时候想起了设计模式,买来一看,真的是非常经典啊,所以准备写点东西,权当是笔记好了。<br />(该书已经看过一遍了

2010-07-11 21:13:00 4926 2

原创 Unix shell学习笔记

[非常粗糙,没太多时间整理细致]Shell指南笔记一 文件安全与权限目的就是设置文件和目录权限。顺便可以了解下UNIX文件管理方面的知识,比如文件属性等。文件的访问方式分为:读写和执行,文件的用户分为文件属主,同组用户,其他用户。注意必须要理解这个区分。1.1文件相关系统当然知道文件的全部信息,通过ls命令可以获得想要的信息。这里就不解释ls输出的代表的意思了。其实

2010-04-29 15:17:00 5420

原创 Glib学习笔记(4)

四 数据结构这部分非常重要。4.1 内存片管理memory slices是一个高效的分配和管理等尺寸的类。这个和普通的new/delete相比有什么特别之处?似乎更高效,有分布式内存管理“之嫌“。建议替代g_malloc系列。没看出什么特别之处啊,暂时用malloc。包括一个过时的gmemchunk类,这里不叙述了。4.2 双/单向链表GList是双向链

2010-04-13 17:40:00 7998

原创 GLib学习笔记(3)

三 工具这部分内容主要是提供了一些公共的API或者是类,帮助完成各种不同的功能。3.1 字符串操作函数g_strxxx等系列函数,方便完成字符串操作,有点像C/C++里边的函数。这个和CString还不是同一类东西。CString是字符串类,可能更加方便。3.2 字符集转换函数包括UTF8到UNICODE等转换的函数。值得注意的是文件名的字符集转换函数,有:l   

2010-04-11 17:33:00 4752

原创 Gstreamer应用程序指南学习笔记

Gstreamer说明一 Gstreamer简介是一个框架,灵活轻便。第一部分基本没有难度,只要能看懂英文。从我目前接触的感觉上看,Gstreamer确实简化了动态库的加载,模块与模块间的合作。但是Gstreamer用得还是有点不太习惯,可能是 GLIB这种风格没有适应。gstreamer整个分为:l         core:核心库l         基础插件:一些很

2010-04-08 16:58:00 8598

原创 Glib学习笔记(2)

2.1 MainLoopmain loop是Glib中一个非常重要的部分,其主要用途类似于Windows的消息循环。所以它是一个循环,不停得从某个地方取得“消息”,然后派发到消息处理函数,交给他们处理。从执行者角度看,派发到消息处理函数实际还是消息循环所在的线程调用对应的函数。在Glib中,消息循环对应的就是这个mainLoop。消息队列没有对应物。但是消息的产地由GSourc

2010-04-06 21:14:00 10924 3

原创 Glib学习笔记(1)

GLib学习笔记一 Glib笔记1以前主要是做C++,最近有个机会转到嵌入式的C,大部分用的是Glib/Gobject系统,前一周的样子把相关内容大致浏览了一遍,主要以reference Menu为主。我看英文书的一个习惯是看一章,总结一章,这样学得快,记得牢。以前整理过很多书籍,不过都是本地的doc文档。在学Glib过程中,从网上学到很多知识,所以我也放到博客上吧。仅供自己总结,风格比较

2010-04-05 18:54:00 10387 2

原创 TFTP协议详解

TFTP协议详解一 TFTP协议简介TFTP协议全称为Trivial File Transfer Protocol。目标是在UDP之上上建立一个类似于FTP的但仅支持文件上传和下载功能的传输协议,所以它不包含FTP协议中的目录操作和用户权限等内容。与FTP相似,TFTP传输过程中也有传输模式之分,模式的意思是如何解释数据包里的内容,比如是字符串还是二进制等。目前有三种模式:l

2009-03-31 17:10:00 25842 4

原创 TCP/IP 详解学习笔记--前言

 从一咬牙投身做IT民工开始,已经快2年了。最近一年来一直专注于网络,看过不少书,写过不少行代码,曾经一度深入到Linux网络系统中去想看个究竟,未果。于是,横下心来,准备从最基本的网络协议开始,好好研究下网络。上班时间看书的可能性不大,回家看书吧,又感觉很匆忙,没有时间来总结,以前学校里的那些好习惯工作后都丢光了,仔细想想,看来还是没有适应社会生活导致的。常常想象要是有足够的时间的话,水平一定蹭

2009-03-28 20:37:00 8036 6

深入理解Android之Java虚拟机ART样章

深入理解Android之Java虚拟机ART一书的样章,从第一章到第三章。

2019-04-15

SELinux by Example Using Security Enhanced Linux

比较新的讲SELinux的入门书籍,包括MLS,是难得得覆盖面很全的书

2014-02-21

SELinux NSA’s Open Source Security Enhanced Linux

selinux基础文档,selinux版本比较老,但是核心概念几乎都有

2014-02-21

随笔之GoldFish Kernel启动过程中arm汇编分析

详细介绍linux kernel启动时,汇编部分的内容

2012-12-01

cortex a8 reference

详细介绍CORTEX A8,纯英文,免得你从官方下载了

2012-12-01

arm architect reference

最新arm 架构体系结构,纯英文,免得你从官方下载了

2012-12-01

随笔之GoldFish Kernel启动ARM汇编分析

详细介绍LINUX ARM kernel启动部分中arm汇编相关内容

2012-12-01

深入理解android 卷II 目录

深入理解android 卷II 目录,敬请期待

2012-07-03

深入理解android 卷II 第7章

深入理解android 卷II 第7章 ContentProvider深入理解

2012-07-03

Android Framework Eclipse工程文件配置

用于将Android源码导入Eclipse的各个工程文件配置

2012-04-22

GCC资料大全CHM版

详细描述GCC的使用,很好很强大 CHM版

2009-11-06

autoconf使用说明

几个介绍autoconf使用的说明例子

2008-02-15

GNUMake手册中文版

GNU Make手册的中文版

2008-02-15

Linux内核书籍

介绍linux内核的好书 比较简单易学

2008-02-15

空空如也

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

TA关注的人

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