自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(102)
  • 资源 (5)
  • 收藏
  • 关注

原创 AbstractListView源码分析9

/**     * Acts upon click     */    private AbsListView.PerformClick mPerformClick; 表示upon click    /**     * Delayed action for touch mode. :延迟的动作用于touch mode     */    private Ru

2016-12-27 11:34:01 469

原创 AbstractListView源码分析8

/**     * Maximum distance to record overscroll 记录overscroll的最大的距离     */    int mOverscrollMax;    /**     * Content height divided by this is the overscroll limit.内容的高度除以这个数值,为overscro

2016-12-27 11:00:19 402

原创 AbstractListView源码分析7

/**     * One of TOUCH_MODE_REST, TOUCH_MODE_DOWN, TOUCH_MODE_TAP, TOUCH_MODE_SCROLL, or     * TOUCH_MODE_DONE_WAITING     */    int mTouchMode = TOUCH_MODE_REST;    /**     * Y value

2016-12-26 20:31:08 484

原创 AbstractListView源码分析6

/**     * The position of the view that received the down motion event     */    int mMotionPosition;  接收到向下移动事件的视图的位置    /**     * The offset to the top of the mMotionPosition view when

2016-12-26 19:19:48 435

原创 AbstractListView源码分析6

/**     * Subclasses must retain their measure spec from onMeasure() into this member     */    int mWidthMeasureSpec = 0; 子类通过OnMeasure方法获得measure spec /**     * The top scroll indica

2016-12-26 19:14:47 479

原创 AbstractListView源码分析5

/**     * Indicates whether the list selector should be drawn on top of the children or behind     */    boolean mDrawSelectorOnTop = false;  表明了list selector是否应该绘制在children的顶部还是后面   /**

2016-12-26 15:49:01 385

原创 AbstractListView源码分析4

/**     * Running state of which positions are currently checked     */    SparseBooleanArray mCheckStates;  存储那些位置被选中了   /**     * Running state of which IDs are currently checked. 

2016-12-26 15:38:29 372

原创 AbstractListView源码分析3

/**     * Normal list that does not indicate choices     */    public static final int CHOICE_MODE_NONE = 0;    /**     * The list allows up to one choice     */    public static final

2016-12-26 15:20:34 364

原创 AbstractListView源码分析2

/**     * Regular layout - usually an unsolicited layout from the view system,一般的布局     */    static final int LAYOUT_NORMAL = 0;    /**     * Show the first item,展示第一项     */    sta

2016-12-26 15:11:29 355

原创 AbstractListView源码分析1

public abstract class AbsListView extends AdapterView implements TextWatcher,ViewTreeObserver.OnGlobalLayoutListener, Filter.FilterListener,        ViewTreeObserver.OnTouchModeChangeListener,   

2016-12-26 14:45:08 415

原创 源码之ListView分析

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/44996879在Android所有常用的原生控件当中,用法最复杂的应该就是ListView了,它专门用于处理那种内容元素很多,手机屏幕无法展示出所有内容的情况。ListView可以使用列表的形式来展示内容,超出屏幕部分的内容只需要通过手指滑动就可以移动到屏幕内了。另外

2016-12-26 10:14:28 405

原创 针对illegalstateException OnloadFinished

Here is some background to help anyone who encounters this exception.The exception is thrown because the framework doesn't allow to commit a fragment transaction in the same call stack as onLoadFi

2016-12-23 17:53:43 365

原创 启动zygote

在init.rc中配置zygote启动参数,使用adb pull /init.rc ,文件和zygote相关配置信息如下。service zygote /system/bin/app_process -Xzygote5.2 启动Socket服务端口 当zygote服务从app_process启动后,会启动一个Dalvik虚拟机,虚拟机执行的第一个Java类时Zygoteinit.j

2016-12-23 16:18:17 438

原创 开始虚拟机的准备工作

