首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在java中“Stub”和"AIDL“是什么?

在java中“Stub”和"AIDL“是什么?
EN

Stack Overflow用户
提问于 2012-05-18 07:14:47
回答 3查看 27.6K关注 0票数 33

问题1:

我正在研究Android服务,经常看到这样的代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
private ISampleService.Stub sampleServiceIf = new ISampleService.Stub(){}

什么是.Stub

问题2:

我检查了"AIDL",但我想知道为什么我们必须使用它而不是Java接口文件?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-05-18 07:30:37

‘'Stub’是一个实现远程接口的类,你可以像使用本地接口一样使用它。它处理数据编组/解组以及向/从远程服务发送/接收数据。术语“存根”通常用于描述其他RPC方法(COM、Java remoting等)中的这种功能,但它的含义可能略有不同。

接口定义语言通常是独立于语言的,理论上您可以从它生成C++或Python存根代码。Android one是基于Java的,所以区别是微妙的。一个不同之处在于,在一个.aidl文件中只能有一个接口,而Java允许每个.java文件有多个类/接口。还有一些支持类型的规则,因此它与Java接口并不完全相同,您不能使用AIDL来代替AIDL。

票数 36
EN

Stack Overflow用户

发布于 2019-04-30 21:13:36

在AIDL文件中,可以使用远程服务的方法签名来定义接口。AIDL解析器从接口生成Java类,该类可用于两个不同的目的。

  1. 它生成一个Proxy类来为客户端提供对服务的访问,
  2. 它生成一个abstract Stub类,服务实现可以使用这个类通过远程方法的实现将其扩展为匿名类。

换句话说,

  • 在编译AIDL android项目时,需要为ISampleSevice.java文件生成ISampleSevice.aidl
  • ,它会有一个抽象的Stub类和一个Proxy类,
  • 远程服务必须创建一个Stub类对象,客户端调用java onBind()时必须返回给客户端一个Stub类对象,<代码>H221<代码><代码>H122<代码>在客户端的<代码>D23处,用户可以获取在远程服务中定义的存根的代理对象( ISampleService.Stub.asInterface()返回代理类)。
  • 代理对象可用于在服务进程中调用存根类实现的远程方法。
票数 6
EN

Stack Overflow用户

发布于 2012-05-18 09:04:27

嘿,请检查一下这个http://developer.android.com/guide/components/aidl.html。它将帮助您理解存根和AIDL。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10648280

复制
相关文章
TDSQL的2020进化在未来之前,更在未来之后
2020年的最后一天,是国内金融机构的年度重磅——年终决算的日子。这一天,数百家金融机构在腾讯云TDSQL之上完成年终决算。 在过去的1年,TDSQL技术上持续攻坚,同时完成多项国产数据库领域的行业突破……2021,我们也将继续前进,开拓核心基础软件领域的新篇章。 1 TDSQL的进化:在未来之前,更在未来之后 未来,数据库技术将在底层技术超融合方向上持续深化,提供更加高效、便捷、标准统一的数据技术支撑服务。 12月24日,TDSQL正式发布战略升级计划及未来发展战略。全新升级后的腾讯云TDSQL,是涵盖
腾讯云数据库 TencentDB
2021/01/12
6640
HashMap在JDK7.0及之前和JDK8.0及之后区别(一下全告诉你)
前言 我们在学习集合的时候,出去list就是map集合使用比较多,今天主要说一下常用的HashMap底层的进化 干货 jdk7.0之前 数组 + 链表 阈值:30 jdk8.0开始 数组 + 链表 + 二叉树 阈值:30 HashMap底层在1.8之前是基于数组和链表组成 形成一个哈希表 首先数组的优点: 查找元素效率高 由于数组这个数据结构的特点 他们是等大连续 所以当我们想要查找某个元素的时候 只要计算偏移量给可以 时间复杂度是O(n) 链表的优点: 链表
掉发的小王
2022/07/11
4200
Flutter的生命周期
Flutter的生命周期分为两个部分,一个是Flutter本身的组件的生命周期,一个是平台相关的生命周期。
老孟Flutter
2021/11/09
1.7K0
Flutter的生命周期
Stateful 组件的生命周期​
此篇文章介绍 StatefulWidget 组件的生命周期, StatefulWidget 组件的生命周期时非常重要的知识点,就像 Android 中 Activity 的生命周期一样,不仅在以后的工作中经常用到,面试也会经常被问到。
老孟Flutter
2020/12/31
9950
Flutter--Flutter中Widget、App的生命周期
  在App的开发过程中,我们通常都需要了解App以及各个页面的生命周期,方便我们在App进入前台时启动一些任务,在进入后台后暂停一些任务。同时,各个页面的生命周期也很重要,每个页面消失时要做一些内存清理、计时器清除、通知清除等操作。所以,本文主要就是学习一下在flutter开发App的时候,如何去怼App以及各个页面的生命周期进行监听和回调。
