0%

冒泡排序(英语:Bubble Sort)又称为泡式排序,是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。 - 维基百科

阅读全文 »

  • Binder 是 Android 系统的一种跨进程通信机制(IPC)。AIDL 和 Messenger 也是基于 Binder 实现的;
  • 对于 Server,Binder 指的是 Binder 本地对象;
  • 对于 Client,Binder 指的是 Binder 代理对象,它只是 Binder 本地对象的一个远程代理;对这个 Binder 代理对象的操作,会通过驱动最终转发到 Binder 本地对象上去完成;
  • 对于传输过程而言,Binder 是可以进行跨进程传递的对象;Binder 驱动会对具有跨进程传递能力的对象做特殊处理,即自动完成代理对象和本地对象的转换。
阅读全文 »

Parcel 是 Android 特有的数据序列化反序列化机制,不同于 Serializable,Parcel 主要用作进程间通信,是跨进程传输对象的工具。

阅读全文 »

AIDL(Android Interface Definition Language) 是 Android 系统提供的进程间通信方式,底层是根据 Binder 机制实现,是对上层代码的封装。
Android 的系统服务基本上都是通过 AIDL 实现的,比如 AMS 通过 IApplicationThread.aidl 实现,WMS 通过 IWindowManager.aidl 实现。

阅读全文 »

Handler 是标准的事件驱动模型。存在一个消息队列 MessageQueue,它是一个基于消息触发时间的优先级队列,还有一个基于此消息队列的事件循环 Looper,Looper 通过循环,不断的从 MessageQueue 中取出待处理的 Message,再交由对应的事件处理器 Handler 来处理。
Handler 用于线程间通讯,常用于主线程更新 UI 和发送延迟消息。

阅读全文 »

Reflection is commonly used by programs which require the ability to examine or modify the runtime behavior of applications running in the Java virtual machine.

JAVA 反射机制是在运行时对于任意一个类都能够知道这个类的所有属性和方法,对于任意一个对象都能够调用它的任意一个方法。这种动态的获取信息以及动态的调用对象方法的功能称为 java 语言的反射机制。

阅读全文 »

泛型是 Java SE 1.5 的新特性。泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数,即在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型。

阅读全文 »

LayoutInflater 的作用是把布局 XML 文件解析成相应的 View 对象。由于性能原因,LayoutInflater 只能处理编译过的 xml 文件,不能处理原始的 xml 文件。

阅读全文 »

死锁产生的条件

  1. 互斥条件:一个资源每次只能被一个线程使用。
  2. 请求与保持条件:一个线程因请求资源而阻塞时,对已获得的资源保持不放。
  3. 不剥夺条件:线程已获得的资源,在未使用完之前,不能强行剥夺。
  4. 循环等待条件:若干线程之间形成一种头尾相接的循环等待资源关系。
阅读全文 »