自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 android gallery 竖直(上下)滑动

最近做一个项目,要求上下滑动gallery,网上找了好多资料都不太理想,不说了,说多了都是泪啊!先上图:免得误导观众!下面说一下我的方法:1,重写VerticalGallery类继承Gallerypublic class VerticalGallery extends Gallery2.重写ondrow方法,使gallery逆时针旋转@Overrideprote

2013-11-18 12:04:17 4796 7

原创 设计模式抽象工厂模式(AbstractFactoryPattern)

核心模块:抽象工厂、具体工厂、抽象产品、具体产品所有代码请访问:[email protected]:289804201/PatternLearn.git使用场景:具有产品和工厂二维属性且一个工厂能够提供多个产品对象;优点:解耦合,隔离生产者和客户;缺点:扩展新的产品要改动工厂类和上层的抽象类,改动了结构,为了解耦牺牲了opc开放封闭原则;注意:1,三个工

2018-01-15 18:22:25 224

原创 设计模式工厂方法模式(FactoryMethodPattern)

核心模块:Product抽象产品、ConcreteProduct具体产品、Creator抽象工厂、ConcreteCreator具体工厂所有代码请访问:[email protected]:289804201/PatternLearn.git使用场景:复杂对象的创建;优点:用户只需要知道产品的工厂,无需关心产品类和类名,新增产品只需要新增产品工厂;缺点

2018-01-12 14:15:27 208

原创 设计模式简单工厂模式(SimpleFactoryPattern)

核心模块:Product抽象产品、ConcreteProduct具体产品、Factory工厂角色所有代码请访问:[email protected]:289804201/PatternLearn.git使用场景:有很多相似的对象,客户不需要关系对象如何创建;优点:解偶了客户创建对象,减少了客户的记忆量(到底需要创建哪个实例类);缺点:系统扩展困难,新加

2018-01-12 11:05:43 203

原创 设计模式单例模式(SingletonPattern)

核心模块:所有代码请访问:[email protected]:289804201/PatternLearn.git使用场景:只需要一个实例对象,需要频繁创造销毁的对象,创建时耗时过长的对象,数据库或者文件对象;优点:节约系统资源;缺点:没有抽象层扩展有困难,类职责过重违背单一职责原则;注意:1,建造者模式是将一个复杂对象的创建过程给封装起

2018-01-11 21:52:39 220

原创 设计模式建造者模式(BuilderPattern)

核心模块:Builder抽象建造者、ConcreteBuilder具体建造者、Product产品角色、Director指挥者所有代码请访问:[email protected]:289804201/PatternLearn.git使用场景:构建复杂对象,或者构件过程中需要强制的分布措施;优点:客户可以精细的控制构建过程,将产品创建过程和产品本省分离,细节依赖于

2018-01-11 21:00:38 193

原创 设计模式适配器模式(AdapterPattern)

核心模块:Target目标类、Adaptee被适配者、Adapter适配器所有代码请访问:[email protected]:289804201/PatternLearn.git使用场景:将目标类和适配者类解耦,一般用于接入第三方库;优点:增加了类的透明性,新加adaptee只需要新加Adapter;缺点:不支持多重继承,一个Adapter只能适配一

2018-01-11 20:06:21 222

原创 设计模式桥接模式(BridgePattern)

核心模块:Abstracttion抽象类、RefinedAbstraction扩充抽象类、Implementor实现类接口、ConcreteImplementor具体实现类所有代码请访问:[email protected]:289804201/PatternLearn.git使用场景:多维度耦合的情况,不希望用继承的情况;优点:减少了类的数量和和代码量,避免

2018-01-10 22:27:42 178

原创 设计模式组合模式(CompositePattern)

核心模块:抽象构件、树叶构件、容器构件所有代码请访问:[email protected]:289804201/PatternLearn.git使用场景:树形结构或者希望一致对待整体和部分;优点:能够很好的分层,模糊整体和部分的差异,容器对象很容易扩展;缺点:如果复杂对象很复杂,叶子对象将有很多空方法;注意:1,核心就是简单对象和复杂对象实

2018-01-10 20:42:22 171

原创 设计模式装饰者模式(DecoratorPattern)

