我的基本任务是在android中创建 native 服务,然后编写一个简单的 native 程序对其进行测试。可以说我想编写一个简单的服务,该服务返回两个整数之和。我必须使用活页夹从程序中与之交谈,我尝试在Google周围搜索,但找不到精确的示例。我需要知道如何创建 native 服务并在程序中找到它,如果需要,还需要在Java中找到它。

最佳答案

如果要使用NDK创建普通的Android应用程序,则不能使用Binder,因为它不是NDK API的一部分。

在NDK docs/STABLE-APIS.html中查找稳定API的完整列表,并在该线程中获得David Turner(NDK维护者)明确声明不支持Binder的API。

https://groups.google.com/forum/?fromgroups=#!topic/android-ndk/1QmVRrNckfM

您的选择是:

  • 在 native 代码中使用其他形式的IPC-例如UNIX域套接字
  • 使用Java SDK的常规Service和AIDL工具在Java中进行操作。如果希望将其与 native 代码结合使用,则可以使用JNI从 native 代码调用Java。
  • (不推荐)从Android开放源代码项目复制相关的库和 header ;内置到您的NDK项目中;并使用API​​。但是,这不受官方支持,并且极有可能在将来的版本中破坏您的应用程序,因为Google没有义务维护此类库中的兼容性(通常不这样做)。这也非常困难,因为您需要找到某种注册服务的方法,以便客户端可以找到它。
  • 关于android - 如何创建一个Android native 服务并使用活页夹与之通信?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14215462/

    10-11 22:43
    查看更多