
深入理解Android
文章平均质量分 85
从源码或其他方面深入介绍分析和学习Android相关技术。
_houzhi
这个作者很懒,什么都没留下…
展开
-
Hugo源码分析
Hugo是JakeWharton大神开发的一个通过注解触发的Debug日志库。它是一个非常好的AOP框架,在Debug模式下,Hugo利用aspectj库来进行切面编程,插入日志代码。通过分析Hugo的代码能够对gradle以及aspectj有一个非常好的了解。原创 2016-11-05 22:41:54 · 4566 阅读 · 0 评论 -
Android MessageQueue源码分析
MessageQueue是Android消息机制的核心,熟悉MessageQueue能够帮助我们更清楚详细地理解Android的消息机制。这篇文章会介绍MessageQueue消息的插入(enqueueMessage)和读取(next),native层的消息机制,以及IdleHandler和SyncBarrier的逻辑原理。源码是基于6.0。原创 2016-10-17 00:27:53 · 3718 阅读 · 2 评论 -
为什么Activity生命周期函数是运行在UI线程
这是我自己给自己提的问题,或者说是Activity的生命周期函数是怎样运行在主线程的?下面简单分析一下,讨论的问题其实远远不止于这个问题。会涉及到进程的启动,Binder的线程池,ActivityThread中的消息处理。原创 2016-08-19 00:20:31 · 2077 阅读 · 0 评论 -
AppWidget源码分析(2)---updateAppWidget过程分析.md
前面一篇文章,分析了AppWidgetProvider和RemoteView的源码,从中我们可以知道它们的实现原理,AppWidgetProvider是一个BroadcastReceiver,所以它是通过广播接收通知的,收到更新通知后,AppWidgetProvider需要去提供View供远程进程显示。这篇文章分析这个传输过程,分析updateAppWidget方法。原创 2016-08-13 01:41:00 · 5399 阅读 · 1 评论 -
AppWidget源码分析(1)---接口类
最近项目中接触到AppWidget,相对来说这部分比较简单,所以趁着空余时间详细阅读了AppWidget的源码。这篇文章主要是从源码上分析AppWidget中API类的相关原理,相关类的简单功能介绍和实现原理。关于使用,建议看指导文档。原创 2016-08-09 23:15:35 · 2495 阅读 · 0 评论 -
Android Accessibility使用及事件流程简介
Accessibility是Android从API 4开始提供的一个功能,它主要目的是帮助一些因为有视觉,听觉,身体障碍而无法完全使用触摸屏或铃声等的用户来使用Android的。而实际上现在很多开发者都用它来实现一些其他功能了,比如说微信抢红包,自动安装APK,强制停止应用等。下面来简单介绍一下它的相关使用以及原理原创 2016-08-04 23:25:07 · 11094 阅读 · 1 评论 -
Android SharedPreferences源码分析
我们经常使用SharedPreferences保存一些简单的数据,比如Settings的数据。如果我们只是简单的使用,可能没什么问题,但是如果要用好它还是得明白它的实现方式,下面来从源码上来分析下SharedPreferences的缓存,异步读写实现,多线程,多进程访问。原创 2016-07-18 23:53:35 · 4550 阅读 · 0 评论 -
Android Bitmap深入介绍(三)--- 开源加载框架简述
目前使用非常广泛的框架技术主要有Android Universal Image Loader,Picasso, Glide和Fresco,最开始出现的应该算是UIL(Universal Image Loader),记得刚开始用图片加载框架的时候,主要就是使用UIL,UIL功能丰富。Picasso是Square搞出来的,Glide与Picasso比较类似,Google推荐Glide,Fresco是Facebook推出的原创 2016-06-19 21:14:42 · 2886 阅读 · 0 评论 -
Android Bitmap深入介绍(二)--- 优化技术
这一篇主要介绍Bitmap相关的一些优化技术,包括加载图片,图片内存管理,图片缓存。原创 2016-06-13 15:14:02 · 4910 阅读 · 0 评论 -
Android Bitmap深入介绍(一)---基础
在Android应用开发中,我们经常需要跟图片打交道,而图片一个很麻烦的问题是占用内存非常大,经常导致OOM,了解Bitmap相关信息,不同sdk版本中Android图片处理的变化,以及一些优化处理的方式对我们平时开发中对图片的会非常有帮助。这篇先介绍Bitmap基础内容,关于像素,存储信息,以及加载。原创 2016-06-08 00:31:17 · 27292 阅读 · 1 评论 -
关于Android MVP模式的思考
最近经常看到各种介绍MVP模式的博客的,以前写的项目基本都是不断重构项目,直接考虑模块化,重用,精简,将项目代码变得更加精简,提高代码之间的复用性。看了MVP模式后,感觉有很多地方可以优化的,决定去总结一下自己代码中的问题并优化,算是对自己之前写的代码的回顾。好的模式能够让人在阅读的时候能够很好地理解代码,在对程序进行修改的时候能够快速简洁,并且不对原有代码结构破坏。原创 2016-05-05 11:18:23 · 2660 阅读 · 0 评论 -
Android源码代理模式---Binder
Binder是Android的进程间通信核心,如果看过Android源码,你会发现源码中Android的各种核心服务都是通过Binder机制进行相互通信的。在Binder的client部分就是通过代理模式来访问Server端的。这里想通过代理模式来详细介绍Java层Binder(源码基于6.0.1)。文中会简单介绍代理模式,详细介绍Binder机制。代理模式意图对其他对象提供一种代理以控制对这个对象的访问。原创 2016-04-23 11:35:31 · 5040 阅读 · 0 评论 -
Android源码装饰模式---ContextWrapper
如果说Android源码中哪个地方装饰模式应用的最明显的话,那肯定是非ContextWrapper莫属了,ContextWrapper是一个透明的经典的装饰模式。本文将通过装饰器模式分析Context源码结构。本文基于的Android源码是(android 5.0.0)。首先先介绍一下装饰模式。装饰模式意图装饰模式动态地给对象添加额外的职责,就添加功能来说,它比子类的方式更加灵活。原创 2016-04-14 16:39:51 · 14657 阅读 · 2 评论 -
关于Android事件派发流程的理解
以前看了很多人介绍的Android事件派发流程,但最近使用那些来写代码的时候出现了不少错误。所以回顾一下整个流程,简单介绍从手触摸屏幕开始到事件在View树派发,从源码上分析ViewGroup.dispatchTouchEvent。原创 2016-05-12 20:04:15 · 6344 阅读 · 1 评论 -
Android Binder跨进程与非跨进程的传输异同源码分析
网上很多文章都介绍了Service的绑定过程,但是并没有介绍对于跨进程与非跨进程,对于不同的返回值,其具体有什么区别,以及具体是怎么实现的。这篇文章就根据源码分析Android究竟是在哪部分来控制跨进程与非跨进程Binder的传输的,Binder究竟是怎么传输的。原创 2016-04-30 17:08:34 · 8610 阅读 · 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 · 9614 阅读 · 3 评论 -
Android4.0 Bitmap Parcel传输源码分析
很久之前就看到有网友遇到用Parcel传Bitmap的时候,会遇到因为图片太大而报错,都在讨论传输Bitmap的时候的大小限制,但是实际上应该只有在4.0之前会有限制,4.0之后图片传输采用了Blob来传输,最终会使用ashmem来传递占用内存大的数据。下面分别介绍4.0前后Parcel对图片传输的异同。原创 2016-05-29 11:32:06 · 2908 阅读 · 0 评论