安卓 N : NDK Apps Linking to Platform Libraries

标签 android android-ndk android-7.0-nougat

我知道这是一个愚蠢的问题,但我需要帮助,正如关于 NDK Apps Linking 的 Android N 更改文档中提到的那样,他们说我必须检查我的应用程序是否正在访问任何 android 私有(private)库。问题是,如果我有一个应用程序,如何检测该应用程序或其任何依赖项是否正在访问私有(private)库?

最佳答案

如果您正在使用 ndk-build,如果您链​​接未明确允许的内容,我们将发出警告:https://android.googlesource.com/platform/ndk/+/17f4d9e8ec1d48db9035ca3103254a39efae3899/build/core/build-binary.mk#84

可以通过 dlopening 非 NDK 库或构建您自己的 stub 链接来规避此警告。如果您在 Android N 或更高版本上运行,如果您已解决此问题,您的应用将不会加载。

对于其他构建系统,只需确保您只链接应用中的内容(在您的 APK 中提供)或 system_libs 列表中的内容(请注意,新库可能会添加到这在每个版本中都支持新的 API):https://android.googlesource.com/platform/ndk/+/master/build/core/build-binary.mk#61

关于安卓 N : NDK Apps Linking to Platform Libraries,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43042919/

相关文章:

android - 试图将 map 放入 fragment Activity 中

java - 有没有办法替换库类?

android - 如何确定 APK 是否与设备支持的 ABI 兼容?

android - 从具有内部存储的Android手机上的图库中获取图像

java - Android 构建失败 - java.lang.IllegalArgumentException : already added: Lcom/google/api/client/escape/CharEscapers;

android - 无法链接到 jni/ndk 共享库中的 libjpeg.so

java - 尝试将可序列化对象写入文件时出现 NotSerializedException

android - 如何为不同的构建变体设置不同的网络安全配置?

android - Renderscript ScriptC 编译阻塞主线程

java - 尝试从 URL 读取文本时抛出异常