Android Binder——Java服务注册(九)

        对于 Java 端使用 Binder 服务,主要就是注册服务和获取服务,入口都是通过 ServiceManager.java 中的对应方法实现。这里我们就先介绍一下 Java 注册 Binder 服务的流程。

一、ServiceManager代理

        无论是 ServiceManager.addService() 还是 ServiceManager.getService() 最终都是需要与native 通信,那需要获取到 ServiceManager 的代理。即函数 getIServiceManager()。

1、ServiceManager

源码位置:/frameworks/base/core/java/android/os/ServiceManager.java

private static IServiceManager getIServiceManager() {// 采用单例形式返回 ServiceManagerProxy对象if (sServiceManager != null) {return sServiceManager;}// 找到服务管理器,相当于 new ServiceManagerProxy(new BinderProxy); sServiceManager = ServiceManagerNative.asInterface(Binder.allowBlocking(BinderInternal.getContextObject()));return sServiceManager;
}

        这里主要关注两点: 

  • BidnerInternal.getcon

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/796860.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第9章 安全漏洞、威胁和对策(9.17)

9.17 移动设备(mobile device) 移动设备是指电池驱动的任何东西,通常不需要电源线就可以运行的任何东西。 备考时要把智能手机与移动设备、笔记本电脑、平板电脑乃至智能手表或计步器也考虑进来。 一些移动设备连典型的默认安全设置都做不到,更别提可供使用的安全…

C++ 类和对象(中篇)

类的6个默认成员函数 如果一个类中什么成员都没有,简称为空类。空类中什么都没有吗?并不是的,任何一个类在我们不写的情 况下,都会自动生成下面6个默认成员函数。 构造函数: 定义:构造函数是一个特殊的成员…

js的some函数

在JavaScript中,some() 是一个数组的方法,用于测试数组中是否至少有一个元素满足提供的函数。如果数组中有至少一个元素通过由提供的函数实现的测试,则它返回 true;否则返回 false。 以下是 some() 函数的基本语法: j…

【C语言】猜数字小游戏(并讲解随机数相关知识)

前言 一、游戏菜单 二、游戏逻辑 1.用户选择 2.开始游戏 2.1 生成1~100的随机数 总结 前言 本文讲解使用C语言写一个猜数字小游戏(1~100),涉及到的语法为:循环、分支、随机数、函数 一、游戏菜单 一个游戏的最开始,往往是一个菜单&…

面试反问环节

目录 hr面反问技术面反问 一般反问3、4个问题 hr面反问 部门的工作氛围和领导风格是怎样的(还有上下班作息时间等)?部门对这个职位的期望是什么?部门的转正率大概有多少?实习生的薪资有多少?有房补吗&…

金融数据_Scikit-Learn决策树(DecisionTreeClassifier)实例

金融数据_Scikit-Learn决策树(DecisionTreeClassifier)实例 逻辑回归: 逻辑回归常被用于二分类问题, 比如涨跌预测。你可以将涨跌标记为类别, 然后使用逻辑回归进行训练。 决策树和随机森林: 决策树和随机森林是用于分类问题的强大模型。它们能够处理非线性关系, 并且对于特征…

Jetpack Bluetooth——更优雅地使用蓝牙

Jetpack Bluetooth——更优雅地使用蓝牙 蓝牙是安卓开发中非常常用的操作,但安卓经过这么多年的迭代,蓝牙的相关接口都经过了很多修改需要适配,还有的接口需要实现一堆函数。。。整套操作虽说不算复杂,但难免感觉不太舒服。 之前…

专题【双指针】【学习题】刷题日记

题目列表 11. 盛最多水的容器 42. 接雨水 15. 三数之和 16. 最接近的三数之和 18. 四数之和 26. 删除有序数组中的重复项 27. 移除元素 75. 颜色分类 167. 两数之和 II - 输入有序数组 2024.04.06 11. 盛最多水的容器 题目 给定一个长度为 n 的整数数组 height 。有 n 条垂…

阿里云服务器 篇二:搭建静态网站

