- 博客(18)
- 资源 (1)
- 收藏
- 关注
原创 进程间通信之AIDL解析
在前面《Activity与Service数据交互的几种方式》文章中,讲解了AIDL是什么,AIDL的使用流程,AIDL支持的数据类型,使用过程中需要注意的事项,以及具体的实例。不了解的朋友可以先去浏览一下。AIDL实际上底层是Binder机制,如果不了解Binder机制的可以查看我前面的文章《进程间通信之Binder机制浅析》。AIDL其本质是为了让我们更方便的进行进程间通信,在知道它底层是B...
2018-03-15 16:57:47 465
原创 进程间通信之Binder机制浅析
本博客源码基于Android 8.0Binder,Android提供的一种进程间通信(IPC)机制。被广泛的应用于Android系统中,比如我们经常使用的四大组件,它们的相关操作都会通过Binder最终交于其相应的Service进行处理。本文将从Binder的架构、原理、Framework层Binder代码等,进行分析理解Binder。什么是Binder?从IPC角度来说...
2018-03-14 17:31:53 1549
原创 Android 8.0 Activity启动过程分析
图解Activity启动过程上图大致分析出了Android-8.0应用根Activity的启动过程,其他Activity的启动也是类似的。相关类说明packages/apps/Launcher3/src/com/android/launcher3/- Launcher.javaframeworks/base/core/java/android/app/- Activ...
2018-03-12 10:44:41 5583 1
原创 Fragment FragmentManager FragmentTransaction源码浅析
Fragment相关类的关系及说明UML类图 上图虽然不是Fragment工作过程中所有类,但是也能表达Fragment工作过程中主要类的关系。下面对一些类进行简要的说明。相关类说明HostCallbacks:FragmentActivity内部类,继承FragmentHostCallback,在其相应方法中调用FragmentActivity的相应方法,实现其功能。实例化...
2018-03-02 16:26:44 497
原创 图解Service生命周期
众所周知Service是 Android 四大组件之一,应用范围非常广泛。虽然说起来大家都知道它,但并不是每个人都了解它的特性。服务基本上分为两种形式:启动和绑定。接下来让我们看看它们的流程都是怎样的。启动和关闭服务 除了其他组件使用stopService来停止服务外,还可以在服务内部使用stopSelf来停止它自身。绑定和解绑服务启动和绑定混...
2018-01-09 22:04:29 629
原创 浅析Activity启动模式
四种启动模式standard(默认模式)举个栗子同一App中默认模式下的Activity启动情况?下面来看个例子,Activity1 启动 Activity2,Activity2 再启动 Activity1。下面是输出的日志:com.demo.activity.Activity1@61b47bacom.demo.activity.Activity2@16908
2018-01-04 16:38:42 495
原创 浅析Activity生命周期
实践出真知了解Activity生命周期,最好的方法当然是写个Demo,自己试一试了。 首先自己创建一个Application,在其中使用registerActivityLifecycleCallbacks注册对Activity生命周期回调的监听。registerActivityLifecycleCallbacks(object : ActivityLifecycleCallb...
2018-01-04 16:33:43 408
原创 Kotlin-Android-Extensions:不仅仅是替代findViewById
kotlin-android-extensions是kotlin为Android专门提供的扩展插件,虽然现在其提供的功能不多,但是光是替代findViewById功能,就已经值得使用了。至于以后官方是否会提供更多的功能,让Android开发更快速便捷,就只能拭目以待了。
2017-09-21 19:20:02 2244 2
原创 那些我在Android开发中所喜爱的Kotlin特性
在2017年5月谷歌I/O大会上,官方宣布Kotlin为Android开发的新语言,当然有人看好也有人不看好。距离现在我已经在两个线上项目中使用Kotlin开发,对于Android开发人员来说,学习Kotlin不需要花费太多时间,只需要看看官方文档,就可以直接上项目了。当然了,遇到问题肯定是会有的,就像使用第三方开源库一样存在风险。所以不用考虑太多,Just do it!
2017-09-21 19:13:22 1737
原创 设计模式学习笔记——简单工厂模式、工厂方法模式、抽象工厂模式
简单工厂模式定义 简单工厂严格意义来讲不能算作是一个设计模式,通常使用一个静态方法接收参数,通过参数来判断实例化不同的实现类。优缺点优点:简单工厂模式能够根据外界给定的信息,决定究竟应该创建哪个具体类的对象。明确区分了各自的职责和权力,有利于整个软件体系结构的优化。缺点:很明显工厂类集中了所有实例的创建逻辑,违反高内聚的责任分配原则,它所能创建的类必须是提前考虑好的,不能直接扩展,只能修改
2017-05-22 21:50:22 476
原创 Snackbar源码解析
引言2015年5月,Google发布了Design Support Library,添加了很多组件用于支持Material Design。至今过去已经两年了,版本也由当初的22.2.0到现在的26.0.0 Alpha 1。想要了解其中控件的实现原理,当然是从最简单的开始,那就是这篇文章的主角——Snackbar。基本使用只有文本提示Snackbar.make(view, "This is a m
2017-04-13 20:53:45 861
原创 设计模式学习笔记——装饰模式
定义 装饰模式——动态地将责任附加到对象上。就增加功能来说,装饰模式相比生成子类更为灵活。使用场景需要透明且动态地扩展类的功能时。需要去除相关类中重复的装饰逻辑时。UML类图Component:是定义的一个对象接口,可以给这些对象动态地添加职责。ConcreteComponent:组件具体实现类。该类是Component类的基本实现,也是我们装饰的具体对象。Decorator:装饰
2017-04-13 20:42:37 597
原创 设计模式学习笔记——观察者模式
定义 观察者模式(发布订阅模式)——在对象之间定义一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象都会收到通知,并自动更新。使用场景关联行为场景,需要注意的是,关联行为是可拆分的,而不是“组合”关系。事件多级触发场景。跨系统的消息交换场景,如消息队列、事件总线的处理机制。UML类图Subject:抽象主题,被观察者(Observable)的角色,抽象主题角色把所有观察者对象的
2017-04-11 19:37:29 407
原创 设计模式学习笔记——策略模式
定义 策略模式——定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互转换。此模式让算法的变化独立于使用算法的客户。使用场景针对同一类型问题的多种处理方式,仅仅是具体行为有差别时。需要安全地封装多种同一类型的操作时。出现同一抽象类有多个子类,而又需要使用if-else或者switch-case来选择具体子类时。UML类图例子用上下班出行方式来演示策略模式。具体的骑单车、乘公
2017-04-06 20:35:16 505
原创 CoordinatorLayout源码解析
Google推出Support Design Library已经两年了,没错,两年了!虽然推出了这么久,也只是使用,并没有深入研究过,所以想要深入了解一下,于是有了此文,对CoordinatorLayout源码进行分析。
2017-03-31 23:07:22 619
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人