自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 资源 (2)
  • 收藏
  • 关注

原创 Android的线程与线程池

1)从用途来看,Android的线程分为主线程和子线程;主线程处理与界面相关的事情;子线程处理耗时操作。   2)线程的形式:AsyncTask,IntentService和HandlerThread;AsyncTask封装了线程池和Handler,主要是为了在子线程中更新UI;HandlerThread是一种消息循环的线程;IntentService是一个服务,方便执行后台服务。一、As

2016-07-24 22:36:46 411

原创 Android的消息机制

Android的消息机制主要是指Handler的运行机制,而Handler的运行离不开MessageQueue和Looper的支撑。其中MessageQueue称为消息队列,用作存储一组消息,并以队列的形式对外提供插入和删除工作(具体实现:使用单链表的结构来存储消息列表)。MessageQueue不能处理消息;Looper称为循环,会以无限循环方式去查找消息和处理消息。    如何获取当前线程

2016-07-23 23:02:50 270

原创 View的事件分发机制

一、点击事件的传递规则    点击事件的分发:对MotionEvent事件的分发过程,也即当一个MotionEvent产生时,系统需要将其传递给一个具体的View来处理,这个过程即为分发过程;1.1 3个重要方法    public boolean dispatchTouchEvent(MotionEvent ev)    用来进行事件分发。返回结果受当前view的onTouchE

2016-07-22 23:36:35 359

原创 Activity的生命周期与启动模式

一、正常的生命周期    正常情况下,Activity会经历如下的生命周期    1)onCreate:表示Activity正在被创建;    2)onRestart:表示Activity正在重新启动;从不可见-->可见状态;    3)onStart:表示Activity正在被启动;此时Activity已经可见,但是没有出现在前台,无法交互;    4)onResume:表示

2016-07-21 21:33:38 326

原创 剑指offer 面试题5 从尾到头打印链表

题目:输入一个链表的头结点,从尾到头反过来打印出每个结点的值;这是一道关于链表操作的题目,处理这类题目时必须非常小心的注意指针为null的问题,不然很容易抛出空指针异常。思路:如果可以要求提供一个空间来存储链表结点的话,这道题就再简单不过了。可以先创建一个栈,然后从头到尾遍历链表,遍历时把结点加入到栈内;最后不断从栈弹出结点,就可达到从尾到头打印链表。

2016-06-12 22:51:38 305

原创 剑指offer面试题4 替换空格

题目描述:实现一个函数,把字符串中的每个空格都替换成"%20",例如输入"We are happy.",则输出"We%20are%20happy."

2016-06-10 21:39:11 255

原创 剑指offer 面试题3 二维数组中的查找

题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。思路一:针对二维矩阵的特点,可以注意到某个数的下方的数必定大于本身;而其左边的数必定小于本身;所以如果选取数组中右上角的数字为起点的话,作如下这些判断:如果该数字等于要查找的数字。查找过程即可结束;如果该数字大于要查

2016-06-06 21:38:43 280

原创 Android中Binder进程间通信库

Google设计人员在设计Android系统时,十分精心地在Framework层中将各种Binder驱动程序操作完美的封装成一个Binder库,通过这个库里的接口可以很方便的实现进程间通信,这也是Google设计者良心之作:让广大的Android程序员远离进程;这篇博客就是用来学习Binder库的基础知识的。由于Binder进程间通信采用的是C/S模式的,所以整个库的组件可分为两类:Serve

2016-05-14 21:39:02 350

原创 Server进程和Client进程获取ServiceManager的远程接口

上篇博客《ServiceManager如何成为Binder进程通信的守护进程》已经详细讲述了ServiceManager是如何成为守护进程,然而其作为守护进程是如何为Server进程和Client进程提供服务的,也即Server进程和Client进程如何获得ServiceManager的远程接口(代理对象)的呢?此时ServiceManager必然是作为Server的,其与普通的Server进程是

2016-05-03 18:53:08 1429

原创 ServiceManager如何成为Binder进程通信的守护进程

在上一篇博客《Android源码分析之Binder进程间通信一》中,我详细的讲述了Android进程间通信为什么会选择Binder进行通信,而且在文章末尾,我还提议从4个方面来理解整个Binder进程间通信机制。当然这篇博客的重点就是介绍ServiceManager组件的,它是整个Binder机制的守护进程,用来管理开发创建的各种Server,并且向Client提供查询Server的远程接口的功能

2016-04-29 18:56:30 541

原创 Android源码分析之Binder进程间通信一

最近一直到阅读Android底层源码的一些东西,刚开始接触那些c/c++代码,真是头都大了,重新接触指针,想想就可以把书关了,去看自己最喜欢的Java吧。但是没办法的啊,必须的理解一些Android里Framework的底层实现,不然在面试里怎么突出的表现自己呢。幸好这时一位大神出现了:罗升阳写的一本《Android系统源码代码情景分析》,看完这本书,才明白Android的水也很深的啊!!下面

2016-04-27 21:46:50 552

原创 Java虚拟机如何加载Class文件

前面两篇博客,我详细的讲解下Java主动内存管理的一些情况,如果想要更深入的了解Java虚拟机的运行机制的话,我建议可以阅读下《深入理解Java虚拟机》这本书。而这篇博客主要记录的是Java虚拟机是如何把.class文件加载到内存,具体的加载过程是怎么样的呢?请看下面的详细讲解。首先,必须得明白类加载机制大致原理:虚拟机把描述类的数据从CLASS文件加载到内存,并对数据进行校验,转换解析和

2016-04-26 19:27:21 3263

原创 Java自动内存管理偏爱二

在这篇精彩的帖子http://blog.csdn.net/bingowang1991/article/details/50809117里详细的介绍了JVM在运行时内存的分布,对象如何创建和布局以及查找对象方式,这些基本知识是了解Java内存如何完成自动管理的基础。然后这些只是内存自动管理的一部分,也即java对象的创建;下面我再仔细的说下java对象如何在内存中分配的和java对象是如何回收的呢?

2016-03-06 21:13:29 223

原创 java自动内存管理的偏爱

学习这么久以来,我最喜欢java的自动内存管理,恐怕最最不喜欢的就是java的泛型了,虽然泛型在很大程度上解决了容器从基本类型到包装对象的问题,但对泛型的其他用法感觉特别没意思,而且还特别的繁琐。下面还是具体谈谈我最喜欢的java内存管理,java是如何实现自动内存管理的呢?​ 首先,要弄清楚java内存自动管理,必须要明白java在运行时其的内存分布情况。大致可分为5个部分:方法区、虚拟

2016-03-05 15:37:00 309

原创 Java中对i = i++的解释

Java在执行i++时,会先找个地方把i原先的值存下来,算完++后,又把原先存下来的值覆盖到++后的值

2015-11-17 19:10:51 336

SQL必知必会

sql新手的必备书籍

2016-04-08

Qt编译器C++

Qt编译器是一种跨平台实现C++编译器的工具,使用Qt能够很好的进行大型的面对对象编程。

2014-10-12

空空如也

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

TA关注的人

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