文章目录 系列文章获取静态网站模板应用静态网站模板解压zip文件SCP命令上传文件其他上传文件的方法 系列文章 阿里云服务器 篇一:申请和初始化 阿里云服务器 篇二:搭建静态网站 获取静态网站模板 站长素材:网站中包括大量的免费模板&…

上传视频的核心代码

/*** 上传学习视频信息*/Log(title "上传学习视频信息", businessType BusinessType.INSERT)PostMapping("/uploadVideo")public AjaxResult add(HttpServletRequest request) {return toAjax(videoInfoService.insertVideoInfo(request));}/*** 上传学习…

PHP实现网站微信扫码关注公众号后自动注册登陆实现方法及代码【关注收藏】

在网站注册登陆这环节,增加微信扫码注册登陆,普通的方法需要开通微信开发者平台,生成二维码扫码后才能获取用户的uinonid或openid,实现注册登陆,但这样比较麻烦还要企业认证交费开发者平台,而且没有和公众号…

如何控制Docker容器退出后的自动重启行为?

在Docker中,可以通过以下两种方式来控制容器退出后的自动重启行为: 使用docker run命令时,通过设置--restart参数来指定容器退出后的重启策略。可以使用以下值之一: no: 默认值,容器退出后不会自动重启。always: 容器…

什么是EL表达式?怎么使用?

文章目录 一、什么是EL表达式1、命令格式:${作用域对象别名.共享数据} 二、EL表达式与作用域对象别名1、JSP文件可以使用的作用域对象2、EL表达式提供作用域对象别名3、EL表达式将引用对象属性写入到响应体4、EL表达式简化版 三、EL表达式与运算表达式四、EL表达式提…

【SQL】1890. 2020年最后一次登录(简单写法;窗口函数写法)

前述 sql 中 between 的边界问题 ---- between 边界:闭区间,not between 边界:开区间 在 sql 中, between 边界:闭区间not between 边界:开区间 题目描述 leetcode题目:1890. 2020年最后一…

【leetcode面试经典150题】16.接雨水(C++)

【leetcode面试经典150题】专栏系列将为准备暑期实习生以及秋招的同学们提高在面试时的经典面试算法题的思路和想法。本专栏将以一题多解和精简算法思路为主,题解使用C语言。(若有使用其他语言的同学也可了解题解思路,本质上语法内容一致&…

aardio教程五) 写Python风格的aardio代码(字符串篇)

前言 熟悉一个新的语言最麻烦的就是需要了解一些库的使用,特别是基础库的使用。 所以我想给aardio封装一个Python风格的库,Python里的基础库是什么方法名,aardio里也封装同样的方法名。 这样就不需要单独去了解aardio里一些方法的使用细节…

Lanelets_ 高效的自动驾驶地图表达方式

Lanelets: 高效的自动驾驶地图表达方式 附赠自动驾驶学习资料和量产经验:链接 LaneLets是自动驾驶领域高精度地图的一种高效表达方式,它以彼此相互连接的LaneLets来描述自动驾驶可行驶区域,不仅可以表达车道几何,也可以完整表述车…

.NET9 PreView2+.AOT ILC 的重大变化

RyuJIT 增强功能 1. 环路优化 (循环优化) 这种优化实际上是一种 for 循环叠加态的优化,for 循环叠加计算的过程中,会对其中部分变量进行感应。比如循环中放置 0 扩展 (第一个索引为 0),这种优化灵感来源于 LLVM 标量演化。下面看例子&#…

每天一个数据分析题(二百五十四)

在大数据时代背景下,我们使用的数据主要包含两种类别,一种称为结构化数据,另一种称为非结构化数据。请问以下哪个选项属于非结构化数据? A. 利润表 B. 短视频 C. 产品库存表 D. 产品进货表 题目来源于CDA模拟题库 点击此处获…

LeetCode 每日一题 2024/4/1-2024/4/7

记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步 目录 4/1 2810. 故障键盘4/2 894. 所有可能的真二叉树4/3 1379. 找出克隆二叉树中的相同节点4/4 2192. 有向无环图中一个节点的所有祖先4/5 1026. 节点与其祖先之间的最大差值4/…