mukekeheart
2021/02/02
3.1K0
Java finally语句到底是在return之前还是之后执行?
网上有很多人探讨Java中异常捕获机制try...catch...finally块中的finally语句是不是一定会被执行?很多人都说不是,当然他们的回答是正确的,经过我试验,至少有两种情况下finally语句是不会被执行的:
bear_fish
2018/09/20
1.3K0
Java finally 语句到底是在 return 之前还是之后执行?
今天跟大家分享下Java finally语句的知识。finally隐藏了这样的细节?
互扯程序
2019/11/01
1.2K0
Java finally语句到底是在return之前还是之后执行?
网上有很多人探讨Java中异常捕获机制try…catch…finally块中的finally语句是不是一定会被执行?很多人都说不是,当然他们的回答是正确的,经过我试验,至少有两种情况下finally语句是不会被执行的:
乔戈里
2019/10/28
7860
Java finally语句到底是在return之前还是之后执行?
网上有很多人探讨Java中异常捕获机制try…catch…finally块中的finally语句是不是一定会被执行?
挨踢小子部落阁
2019/08/05
8210
在linux后台运行脚本的方法和命令
后台运行脚本 执行脚本test.sh:./test.sh 中断脚本test.sh:ctrl+c 在1的基础上将运行中的test.sh,切换到后台并暂停:ctrl+z 执行ctrl+z后,test.sh在后台是暂停状态(stopped),使用命令:bg number让其在后台开始运行(“number”是使用jobs命令查到的 [ ]中的数字,不是pid) 直接在后台运行脚本test.sh:./test.sh & 查看当前shell环境中已启动的任务情况:jobs 将test.sh切换到前台运行:fg %number(”number”为使用jobs命令查看到的 [ ] 中的数字,不是pid) 中断后台运行的test.sh脚本:先fg %number切换到前台,再ctrl+c;或是直接kill %number 以上两种在后台运行test.sh的方法,当遇到退出当前shell终端时,后台运行的test.sh也就结束了。这是因为以上两种方法使得test.sh在后台运行时,运行test.sh进程的父进程是当前shell终端进程,关闭当前shell终端时,父进程退出,会发送hangup信号给所有子进程,子进程收到hangup以后也会退出。所以要想退出当前shell终端时test.sh继续运行,则需要使用nohup忽略hangup信号。
大数据流动
2020/06/19
3.6K0
activity结束之后刷新之前的activity的内容
点击添加按钮之后-----弹出一个新的activity--------在新的activity将数据输入保存之后,关闭当前的activity回到之前的activity刷新内容 实现:使用onActivityResult 启动页: btnButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent i
欢醉
2018/01/22
9090
Mysql连接查询时查询条件放在On之后和Where之后的区别
在一次对数据进行统计的时候,需要对两张表进行关联,类似于这样的语句a left join b on a.id = b.id where b.name = xx。发现最终的结果和预期不一致,汇总之后的数据变少了。
翎野君
2023/05/12
1.7K0
Mysql连接查询时查询条件放在On之后和Where之后的区别
在main方法之前,到底执行了什么?
本人在做接口测试的时候,需要用一个公共类来把所有的执行的代码,然后这个公共类有hsot和hosttype等属性来区分各个测试环境,然后在去不同的地方取用例和请求接口。在给这些属性复制的时候,我是通过不同测试环境新建不同的配置文件,然后执行每个环境的时候让只加载需要测试的环境的配置文件来实现管理测试环境的。中间遇到了一些坑,主要就是对java代码执行循序,特别是在main方法之前的代码执行顺序了解不深入导致的,中间有多个继承关系也有点扰乱了思路。下面分享一下自己这个错误的复现步骤。
FunTester
2019/08/30
7350
【漫画】finally到底是在return之前执行还是return之后执行?
比如说上面所示的代码,在try语句里面 i / 0 的话会抛出来异常,这样的话程序就在i / 0这里由于抛出了异常,所以程序不会继续往下去执行try包含的语句了。首先进入到catch语句里面,由于finally语句一定会执行,接下来就会执行finally中的语句,所以就得到了上面的执行结果。
乔戈里
2019/01/23
7170
flutter中对列表的性能优化
下面是一些使用ListView对象呈现列表列表的代码,内部列表的shrinkWrap值设置为 true。shrinkWrap强行评估整个内部列表,允许它请求有限的高度,而不是通常的ListView对象高度,即无穷大!
徐建国
2021/11/30
3.6K0
flutter中对列表的性能优化
Flutter State生命周期
前面说过了StatefullWidget,这节我们来说说State的生命周期,这在flutter开发中是非常重要的。
用户1974410
2022/09/20
8550
Flutter State生命周期
Java 指定日期和日期间隔,返回间隔 之前 | 之后 的日期
public class DateUtil { /** * 指定日期和日期间隔,返回间隔之前的日期 * @param specifiedDay * @param interval * @return */ public static String getSpecifiedDayAgo(String specifiedDay, int interval){ return getSpecifiedDay(specifiedDay
大数据工程师-公子
2019/03/14
2.6K0
perl '-&gt;' 和 '::' 的区别 | 方法和函数的区别
我们知道在 Perl 中,Function 和 Subroutine 这两个名称是可以互换的。但是函数和方法的区别到底是什么呢?
宋天伦
2023/10/20
2920
函数和方法的区别
在javascript中的解释为: 函数(function)是可以执行的javascript代码块,由javascript程序定义或javascript实现预定义。函数可以带有实际参数或者形式参数,用于指定这个函数执行计算要使用的一个或多个值,而且还可以返回值,以表示计算的结果。 方法(method)是通过对象调用的javascript函数。也就是说,方法也是函数,只是比较特殊的函数。假设有一个函数是fn,有一个对象是obj,那么就可以定义一个method。 ---- 函数是一段代码,通过名字来进行调用。
黑泽君
2018/10/11
2.7K0
wait方法和sleep方法的区别
一.概念、原理、区别 Java中的多线程是一种抢占式的机制而不是分时机制。线程主要有以下几种状态:可运行,运行,阻塞,死亡。抢占式机制指的是有多个线程处于可运行状态,但是只有一个线程在运行。        当有多个线程访问共享数据的时候,就需要对线程进行同步。线程中的几个主要方法的比较:        Thread类的方法:sleep(),yield()等        Object的方法:wait()和notify()等 每个对象都有一个机锁来控制同步访问。Synchronized关键字可以和对象的机
老白
2018/03/19
1.1K0

相似问题

Github -将工件提交到存储库

119

Gitlab存储库镜像给Github

13

xcode,提交到github存储库时出错

10

是否可以关闭GitHub/GitLab存储库?

16

推送提交到github存储库引发错误

14
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文