【发布时间】:2020-06-05 04:59:21
【问题描述】:
我开始编写一个简单的 C++ 程序,尝试使用
获取服务的句柄defaultServiceManager()->getService(String16('ServiceName'));
现在已经滚雪球般地陷入了这种可怕的依赖递归。最终我需要的是:
-
libbinder 用于
defaultServiceManager和getService -
libutils 用于
String16
这些在 NDK 中都不可用。它们的来源与所有适当的标头一起在 SDK 中。在链接时间之前,我可以让一切都表现得很好:
undefined reference to `android::defaultServiceManager()'
undefined reference to `android::String16::String16(char const*)'
undefined reference to `android::String16::~String16()'
undefined reference to `android::String16::~String16()'
是否需要将此构建为 AOSP 的一部分?也许通过ndk-build之类的东西?我正在构建的更像是一个玩具应用程序,它只需要访问那些(以及相关的,例如 service->transact APIs)API 以及 Parcel。
也许构建一次 AOSP 并使用 -L 包含生成的库的搜索路径。
【问题讨论】:
-
“NDK 中都没有这些。它们的源代码与所有适当的标头一起在 SDK 中。”在哪里?
-
@DanAlbert
libbinder在$SDK/frameworks/native/libs/binder和libutils在$SDK/system/core/libutils。
标签: android build android-ndk