2019独角兽企业重金招聘Python工程师标准>>>

//app类package com.qudoulicai.www.aidltest;import android.content.ComponentName;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.Bundle;
import android.os.IBinder;
import android.os.RemoteException;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Button;
import android.widget.TextView;import com.qudoulicai.www.mylibrary.*;
import com.qudoulicai.www.mylibrary.Aidlone;public class MainActivity extends AppCompatActivity {private TextView titles;public Button onclick;Aidlone aidlone;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);titles = (TextView) findViewById(R.id.titles);onclick = (Button) findViewById(R.id.onclick);onclick.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = new Intent();//5.0版本则设置为显示意图//否则设置为Intent intent = new Intent("you action("参考mylibrary清单文件")")intent.setClass(MainActivity.this, MAIDLService.class);bindService(intent, connection, BIND_AUTO_CREATE);}});}ServiceConnection connection = new ServiceConnection() {@Overridepublic void onServiceConnected(ComponentName name, IBinder service) {try {aidlone = Aidlone.Stub.asInterface(service);Log.e("张三",aidlone.getName().length()+"");titles.setText(aidlone.getName());} catch (Exception e) {e.printStackTrace();}}//@Overridepublic void onServiceDisconnected(ComponentName name) {Log.e("张三","失败");}};
}//app中的aidl// Aidlone.aidl
package com.qudoulicai.www.aidltest;// Declare any non-default types here with import statementsinterface Aidlone {String getName();
}//mylibrary依赖包//服务类package com.qudoulicai.www.mylibrary;import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.os.RemoteException;
import android.support.annotation.Nullable;/*** Created by Lenovo on 2015/12/3.*/
public class MAIDLService extends Service {public MAIDLService(){}Aidlone.Stub sumber = new Aidlone.Stub(){@Overridepublic String getName() throws RemoteException {return "张三";}};@Nullable@Overridepublic IBinder onBind(Intent intent) {return sumber;}
}//aidl文件// Aidlone.aidl
package com.qudoulicai.www.mylibrary;// Declare any non-default types here with import statementsinterface Aidlone {String getName();
}
//mylibrary清单文件<serviceandroid:name="com.qudoulicai.www.mylibrary.MAIDLService"android:process=":remote"><intent-filter><action android:name="com.qudoulicai.www.mylibrary.MAIDLService"></action></intent-filter>
</service>
//app中的布局文件<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"app:layout_behavior="@string/appbar_scrolling_view_behavior"tools:context="com.qudoulicai.www.aidltest.MainActivity"tools:showIn="@layout/activity_main"><TextViewandroid:id="@+id/titles"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Hello World!" /><Buttonandroid:id="@+id/onclick"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="单击"/>
</LinearLayout>

//ps:有不足之处请多包涵。。。创建依赖文件记得引用文件“

compile project(':"you libray name"')

转载于:https://my.oschina.net/u/2355512/blog/538840

android aidl接口初步了解相关推荐

  1. Android AIDL示例-回调方法版

    概述 AIDL是一个缩写,全称是Android Interface Definition Language,也就是Android接口定义语言,它是用来实现进程间通讯的,本文使用AIDL写一个小demo ...

  2. android AIDL服务

    这篇文章http://byandby.iteye.com/blog/1026110我们介绍了android的本地服务:它只能由承载它的应用程序使用.现在我们将介绍如何构建可由其他进程通过 RPC 使用 ...

  3. Android AIDL的实现

    2019独角兽企业重金招聘Python工程师标准>>> AIDL (Android Interface Definition Language) 是一种IDL 语言,用于生成可以在A ...

  4. Android AIDL使用介绍(3) 浅说AIDL背后的Binder

    1.背景 在前面的博客中,我们已经学会了使用AIDL进行跨进程通信,AIDL的使用比较简单,可实际上跨进程通信是一个相当复杂的过程,例如进程A是怎么找到进程B的,如果有一个进程C冒充进程A,进程B又该 ...

  5. Android AIDL使用介绍(2)自定义数据类型的传递

    1.背景 默认情况下,AIDL只支持下列数据类型: Java八种基础数据类型(如 int.long.char.boolean 等); String字符串: CharSequence字符序列: List ...

  6. Android AIDL使用介绍(1)基本使用

    1.什么是AIDL AIDL全称是Android Interface Definition Language,中文译为Android接口定义语言,AIDL的提出是为了解决进程间通讯,我们知道,在And ...

  7. 调用远程service aidl接口定义

    Android studio 查看aidl定义的文件:当你进入你的AIDL文件并编写好了之后,点击AS上方菜单栏中的Build->Make Project,之后便可以在当前工程的app/buil ...

  8. android aidl工具,【Android】AIDL介绍和实例讲解

    前言 为使应用程序之间能够彼此通信,Android提供了IPC (Inter Process Communication,进程间通信)的一种独特实现: AIDL (Android Interface ...

  9. Android AIDL实例解析

    AIDL这项技术在我们的开发中一般来说并不是很常用,虽然自己也使用新浪微博的SSO登录,其原理就是使用AIDL,但是自己一直没有动手完整的写过AIDL的例子,所以就有了这篇简单的文章. AIDL(An ...

最新文章

  1. linux 源码安装e1000e,linux安装网卡e1000e
  2. OpenAI开源机器人模拟Python库mujoco-py:可高效处理并行模拟
  3. ubuntu 打开ssh登陆_Ubuntu 开启远程登录 SSH 的安装和配置
  4. js调用java代码返回解决方案
  5. 基于深度学习的多目标跟踪算法——ReID与MOT的联系
  6. 30几岁该有多少存款才算合格?
  7. 阿里大神最佳总结Flutter进阶学习笔记,技术详细介绍
  8. [html] 说说你对移动优先布局的理解
  9. php parseint,JavaScript parseInt() 函数
  10. 计算机视觉基础-图像处理 Task06 边缘检测
  11. 云场景实践研究第79期:熊猫直播
  12. 野火指南者开发板移植 lvgl 库
  13. 洛谷P2668 斗地主
  14. 上海mba学费一览表2021
  15. Could not publish server configuration for Apache Tomcat v7.0.22 at localhos
  16. 曾国藩《挺经》卷七英才
  17. 容器学习点点滴滴(三)
  18. 如何使用Element-UI?
  19. 1. Vue CLI脚手架
  20. Python 带你高效剪辑创作短视频

热门文章

  1. ​如何保护Java程序
  2. Linux下安装二进制版mysql-8.0.15
  3. kali学习日记第二篇 -- Nessus
  4. maven web project打包为war包,目录结构的变化
  5. 如何判断一个数组是否按顺序排好了
  6. GHOST WIN8 64位软件自选安装专业优化版 201307 V1.0
  7. oracle数据迁移常用
  8. 关于IE高级设置里取消“禁用脚本调试”勾选无效的解决方式
  9. windows 10 64位机器上 安装部署
  10. 区块链入门之基础知识