framework里的xxxManagerProxy,xxxManager与xxxManagerService概念介绍(AIDL通信模型)

用于AIDL的模型基本如下

这里BackupManager的一个例子可以看到下面的关系

1 opt/net/wifi/service/java/com/android/server/wifi/BackupManagerProxy.java
2 base/services/backup/java/com/android/server/backup/BackupManagerService.java
3 base/core/java/android/app/backup/BackupManager.java
4 base/core/java/android/app/backup/IBackupManager.aidl

根据路径可以知道,SDK里给app调用的位于base/core/java/android/app里边,这里是BackupManager的Client和aidl文件

在base/services/backup/java/com/andorid/server里边则是这个service的Servcer端

而在opt/net/wifi/service/java/com/android/server/wifi/下的BackupManagerProxy则是WIFI这单个应用为了使用BackupManager而对其做的一层封装,只为单个app方便使用这个而存在,可以在其中获取相应的xxxManager,然后调用其方法,与binder通信无关,是为了方便编程而存在的。所以BackupManagerProxy和BackupManager都是在一个进程里,而BackupManagerServcie则是存在与SystemServer进程里

时间: 2024-11-13 09:35:42

framework里的xxxManagerProxy,xxxManager与xxxManagerService概念介绍(AIDL通信模型)的相关文章

JavaScript里关于声明的一些重要概念

所有的全局变量都是window的属性,在函数体外定义的var a=1等价于window.a=1: 所有的变量声明都在范围作用域的顶部,因为JS引擎首先会扫描所有的变量声明,然后将这些声明移动到顶部: 变量声明被提前了,变量赋值却没有.当变量声明和变量赋值一起使用时,JS引擎会自动将它分为两部分,以便将变量声明提前,不将赋值提前是因为可能影响代码执行出不可预期的结果: 函数声明也是提前的,所有的函数声明都在执行代码之前都已经完成了声明,和变量声明一样.但函数表达式不会提前,相当于变量赋值: 函数声

Entity Framework 4.1/4.3 之一 (概念篇)

小分享:我有几张阿里云优惠券,用券购买或者升级阿里云相应产品最多可以优惠五折!领券地址:https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=ohmepe03 Entity Framework 4.1/4.3 之一 (概念篇) 前序: 大家好,我都想死你们了.因为我想写个Entity Framework 系列的文章,所以在之一这里我写了下前序,一方面讲一下我写系列文章的出发点,二方面讲一下写的思路.很

输入子系统概念介绍

输入子系统在内核中的位置:/driver/input drivers/input/input.c: input_init ---> err = register_chrdev(INPUT_MAJOR, "input", &input_fops); static const struct file_operations input_fops = { .owner = THIS_MODULE, .open = input_open_file, }; 问:怎么读按键? inpu

Shiro权限控制框架入门1:Shiro的认证流程以及基本概念介绍

前言:我在最开始学习Shiro这个框架时,在网上搜索到的一个介绍比较全面的教程是:<跟我学Shiro>系列教程.但是在我看了他写的前几篇文章后,我发现虽然他在这个系列教程中把shiro的一些特性介绍地非常全面详细,但是整个教程的叙述方式还是有很大缺陷的.文章与文章之间并没有很好地串联起来,每篇文章介绍的东西都过于分散了,如果是对shiro完全不了解的新手来看的话完全是一场噩梦.就像一个网友评价的这样: 看了看这个教程,看完之后都想放弃shiro了,完全看不懂,后来百度了很多别的资料才理解了sh

Eclipse插件终极攻略(一):基本概念介绍

在这个系列的第一部分里,将对Eclipse和插件的概要.插件开发的基本概念.OSGi和SWT进行简单介绍. 1.Eclipse的架构 Eclipse被作为java的IDE(集成开发环境)被广泛的应用,但是从本质上看Eclipse是一个整合了各种开发工具的平台.因此,它采用了可以自由的增加各种功能的插件架构技术.Eclipse平台的基本架构如图1-1所示. 图1-1 Eclipse的架构 在这里,在最底层位置的是作为Eclipse插件架构基干的OSGi运行时.虽然在早期的Eclipse版本中已经

mysql数据引擎的概念介绍

什么是数据库引擎?每种数据库的数据格式,内部实现机制都是不同的,要利用一种开发工具访问一种数据库,就必须通过一种中介程序,这种开发工具与数据库之间的中介程序就叫数据库引擎. 如果你是个赛车手并且按一下按钮就能够立即更换引擎而不需要把车开到车库里去换,那会是怎么感觉呢?MySQL数据库为开发人员所做的就好像是按按钮换引擎:它让你选择数据库引擎,并给你一条简单的途径来切换它. MySQL 的自带引擎肯定是够用了,但是在有些情况下,其他的引擎可能要比手头所用更适合完成任务.如果愿意的话,你甚至可以使用

asp.net webapi概念介绍

asp.net webapi概念介绍 官方介绍 ASP.NET Web API 是一种框架,用于轻松构建可以访问多种客户端(包括浏览器和移动设备)的 HTTP 服务. ASP.NET Web API 是一种用于在 .NET Framework 上构建 RESTful 应用程序的理想平台. 我的理解 基于http(https)协议的一种web编程框架 数据格式支持json和xml 请求方式支持GET,POST,PUT,DELETE

大白话5分钟带你走进人工智能-第二十八节集成学习之随机森林概念介绍(1)

                                                      第二十八节集成学习之随机森林概念介绍(1) 从本系列开始,我们讲解一个新的算法系列集成学习.集成学习其实是怎么样去应用决策树解决一些问题. 在机器学习领域集成学习是一种非常简单直接的提升分类器回归器预测效果的一种思路.决策树有一个困境,当层数太深的时候会有过拟合问题,当我不想过拟合,就通过预剪枝给它砍掉一部分深度,此时损失又容易太大了,导致在训练集上预测的又不怎么准.所以对于决策树很难去找

足彩基础知识入门(4)赛事数据库与预测平台基础概念介绍(一)

在足球赛事数据库以及统计分析预测平台中,有很多概念,如果不搞懂,很难进行下一步的工作.所以为了配合团队人员的学习和任务进行,特意编写这篇文章.如果有其他问题和不懂的,请留言,将根据情况进行更新. 本文原文地址:足彩基础知识入门(4)赛事数据库与预测平台基础概念介绍(一) 1.指数1/2/3.... 我在 足彩基础知识入门(3)足彩赔率的本质 一文中介绍了赔率的概念,那么指数的概念和赔率以及结果是相关的.我们举个例子: 如上图的比赛,前面是竞彩非让球的赔率:1.74-3.25-4.15,也就是说