android AIDL服务,2024年阿里+腾讯+快手offer都已拿到

1.//This file is IStockQuoteService.aidl

2.package com.androidbook.stockquoteservice;

3.interface IStockQuoteService

4.{

  1. double getQuote(String ticker);

6.}

IStockQuoteService 以字符串的形式接受股票代号,并以双精度数字形式返回当前的股票价值。当创建AIDL文件时, Android Eclipse插件将运行 AIDL 编译器来处理 AIDL文件(在构建过程中)。如果AIDL文件成功编译,编译器将生成一个适合 RPC 通信的 Java接口。请注意,生成的文件将位于在 AIDL文件中指定的包中,在本例中为 com.androidbook.stockquoteservice。

下面是为 IStockQuoteService接口生成的Java文件。生成的文件将放在Eclipse的 gen文件夹中。

1./*

    • This file is auto-generated. DO NOT MODIFY.
    • Original file: F:\workspace\StockQuoteService\src\com\androidbook\stockquoteservice\IStockQuoteService.aidl
  1. */

5.package com.androidbook.stockquoteservice;

6.public interface IStockQuoteService extends android.os.IInterface

7.{

8./** Local-side IPC implementation stub class. */

9.public static abstract class Stub extends android.os.Binder implements com.androidbook.stockquoteservice.IStockQuoteService

10.{

11.private static final java.lang.String DESCRIPTOR = “com.androidbook.stockquoteservice.IStockQuoteService”;

12./** Construct the stub at attach it to the interface. */

13.public Stub()

14.{

15.this.attachInterface(this, DESCRIPTOR);

16.}

17./**

    • Cast an IBinder object into an com.androidbook.stockquoteservice.IStockQuoteService interface,
    • generating a proxy if needed.
  1. */

21.public static com.androidbook.stockquoteservice.IStockQuoteService asInterface(android.os.IBinder obj)

22.{

23.if ((obj==null)) {

24.return null;

25.}

26.android.os.IInterface iin = (android.os.IInterface)obj.queryLocalInterface(DESCRIPTOR);

27.if (((iin!=null)&&(iin instanceof com.androidbook.stockquoteservice.IStockQuoteService))) {

28.return ((com.androidbook.stockquoteservice.IStockQuoteService)iin);

29.}

30.return new com.androidbook.stockquoteservice.IStockQuoteService.Stub.Proxy(obj);

31.}

32.public android.os.IBinder asBinder()

33.{

34.return this;

35.}

36.@Override public boolean onTransact(int code, android.os.Parcel data, android.os.Parcel reply, int flags) throws android.os.RemoteException

37.{

38.switch (code)

39.{

40.case INTERFACE_TRANSACTION:

41.{

42.reply.writeString(DESCRIPTOR);

43.return true;

44.}

45.case TRANSACTION_getQuote:

46.{

47.data.enforceInterface(DESCRIPTOR);

48.java.lang.String _arg0;

49._arg0 = data.readString();

50.double _result = this.getQuote(_arg0);

51.reply.writeNoException();

52.reply.writeDouble(_result);

53.return true;

54.}

55.}

56.return super.onTransact(code, data, reply, flags);

57.}

58.private static class Proxy implements com.androidbook.stockquoteservice.IStockQuoteService

59.{

60.private android.os.IBinder mRemote;

61.Proxy(android.os.IBinder remote)

62.{

63.mRemote = remote;

64.}

65.public android.os.IBinder asBinder()

66.{

67.return mRemote;

68.}

69.public java.lang.String getInterfaceDescriptor()

70.{

71.return DESCRIPTOR;

72.}

73.public double getQuote(java.lang.String ticker) throws android.os.RemoteException

74.{

75.android.os.Parcel _data = android.os.Parcel.obtain();

76.android.os.Parcel _reply = android.os.Parcel.obtain();

77.double _result;

78.try {

79._data.writeInterfaceToken(DESCRIPTOR);

80._data.writeString(ticker);

81.mRemote.transact(Stub.TRANSACTION_getQuote, _data, _reply, 0);

82._reply.readException();

83._result = _reply.readDouble();

84.}

85.finally {

86._reply.recycle();

87._data.recycle();

88.}

89.return _result;

90.}

91.}

92.static final int TRANSACTION_getQuote = (android.os.IBinder.FIRST_CALL_TRANSACTION + 0);

93.}

94.public double getQuote(java.lang.String ticker) throws android.os.RemoteException;

95.}

