
Android进阶
文章平均质量分 94
走慢一点点
这个作者很懒,什么都没留下…
展开
-
Android 中Activity,Window和View之间的关系
Activity是Android应用程序的载体,允许用户在其上创建一个用户界面,并提供用户处理事件的API,如onKeyEvent, onTouchEvent等。 并维护应用程序的生命周期(由于android应用程序的运行环境和其他操作系统不同,android的应用程序是运行在框架之内,所以他的应用程序不能当当从进程的级别去考虑,而更多是从概念上去考虑。android应用程序是由多个活动堆积而成,转载 2015-03-07 18:37:43 · 817 阅读 · 0 评论 -
java(Android)——内存泄露的一些经典案例
1、匿名内部类,非静态内部类造成的内存泄露隐患经典面试题:@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); new Thread(new Runnabl原创 2015-10-07 18:16:00 · 1336 阅读 · 0 评论 -
Android——内存优化相关
关于性能优化的一些总结: 1、尽量减少布局的嵌套层次。如果能用RelativeLayout实现的布局,就尽量不用LinearLayout去做,因为LinearLayout一般会嵌套更多的层次。 2、在可以使用merge的情况下,用merge去合并布局,这样可以减少布局嵌套的层次。 3、在适宜的情况下使用ViewStub,ViewStub类似一种延迟加载技术,程序初始化的时候只原创 2016-05-11 20:24:14 · 536 阅读 · 0 评论 -
Android消息处理机制——Looper,Handler,Message,MessageQueue,Thread
Message:消息,由MessageQueue统一列队,终由Handler处理。 Handler:处理者,负责Message的发送及处理。 MessageQueue:消息队列,用来存放Handler发送过来的消息。 Looper:消息泵,不断地从MessageQueue中抽取Message执行。一个线程中只有一个Looper实例。 Thread:线程,负责调度整个消息循环,即消息循环的执行转载 2015-08-25 15:11:43 · 1372 阅读 · 0 评论 -
Android —— HandlerThread
源码分析public class HandlerThread extends Thread { int mPriority;// 指定线程优先级 int mTid = -1; Looper mLooper; public HandlerThread(String name) { super(name); mPriority = Proce原创 2016-05-10 10:27:34 · 1365 阅读 · 0 评论 -
Android ——AsyncTask
源码解读关于AsyncTask源码的解读可参考郭大神的文章:http://blog.youkuaiyun.com/guolin_blog/article/details/11711405知识点补充1:Callable、Future、FutureTaskCallablecallable和running类似,是一个接口:public interface Runnable { p原创 2016-05-09 17:33:50 · 1567 阅读 · 1 评论 -
Android——View、ViewGroup事件(Touch事件)处理机制总结
Android中的事件Touch事件,四种状态:ACTION_DOWN ——> 表示按下了屏幕ACTION_MOVE ——> 表示移动手势ACTION_UP ——> 表示离开屏幕ACTION_CANCEL ——> 表示取消手势,一般由程序产生,不会由用户产生一个ACTION_DOWN, n个ACTION_M原创 2015-06-17 00:48:11 · 8588 阅读 · 2 评论 -
深入了解View(五)—— 视图状态及重绘流程分析
相信大家在平时使用View的时候都会发现它是有状态的,比如说有一个按钮,普通状态下是一种效果,但是当手指按下的时候就会变成另外一种效果,这样才会给人产生一种点击了按钮的感觉。当然了,这种效果相信几乎所有的Android程序员都知道该如何实现,但是我们既然是深入了解View,那么自然也应该知道它背后的实现原理应该是什么样的,今天就让我们来一起探究一下吧。视图状态视图状态的种类非常多,一共有十几种类型,转载 2015-07-25 16:18:36 · 1105 阅读 · 0 评论 -
深入了解View(四)—— LayoutInflater原理及View测量/布局/绘制总结
LayoutInflater原理分析相信接触Android久一点的朋友对于LayoutInflater一定不会陌生,都会知道它主要是用于加载布局的。而刚接触Android的朋友可能对LayoutInflater不怎么熟悉,因为加载布局的任务通常都是在Activity中调用setContentView()方法来完成的。其实setContentView()方法的内部也是使用LayoutInflater来转载 2015-07-25 12:45:30 · 1063 阅读 · 0 评论 -
深入了解View(三)—— draw绘制流程分析
layout流程简介measure和layout的过程都结束后,接下来就进入到draw的过程了。同样,根据名字你就能够判断出,在这里才真正地开始对视图进行绘制。draw同样是由ViewRoot的performTraversals方法发起,它将调用DecorView的draw方法,并把成员变量canvas传给给draw方法。而在后面draw遍历中,传递的都是同一个canvas。所以android的绘制转载 2015-07-25 12:37:40 · 1425 阅读 · 0 评论 -
深入了解View(二)—— layout布局流程分析
layout过程简介measure过程结束后,视图的大小就已经测量好了,接下来就是layout的过程了。正如其名字所描述的一样,这个方法是用于给视图进行布局的,也就是确定视图的位置。ViewRoot的performTraversals()方法会在measure结束后继续执行,并调用View的layout()方法来执行此过程,如下所示: private void performTraversals转载 2015-07-25 11:16:20 · 1151 阅读 · 0 评论 -
深入了解View(一)—— measure测量流程分析
MeasureSpc类说明SDK说明MeasureSpc类封装了父View传递给子View的布局(layout)要求(期望)。每个MeasureSpc实例代表宽度或者高度 (只能是其一)要求。 它有三种模式: ①、UNSPECIFIED(未指定),父元素不对自元素施加任何束缚,子元素可以得到任意想要的大小。这种情况比较少见,不太会用到; ②、EXACTLY(完全),父元素决定自元素的确切大转载 2016-02-16 11:21:58 · 897 阅读 · 0 评论 -
Android——Lrucache内存缓存技术核心代码分析
Lrucache简介Google的package android.util.LruCache类为我们提够一个好用的内存缓存技术,非常适合用来缓存图片,可以让组件快速地重新加载和处理图片等资源不过考虑到兼容性,最好导入android.support.v4.util.LruCache这个类。但LruCache只是管理了内存中图片的存储与释放,如果图片从内存中被移除的话,那么又需要从网络上重新加原创 2015-06-10 12:17:32 · 1066 阅读 · 0 评论 -
Android——性能优化相关文章
一、GoogleAndroid性能优化典范 Android性能优化典范(一)http://www.youkuaiyun.com/article/2015-01-20/2823621-android-performance-patterns/2 Android性能优化典范(二)http://www.youkuaiyun.com/article/2015-04-29/2824583-android-perf原创 2015-05-20 15:05:57 · 731 阅读 · 0 评论