安卓源码解析
文章平均质量分 85
_houzhi
这个作者很懒,什么都没留下…
展开
-
Android源码桥梁模式---FragmentCompat
FragmentCompat是一个用于访问Fragment特征的帮助类,它在support v13开始以一种向后兼容的风格提出。它是如何向后兼容的呢?就是使用桥梁模式来向后兼容。它是一种简化了的桥梁模式,下面将简单介绍FragmentCompat与桥梁模式。原创 2016-04-26 19:45:31 · 4116 阅读 · 0 评论 -
Hugo源码分析
Hugo是JakeWharton大神开发的一个通过注解触发的Debug日志库。它是一个非常好的AOP框架,在Debug模式下,Hugo利用aspectj库来进行切面编程,插入日志代码。通过分析Hugo的代码能够对gradle以及aspectj有一个非常好的了解。原创 2016-11-05 22:41:54 · 4468 阅读 · 0 评论 -
AppWidget源码分析(1)---接口类
最近项目中接触到AppWidget,相对来说这部分比较简单,所以趁着空余时间详细阅读了AppWidget的源码。这篇文章主要是从源码上分析AppWidget中API类的相关原理,相关类的简单功能介绍和实现原理。关于使用,建议看指导文档。原创 2016-08-09 23:15:35 · 2427 阅读 · 0 评论 -
AppWidget源码分析(2)---updateAppWidget过程分析.md
前面一篇文章,分析了AppWidgetProvider和RemoteView的源码,从中我们可以知道它们的实现原理,AppWidgetProvider是一个BroadcastReceiver,所以它是通过广播接收通知的,收到更新通知后,AppWidgetProvider需要去提供View供远程进程显示。这篇文章分析这个传输过程,分析updateAppWidget方法。原创 2016-08-13 01:41:00 · 5271 阅读 · 1 评论 -
关于Android事件派发流程的理解
以前看了很多人介绍的Android事件派发流程,但最近使用那些来写代码的时候出现了不少错误。所以回顾一下整个流程,简单介绍从手触摸屏幕开始到事件在View树派发,从源码上分析ViewGroup.dispatchTouchEvent。原创 2016-05-12 20:04:15 · 6298 阅读 · 1 评论 -
为什么Activity生命周期函数是运行在UI线程
这是我自己给自己提的问题,或者说是Activity的生命周期函数是怎样运行在主线程的?下面简单分析一下,讨论的问题其实远远不止于这个问题。会涉及到进程的启动,Binder的线程池,ActivityThread中的消息处理。原创 2016-08-19 00:20:31 · 2020 阅读 · 0 评论 -
Android Accessibility使用及事件流程简介
Accessibility是Android从API 4开始提供的一个功能,它主要目的是帮助一些因为有视觉,听觉,身体障碍而无法完全使用触摸屏或铃声等的用户来使用Android的。而实际上现在很多开发者都用它来实现一些其他功能了,比如说微信抢红包,自动安装APK,强制停止应用等。下面来简单介绍一下它的相关使用以及原理原创 2016-08-04 23:25:07 · 10962 阅读 · 1 评论 -
Android SharedPreferences源码分析
我们经常使用SharedPreferences保存一些简单的数据,比如Settings的数据。如果我们只是简单的使用,可能没什么问题,但是如果要用好它还是得明白它的实现方式,下面来从源码上来分析下SharedPreferences的缓存,异步读写实现,多线程,多进程访问。原创 2016-07-18 23:53:35 · 4500 阅读 · 0 评论 -
Android源码适配器模式---Activity类结构
其实适配器模式在Android源码中非常多,而从整体的源码角度上来看Activity的结构就是一种适配器模式。从这个角度上面看Activity,对Activity和应用层框架会有更加深入的理解。原创 2016-06-13 10:35:16 · 3924 阅读 · 0 评论 -
Android源码抽象工厂---IPolicy
在Android源码中,这个IPolicy就是一个简单的抽象工厂模式。它负责创建Winodw,WindowManagerPolicy, LayoutInflater,FallbackEventHandler。抽象工厂意图提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类。下面分析一下IPolicy及其实现,以及创建的相关对象原创 2016-04-19 11:45:29 · 3283 阅读 · 0 评论 -
Android源码访问者模式---HtmlDocument
访问者模式是设计模式中相对比较复杂的设计模式,在Android源码中的UnifiedEmail项目中的HtmlDocument就使用了访问者模式,Email中的内容可以是Html文档,而Html文档需要解析保存,HtmlDocument就是html节点的一个容器,本文将介绍HtmlDocument与访问者模式(源码基于6.0.1_r30)。原创 2016-06-23 23:16:03 · 1364 阅读 · 0 评论 -
Android源码代理模式---Binder
Binder是Android的进程间通信核心,如果看过Android源码,你会发现源码中Android的各种核心服务都是通过Binder机制进行相互通信的。在Binder的client部分就是通过代理模式来访问Server端的。这里想通过代理模式来详细介绍Java层Binder(源码基于6.0.1)。文中会简单介绍代理模式,详细介绍Binder机制。代理模式意图对其他对象提供一种代理以控制对这个对象的访问。原创 2016-04-23 11:35:31 · 4967 阅读 · 0 评论 -
Android4.0 Bitmap Parcel传输源码分析
很久之前就看到有网友遇到用Parcel传Bitmap的时候,会遇到因为图片太大而报错,都在讨论传输Bitmap的时候的大小限制,但是实际上应该只有在4.0之前会有限制,4.0之后图片传输采用了Blob来传输,最终会使用ashmem来传递占用内存大的数据。下面分别介绍4.0前后Parcel对图片传输的异同。原创 2016-05-29 11:32:06 · 2802 阅读 · 0 评论 -
Android源码装饰模式---ContextWrapper
如果说Android源码中哪个地方装饰模式应用的最明显的话,那肯定是非ContextWrapper莫属了,ContextWrapper是一个透明的经典的装饰模式。本文将通过装饰器模式分析Context源码结构。本文基于的Android源码是(android 5.0.0)。首先先介绍一下装饰模式。装饰模式意图装饰模式动态地给对象添加额外的职责,就添加功能来说,它比子类的方式更加灵活。原创 2016-04-14 16:39:51 · 14557 阅读 · 2 评论 -
Android Binder跨进程与非跨进程的传输异同源码分析
网上很多文章都介绍了Service的绑定过程,但是并没有介绍对于跨进程与非跨进程,对于不同的返回值,其具体有什么区别,以及具体是怎么实现的。这篇文章就根据源码分析Android究竟是在哪部分来控制跨进程与非跨进程Binder的传输的,Binder究竟是怎么传输的。原创 2016-04-30 17:08:34 · 8555 阅读 · 0 评论 -
Android6.0 Bitmap存储以及Parcel传输源码分析
如果想要对Android Bitmap进行更多的操作,理解好Bitmap的实现将会有非常大的帮助,另外Android在6.0中增加了asm存储图片。这篇文章就通过源码来分析Android6.0中的Bitmap。本文主要分析Java层与native层的Bitmap,以及Bitmap的储存和Parcel传输。源码基于6.0,所以会有一些新的特性。原创 2016-05-24 14:55:54 · 9508 阅读 · 3 评论 -
Android MessageQueue源码分析
MessageQueue是Android消息机制的核心,熟悉MessageQueue能够帮助我们更清楚详细地理解Android的消息机制。这篇文章会介绍MessageQueue消息的插入(enqueueMessage)和读取(next),native层的消息机制,以及IdleHandler和SyncBarrier的逻辑原理。源码是基于6.0。原创 2016-10-17 00:27:53 · 3618 阅读 · 2 评论