【问题标题】:Android Binder native service called from Java从 Java 调用的 Android Binder 原生服务
【发布时间】:2016-05-08 11:32:22
【问题描述】:
我创建了一个包含几种事务类型的本机绑定服务。
目前我有客户端的本机代理 (Bp),但我想让 Java 客户端有可能使用我的服务。
基本上,我认为 Bp 应该是 Java。我发现了一些关于 JNI 的东西,但不完整。我需要在 Bn 中使用 JNI?
此外,回调机制(从服务到特定客户端方法的零星事件)应该可用。我已经在本地完成了。
【问题讨论】:
标签:
android
android-ndk
java-native-interface
android-binder
【解决方案1】:
这是我的第一个答案......
正如 Cumatru 所说,我也使用了https://github.com/cloudchou/NativeBinderJavaClientDemo。
我还没有完全理解整个过程,但至少它是有效的,而且它是一种通过一个非常“简单”的例子向前推进的方式。我处于一个非常基本的 android 级别,所以请耐心等待,并以您喜欢的任何方式帮助改进答案。
似乎有三个部分:
1.一个用c++制作的本地运行的服务器进程。
2. 安卓应用客户端。
3. 一个简单的 java 客户端,将被构建到一个 .jar 文件中。
似乎不需要更改代码,至少对于简单的 java-client 和 c++-server 而言。
- 构建服务器应用程序并将其推送到您的目标。在 adb shell 中运行它。
- 构建名为 fclient 的 java 客户端(.jar 文件)并将其推送到 /system/framework/ 中的目标
- 使用 fclient-script 运行 java-client
- 将从客户端发送的两个整数相加,并回复给服务器。
希望它也适合你。