先看看上面用到的asInterface方法:

public static top.greendami.aidl.IMyTest asInterface(android.os.IBinder obj) {
if ((obj == null)) {
return null;
}
android.os.IInterface iin = obj.queryLocalInterface(DESCRIPTOR);
if (((iin != null) && (iin instanceof top.greendami.aidl.IMyTest))) {
return ((top.greendami.aidl.IMyTest) iin);
}
return new top.greendami.aidl.IMyTest.Stub.Proxy(obj);
}

这里是先在本地查找看看有没有对象,如果有就说明没有跨进程,直接返回本地对象。如果没有就要返回一个代理了。这里可以看做服务端为客户端准备一个‘假’的自己,让客户端看起来就像拥有一个真正的服务端对象。

Proxy(obj)中把代理中每个方法都进行了处理,如果有add和hello两个方法:

private static class Proxy implements top.greendami.aidl.IMyTest {
private android.os.IBinder mRemote;

Proxy(android.os.IBinder remote) {
mRemote = remote;
}

@Override
public android.os.IBinder asBinder() {
return mRemote;
}

public java.lang.String getInterfaceDescriptor() {
return DESCRIPTOR;
}

@Override
public int add(int a, int b) throws android.os.RemoteException {
android.os.Parcel _data = android.os.Parcel.obtain();
android.os.Parcel _reply = android.os.Parcel.obtain();
int _result;
try {
_data.writeInterfaceToken(DESCRIPTOR);
_data.writeInt(a);
_data.writeInt(b);
mRemote.transact(Stub.TRANSACTION_add, _data, _reply, 0);
_reply.readException();
_result = _reply.readInt();
} finally {
_reply.recycle();
_data.recycle();
}
return _result;
}

@Override
public java.lang.String hello(java.lang.String s) throws android.os.RemoteException {
android.os.Parcel _data = android.os.Parcel.obtain();
android.os.Parcel _reply = android.os.Parcel.obtain();
java.lang.String _result;
try {
_data.writeInterfaceToken(DESCRIPTOR);
_data.writeString(s);
mRemote.transact(Stub.TRANSACTION_hello, _data, _reply, 0);
_reply.readException();
_result = _reply.readString();
} finally {
_reply.recycle();
_data.recycle();
}
return _result;
}
}

static final int TRANSACTION_add = (android.os.IBinder.FIRST_CALL_TRANSACTION + 0);
static final int TRANSACTION_hello = (android.os.IBinder.FIRST_CALL_T

你不会以为Android Toast就只是简单的吐司吧?,移动端跨平台开发相关推荐

  1. android Toast居中最简单例子

    android Toast最简单例子 Toast toast=Toast.makeText(this, "这里显示文字内容.", Toast.LENGTH_LONG);toast. ...

  2. Android修改情景模式的默认值,移动端app开发流程

    [SOLUTION] 一,针对每个情景模式的默认值修改: 1,默认铃声是统一在alps/build/target/product/core.mk文件中设置,其中ro.config.notificati ...

  3. android 仿蘑菇街效果,Vue项目-仿蘑菇街移动端Web开发

    一.项目目录 二.项目运行截图 1.首页 2.详情页 三.具体实现 (一)tabbar的封装 1.将商城底部tabbar抽离成TabBar与TabBarItem两个独立的组件. 2.通过插槽将TabB ...

  4. Android Toast示例

    在Android中, Toast是一条通知消息,会弹出并显示一定的时间,并自动淡入和淡出,大多数人只是将其用于调试目的. 代码段以创建Toast消息: //display in short perio ...

  5. [Android] Toast问题深度剖析(二)

    欢迎大家前往云+社区,获取更多腾讯海量技术实践干货哦~ 作者: QQ音乐技术团队 题记 Toast 作为 Android 系统中最常用的类之一,由于其方便的api设计和简洁的交互体验,被我们所广泛采用 ...

  6. android toast的使用

    今天,没有什么可以写的,在网上查找资料,发现toast有很多知识点,所以记录一下. Toast Toast是为了给当前视图显示一个浮动的显示块,它永远不会获得焦点.一般用于提示一些不那么引人注目,但是 ...

  7. 使用Kotlin的Android Toast

    Android Toast is a UI widget that pops up on the screen for some time. It's very similar to a notifi ...

  8. Android Toast 设置到屏幕中间,自定义Toast的实现方法,及其说明

    http://blog.csdn.net/wangfayinn/article/details/8065763 Android Toast用于在手机屏幕上向用户显示一条信息,一段时间后信息会自动消失. ...

  9. Android Toast cancel和show深入浅出实战

    说到Android Toast,几乎都很熟悉吧,下面讲讲怎么实现下面几种场景: 1.连续点击一个按钮,每次都产生一个新的Toast并且调用show方法 问题:触发了toast以后,toast内容会一直 ...

最新文章

  1. 天天都在说,无服务器计算到底是什么?
  2. 深入浅出 JavaScript 数组 v0.5
  3. 1336:【例3-1】找树根和孩子
  4. silverlight,WPF动画终极攻略之阳光灿烂篇(Blend 4开发)
  5. php怎么样sphinx,php使用sphinx
  6. Flash Builder 创建CSS
  7. 七参数 布尔萨 最小二乘法_最小二乘法和最大似然法的联系
  8. 增加 magento top_menu菜单
  9. [转]手把手教你搭建Hive Web环境
  10. RELEASE版本的RegisterClass()失败
  11. 在某网课学习前端笔记整理js篇31-ajax
  12. 宏碁电脑重装win10系统教程,宏碁怎么重装系统win10
  13. 2015年秋季腾讯校园招聘开发岗笔试题二
  14. 一树桃红,在生命的枝头葱茏
  15. 为什么iPhone 12 中国版不支持5G毫米波?
  16. 设置vscode默认终端为msys/MinGW32/MinGW64
  17. elasticsearch实现基于拼音搜索
  18. 基于 ZYNQ 的无线超声数据传输及显示系统的实现
  19. jzoj 4883. 【NOIP2016提高A组集训第12场11.10】灵知的太阳信仰
  20. 40款非常酷的国外创意名片设计欣赏

热门文章

  1. 单词快速记忆day6
  2. xcsrecommend
  3. java 耦合度_代码的耦合度
  4. BEC3 考试当天记录及感悟
  5. 实例分割综述_文献综述产生自然语言对抗实例
  6. 模拟新浪微博登录:从原理分析到实现
  7. 流媒体弱网优化之路(FEC)——FEC的应用奥秘(附demo)
  8. iview的Affix组件没有按照预期效果固定
  9. 如何判断两物体加速度相等_加速度的方向怎么判断
  10. Windows Defender的一些渗透知识