自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 Binder实现分析

我在之前的一篇文章AIDL最佳实践中通过AIDL接口成功完成了进程间通信。那今天就从应用层的角度分析一下,来加深对Binder机制的了解。首先来看AIDL最佳实践中的AIDL文件,IMyAidl.aidl:interface IMyAidl { int add(int num1,int num2); List<Dog> addDog(in Dog dog);}以及编译器根据AIDL文件生

2017-07-31 17:30:19 296

原创 关于IPC,Binder,AIDL,Intent

参考:PC、Binder、AIDL与Intent之间区别与联系很多时候大家会同时提到IPC、Binder、AIDL这几个概念,但对于它们之间的关系可能没有一个清晰的认识。还有Intent与它们有什么关系呢? 概述首先看看各自的全称与中文名: IPC:Inter-Process Communication(进程间通信) Binder:Binder进程间通信机制 AIDL:Android In

2017-07-31 14:18:02 1042

原创 AIDL最佳实践

参考:Android 接口定义语言 (AIDL)之前在Eclipse中进行过AIDL的实践,昨天又尝试着在AndroidStudio中实践,看了一些博客,感觉很多步骤还是没说清楚,耽误了一些时间。下面就整理一下关于AIDL实践的详细过程。1.创建工程工程名字叫AIDL_practice,有两个可以运行的module,client和server。顾名思义,client就是AIDL实践中的客户端,ser

2017-07-28 18:17:12 582 1

转载 Android Binder设计与实现 - 设计篇

转载自:Android Binder设计与实现 - 设计篇摘要Binder是android系统进程间通信(IPC)方式之一。linux已经拥有管道,system V IPC,socket等IPC手段,却还要倚赖Binder来实现进程间通信,说明Binder具有无可比拟的优势。深入了解Binder并将之与传统IPC做对比有助于我们深入领会进程间通信的实现和性能优化。本文将对Binder的设计细节做一个

2017-07-26 15:51:07 470

原创 Binder系统中的数据结构(Android系统源代码情景分析学习笔记)

struct binder_work kernel/goldfish/drivers/staging/android/binder.cstruct binder_work { struct list_head entry; enum { BINDER_WORK_TRANSACTION = 1, BIND

2017-07-26 13:46:49 786

原创 Binder进程间通信机制概述(Android系统源代码情景分析学习笔记)

在Android系统中,每一个应用程序都是由Activity、Service、Broadcast Receiver和Content Provider四大组件组成的。这些组件有可能运行在同一个进程中,也有可能运行在不同的进程中。那么,不在同一个进程的组件是如何通信的呢?这就涉及到了Binder进程间通信机制。 Android系统是基于Linux内核的,而Linux内核继承和兼容了丰富的Unix系统进

2017-07-22 21:30:52 817

原创 Java类加载(深入理解Java虚拟机学习笔记)

概述类加载的生命周期七个阶段:加载、验证、准备、解析、初始化、使用和卸载。 类加载的过程五个阶段:加载、验证、准备、解析、初始化。 在这五个阶段中,加载、验证、准备和初始化这四个阶段发生的顺序是确定的,而解析阶段则不一定,它在某些情况下可以在初始化阶段之后开始,这是为了支持Java语言的运行时绑定(也成为动态绑定或晚期绑定)。另外注意这里的几个阶段是按顺序开始,而不是按顺序进行或完成,因为这些阶

2017-07-17 14:45:39 733 1

原创 Service的工作过程(Android开发艺术探索学习笔记)

Service的启动过程Service的启动过程从ContextWrapper的startService开始: @Override public ComponentName startService(Intent service) { return mBase.startService(service); }

2017-07-12 15:52:12 712

空空如也

空空如也

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

TA关注的人

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