对于所生成的类,请注意以下几点。

在 AIDL 文件中定义的接口在生成的代码中实现为接口 (也就是说,有一个名为IStockQuoteService的接口)。

名为Stub的 static final 抽象类扩展了 android.os.Binder并实现了 IStockQuoteService。请注意该类是一个抽象类。

名为 Proxy的内部类实现了 IStockQuoteService, 后者是Stub类的代理。

AIDL文件必须位于应该包含所生成文件的包中(在AIDL文件的包声明中指定)。

在服务类中实现AIDL接口

上边我们为股票报价服务定义了 AIDL 文件并生成了绑定文件。现在我们将提供该服务的实现。要实现服务的接口,需要编写一个类来扩展 android.app.Service 并实现 IStockQuoteService接口。我们将编写的类 命名为 StockQuoteService。为了将服务向客户端公开,StockQuoteService 需要提供onBind()方法 的实现,我们还需要将一些配置信息添加到 AndroidManifest.xml文件中。  下面给出 我们服务类得实现。

IStockQuoteService 服务实现。

package com.androidbook.stockquoteservice;

import android.app.Service;

import android.content.Intent;

import android.os.IBinder;

import android.os.RemoteException;

import android.util.Log;

public class StockQuoteService extends Service {

private static final String TAG = “StockQuoteService”;

public class StockQuoteServiceImpl extends IStockQuoteService.Stub {

@Override

public double getQuote(String ticker) throws RemoteException {

Log.v(TAG, "getQuote() called for " + ticker);

return 20.0;

}

}

@Override

public void onCreate() {

super.onCreate();

Log.v(TAG, “onCreate called”);

}

@Override

public void onDestroy() {

super.onDestroy();

Log.v(TAG, “onDestory() called”);

}

@Override

public void onStart(Intent intent, int startId) {

super.onStart(intent, startId);

Log.v(TAG, “onStart() called”);

}

@Override

public IBinder onBind(Intent intent) {

Log.v(TAG, “onBind() called”);

return new StockQuoteServiceImpl();

}

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级安卓工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Android移动开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
img

最后

这里附上上述的技术体系图相关的几十套腾讯、头条、阿里、美团等公司2021年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。

相信它会给大家带来很多收获:

img

上述高清技术脑图以及配套的架构技术PDF可以点击我的GitHub免费获取

当程序员容易,当一个优秀的程序员是需要不断学习的,从初级程序员到高级程序员,从初级架构师到资深架构师,或者走向管理,从技术经理到技术总监,每个阶段都需要掌握不同的能力。早早确定自己的职业方向,才能在工作和能力提升中甩开同龄人。

  • 无论你现在水平怎么样一定要 持续学习 没有鸡汤,别人看起来的毫不费力,其实费了很大力,这四个字就是我的建议!!!
  • 我希望每一个努力生活的IT工程师,都会得到自己想要的,因为我们很辛苦,我们应得的。

当我们在抱怨环境,抱怨怀才不遇的时候,没有别的原因,一定是你做的还不够好!

1131986088)]

上述高清技术脑图以及配套的架构技术PDF可以点击我的GitHub免费获取

当程序员容易,当一个优秀的程序员是需要不断学习的,从初级程序员到高级程序员,从初级架构师到资深架构师,或者走向管理,从技术经理到技术总监,每个阶段都需要掌握不同的能力。早早确定自己的职业方向,才能在工作和能力提升中甩开同龄人。

  • 无论你现在水平怎么样一定要 持续学习 没有鸡汤,别人看起来的毫不费力,其实费了很大力,这四个字就是我的建议!!!
  • 我希望每一个努力生活的IT工程师,都会得到自己想要的,因为我们很辛苦,我们应得的。

当我们在抱怨环境,抱怨怀才不遇的时候,没有别的原因,一定是你做的还不够好!

  • 25
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值