
binder学习
文章平均质量分 93
记录Android开发中IPC机制binder的学习
lianwenhong
一个程序员
展开
-
binder(三)binder简介
前文binder(一)Linux必备知识篇已经了解过一些Linux相关的知识。因为Android是基于Linux内核的操作系统,所以Android也具备Linux进程隔离的特性。每个进程都是一块单独的内存单元,各个进程之间要互相通信需要一套IPC机制来实现。简单介绍一下Linux进程间通信方式。linux中主要的进程通信包括以下几种:以上是Linux进程间通信的几种主要方式,各种方式都有自己的优缺点,也有自己的擅长使用领域,可自行了解一下。在Android中主要是采用Binder来实现的。当然并不是说An原创 2022-07-04 15:30:20 · 381 阅读 · 0 评论 -
Android序列化之Parcel
Android操作系统的底层数据传输形式是简单的字节序列形式进行传递。用通俗的话说就是系统不认识对象,只认识字节序列。而我们为了达到通信或者存储的目的,需要先将数据序列化传递,要使用时再进行反序列化还原。我们知道Android系统是基于Linux系统实现的,而Linux有进程隔离的机制。而进程如果传递复杂数据类型那传递的是对象的引用,本质上就是一个内存地址。但是传递内存地址的方式在跨进程中明显不行,由于Linux采用了虚拟内存机制,两个进程都有自己独立的内存地址空间,所以把A进程中某个对象的内存地址传递给B原创 2022-06-27 16:44:41 · 2856 阅读 · 0 评论 -
binder(一)Linux必备知识篇
对linux操作系统中某些概念做简单预习,旨在为后续Android学习提供前提铺垫。例如学习binder、锁机制等等。软件程序管理Linux操作系统将运行中的程序成为进程。而Linux内核控制这Linux操作系统如何管理运行在系统上的所有进程。内核创建了第一个进程(init进程)来启动系统上所有其他进程。 当内核启动时,他会将init进程加载到虚拟内存中。内核在启动任何进程时都会在虚拟内存中为该进程分配一块专有区域用于存储该进程用到的数据和代码。进程隔离Linux中为每一个进程分配内存时都将内存原创 2022-04-21 18:47:31 · 3065 阅读 · 0 评论 -
binder(三)mmap浅析(转载记录)
前言介绍 mmap 的文章很多,本文主要结合官方文档、之前看到的一些比较不错的文章进行一个总结。概念在计算机中,mmap 是 POSIX(Portable Operating System Interface of UNIX 可移植 UNIX 操作系统接口,制定了标准 API 接口规范) 兼容的 Unix 系统调用,可以将文件或设备映射到内存中,这是一种内存映射文件 I/O 的方法。实现了按需加载分页,不直接从磁盘读取文件内容,并且初始化时根本不使用物理 RAM。在访问特定位置后,以 lazy 方式从原创 2022-05-03 21:42:54 · 418 阅读 · 0 评论 -
binder(二)MMU浅析
什么是虚拟内存在现代的操作系统中,当你对内存地址进行操作时其实操作的并不是物理内存地址,而是系统虚拟出来的一个虚拟内存地址。通过简单的图例说明虚拟内存的概念。操作系统的物理内存是固定的,我们这里指的是RAM。当操作系统运行多个进程时,每个进程如果直接访问物理内存,那是不是就会出现你进程P1访问地址A时如果进程P2也访问该地址,那就会造成进程之间的冲突。所以当代操作系统引入了虚拟内存的概念。在创建P1和P2进程时,操作系统会分别告诉它们我整个内存都是你的,可是事实上操作系统给它们画了大饼,其实它们得原创 2022-05-03 21:30:06 · 1347 阅读 · 0 评论