int dvmStartup(int argc,const char* const argv[],bool ignoreunrecognized,JNIEnv* pEnv){        int i,cc;        assert(gDvm.initializing);        LOGV("VM init args (%d):\n",argc);       for(i

2016-12-23 16:03:57 545

原创 Dalvik虚拟机相关的可执行程序

当Java程序运行时,都是一个虚拟机解释java的字节码,将这些字节码翻译成本地CPU的指令吗,然后执行。对Java程序而言,负责解释并执行的就是一个虚拟机。       dalvikvm的作用就是创建一个虚拟机并执行参数中指定的Java类,说明该程序的使用方法:    1.首先新建一个名为Foo.java的文件          class Foo{               

2016-12-23 15:33:53 566

转载 Dalvik Vm架构

输入.class经过Dx工具、Class Loader变为字节码,然后通过解释器,内存管理,线程管理等到host OS.Android应用编译的流程:      Java文件            jdk                 class文件              AndroidManifest,XML                    Resource文件

2016-12-23 14:36:08 467

原创 Dalvik控制VM详解

1.扩展的JNI检测     JNI(Java native Interface)是Java本地接口,提供了Java语言程序调用本地(C/C++)代码的方法。为了能触发CheckJNI标志位,第二种特性是dalvik.vm.checkjni,它的值覆盖了ro.kernel.Android.checkjni的值。如果这个特性没有被定义,dalvik.vm.checkjni也没有设置成false,

2016-12-23 14:26:01 2074

原创 Dalvik VM的主要特征

在Dalvik VM中,一个应用中会定义很多类,编译完成后有很多相应的.class文件,.dex文件吧所有的.class文件内容整合到一个文件中。除了减少整体文件尺寸,I/0操作,也提高了类的查找速度。      每个Android应用都运行在一个Davik Vm实例中,每个虚拟机实例都是一个独立的进程空间。虚拟机的线程机制、内存分配和管理、Mutex等都是依赖底层操作系统实现的。所有的And

2016-12-23 11:55:06 477

原创 Android虚拟机-Dalvik VM架构

Dalvik, VM会监视所有的程序APK,并且创建依赖关系熟,为每个程序优化代码并存储在Dalvik缓存中。Dalvik VM第一次加载后会生成Cache文件,加速加载,Dalvik Vm的第一次加载很慢。   dx是一套工具,可以将Java的.class文件转换成.dex格式,一个dex文档通常会有多个.class文件。由于dex有时必须进行优化,会是文件大小正价1-4倍,并以ODEX结尾

2016-12-23 11:32:28 1159

原创 java虚拟机的生命周期

同一台计算机上同时运行三个java程序,则会得到三个java虚拟机实例。每个java程序都运行在自己的java虚拟机实例 。在Java虚拟机内部有两种线程:守护线程与非守护线程。守护线程由自己使用的,比如执行垃圾收集任务的线程。但是,Java程序也可以把它创建的任何线程标记为守护线程。而java程序中的初始线程-就是开始于main()的,是非守护线程。

2016-12-23 10:30:46 479

原创 Java虚拟机的体系结构

java虚拟机由如下五个部分组成:    一组指令集   一组寄存器  一个栈  一个无用单元收集堆  一个方法区1.Java指令集   Java虚拟机支持大约248个字节码,每个字节码执行一种基本的CPU运算,例如把一个整数加到寄存器、子程序转移等。Java指令集相当于Java程序的汇编语言。   虚拟机的内层循环执行过程如下:  do{         

2016-12-23 10:23:38 531

原创 Android内核和Linux内核的区别

1.Android系统层面的底层是Linux,并且在中间加上了一个叫做Dalvik的Java虚拟机,从表面层看是Android运行库。每个Android应用都运行在自己的进程上,享有Dalvik虚拟机为它分配的专有实例。为了支持多个虚拟机在同一设备上高效运行,dalvik被改写过。Dalvik虚拟机执行的是Dalvik格式的可执行文件(.dex)-该格式经过优化,以将内存好用降到最低。Andr

2016-12-22 20:12:47 22520

转载 访问者模式

在访问者模式中,使用一个访问者类,改变元素类的执行算法。通过这种方式,元素执行算法可以随着访问改变而改变。这种设计模式属于行为型的模式。实现:创建一个定义接受操作的ComputerPart接口。Keyboard、Mouse、Monitor和Computer实现了ComputerPart接口实体类。定义了另一个接口ComputerPartVisitor,定义了访问者类的操作。1.定义一个

2016-12-22 16:48:20 344

转载 模板方法

在模板方法中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重新方法实现,但调用将以抽象类中定义的方式进行。属于行为模式。

2016-12-22 16:38:33 287

转载 策略模式

在策略模式中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为模式。在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的context对象。使用场景:1.如果一个系统里面有许多类,他们之间的区别在于他们的行为,使用策略模式可以动态让一个对象的许多行为选择一种行为 2.一个系统需要动态几种算法选择一种3.如果一个对象有很多行为,不恰当的使用会产生很多条件选择

2016-12-22 16:35:28 292

转载 空对象模式

在空对象模式中,一个空对象取代NULL对象实例的检测。反应一个不做任何动作的关系,NULL对象也可以在数据不可用的时候提供默认的行为。实现:     public class NullCustomer extends AbstractCustomer{           String getName(){}             boolean isNi1(){}  }

2016-12-22 16:25:49 294

转载 状态模式

类的行为基于它的状态改变的。在状态模式中,我们创建表示各种状态的对象和一个行为随着状态对象改变而改变的context的对象。1.创建一个接口interface State{  doAction(Context context);}2.创建实现接口的实体类class  StartState implements State{   doAction(Context cont

2016-12-22 16:18:00 288

转载 观察者模式

观察者模式:当对象存在一对多关系时,则使用观察者模式。比如,当一个对象被修改是,则会自动通知它的依赖对象。实现:观察者模式使用三个类Subject、Obsever和Client。Subject对象带有绑定观察者到Client对象和从Client对象解绑观察者的方法。1.创建Subjectclass Subject{   List observers=new ArrayList(

2016-12-22 16:12:19 377

转载 备忘录模式

备忘录模式保存一个对象的某个状态,以便在适当的时候恢复对象。备忘录模式属于行文模式。主要解决:所谓的备忘录模式就是在不破坏封装的前提下,捕获一个对象的内部状态,并在对象之外保存这个状态,可以在以后将对象恢复到保存的状态。实现:    备忘录模式使用三个类Memoto、Originator和CareTaker。Memoto包含了要被恢复的对象的状态。Originator创建并在Memen

2016-12-22 16:00:37 319

转载 中介者模式

用来降低多个对象和类之间的通信复杂性。这种模式提供了一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护。

2016-12-22 15:49:52 278

转载 迭代器模式

迭代器模式:这种模式用于顺序访问集合对象的元素,不需要知道结合对象的底层表示意图:提供一种方法顺序访问一个聚合对象中各个元素,而又无需暴露对象内部表示优点:1.它支持以不同的方式遍历一个聚合对象 2.迭代器简化了聚合类 3.在同一个聚合上可以由多个遍历 4.迭代器模式中,增加新的聚合类和迭代器类很方便步骤1.创建接口public interface Iterator{  pub

2016-12-22 15:46:27 259

原创 解释器模式

解释器模式(Interpret pattern)提供了评估语言的语法或表达式的方式,它属于行为型模式。这种解释器使用该标示来解释语言中的句子。主要解决:对于一些固定文法构建一个接收句子的解释器。使用场景:1.可以将一个需要解释执行的语言中的句子表示一个抽象语法树2.一些重复出现的问题可以用一种简单的语言来进行表达3.一个简单预付要解释场景

2016-12-22 15:30:46 220

转载 命令模式

命令模式是一种数据驱动的行为型模式。请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适对象,并把给命令传递给相应的对象,该对象执行命令。实现:我们首先创建作为命令接口Order,然后创建作为请求的Stock类。实体命令类BuyStock和sellStock,实现了Order接口,将执行实际的命令处理。创建作为调用类的Braoker,它接受订单并且能下订单。1

2016-12-22 15:21:17 240

转载 责任链模式

责任链模式:为请求创建了一个接收者对象的链,这种模式给予请求的类型,对请求的发送者和接受者进行解耦。意图:避免请求发送者与接受者耦合在一起,让多个对象都有可能接收请求,经这些对象连接成一条链,并且沿着这条链传递请求,直到处理它为止。主要解决:责任链上的处理者负责处理请求,客户只需要将请求方到职责链上即可,无须关系请求的处理细节和请求的传递,所以职责链经请求的发送者和请求的处理解耦了。1

2016-12-22 15:02:41 449

转载 代理模式

代理模式的定义是:给某一个对象提供一个代理,并有代理对象控制对原对象的应用代理模式包含 如下角色:ISubject:抽象主题角色,是一个接口。该接口是对象和它的代理共用的接口RealSubject:真实的主题角色,是实现抽象主题接口的类Proxy:代理角色,内部含有对真实对象RealSubject的引用,从而可以操作真实对象。代理对象提供与真实对象相同的接口,以便在任何时刻都能代替

2016-12-22 14:44:30 353

原创 外观模式

外观模式(Facade Pattern)隐藏系统的复杂性,并想客户端提供了一个客户端可以访问系统的接口。这种类型的设计结构型,隐藏系统的复杂性。1.创建一个接口public interface Shape{  void draw();}2.创建一个接口的实现类public class Rectangle implements Shape{   public void d

2016-12-22 10:56:47 300

原创 装饰器模式

装饰者模式:动态的将 责任附加到对象上,若要扩展对象,装饰者模式提供了比继承更弹性的使用场景:对象有主题+许多可选的布局或者功能构成,使用继承或者接口会产生很多类,且很难扩展。如,现在需要一个汉堡,主题是鸡腿堡,可以选择添加生菜、酱、辣椒等许多其他的配料,使用装饰者模式。public abstract class Humburger{ protect String name;

2016-12-22 10:43:05 349

原创 组合模式

尽量用组合少用继承

2016-12-22 10:15:24 305

原创 过滤器模式

过滤器模式:过滤器模式或标准模式是一种设计模式,这种模式允许开发人员使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式吧他们连接起来,这种类型的设计模式属于结构型模式。实现:将创建一个Person对象、Criteria接口和实现了该接口的实体类,来过滤Person对象的列表。1.创建一个类,在该类上应用标准Person.java  public class Pe

2016-12-22 10:12:51 395

原创 桥接模式

桥接模式:用于把抽象化与实现化解耦,使得二者可以独立变换。这种涉及模式属于结构型模式,通过抽象化与实现化之间的桥接结构,实现二者的解耦。1.先定义Implementor接口的,代码如下:public interface Implementor{   public void operationImpl();}2.定义Abstraction接口,器实现成为抽象类,代码如下:pu

2016-12-21 16:37:11 360

MySelfWord.zip

基于QT的windows平台的富文本处理的桌面程序,主要包括文字字体、字号、文件保存、打开,多窗口管理、粘贴、复制等操作

2020-02-21

platform-28_r06.zip

提供android platform,android-28的sdk包,解压后放到sdk路径的platform目录

2019-10-13

php基础教程

php基础教程 简单易懂的php教程 方便初学者学习 敬请下载

2015-03-25

Hadoop分布式文件系统的文件读写

在Hadoop的分布式文件系统下,对文件的读写和列出文件的相关属性和目录中的内容

2014-10-29

有连接的socket通信(posix)

这是Andoid的平台使用Ndk技术,开发的有连接的Socket通信小例子。

2014-09-08

空空如也

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

TA关注的人

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