Web端
定义接口MyAdil.aidl
package com.service_aidl_web;
interface MyAidl{
int count(int num1,int num2);
String say();
}
MyService.java
package com.service_aidl_web.service;
import com.service_aidl_web.MyAidl;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.os.RemoteException;
public class MyService extends Service {
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return new MyBinder();
}
private class MyBinder extends MyAidl.Stub{
@Override
public int count(int num1, int num2) throws RemoteException {
// TODO Auto-generated method stub
return num1+num2;
}
@Override
public String say() throws RemoteException {
// TODO Auto-generated method stub
return "您好";
}
}
}
复制gen下的com.service_aidl_web/MyAidl.java连包一起复制到客户端src下
Client端调用
MainActivity.java
package com.service_aidl_Client;
import com.service_aidl_web.MyAidl;
import android.app.Activity;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.Bundle;
import android.os.IBinder;
import android.os.RemoteException;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity implements OnClickListener {
private Button button;
private MyAidl myAidl;
private ServiceConnection connection = new ServiceConnection() {
@Override
public void onServiceDisconnected(ComponentName name) {
// TODO Auto-generated method stub
myAidl=null;
}
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
// TODO Auto-generated method stub
myAidl=MyAidl.Stub.asInterface(service);
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.button1);
button.setOnClickListener(this);
Intent intent = new Intent("com.service_web_01");
bindService(intent, connection, Context.BIND_AUTO_CREATE);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (v.getId() == R.id.button1) {
try {
String str = myAidl.say();
int num1=2,num2=3;
int count=myAidl.count(num1,num2);
Toast.makeText(this, "查询的结果:" + str+"------"+num1+"+"+num2+"的计算结果:"+count, Toast.LENGTH_SHORT).show();
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
分享到:
相关推荐
综上所述,Android AIDL通信中,对象和普通数据类型都可以通过进程间通信进行交换。理解并熟练运用Parcelable和Serializable,能帮助开发者更高效地构建跨进程通信的服务。在实际开发中,根据性能需求和对象复杂性...
在Android系统中,AIDL(Android Interface Definition Language)是一种用于实现进程间通信(IPC, Inter-Process Communication)的工具。AIDL使得一个应用能够暴露其服务给其他应用,即使它们运行在不同的进程中,...
在Android系统中,进程间通信...总之,Android Aidl是实现不同进程间通信的重要手段,通过定义接口和服务,可以方便地实现跨进程调用,提升应用的功能性和交互性。理解和掌握Aidl对于开发复杂的Android应用至关重要。
在Android系统中,AIDL(Android Interface Definition Language)是一种强大的工具,用于实现应用程序间的跨进程通信(IPC,Inter-Process Communication)。AIDL使得一个应用能够暴露其服务给其他应用,即使这些...
Android AIDL Binder 实现与详解。此资源实现了 Android AIDL 通信,自定义 AIDL 数据类型。同时演示了定向 Tag 『inout in out』的区别。并且配有博文详细解释相关知识点以及需要注意的细节。
远程AIDL通信是指跨越设备边界,如通过网络进行的AIDL通信。这通常涉及到服务的绑定和发布,以及网络连接管理。 1. **服务发布**:服务端不仅需要实现AIDL接口,还需要对外发布服务,这可以通过`startService()`或`...
总结,AIDL是Android系统提供的一种高效、灵活的进程间通信方式,它简化了跨进程通信的复杂性,让开发者可以方便地在服务和客户端之间传递数据和调用方法。掌握AIDL的使用,对于开发大型的、需要多进程协作的Android...
本篇文章将围绕`aidl`(Android Interface Definition Language)这一Binder的重要工具,深入探讨Binder的基本概念、工作原理以及如何通过aidl实现跨进程通信。 首先,我们需要理解什么是`aidl`。aidl是一种接口...
总结来说,Android AIDL提供了一种强大的工具,使得开发者可以方便地实现在不同进程间的通信,提高了应用程序的扩展性和灵活性。理解并熟练运用AIDL是开发高性能、多组件协作的Android应用的重要技能。通过学习和...
在Android开发中,AIDL(Android Interface Definition Language)是一种用于进程间通信(Inter-Process Communication, IPC)的工具,使得不同应用之间的服务可以共享数据和功能。本示例"android AidlDemo(简单aidl...
在Android系统中,AIDL(Android Interface Definition Language)是一种接口定义语言,用于实现不同进程间的通信,即远程进程通讯。AIDL使得服务(Service)和活动(Activity)这两个独立的APK之间能够相互通信,...
在Android开发中,AIDL(Android Interface Definition Language)是一种用于实现进程间通信(IPC, Inter-Process Communication)的工具。本教程将详细讲解如何在Android Studio中创建并使用AIDL,以便不同进程间的...
Android AIDL(Android Interface Definition Language)是Android系统中用于实现进程间通信(IPC,Inter-Process Communication)的一种机制。在Android应用开发中,当需要在不同进程之间共享数据或调用服务时,...
在Android系统中,AIDL(Android Interface Definition Language)是一种用于实现进程间通信(Inter-Process Communication, IPC)的工具。AIDL使得不同进程间的组件能够相互通信,即便它们运行在不同的应用程序或...
Android AIDL(Android Interface Definition Language)是Android系统提供的一种接口定义语言,用于实现不同应用程序进程间的通信(IPC,Inter-Process Communication)。AIDL允许我们定义服务和服务客户端之间交互...
Android AIDL(Android Interface Definition Language)是Android系统提供的一种接口定义语言,用于处理进程间通信(IPC, Inter-Process Communication)。在Android应用开发中,当需要在不同进程间共享数据或者...
在Android开发中,AIDL(Android Interface Definition Language)是一种强大的工具,用于实现进程间通信(IPC,Inter-Process Communication)。AIDL使得一个应用能够暴露其服务到其他应用,即使它们运行在不同的...
**Android AIDL(Android Interface Definition Language)** 是一种接口定义语言,用于在Android系统中实现跨进程通信(IPC,Inter-Process Communication)。AIDL使得一个应用程序可以暴露其服务给其他应用,即使...
在Android系统中,AIDL(Android Interface Definition Language)是一种用于实现跨进程通信(IPC, Inter-Process Communication)的重要工具。本教程将通过一个简单的AIDL示例,详细讲解如何使用AIDL来实现在不同...