核心模块:抽象组件,具体组件,抽象装饰者,具体装饰者所有代码请访问:[email protected]:289804201/PatternLearn.git使用场景:给对象增加额外行为,用于替代继承的技术,动态给对象增加额外职责;优点:符合opc原则,可以重复装饰,提供了一个比继承更加灵活的方式,不会导致类的个数急剧增加;缺点:会产生许多小对象,灵活

2018-01-08 20:25:00 168

原创 设计模式外观模式(FacadePattern)

核心模块:外观角色,子系统角色所有代码请访问:[email protected]:289804201/PatternLearn.git使用场景:有很多复杂的子系统,为客户提供一个简单的入口;优点:客户并不需要各个子系统如何协同工作,减少客户和子系统的耦合;缺点:不能很好的控制客户和子系统的交互;注意:1,与模版方法模式区别:模版方法模

2018-01-04 19:58:49 165

原创 设计模式享元模式(FlyweightPattern)

核心模块:抽象享元类,具体享元类,享元工厂类所有代码请访问:[email protected]:289804201/PatternLearn.git使用场景:大量细小粒度对象的复用;优点:减少内存中对象数量,节约系统资源,提高对象的复用率,内外状态分开隔离;缺点:增加了代码复杂度;注意:1,外部状态用来在工厂类中寻址,内部状态用来自己

2018-01-04 19:54:52 192

原创 设计模式代理模式(ProxyPattern)

核心模块:抽象角色,真实角色,代理角色所有代码请访问:[email protected]:289804201/PatternLearn.git使用场景:适合不方便直接访问对象的情况;优点:协调了调用者和被调用者,减少耦合,起到了保护目标对象的作用;缺点:由于使用代理可能会使请求速度变慢;注意:1,与中介者模式区别,中介者对中介双方权重

2018-01-04 15:04:42 231

原创 设计模式观察者模式(ObserverPatern)

