自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(26)
  • 资源 (9)
  • 收藏
  • 关注

原创 深入理解Android消息处理系统——Message、Looper、Handler

熟悉Windows编程的朋友可能知道Windows程序是消息驱动的,并且有全局的消息循环系统。而Android应用程序也是消息驱动的,按道理来说也应该提供消息循环机制。实际上谷歌参考了Windows的消息循环机制,也在Android系统中实现了消息循环机制。Android通过Looper、Handler来实现消息循环机制,Android消息循环是针对线程的(每个线程都可以有自己的消息队列和消息循环

2015-08-30 21:25:59 412

原创 Android的JSON数据解析

json(Javascript Object Notation)是一种轻量级的数据交换格式,相比于xml这种数据交换格式来说,因为解析xml比较的复杂,而且需要编写大段的代码,所以客户端和服务器的数据交换格式往往通过json来进行交换。尤其是对于web开发来说,json数据格式在客户端直接可以通过javascript来进行解析。一、JSON数据结构         json一共有两种数据结

2015-08-30 08:47:03 365

原创 Android的XML解析

在Android系统提供了3种XML解析器,即Pull解析器、DOM解析器和Sax解析器。开发时可以根据使用场景进行选择。Pull解析器用于处理简单的XML数据,DOM解析器和Sax解析器均可解析复杂的数据,其中DOM解析器是完全加载后才能解析,而SAX解析器可以随时加载随时解析。        在具体的解析器选择上,DOM解析器适合处理文件不大,嵌套的分支比较多,需要反复查询的场景;相比DO

2015-08-29 10:45:08 353

原创 Android的Http网络通信

在Android中针对HTTP进行网络通信有两种:一是HttpURLConnection;二是Apache HTTP客户端。HTTP通信中使用最多的就是Get和Post,Get请求可以获取静态页面,也可以把参数放在URL字符串后面,传递给服务器。Post与Get的不同之处在于Post的参数不是放在URL字符串里面,而是放在http请求数据中。1、HttpURLConnection接口

2015-08-25 21:03:07 1120

原创 Android的Content Provider组件

在Android中,应用程序之间是相互独立的,分别运行在各自的进程中。如果应用程序之间相互共享数据该如何实现呢?例如当我们要发送一条短信时,需要用到联系人应用程序,从中选择要发送的人。在这种情况下,Android提供了应用程序之间相互访问的统一接口,这些接口被定义在Content Provider中,其中包括添加、删除、修改和查询等操作。        ContentProvider定义在an

2015-08-23 16:50:53 449

原创 Android的Broadcast Receiver组件

Broadcast Receiver顾名思义是指广播接收器,它和事件处理机制类似,只不过事件处理机制是程序组件级别的,而广播事件处理机制是系统级别的。我们可以使用Intent来启动一个程序组件,我们可以通过使用sendBroadcast()方法来发起一个系统级别的事件广播来传递消息。我们可以

2015-08-22 12:57:20 490

原创 Android的Service组件

Service是Android系统提供的四种组件之一,顾名思义Service就是运行在后台的一种服务程序,一般很少和用户交互,因此没有可视化界面。定义一个Service类比较简单,只要继承Service类,实现其生命周期中的方法就可以了。一个定义好的Service必须在AndroidManifest.xml配置文件中通过元素声明才能使用。Service中定义了一系列和自身生命周期相关的方法,这些方

2015-08-21 22:52:27 725

原创 Android组件之间的信使Intent

Intent的中文意思是“意图,意向”,可以把它理解为不同组件之间的通信“媒介”或者“信使”。Intent可以启动一个Activity,也可以启动一个service,还可以发起一个广播(Broadcast)。Intent由以下几个部分组成:动作(Action)、数据(Data)、分类(Category)、类型(Type)、组件(Component)和扩展信息(Extra)。通过这些可以启动其他组件

2015-08-20 20:21:31 535

原创 屏幕旋转与Activity的生命周期

旋转屏幕会改变设备配置,设备配置就是用来描述当前状态的一系列特征。这些特征包括:屏幕的方向、屏幕的密度、屏幕的尺寸、键盘类型、底座模式及语言等等。屏幕的旋转同时会影响着Activity的生命周期。‘       下面通过一个实例来测试一下Activity的生命周期各个方法的调用情况,在这里我们把Activity的所有方法都覆盖,并通过日志的方式来观察运行结果。public class

2015-08-16 15:30:43 501

原创 Activity的生命周期

在Android系统中Activity作为Activity栈(Stack)被管理,当前活动的Activity处于栈顶,之前的非活动Activity被压入下面成为非活动Activity,等待是否可能被恢复为活动状态。在Activity的生命周期中有四个重要的状态:活动 ——显示在屏幕的前面(在栈顶),有焦点并可见暂停——失去焦点,但是它仍然可见停止——失去焦点,不可见销毁——被系统或进程

2015-08-16 09:22:37 538

原创 Android组件之Activity讲解

在Android系统中activity提供可视化的用户界面,一个Android应用通常由多个activity组成。多个activity组成了Activity栈,当前活动的Activity处于栈顶。Activity有自己的生命周期,由Android系统来控制。       创建一个Activity界面一般是继承Activity类(当然也可以继承ListActivity、MapActivity等)

2015-08-15 16:27:32 648

原创 设计模式--备忘录模式

场景— 录入大批人员资料。正在录入当前人资料时,发现上一个人的资料录错了,此时需要恢复上一个人的资料,再进行修改。— Word文档编辑时,突然电脑死机或者断电,再打开时,可以看到word提示你恢复以前的文档。核心— 就死保存某个对象内部状态的拷贝,这样以后就可以将该对象恢复到原先的状态。结构— 源发器类Originator— 备忘录类Mement

2015-08-15 11:51:07 323

原创 设计模式--观察者模式

场景:- 聊天室程序里,服务器创建好后,A,B,C三个客户端连接上来公开聊天。A向服务器发送数据,服务器端聊天数据改变。我们希望将这些聊天数据分别发给其他在线客户。也就是说,每个客户端需要更新服务器端的数据。这个场景我们可以使用观察者模式来处理。我们可以把客户称之为观察者。需要同步给多个观察者的数据封装到对象中,称之为目标。核心- 观察者模式主要用于1:N的通知。当一个对象(目

2015-08-15 09:57:51 288

原创 设计模式--模板方法模式

模板方法模式是编程中经常用到是模式。它定义了一个操作中的算法骨架,将某些步骤延迟到子类中实现。这样,新的子类可以在不改变一个算法结构的前提下重新定义该算法的某些特定步骤。处理某些流程的代码已经都具备,但是其中某个节点的代码暂时不能确定。因此,我们采用模板方法模式,将这个节点的代码实现转移给子类完成。即:处理步骤父类中定义好,具体实现延迟到子类中定义。比如,实现一个算法时,整体步骤很固定。但是,

2015-08-12 21:21:08 336

原创 设计模式--中介者模式

场景假如没有总经理,下面三个部门:财务部,市场部,研发部。财务部要发工资,让大家核对公司需要跟市场部和研发部都通气;市场部要接新项目,需要研发部处理技术、需要财务部出资金。市场部跟各个部门打交道。虽然只有三个部门,但是关系非常乱。实际上,公司都有总经理。各个部门有什么事情都通报到总经理这里,总经理再通知各个相关部门。这就是一个典型的“中介者模式”,总经理起到一个中介、协调的作用。

2015-08-09 20:21:48 355

原创 设计模式--责任链模式

定义将能够处理同一类请求的对象连成一条链,所提交的请求沿着链传递,链上的对象逐个判断是否有能力处理该请求,如果能则处理,如果不能则传递给链上的下一个对象。场景公司里面,请假条的审批过程:如果请假天数小于3天,主任审批。如果请假天数大于等于3天,小于10天,经理审批如果请假天数大于等于15天,小于30天,总经理审批如果大于等于30天,提示拒绝。假如,使用i

2015-08-09 17:30:38 317

原创 设计模式--享元模式

场景内存属于稀缺资源,不要随便浪费。如果有很多完全相同或相似的对象,我们可以通过享元模式,节省内存。核心:享元模式以共享的方式高效地支持大量细粒度对象的重用。享元对象能做到共享的关键是区分了内部状态和外部状态。内部状态:可以共享,不会随环境变化而变化。外部状态:不可以共享,会随着环境变化而变化。比如,围棋软件设计中,每个围棋棋子都是一个对象,有 颜色,形状,大小和位

2015-08-09 16:10:43 342

原创 设计模式--装饰模式

装饰模式职责:— 动态地为一个对象增加新的功能。— 装饰模式是一种用于代替继承的技术,无需通过继承增加子类就能扩展对象的新功能。使用对象的关联关系代替继承关系,更加灵活,同时避免类型体系的快速膨胀。

2015-08-08 22:11:51 385

原创 设计模式--组合模式

使用场景— 把部分和整体的关系用树形结构来表示,从而使客户端可以使用统一的方式处理部分对象和整体对象。组合模式核心:— 抽象构件(Component)角色:定义了叶子和容器构件的共同点。— 叶子(Leaf)构件角色:无子节点— 容器(Composite)构件角色:有容器特征,可以包含子节点。组合模式工作流程分析:— 组合模式为处理树形结构提供了完美的

2015-08-08 16:19:03 271

原创 设计模式--桥接模式

生活中场景-商城系统中常见的商品分类,以电脑为例,如何良好地处理商品分类销售的问题?我们可以用多层继承结构实现下图的关系。问题:— 扩展性问题(类个数膨胀问题)如果要增加一个新的电脑类型:只能手机,则要增加各个品牌下面的类。如果要增加一个新的品牌,也要增加各种电脑类型的类。— 违反单一职责原则桥接模式核心要点:— 处理多层继承结构,处理多

2015-08-08 15:15:28 309

原创 设计模式--代理模式

代理模式的核心作用是通过代理,控制对对象的访问,可以详细控制访问某个对象的方法,在调用这个方法前做前置处理,调用这个方法后做后置处理。从而实现将统一流程代码放到代理类中处理。代理模式的核心角色:

2015-08-08 10:41:37 321

原创 设计模式--适配器模式

适配器模式就是将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。      模式中的角色:       — 目标接口(Target):客户所期待的接口。目标可以是具体或抽象的类,也可以是接口。       — 需要适配的类(Adaptee):需要适配的类或适配者类。      — 适配器(Adapter) 通过

2015-08-07 23:27:32 334

原创 设计模式--原型模式

原型模式:       通过new产生一个对象需要非常繁琐的数据准备或访问权限,则可以使用原型模式。原型模式就是java中的克隆技术,以某个对象为原型,复制出新的对象。显然,新的对象具备原型对象的特点。     原型模式优势:效率高(直接克隆,避免了重新执行构造过程步骤)。     克隆类似于new,但是不同于new。new创建新的对象属性采用的是默认值。克隆出的对象的属性完全和原型对

2015-08-07 21:04:30 308

原创 设计模式--建造者模式

建造者模式的本质:      分离了对象子组件的单独构造(由Builder类负责)和装配(由Director负责)。从而可以构造出复杂的对象。这个模式适用于:某个对象的构建过程复杂的情况下使用。      由于实现了构建和装配的解耦。不同的构建器,相同的装配,也可以做出不同的对象;相同的构建器,不同的装配顺序也可以做出不同的对象。也就是实现了构建算法、装配算法的解耦,实现了更好的复用。

2015-08-06 22:55:43 318

原创 设计模式--工厂模式

工厂模式:    - 实现了创建者和调用者的分离,实例化对象,用工厂方法代替new操作。将选择实现类、创建对象统一管理和控制。从而将调用者跟我们的实现类解耦。    - 详细分类:     1、简单工厂模式         用来生产同一等级结构中的任意产品。(对于增加新的产品,需要修改已有的代码)     2、工厂方法模式         用来生产同一等级结构中的固定产品。

2015-08-02 16:58:14 347

原创 设计模式--单例模式

单例模式的核心作用是保证一个类只有一个实例,并且提供一个访问该实例的全局访问点。      单例模式的优点:      - 由于单例模式只生成一个实例,减少了系统性能开销,当一个对象的产生需要比较多的资源时,如读取配置、产生其他依赖对象时,则可以通过在应用启动时直接产生一个单例对象,然后永久驻留内存的方式来解决。     - 单例模式可以在系统设置全局的访问点,优化环境共享资源访问,例

2015-08-02 15:34:43 332

自己编写的测试代码

自己编写的测试代码

2016-01-18

拉手测试程序

拉手吧,自己写的Java测试程序,自己写的Java测试程序

2015-09-28

Android Dalvik虚拟机结构及机制剖析(第2卷)

第1章 类加载模块的原理及实现 1.1 类加载机制概述 1.2 类加载机制整体工作流程介绍 1.3 Dex文件的优化与验证 1.3.1 Dex文件优化验证的原理与实现 1.3.2 Odex文件结构分析 1.3.3 函数执行流程 1.4 Dex文件的解析 1.4.1 DexFile数据结构简析 1.4.2 Dex文件解析流程概述 1.4.3 函数执行流程 1.5 运行时环境数据加载 1.5.1 ClassObject数据结构简析 1.5.2 类加载整体流程概述 1.5.3 函数执行流程 1.6 类加载机制与解释器交互示例 小结 第2章 内存管理的原理及实现 2.1 内存管理初探 2.2 内存分配过程分析 2.2.1 关键数据结构 2.2.2 关键函数 2.2.3 内存分配流程 2.3 垃圾回收过程分析 2.3.1 垃圾收集算法 2.3.2 关键数据结构 2.3.3 关键函数 2.3.4 垃圾回收流程 小结 第3章 JNI模块的原理及实现 3.1 何时使用 3.2 JNI编程示例 3.2.1 加载动态链接库 3.2.2 声明本地函数 3.2.3 实现本地函数 3.2.4 实现JNI_Onload函数 3.3 JNI机制环境的建立 3.3.1 AndroidRuntime类的start方法 3.3.2 JNI_CreateJavaVM()函数 3.4 Java调用C执行流程分析 3.4.1 解释器栈帧结构体 3.4.2 关键函数 3.4.3 Java调用C执行流程 3.5 C调用Java执行流程分析 3.5.1 本地调用接口函数结构体 3.5.2 关键函数 3.5.3 C调用Java执行流程 小结 第4章 反射机制模块的原理及实现 4.1 概述 4.2 反射机制实现代码示例 4.3 反射机制API分析 4.3.1 反射机制API分析概述 4.3.2 代理模式API分析 4.3.3 元数据注释机制API分析 4.4 反射机制的“三层”实现体系 4.4.1 类反射机制在Dalvik虚拟机内部的实现 4.4.2 三层结构实例展示 4.5 反射机制实现分析 4.5.1 Class类详细分析 4.5.2 Constructor类详细分析 4.5.3 Method类详细分析 4.5.4 Field类详细分析 4.5.5 反射机制对Proxy类和Annotation类功能上的支持 4.5.6 核心函数详细分析 4.6 模块内部函数调用关系 4.6.1 反射机制本地方法接口对反射机制实际执行函数的调用 4.6.2 反射机制实际执行函数内部对各个功能点函数的调用 小结 第5章 解释器模块的原理及实现 5.1 概述 5.2 解释器执行原理 5.3 Portable解释器实现分析 5.3.1 字节码解析原理 5.3.2 字节码指令解释流程 5.3.3 一个解释程序的例子 5.4 Fast解释器C实现分析 5.4.1 字节码解析原理 5.4.2 字节码指令解释流程 5.5 Fast解释器汇编实现分析 5.5.1 字节码解析原理 5.5.2 字节码解析流程 5.5.3 一个解释程序的例子 5.6 解释器的模块化设计 小结 第6章 即时编译模块的原理及实现 6.1 概述 6.2 JIT分类 6.2.1 Method—based JIT 6.2.2 Trace—based JIT 6.3 整体框架分析 6.4 前端功能及原理分析 6.4.1 构造基本块 6.4.2 确定控制流关系 6.4.3 识别及筛选循环 6.4.4 SSA形式转换 6.5 后端功能及原理分析 6.5.1 MIR转换为 6.5.2 LIR转换为机器码 小结

2015-08-17

Android应用开发详解PDF+源码

本书分为三个部分,共18章,由浅入深地详细介绍了android的每个开发细节。    本书基础翔实,实例丰富,案例真实。从基础到案例覆盖了android应用开发的三大领域:基础应用、网络应用和游戏应用。读者所需要学习的,正是本书描述的。

2015-08-07

Android面试题

方法重载与覆盖的区别?( Overload与Override的区别) String 和StringBuffer的区别 抽象类与接口的区别(abstract与interface的区别)

2015-07-31

Android面试题总结

Http协议介绍,消息推送,Android 平台上长连接的实现,关于内存优化

2015-07-22

Android面试题整理

Framework工作方式及原理,Activity是如何生成一个view的,机制是什么。 在Android中,怎么节省内存的使用,怎么主动回收内存?

2015-07-22

css中文手册,网页设计必备

css中文手册网页设计必备网页设计必备网页设计必备网页设计必备

2010-10-29

ThinkPHP2[1].0完全开发手册.chm

中文版ThinkPHP2[1].0完全开发手册.chm

2010-05-01

空空如也

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

TA关注的人

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