Tim's Track

书写是为了更好地思考


  • 首页

  • 关于

  • 归档

  • 标签

  • 搜索

Android源码中的观察者模式

发表于 2017-08-09 | 分类于 原理分析 , Android 进阶 , 设计模式 | 阅读次数
字数统计 1,512 | 阅读时长 6

解决、解耦的钥匙——观察者模式

定义

观察者模式定义了对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新。

使用场景

  • 关联行为场景
    • 需要注意的是,关联行为是可拆分的,而不是“组合”关系
  • 事件多级触发场景
  • 跨系统的消息交换场景,如消息队列、事件总线的处理机制。
阅读全文 »

Toast 原理

发表于 2017-07-28 | 分类于 原理分析 | 阅读次数
字数统计 2,316 | 阅读时长 11

序言

Toast.makeText(context,"msg",Toast.Length_SHORT).show();

我们都知道调用了这行代码,便会触发显示 Toast 信息,但是从调用开始到显示出来的具体过程是怎么样的,里面具体实现又是怎么样的呢?

阅读全文 »

创建型模式之单例模式

发表于 2017-07-20 | 分类于 设计模式 | 阅读次数
字数统计 1,983 | 阅读时长 7

一、什么是单例模式?

wiki 给出的定义如下:单例模式,也叫单子模式,是一种常用的软件设计模式。在应用这个模式时,单例对象的类必须保证只有一个实例存在。许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。

  • 比如在某个服务器程序中,该服务器的配置信息存放在一个文件中,这些配置数据由一个单例对象统一读取,然后服务进程中的其他对象再通过这个单例对象获取这些配置信息。这种方式简化了在复杂环境下的配置管理。
阅读全文 »

IPC 机制

发表于 2017-05-04 | 分类于 Android 进阶 , IPC | 阅读次数
字数统计 5,869 | 阅读时长 23

Android IPC简介

IPC 是 Inter-Process Communication 的缩写,含义为 进程间通信或者跨进程通信,是指两个进程之间进行数据交换的过程。
a
IPC 不是 Android 所独有的,任何一个操作系统都需要有相应的 IPC 机制。

在 Android 中最有特色的进程间通信方式就是 Binder 了, 通过 Binder 可以轻松实现进程间通信。

除了 Binder ,Android 还支持 Socket, 通过 Socket 也可以实现任意两个终端之间的通信,当然一个设备的两个进程之间的也可以通过 Socket 进行通信。

多进程的情况分两种:

  1. 一个应用因为某些原因自身需要采用多进程模式来实现
    • 可能的原因如下:
      • 有些模块需要运行在单独的进程中
      • 加大一个应用可使用的内存
  2. 当前应用需要向其他应用获取数据。
阅读全文 »

Service 全面总结

发表于 2017-05-03 | 分类于 Android 基础 | 阅读次数
字数统计 4,011 | 阅读时长 14


Service 是一种计算型的组件。

一、使用场景

线程还是服务?

简单地说,服务是一种不需要用户交互也可在后台运行的组件。 因此,我们应该仅在必要时才创建服务。

如需在主线程外部(也就是工作线程)执行工作,并且只是在用户正在与应用交互时才有此需要,则应创建新线程而非服务。

如果确实要使用服务,则默认情况下,它仍会在应用的主线程中运行,因此,如果服务执行的是密集型或阻塞性操作,那么应该在服务内创建新线程。

注意:默认情况下,服务与服务声明所在的应用运行于同一进程,而且运行于该应用的主线程中。
为了避免影响应用性能,您应在服务内启动新线程。

阅读全文 »

Android 消息机制解析

发表于 2017-04-28 | 分类于 原理分析 , Android 进阶 | 阅读次数
字数统计 5,335 | 阅读时长 22

概述

提起 Handler,相信大家都不会陌生,日常开发中不可避免地要使用到它。今天要讲的是消息机制。消息机制?咋听起来有点抽象。其实我们在使用 Handler 的时候,就使用了 Android 的消息机制。

从开发的角度来看,Handler 是 Android 消息机制的上层接口,这使得开发过程中只需要设计这方面的内容即可。但是作为一名合格的开发者,弄清它的实现原理是很有必要的。

阅读全文 »
1…56
Tim Lin

Tim Lin

Live a life you will remember.

46 日志
31 分类
28 标签
GitHub
© 2020 Tim Lin
由 Hexo 强力驱动
主题 - NexT.Pisces
0%