Android系统分析篇
文章平均质量分 84
Linux老A
嵌入式打杂专家
展开
-
Binder进程间通信系统第一篇-----Binder机制原理简述
本文只作为了解 Binder机制的私人笔记,拜读了很多大神的博客,从中提炼总结如下文:参考自大神 https://zhuanlan.zhihu.com/p/35519585参考自大神一 前言因为很多人说 Binder就是跨进程通信方式,但是 Android 又是基于Linux的操作系统,为什么舍弃了Linux已经很成熟的管道、消息队列、共享内存和 Socket 等IPC 机制 而使用所谓的...原创 2019-01-18 10:33:10 · 1402 阅读 · 0 评论 -
数据存储方案-持久化存储
任何一个应用程序,其实说白了就是在不停地和数据打交道,例如QQ,新闻,刷微博等等,所关心的都是里面的数据,没有数据的应用程序就变成了一个空壳子,对用户来说没有实际的用途。那么这些数据都是从哪里来的呢?现在多数的数据基本都是由用户产生的,比如发微博,评论新闻,其实都是在产生数据。而这些数据又分为两种,第一种是瞬时数据,瞬时数据是指存储在内存当中,有可能因为程序关闭或者其他原因导致内存被回收而丢失的数...原创 2019-04-18 17:24:43 · 1004 阅读 · 0 评论 -
Android系统之init简析
本文代码环境为 Android7.1概述:init是一个进程,确切的说,他是Linux系统中用用户空间的第一个进程。由于Android是基于Linux内核的,所以init也是Android系统中用户空间的第一个进程,它的进程号是1,作为天字一号进程,init被赋予了很多极其重要的工作职责,本文重点关注其中两个比较关键的职责:1 init进程负责创建系统中的几个关键进程,如 zygote,...原创 2019-04-26 18:30:18 · 702 阅读 · 0 评论 -
Content Provider组件简析。。。待续
一 Content Provider组件概述在Android系统中,Content Provider作为应用程序四大组件之一,它起到在应用程序之间共享数据的作用,同时,它还是标准的数据访问接口。在Android系统中,每一个应用程序被安装时,都会分配到一个不同的Linux用户ID。这样,Android系统就可以基于Linux用户ID来保护每一个应用程序的数据不会被其他应用程序破坏。即每一个应用...原创 2019-04-09 17:32:26 · 435 阅读 · 0 评论 -
Service组件简析
一 概述Service组件是Android应用程序的四大组件之一,不过与Activity组件不一样,他主要来处理与用户界面无关的业务逻辑。由于Service组件不直接与用户交互,因此,它涉及的业务逻辑一般都是计算型的,适合在后台运行。与Activity组价的启动方式类似,Service组件的启动方式也分为显示和隐式两种,对于隐式启动的Service组件来说,我们只需要知道他的组件名称;而对于显...原创 2019-04-03 11:02:23 · 993 阅读 · 0 评论 -
Broadcast组件简析
一 概述在Android系统中,广播(Broadcast)是一种在组件之间进行消息传递的方式。这些组件可以运行在同一个进程中,也可以运行在不同的进程中。当两个不在同一个进程中的组件通过广播机制来传递消息的时候,广播机制就有点类似Binder进程间通信机制。事实上,广播机制就是在Binder机制的基础上实现的。既然如此,Android系统为什么还需要广播机制呢?我们知道,在Binder进程间通信...原创 2019-04-04 16:17:32 · 841 阅读 · 0 评论 -
Binder进程间通信系统第三篇-----Binder进程间通信之 MediaServer 简析
本文学习拜读自邓凡平老师的 《深入理解Android卷1》一 MediaServer 之 Server端1.1 :步骤一1.2 :步骤二1.2.1 defaultServiceManager()分析1.2.2 BpBinder 与 IServiceManager简析1.2.2.1 BBinder简析1.2.2.2 IServiceManager简析1.2.2.2.1 定义业务...原创 2019-03-16 18:17:35 · 450 阅读 · 0 评论 -
Activity组件简析
本文学习拜读自罗升阳老师的《Android系统源代码情景分析》一 概述二 Activity组件应用实例(隐式)2.1 MainActivity.java2.2 SubActivityInProcess.java2.3 SubActivityInNewProcess.java2.4 配置2.4.1 main.xml2.4.2 sub.xml2.4.3 strings.xml...原创 2019-03-20 17:04:41 · 619 阅读 · 0 评论 -
Binder进程间通信系统第四篇-----Binder进程间通信库
Android系统在应用程序框架中将各种Binder驱动程序操作封装成一个Binder库,这样进程就可以方便的调用Binder库提供的接口来实现进程间通信。在Binder库中,Service组件和Client组件分别使用模板类BnInterface和BpInterface来描述,其中,前者成为Binder本地对象,后者称为Binder代理对象。Binder库中的Binder本地对象和Binder代...原创 2019-03-08 14:03:35 · 390 阅读 · 0 评论 -
Binder进程间通信系统第五篇-----Binder进程间通信实例
本文将基于应用程序框架层提供的 Binder库来开发一个Binder进程间通信应用实例,它包含一个Server进程和一个Client进程。其中Server进程实现了一个Service组件,负责管理我前面写的虚拟硬件设备 freg的寄存器 val,并且向Client进程提供访问服务。我们将该应用实例划分为:common、server和client三个模块。其中,模块common实现了硬件访问服务接...原创 2019-03-11 18:03:16 · 593 阅读 · 0 评论 -
Binder进程间通信系统第二篇-----Binder驱动程序
本文拜读参考自罗升杨老师的 《Android系统源代码情景分析》文中加黑斜体文字为关键步骤,可作为思维主线一 概述二 Binder驱动之Binder设备初始化三 Binder驱动之Binder设备打开过程四 Binder驱动之Binder设备映射过程一 概述一 概述Binder驱动 不属于内核,它是Android专用的底层驱动,但底层的驱动架构与Linux驱动一样。binder驱...原创 2019-03-01 19:46:04 · 659 阅读 · 0 评论 -
Android HAL 层框架分析以及代码示例
本文参考 《Android系统源代码情景分析》一 硬件抽象层概述二 开发Android硬件驱动程序三 开发Android硬件抽象层模块3.1 硬件抽象层模块文件 命名规范3.2 硬件抽象层模块结构体 以及 硬件抽象层设备结构体 定义规范3.3 编写硬件抽象层模块接口四 开发Android硬件访问服务4.1 定义硬件访问服务接口4.2 实现硬件访问服务4.3 实现硬...原创 2019-02-22 16:04:53 · 13068 阅读 · 9 评论 -
Android mcu专用串口控制Frameworks部分逻辑简述
第一步 :1 定义 class IMcuService : public IInterface 接口 0. DECLARE_META_INTERFACE(McuService); 声明 IMcuService 类的元接口 1. 为 McuService 类定义了一个静态成员变量 descriptor,用来描述接口名称,可以通过成员函数getInterfaceDescriptor()来获取。...原创 2019-08-21 11:23:49 · 1233 阅读 · 0 评论