核心模块:抽象观察者,具体观察者,抽象主题,具体主题所有代码请访问:[email protected]:289804201/PatternLearn.git使用场景:一个对象的改变将导致一个或多个其他对象也发生改变,适合一对一或者一对多的场景;优点:主题和观察者之间松耦合(观察者并不需要知道主题发生了什么变化),符合opc原则(新增观察者只需要实现抽象观察者

2018-01-04 11:31:46 142

原创 设计模式访问者模式(VisitorPattern)

核心模块:抽象访问者、具体访问者、抽象元素、具体元素、对象结构所有代码请访问:[email protected]:289804201/PatternLearn.git目的:封装一些施加于某种数据元上上的操作,使不改变元素类的情况下定义作用于这个元素的新操作;使用场景:数据元很少改变,但是数据元上的操作经常改变;优点:方便添加新操作,有关元素对象的访问

2018-01-03 20:28:40 172

原创 设计模式状态模式(StatePatern)

核心模块:抽象状态类、具体状态类、环境类所有代码请访问:[email protected]:289804201/PatternLearn.git使用场景:复杂的内部状态如switch case庞大的if语句,使之外显;内部状态改变而改变其相关行为;优点:封装了转换规则,将某个状态有关的行为放到一个类中,这个类中其他状态的方法不处理;缺点:对opc支持

2018-01-03 19:46:16 149

原创 设计模式备忘录模式(MementoPatern)

核心模块:Originator原发器、Mementor备忘录、Caretaker负责人所有代码请访问:[email protected]:289804201/PatternLearn.git使用场景:大多数编辑器,提供undo的操作功能;优点:实现了信息的封装,不破坏封装的情况下,保存内部状态,用户不需要关心保存细节;缺点:内部成员变量过多,保存的内

2018-01-03 19:23:12 171

原创 设计模式中介者模式(MediatorPattern)

核心模块:抽象中介者、具体中介者、抽象同事类、具体同事类所有代码请访问:[email protected]:289804201/PatternLearn.git使用场景:双方不直接交流的情况下,进行通信(调用等);优点:降低耦合性,不需要显示的调用对象,减少系统对象之间的耦合;缺点:关系过于复杂的话,中介类将异常庞大;注意:1,不同于访问

2018-01-03 18:32:15 600

原创 设计模式解释器模式(InterpreterPattern)

核心模块:抽象表达符、非终结表达符、终结表达符、环境类所有代码请访问:[email protected]:289804201/PatternLearn.git使用场景:正则表达式,自定义语言,计算器;优点:易于扩展,增加新的符号只用增加新的表达式即可;缺点:复杂的文法难以维护,存在大量循环和递归操作,复杂的句子,速度很慢;注意:1,每一个

2018-01-03 18:01:00 193

原创 设计模式命令模式(CommandPattern)

核心模块:抽象命令类、具体命令类、命令接收者、调用者所有代码请访问:[email protected]:289804201/PatternLearn.git使用场景:不知道请求的接收者,不知道请求的操作,主要封装不同的命令,可以使用这种松耦合的方式;优点:低耦合度,新的命令很容易添加到系统,支持undo和redo操作,和命令队列;缺点:如果命令过多导

2018-01-03 17:18:56 154

原创 设计模式职责链模式(ChainofResponsibilityPattern)

核心模块:抽象处理者、具体处理者、客户端所有代码请访问:[email protected]:289804201/PatternLearn.git使用场景:适用于权限不同的角色系统;优点:发送者只需要将请求发送到链上,无需关心谁处理,达到发送者和处理者之间的解耦,允许动态的新增责任和删除责任;缺点:请求可能不被处理或则循环,不能观察到内部状态注

2018-01-03 16:18:48 165

原创 设计模式迭代器模式(IteratorPattern)

核心模块:迭代器角色(定义访问和遍历元素的接口),具体迭代器角色,容器角色,具体容器角色所有代码请访问:[email protected]:289804201/PatternLearn.git使用场景:外部对象访问内部聚合对象;优点:将存储数据和遍历数据分开,符合单一职责原则;缺点:新聚合类,就要增加新的迭代器类;增加系统复杂性;/** * C

2018-01-03 15:48:54 583

原创 设计模式策略模式(StrategyPattern)

核心模块:抽象策略类、具体策略类、环境类所有代码请访问:[email protected]:289804201/PatternLearn.git使用场景:动态的选择算法,不希望客户端知道复杂的与算法相关的数据结构;提高保密性;优点:符合opc,提供了可变算法分离成类,而不用在继续继承本类来写缺点:细小的变化都将导致增加一个策略类;注意:与状态模式区别,状

2018-01-03 15:33:29 186

原创 设计模式模版方法模式(TemplateMethodPattern)

核心模块:AbstractClass抽象类、ConcreteClass具体类所有代码请访问:[email protected]:289804201/PatternLearn.git目的:提供一个算法框架,使得相同的算法框架可以有不同的执行结果:使用场景:对复杂的算法进行分割,不变的部分保存到父类中,细节改变由子类来实现;优点:代码复用,符合opc开放封闭原则,行为可

2017-12-19 10:50:02 147

转载 如何将自己的Python代码打包发布到pypi上

python 打包 并且发布到服务器

2017-07-05 16:59:55 604

原创 Android&java优化---(2)---java内存

学习jvm架构的涉及的java内存,下面是自己的学习笔记:Java把内存分成两种,一种叫做栈内存,一种叫做堆内存在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配。当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间,该内存空间可以立刻被另作他用。堆内存用于存放由new创

2015-11-21 17:52:41 430

原创 Android&java优化---(1)---jvm架构

从2015年3月份跳槽到现在,已经1年多没有更新自己的博客了,也许是自己来新公司过于忙碌流程过多,也有可能是自己懈怠了,忘了程序员要不断的更新自己的知识结构,谨以此记与诸君共勉之!题记:程序员一直以来都被一些莫名奇妙的规范所限制,比如不能使用静态变量等等,这个问题我们不做讨论,但是作为一个优秀的程序员一定要有自己的知识架构,才能理解一些奇怪的编程规范,比如java可以不用初始化类变量,

2015-11-21 17:48:39 416

转载 window sdk 更新

为在开始->运行->cmd 中敲入 ping dl-ssl.google.com -t 始终ping不通,关闭cmd后首先需要下载一个代理服务器下载地址http://pan.baidu.com/share/link?shareid=341717&uk=2601338879打开此软件,在内容选项中 看到生成的代理地址,记住ip地址127.0.0.1 和端口号8580

2014-08-17 17:51:29 919

原创 ubuntu多个gcc版本切换

1,安装几个版本的gcc和g++sudo apt-get install gcc-4.3 gcc-4.4 g++-4.3 g++-4.4sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.3 10 sudo update-alternatives --install /usr/bin/gcc gcc

2014-06-24 10:08:21 1381

转载 ubuntu 访问小米3的文件系统

方法一:1.将手机连接至PC机2.如果是第一次使用MTP设备需要安装以下软件,否则可以跳过此步骤:$ sudo apt-get install mtpfs libfuse-dev libmad0-dev(小米提示的是sudo aptitude install mtpfs libfuse-dev libmad0-dev,可是如果你没有装aptitude,会显示找不到命

2014-06-23 10:33:02 1511

原创 Toast 定时退出,一直显示的方法,android无焦点提示框

有时我们需要一个提示框,但这个提示框

2014-04-17 15:06:04 1935

原创 pull 方式解析xml文件

关于xml的解析,网上提供了许多的解析方式;sax和pull和dom的各有优缺点;但常用的还是pull这里我就自己理解的pull来解释;pull是基于事件触发的可以认为是流形式的;姑且认为读到一个tag或一串字符都会停顿;1,数据结构类:public class Book { private int id; private String name; private float p

2014-04-03 18:41:18 792

原创 android竖直seekbar

参考了:http://blog.csdn.net/failure01/article/details/8577675做了如下修改:1,修改宽度使宽度可以调节;2,修改了按键事件,使之响应遥控器的上下按键,并且释放了左右按键;public class VerticalSeekBar extends AbsSeekBar { private String TAG = "Vert

2014-04-02 11:50:19 1261

原创 android mimeType

理论参考:http://blog.csdn.net/androidzhaoxiaogang/article/details/6853100代码为自己添加多用途互联网邮件扩展(MIME,Multipurpose Internet Mail Extensions)是一个互联网标准,它扩展了电子邮件标准,使其能够支持非ASCII字符、二进制格式附件等多种格式的邮件消息。附上程序代

2014-04-01 12:24:29 1413

转载 intent-filter的data属性详述

一、定义            scheme, host, port, path, pathPrefix, pathPattern 是用来匹配 Intent 中的 Data Uri 的。具体规则如下:  scheme://host:port/path or pathPrefix or pathPattern这里需要注意的是这里的 scheme 不是 sche

2014-04-01 11:54:57 762

原创 intent filter的使用

在AndroidManifest.xml文件中用属性描述组件的Intent Filter。 隐式Intent(Explicit Intents)和Intent Filter(Implicit Intents)进行比较时的三要素是Intent的动作、数据以及类别。实际上,一个隐式Intent请求要能够传递给目标组件,必要通过这三个方面的 检查。如果任何一方面不匹配,Android都不会将该隐式I

2014-04-01 11:40:51 804

转载 uri 和url

这两天在写代码的时候,由于涉及到资源的位置,因此,需要在Java Bean中定义一些字段,用来表示资源的位置,比如:imgUrl,logoUri等等。但是,每次定义的时候,心里都很纠结,是该用imgUrl还是imgUri呢?同样的,另外一个问题:String HttpServletRequest.getRequestURI();和StringBuffer HttpServletReques

2014-04-01 11:27:17 502

原创 android 定时器,任务延时

1,使用handler,延时一秒在前台启动任务;new Handler().postDelayed(new Runnable() { @Override public void run() { // TODO Auto-generated method stub videoView.start(); } }, 1000);2,使用Thread.s

2014-03-31 14:58:49 663

转载 java 数组转化为list接口

1,方法01import java.util.Arrays;02import java.util.List;03import java.util.ArrayList;04 05pu

2014-03-26 17:36:32 646

转载 android中延迟执行某个任务

android中延迟执行某个任务android App开发在某些情况下需要有延时功能,比如说App首页显示定格3秒,然后自动跳到登录页的情况,这就好比是一个预加载,但是这个预加载可能瞬间就完成了,撑不到3秒钟,这是就要求你做延时处理。下面是三种方法:一、线程[html] view plaincopy1. new Thread(

2014-03-25 11:18:35 596

深入理解Android卷二全

深入理解Android 卷二 不是扫描版的,是全版电子书的,非PDF,可编辑,各种阅览器以打开! 包括书签和同步目录! 《深入理解Android:卷2》是“深入理解Android”系列的第2本,第1本书上市后获得广大读者高度评价,在Android开发者社群内口口相传。本书不仅继承了第1本书的优点并改正了其在细微处存在的一些不足,而且还在写作的总体思想上进行了创新,更强调从系统设计者的角度去分析Android系统中各个模块内部的实现原理和工作机制。从具体内容上讲,本书的重点是AndroidFramework的Java层,对Java层涉及的核心模块和服务进行了深入而细致的分析。通过本书,读者不仅能对Android系统本身有更深入的理解,而且还能掌握分析大型复杂源代码的能力。    《深入理解Android:卷2》一共8章:第1章介绍了阅读本书所需要做的准备工作,包括Android4.0源码的下载和编译、Eclipse环境的搭建,以及Android系统进程(system_process)的调试等;第2章对JavaBinder和MessageQueue的实现进行了深入分析;第3章仔细剖析了SystemServer的工作原理,这些服务包括EntropyService、DropboxManagerService、DiskStatsService、DeviceStorageMonitorService、SamplingProfilerService和ClipboardService;第4章对系统中负责Package信息查询和APK安装、卸载、更新等工作的服务PackageManagerService进行了详细分析;第5章则对Android系统中负责电源管理的核心服务PowerManagerService的原理进行了一番深入的分析;第6章以ActivityManagerService为分析重点,它的启动、Activity的创建和启动、BroadcastReceiver的工作原理、Android中的进程管理等内容展开了较为深入的研究;第7章对ContentProvider的创建和启动、SQLite、Cursorquery和close的实现等进行了深入分析;第8章以ContentService和AccountManagerService为分析对象,介绍了数据更新通知机制的实现,以及账户管理和数据同步等相关知识。 深入理解Android:卷II 图书目录: 第1章 搭建Android源码工作环境 1.1 Android系统架构 1.2 搭建开发环境 1.2.1 下载源码 1.2.2 编译源码 1.2.3 利用Eclipse调试system_process 1.3 本章小结 第2章 深入理解Java Binder和MessageQueue 2.1 概述 2.2 Java层中的Binder架构分析 2.2.1 Binder架构总览 2.2.2 初始化Java层Binder框架 2.2.3 addService实例分析 2.2.4 Java层Binder架构总结 2.3 心系两界的MessageQueue 2.3.1 MessageQueue的创建 2.3.2 提取消息 2.3.3 nativePollOnce函数分析 2.3.4 MessageQueue总结 2.4 本章小结 第3章 深入理解SystemServer 3.1 概述 3.2 SystemServer分析 3.2.1 main函数分析 3.2.2 Service群英会 3.3 EntropyService分析 3.4 DropBoxManagerService分析 3.4.1 DBMS构造函数分析 3.4.2 dropbox日志文件的添加 3.4.3 DBMS和settings数据库 3.5 DiskStatsService和DeviceStorageMonitorService分析 3.5.1 DiskStatsService分析 3.5.2 DeviceStorageManagerService分析 3.6 SamplingProfilerService分析 3.6.1 SamplingProfilerService构造函数分析 3.6.2 SamplingProfilerIntegration分析 3.7 ClipboardService分析 3.7.1 复制数据到剪贴板 3.7.2 从剪切板粘贴数据 3.7.3 CBS中的权限管理 3.8 本章小结 第4章 深入理解PackageManagerService 4.1 概述 4.2 初识PackageManagerService 4.3 PKMS的main函数分析 4.3.1 构造函数分析之前期准备工作 4.3.2 构造函数分析之扫描Package 4.3.3 构造函数分析之扫尾工作 4.3.4 PKMS构造函数总结 4.4 APK Installation分析 4.4.1 adb install分析 4.4.2 pm分析 4.4.3 installPackageWithVerification函数分析 4.4.4 APK 安装流程总结 4.4.5 Verification介绍 4.5 queryIntentActivities分析 4.5.1 Intent及IntentFilter介绍 4.5.2 Activity信息的管理 4.5.3 Intent 匹配查询分析 4.5.4 queryIntentActivities总结 4.6 installd及UserManager介绍 4.6.1 installd介绍 4.6.2 UserManager介绍 4.7 本章学习指导 4.8 本章小结 第5章 深入理解PowerManagerService 5.1 概述 5.2 初识PowerManagerService 5.2.1 PMS构造函数分析 5.2.2 init分析 5.2.3 systemReady分析 5.2.4 BootComplete处理 5.2.5 初识PowerManagerService总结 5.3 PMS WakeLock分析 5.3.1 WakeLock客户端分析 5.3.2 PMS acquireWakeLock分析 5.3.3 Power类及LightService类介绍 5.3.4 WakeLock总结 5.4 userActivity及Power按键处理分析 5.4.1 userActivity分析 5.4.2 Power按键处理分析 5.5 BatteryService及BatteryStatsService分析 5.5.1 BatteryService分析 5.5.2 BatteryStatsService分析 5.5.3 BatteryService及BatteryStatsService总结 5.6 本章学习指导 5.7 本章小结 第6章 深入理解ActivityManagerService 6.1 概述 6.2 初识ActivityManagerService 6.2.1 ActivityManagerService的main函数分析 6.2.2 AMS的 setSystemProcess分析 6.2.3 AMS的 installSystemProviders函数分析 6.2.4 AMS的 systemReady分析 6.2.5 初识ActivityManagerService总结 6.3 startActivity分析 6.3.1 从am说起 6.3.2 AMS的startActivityAndWait函数分析 6.3.3 startActivityLocked分析 6.4 Broadcast和BroadcastReceiver分析 6.4.1 registerReceiver流程分析 6.4.2 sendBroadcast流程分析 6.4.3 BROADCAST_INTENT_MSG消息处理函数 6.4.4 应用进程处理广播分析 6.4.5 广播处理总结 6.5 startService之按图索骥 6.5.1 Service知识介绍 6.5.2 startService流程图 6.6 AMS中的进程管理 6.6.1 Linux进程管理介绍 6.6.2 关于Android中的进程管理的介绍 6.6.3 AMS进程管理函数分析 6.6.4 AMS进程管理总结 6.7 App的 Crash处理 6.7.1 应用进程的Crash处理 6.7.2 AMS的handleApplicationCrash分析 6.7.3 AppDeathRecipient binderDied分析 6.7.4 App的Crash处理总结 6.8 本章学习指导 6.9 本章小结 第7章 深入理解ContentProvider 7.1 概述 7.2 MediaProvider的启动及创建 7.2.1 Context的getContentResolver函数分析 7.2.2 MediaStore.Image.Media的query函数分析 7.2.3 MediaProvider的启动及创建总结 7.3 SQLite创建数据库分析 7.3.1 SQLite及SQLiteDatabase家族 7.3.2 MediaProvider创建数据库分析 7.3.3 SQLiteDatabase创建数据库的分析总结 7.4 Cursor 的query函数的实现分析 7.4.1 提取query关键点 7.4.2 MediaProvider 的query分析 7.4.3 query关键点分析 7.4.4 Cursor query实现分析总结 7.5 Cursor close函数实现分析 7.5.1 客户端close的分析 7.5.2 服务端close的分析 7.5.3 finalize函数分析 7.5.4 Cursor close函数总结 7.6 ContentResolver openAssetFileDescriptor函数分析 7.6.1 openAssetFileDescriptor之客户端调用分析 7.6.2 ContentProvider的 openTypedAssetFile函数分析 7.6.3 跨进程传递文件描述符的探讨 7.6.4 openAssetFileDescriptor函数分析总结 7.7 本章学习指导 7.8 本章小结 第8章 深入理解ContentService和AccountManagerService 8.1 概述 8.2 数据更新通知机制分析 8.2.1 初识ContentService 8.2.2 ContentResovler 的registerContentObserver分析 8.2.3 ContentResolver的 notifyChange分析 8.2.4 数据更新通知机制总结和深入探讨 8.3 AccountManagerService分析 8.3.1 初识AccountManagerService 8.3.2 AccountManager addAccount分析 8.3.3 AccountManagerService的分析总结 8.4 数据同步管理SyncManager分析 8.4.1 初识SyncManager 8.4.2 ContentResolver 的requestSync分析 8.4.3 数据同步管理SyncManager分析总结 8.5 本章学习指导 8.6 本章小结

2018-05-25

深入理解Android卷1全

深入理解Android 卷1 不是扫描版的,是全版电子书的,非PDF,可编辑,各种阅览器以打开!包括书签和同步目录! 第1章 阅读前的准备工作 / 1 1.1 系统架构 / 2 1.1.1 Android系统架构 / 2 1.1.2 本书的架构 / 3 1.2 搭建开发环境 / 4 1.2.1 下载源码 / 4 1.2.2 编译源码 / 6 1.3 工具介绍 / 8 1.3.1 Source Insight介绍 / 8 1.3.3 Busybox的使用 / 11 1.4 本章小结 / 12 第2章 深入理解JNI / 13 2.1 JNI概述 / 14 2.2 学习JNI的实例:MediaScanner / 15 2.3 Java层的MediaScanner分析 / 16 2.3.1 加载JNI库 / 16 2.3.2 Java的native函数和总结 / 17 2.4 JNI层MediaScanner的分析 / 17 2.4.1 注册JNI函数 / 18 2.4.2 数据类型转换 / 22 2.4.3 JNIEnv介绍 / 24 2.4.4 通过JNIEnv操作jobject / 25 2.4.5 jstring介绍 / 27 2.4.6 JNI类型签名介绍 / 28 2.4.7 垃圾回收 / 29 2.4.8 JNI中的异常处理 / 32 2.5 本章小结 / 32 第3章 深入理解init / 33 3.1 概述 / 34 3.2 init分析 / 34 3.2.1 解析配置文件 / 38 3.2.2 解析service / 42 3.2.3 init控制service / 48 3.2.4 属性服务 / 52 3.3 本章小结 / 60 第4章 深入理解zygote / 61 4.1 概述 / 62 4.2 zygote分析 / 62 4.2.1 AppRuntime分析 / 63 4.2.2 Welcome to Java World / 68 4.2.3 关于zygote的总结 / 74 4.3 SystemServer分析 / 74 4.3.1 SystemServer的诞生 / 74 4.3.2 SystemServer的重要使命 / 77 4.3.3 关于 SystemServer的总结 / 83 4.4 zygote的分裂 / 84 4.4.1 ActivityManagerService发送请求 / 84 4.4.2 有求必应之响应请求 / 86 4.4.3 关于zygote分裂的总结 / 88 4.5 拓展思考 / 88 4.5.1 虚拟机heapsize的限制 / 88 4.5.2 开机速度优化 / 89 4.5.3 Watchdog分析 / 90 4.6 本章小结 / 93 第5章 深入理解常见类 / 95 5.1 概述 / 96 5.2 以“三板斧”揭秘RefBase、sp和wp / 96 5.2.1 第一板斧——初识影子对象 / 96 5.2.2 第二板斧——由弱生强 / 103 5.2.3 第三板斧——破解生死魔咒 / 106 5.2.4 轻量级的引用计数控制类LightRefBase / 108 5.2.5 题外话-三板斧的来历 / 109 5.3 Thread类及常用同步类分析 / 109 5.3.1 一个变量引发的思考 / 109 5.3.2 常用同步类 / 114 5.4 Looper和Handler类分析 / 121 5.4.1 Looper类分析 / 122 5.4.2 Handler分析 / 124 5.4.3 Looper和Handler的同步关系 / 127 5.4.4 HandlerThread介绍 / 129 5.5 本章小结 / 129 第6章 深入理解Binder / 130 6.1 概述 / 131 6.2 庖丁解MediaServer / 132 6.2.1 MediaServer的入口函数 / 132 6.2.2 独一无二的ProcessState / 133 6.2.3 时空穿越魔术-defaultServiceManager / 134 6.2.4 注册MediaPlayerService / 142 6.2.5 秋风扫落叶-StartThread Pool和join Thread Pool分析 / 149 6.2.6 你彻底明白了吗 / 152 6.3 服务总管ServiceManager / 152 6.3.1 ServiceManager的原理 / 152 6.3.2 服务的注册 / 155 6.3.3 ServiceManager存在的意义 / 158 6.4 MediaPlayerService和它的Client / 158 6.4.1 查询ServiceManager / 158 6.4.2 子承父业 / 159 6.5 拓展思考 / 162 6.5.1 Binder和线程的关系 / 162 6.5.2 有人情味的讣告 / 163 6.5.3 匿名Service / 165 6.6 学以致用 / 166 6.6.1 纯Native的Service / 166 6.6.2 扶得起的“阿斗”(aidl) / 169 6.7 本章小结 / 172 第7章 深入理解Audio系统 / 173 7.1 概述 / 174 7.2 AudioTrack的破解 / 174 7.2.1 用例介绍 / 174 7.2.2 AudioTrack(Java空间)分析 / 179 7.2.3 AudioTrack(Native空间)分析 / 188 7.2.4 关于AudioTrack的总结 / 200 7.3 AudioFlinger的破解 / 200 7.3.1 AudioFlinger的诞生 / 200 7.3.2 通过流程分析AudioFlinger / 204 7.3.3 audio_track_cblk_t分析 / 230 7.3.4 关于AudioFlinger的总结 / 234 7.4 AudioPolicyService的破解 / 234 7.4.1 AudioPolicyService的创建 / 235 7.4.2 重回AudioTrack / 245 7.4.3 声音路由切换实例分析 / 251 7.4.4 关于AudioPolicy的总结 / 262 7.5 拓展思考 / 262 7.5.1 DuplicatingThread破解 / 262 7.5.2 题外话 / 270 7.6 本章小结 / 272 第8章 深入理解Surface系统 / 273 8.1 概述 / 275 8.2 一个Activity的显示 / 275 8.2.1 Activity的创建 / 275 8.2.2 Activity的UI绘制 / 294 8.2.3 关于Activity的总结 / 296 8.3 初识Surface / 297 8.3.1 和Surface有关的流程总结 / 297 8.3.2 Surface之乾坤大挪移 / 298 8.3.3 乾坤大挪移的JNI层分析 / 303 8.3.4 Surface和画图 / 307 8.3.5 初识Surface小结 / 309 8.4 深入分析Surface / 310 8.4.1 与Surface相关的基础知识介绍 / 310 8.4.2 SurfaceComposerClient分析 / 315 8.4.3 SurfaceControl分析 / 320 8.4.4 writeToParcel和Surface对象的创建 / 331 8.4.5 lockCanvas和unlockCanvasAndPost分析 / 335 8.4.6 GraphicBuffer介绍 / 344 8.4.7 深入分析Surface的总结 / 353 8.5 SurfaceFlinger分析 / 353 8.5.1 SurfaceFlinger的诞生 / 354 8.5.2 SF工作线程分析 / 359 8.5.3 Transaction分析 / 368 8.5.4 关于SurfaceFlinger的总结 / 376 8.6 拓展思考 / 377 8.6.1 Surface系统的CB对象分析 / 377 8.6.2 ViewRoot的你问我答 / 384 8.6.3 LayerBuffer分析 / 385 8.7 本章小结 / 394 第9章 深入理解Vold和Rild / 395 9.1 概述 / 396 9.2 Vold的原理与机制分析 / 396 9.2.1 Netlink和Uevent介绍 / 397 9.2.2 初识Vold / 399 9.2.3 NetlinkManager模块分析 / 400 9.2.4 VolumeManager模块分析 / 408 9.2.5 CommandListener模块分析 / 414 9.2.6 Vold实例分析 / 417 9.2.7 关于Vold的总结 / 428 9.3 Rild的原理与机制分析 / 428 9.3.1 初识Rild / 430 9.3.2 RIL_startEventLoop分析 / 432 9.3.3 RIL_Init分析 / 437 9.3.4 RIL_register分析 / 444 9.3.5 关于Rild main函数的总结 / 447 9.3.6 Rild实例分析 / 447 9.3.7 关于Rild的总结 / 459 9.4 拓展思考 / 459 9.4.1 嵌入式系统的存储知识介绍 / 459 9.4.2 Rild和Phone的改进探讨 / 462 9.5 本章小结 / 463 第10章 深入理解MediaScanner / 464 10.1 概述 / 465 10.2 android.process.media分析 / 465 10.2.1 MSR模块分析 / 466 10.2.2 MSS模块分析 / 467 10.2.3 android.process.media媒体扫描工作的流程总结 / 471 10.3 MediaScanner分析 / 472 10.3.1 Java层分析 / 472 10.3.2 JNI层分析 / 476 10.3.3 PVMediaScanner分析 / 479 10.3.4 关于MediaScanner的总结 / 485 10.4 拓展思考 / 486 10.4.1 MediaScannerConnection介绍 / 486 10.4.2 我问你答 / 487 10.5 本章小结 / 488

2018-05-25

flappybird源码

flappybird源码

2016-09-21

java并发核心

java 并发 核心 英文版

2016-03-29

aidl_client and server

简单的aidl进程间通信!服务端和客户短,也可以用于不是远程;

2013-12-05

ppTVbutton

pptv的各种资源图片和button,反编译的来,网上一般着不到的!

2013-11-07

空空如也

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

TA关注的人

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