http://www.cnblogs.com/csonezp/p/5121142.html 新买了一本书,<Android开发艺术探索>.这本书算是一本进阶书籍,适合有一定安卓开发基础,做过一两年安卓开发,但是又不是特别精通的开发者.感觉还不错.准备写写博客记录一下读书所得,增强一下记忆. 说到Activity生命周期,那不得不上一个图,基本上看完这个图,就能对生命周期有一个整体的认识. 我这里就总结一下各种情况下Activity生命周期的调用情况. 1,正常打开单个Activity,然后退出…
1. 多进程使用场景 1) 应用某些模块由于特殊需求须要执行在单独进程中. 如消息推送,使消息推送进程与应用进程能单独存活,消息推送进程不会由于应用程序进程crash而受影响. 2) 为加大一个应用可使用的内存.须要多进程来获取多份内存空间. 2. 怎样开启多进程 给四大组件(Activity.Service.Receiver.ContentProvider)在AndroidMainfest中指定android:process属性指定. 假设进程以":"开头的进程.代表应用的私有进程,…
Android性能优化 Android不可能无限制的使用内存和CPU资源,过多的使用内存会导致内存溢出,即OOM. 而过多的使用CPU资源,通常是指做大量的耗时任务,会导致手机变的卡顿甚至出现程序无法响应的情况,即ANR. 15.1.1布局优化 1.怎样进行布局优化? 首先删除布局中没用的控件和层级 其次有选择的使用性能较低的ViewGroup. 布局优化的还有一种手段是採用标签.标签.ViewStub.标签主要用于布局重用,标签一般和配合使用,它能够减少减少布局的层级,而ViewStub则提供…
View的点击事件的分发,其实就是对MotionEvent事件的分发过程,即当一个MotionEvent产生后,系统需要把这个事件传递给一个具体的View,而这个过程就是分发过程. 分发过程主要由以下3个方法共同完成: public boolean dispatchTouchEvent(MotionEvent event) 用来进行事件的分发.如果事件能够传递给当前的View,那么此方法一定会被调用,返回结果受当前的View的onTouchEvent和下级View的dispatchTouchEv…
第十章  Android的消息机制 面试中经常会被问到的一个问题:handler是如何在子线程和主线程中进行消息的传递的,这个问题通过了解Android的消息机制可以得到一个准确的答案. Android的消息机制主要就是指Handler的运行机制,Handler的运行需要底层的MessageQueue和Looper的支撑.需要理解两个概念: MessageQueue:消息队列,通过单链表的数据结构来存储一组消息,以队列的形式对外提供插入和删除的工作. Looper:消息循环,以无限循环的方式查找…
第三章  View的事件体系 3.1 View基础知识 3.1.1 什么是view View 是Android中所有控件的基类,是一种界面层的控件的一种抽象,它代表了一个控件. 3.1.2 View的位置参数 View的位置主要由它的四个顶点来决定,分别对应于View的四个属性:top,left,right,bottom:需要注意的是这些坐标都是相对于View的父容器来说的:(在Android中X轴和Y轴的正方向分别为右和下). 3.0开始新增的属性 x-  view左上角横坐标: y-  vi…
第十一章  Android的线程和线程池 从用途上来说,线程分为子线程和主线程,主线程主要处理和界面相关的事情,而子线程往往用于执行耗时的操作.AsyncTask,IntentService,HandlerThread都可以扮演线程的角色. AsyncTask封装了线程池和Handler,主要是为了方便开发者在主线程中更新UI. HandlerThread是一种具有消息循环的线程,在它的内部可以使用Handler. IntentService是一个服务,系统对其进行了封装,使其可以更方便的执行后…
第六章 Android的Drawable  Drawable的优点:使用简单,比自定义view的成本要低:非图片类型的Drawable占用空间小,有利于减小APK安装包的大小. 6.1Drawable简介 Drawable有很多种,他们都表示一种图像的概念,Drawable常被用来作为view的背景使用.Drawable是一个抽象类.Drawable的内部宽高这个参数比较重要,通过getIntrinsicWidth和getIntrinsicHeight这两个方法可以获取到他们.但并不是所有的Dr…
第四章 View的工作原理 4.1初识ViewRoot和DecorView ViewRoot是连接WindowManager和DecorView的纽带,View的三大流程均是通过ViewRoot来完成的. View的三大流程指的是测量(measure),布局(layout),绘制(draw). measure用来测量View的宽和高,layout用来确定View在父容器中的放置位置,draw负责将View绘制在屏幕上. measure过程决定了View的宽和高,Measure完成以后,可以通过g…
第一章 Activity的生命周期和启动模式 1.1Activity的生命周期全面解析 1.1.1典型情况下的生命周期分析 (1)在两个Activity进行切换时,当前的Activity的onPause()方法必须先执行完,新Activity的onResume()方法才会执行. (2)当用户打开新的Activity或者切换到桌面的时候,回调如下:onPause->onStop.这里有一种特殊情况,如果新 Activity采用了透明主题,那么当前Activity不会回调onStop,所以应该尽量避…