安卓进阶核心知识详解
文章平均质量分 91
通过程序示例或者源码的方式来详细讲解安卓中的一些具备难度的高级知识,如通过程序示例讲解Fragment生命周期,Service详细讲解,通过源码解析讲解安卓消息循环机制,IPC机制之Binder,安卓内存与磁盘缓存策略等。
这个家伙很懒~
这个作者很懒,什么都没留下…
展开
-
安卓中的事件分发机制源码解析
安卓中的事件分发机制主要涉及到两类控件,一类是容器类控件ViewGroup,如常用的布局控件,另一类是显示类控件,即该控件中不能用来容纳其它控件,它只能用来显示一些资源类容,如Button,ImageView等控件。暂且称前一类控件为ViewGroup类控件(尽管ViewGroup本身也是一个View),后者为View类控件。原创 2016-06-05 16:45:05 · 81838 阅读 · 5 评论 -
Fragment生命周期详解
关于Fragment的生命周期,博主写过Activity与Fragment生命周期详解,基本上把Fragment的生命周期详细介绍过,但是那仅仅是创建一个Fragmnet时的生命周期,而事实上Fragment的出现是为了动态的切换显示不同的界面的,因此我们对于Fragment的生命周期的了解不能仅仅停留在创建一个Fragment的时候,而是应该能够知道调用不同API切换Fragment时的生命周期原创 2016-04-21 21:30:50 · 14757 阅读 · 4 评论 -
安卓服务Service详解
service(服务)是安卓中的四大组件之一,它通常用作在后台处理耗时的逻辑,与Activity一样,它存在自己的生命周期,也需要在清单文件中配置相关信息,本博客将对Service的各个知识点进行详细讲解。一Service的基本用法:1使用本地服务1)服务的启动方式1通过Context的startService()方法启动服务:以该方法启动的服务,开启该服务的应用组原创 2016-04-23 21:52:45 · 63419 阅读 · 0 评论 -
安卓中的消息循环机制Handler及Looper详解
我们知道安卓中的UI线程不是线程安全的,我们不能在UI线程中进行耗时操作,通常我们的做法是开启一个子线程在子线程中处理耗时操作,但是安卓规定不允许在子线程中进行UI的更新操作,通常我们会通过Handler机制来完成该功能,即当子线程中耗时操作完成后,在子线程中通过Handler向主线程发送消息,在主线程中的Handler的handleMessage方法中处理接受到的消息。这就是安卓中的消息机制,安原创 2016-05-09 19:37:15 · 7748 阅读 · 1 评论 -
【安卓中的缓存策略系列】安卓缓存之内存缓存LruCache
缓存策略在移动端设备上是非常重要的,尤其是在图片加载这个场景下,因为图片相对而言比较大会花费用户较多的流量,因此可用缓存方式来解决,即当程序第一次从网络上获取图片的时候,就将其缓存到存储设备上,这样在用户下次使用这张图片时就不用从网络上再次获取,这样就能为用户节省一定的流量。这个功能目前绝大部分主流APP都会使用,如腾讯QQ,微信。但很多时候为了提高APP的用户体验,我们还需要把图片在内存中缓存一原创 2016-05-11 21:04:58 · 7199 阅读 · 1 评论 -
【安卓中的缓存策略系列】安卓缓存策略之磁盘缓存DiskLruCache
安卓中的缓存包括两种情况即内存缓存与磁盘缓存,其中内存缓存主要是使用LruCache这个类,其中内存缓存我在【安卓中的缓存策略系列】安卓缓存策略之内存缓存LruCache中已经进行过详细讲解,如看官还没看过此博客,建议看官先去看一下。我们知道LruCache可以让我们快速的从内存中获取用户最近使用过的Bitmap,但是我们无法保证最近访问过的Bitmap都能够保存在缓存中,像类似GridVie原创 2016-05-12 21:03:01 · 63772 阅读 · 2 评论 -
【安卓中的缓存策略系列】安卓缓存策略之综合应用ImageLoader实现照片墙的效果
在前面的【安卓缓存策略系列】安卓缓存之内存缓存LruCache和【安卓缓存策略系列】安卓缓存策略之磁盘缓存DiskLruCache这两篇博客中已经将安卓中的缓存策略的理论知识进行过详细讲解,还没看过这两篇博客的看官建议先去看一下,本博客将依据这些理论知识打造一个ImageLoader,实现照片墙的效果,关于照片墙的知识网上相关博客也很多,首先解释一下照片墙的概念:用一个GridView控件当作“墙原创 2016-05-31 19:10:50 · 19764 阅读 · 1 评论 -
安卓IPC机制之Binder详解
IPC(Inter-Process Communication,跨进程通信)是指两个进程之间数据交换的过程,因此我们首先必须了解什么是进程,什么是线程。原创 2016-06-02 12:17:05 · 34275 阅读 · 0 评论