自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

AndrLin

不再沉浸于别人眼中的自己,而忘记真正的向往与追求...

  • 博客(18)
  • 资源 (1)
  • 收藏
  • 关注

原创 进程间通信之AIDL解析

在前面《Activity与Service数据交互的几种方式》文章中,讲解了AIDL是什么,AIDL的使用流程,AIDL支持的数据类型,使用过程中需要注意的事项,以及具体的实例。不了解的朋友可以先去浏览一下。AIDL实际上底层是Binder机制,如果不了解Binder机制的可以查看我前面的文章《进程间通信之Binder机制浅析》。AIDL其本质是为了让我们更方便的进行进程间通信,在知道它底层是B...

2018-03-15 16:57:47 434

原创 进程间通信之Binder机制浅析

本博客源码基于Android 8.0Binder,Android提供的一种进程间通信(IPC)机制。被广泛的应用于Android系统中,比如我们经常使用的四大组件,它们的相关操作都会通过Binder最终交于其相应的Service进行处理。本文将从Binder的架构、原理、Framework层Binder代码等,进行分析理解Binder。什么是Binder?从IPC角度来说...

2018-03-14 17:31:53 1438

原创 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 4356 1

原创 Fragment FragmentManager FragmentTransaction源码浅析

Fragment相关类的关系及说明UML类图 上图虽然不是Fragment工作过程中所有类,但是也能表达Fragment工作过程中主要类的关系。下面对一些类进行简要的说明。相关类说明HostCallbacks:FragmentActivity内部类,继承FragmentHostCallback,在其相应方法中调用FragmentActivity的相应方法,实现其功能。实例化...

2018-03-02 16:26:44 463

原创 Activity与Service数据交互的几种方式

本文主要演示通过扩展Binder、使用Messenger、使用AIDL进行数据交互

2018-01-11 19:31:06 1921

原创 图解Service生命周期

众所周知Service是 Android 四大组件之一,应用范围非常广泛。虽然说起来大家都知道它,但并不是每个人都了解它的特性。服务基本上分为两种形式:启动和绑定。接下来让我们看看它们的流程都是怎样的。启动和关闭服务 除了其他组件使用stopService来停止服务外,还可以在服务内部使用stopSelf来停止它自身。绑定和解绑服务启动和绑定混...

2018-01-09 22:04:29 592

原创 浅析Activity启动模式

四种启动模式standard(默认模式)举个栗子同一App中默认模式下的Activity启动情况?下面来看个例子,Activity1 启动 Activity2,Activity2 再启动 Activity1。下面是输出的日志:com.demo.activity.Activity1@61b47bacom.demo.activity.Activity2@16908

2018-01-04 16:38:42 446

原创 浅析Activity生命周期

实践出真知了解Activity生命周期,最好的方法当然是写个Demo,自己试一试了。 首先自己创建一个Application,在其中使用registerActivityLifecycleCallbacks注册对Activity生命周期回调的监听。registerActivityLifecycleCallbacks(object : ActivityLifecycleCallb...

2018-01-04 16:33:43 369

原创 Kotlin-Android-Extensions:不仅仅是替代findViewById

kotlin-android-extensions是kotlin为Android专门提供的扩展插件,虽然现在其提供的功能不多,但是光是替代findViewById功能,就已经值得使用了。至于以后官方是否会提供更多的功能,让Android开发更快速便捷,就只能拭目以待了。

2017-09-21 19:20:02 2148 2

原创 那些我在Android开发中所喜爱的Kotlin特性

在2017年5月谷歌I/O大会上,官方宣布Kotlin为Android开发的新语言,当然有人看好也有人不看好。距离现在我已经在两个线上项目中使用Kotlin开发,对于Android开发人员来说,学习Kotlin不需要花费太多时间,只需要看看官方文档,就可以直接上项目了。当然了,遇到问题肯定是会有的,就像使用第三方开源库一样存在风险。所以不用考虑太多,Just do it!

2017-09-21 19:13:22 1698

原创 设计模式学习笔记——命令模式

命令模式:将“请求”封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。命令模式也支持可撤销的操作。

2017-05-25 21:42:08 366

原创 设计模式学习笔记——单例模式

单例模式:确保一个类只有一个实例,并提供一个全局访问点。

2017-05-23 22:51:04 360

原创 设计模式学习笔记——简单工厂模式、工厂方法模式、抽象工厂模式

简单工厂模式定义 简单工厂严格意义来讲不能算作是一个设计模式,通常使用一个静态方法接收参数,通过参数来判断实例化不同的实现类。优缺点优点:简单工厂模式能够根据外界给定的信息,决定究竟应该创建哪个具体类的对象。明确区分了各自的职责和权力,有利于整个软件体系结构的优化。缺点:很明显工厂类集中了所有实例的创建逻辑,违反高内聚的责任分配原则,它所能创建的类必须是提前考虑好的,不能直接扩展,只能修改

2017-05-22 21:50:22 450

原创 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 825

原创 设计模式学习笔记——装饰模式

定义 装饰模式——动态地将责任附加到对象上。就增加功能来说,装饰模式相比生成子类更为灵活。使用场景需要透明且动态地扩展类的功能时。需要去除相关类中重复的装饰逻辑时。UML类图Component:是定义的一个对象接口,可以给这些对象动态地添加职责。ConcreteComponent:组件具体实现类。该类是Component类的基本实现,也是我们装饰的具体对象。Decorator:装饰

2017-04-13 20:42:37 567

原创 设计模式学习笔记——观察者模式

定义 观察者模式(发布订阅模式)——在对象之间定义一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象都会收到通知,并自动更新。使用场景关联行为场景,需要注意的是,关联行为是可拆分的,而不是“组合”关系。事件多级触发场景。跨系统的消息交换场景,如消息队列、事件总线的处理机制。UML类图Subject:抽象主题,被观察者(Observable)的角色,抽象主题角色把所有观察者对象的

2017-04-11 19:37:29 382

原创 设计模式学习笔记——策略模式

定义 策略模式——定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互转换。此模式让算法的变化独立于使用算法的客户。使用场景针对同一类型问题的多种处理方式,仅仅是具体行为有差别时。需要安全地封装多种同一类型的操作时。出现同一抽象类有多个子类,而又需要使用if-else或者switch-case来选择具体子类时。UML类图例子用上下班出行方式来演示策略模式。具体的骑单车、乘公

2017-04-06 20:35:16 471

原创 CoordinatorLayout源码解析

Google推出Support Design Library已经两年了,没错,两年了!虽然推出了这么久,也只是使用,并没有深入研究过,所以想要深入了解一下,于是有了此文,对CoordinatorLayout源码进行分析。

2017-03-31 23:07:22 583

Effective Java 中文版+英文版+源码

Effective Java 中文版+英文版+源码

2018-01-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除