gpt4 book ai didi

android - 制作一个 Android Studio JNI 静态库以供 JNI 读取

转载 作者:行者123 更新时间:2023-11-30 19:41:03 35 4
gpt4 key购买 nike

硬件手机和平板电脑内存太少,但 HAXM 工作正常?

我的基本问题是我的应用程序(很可能是我的 Java 应用程序加载的 JNI 动态库)太大。如果未使用硬件电话和模板调用 JNI 指令,Java 应用程序就会崩溃。然而,它与 HAXM 模拟器配合得很好,只是扩大了它本身的主内存。

我认为我需要减小 JNI 动态库的大小。

我有大量的 C 函数,其中大部分都没有使用?

涵盖应用程序编程的主题领域,超过 64000 个条目,使用了 995 个。在 Win32 中编写 C 程序,链接器会过滤掉未使用的内容。真光滑。

但是在 Android Studio 中,我像往常一样有一个使用动态 JNI 库编写的 Java 应用程序,即 Android JNI 标准使用。没有链接器确定使用或不使用哪些函数。不过,我有一个前端 JNI 文件,它调用其他一堆 C 函数。我想,Java 系统不会分析调用了哪些 JNI 函数,也不会找到能够对其进行排序的调用树? (我认为 WIn32 中的 DLL 也不会这样做,因为它不知道将调用什么。)

静态库方法可能有效,我该怎么做?

一个想法是创建大量 C 函数的静态库,当标准 Android JNI 通过前端 JNI 文件的调用使用它时,我假设这只会使用所需的静态库的函数并删除其余部分,就像链接 Win32 C 程序时一样。我可能错了?

好吧,我试图找出如何在 Android Studio 中创建静态库,以及如何使用专有静态库链接到 JNI 动态库。然而,通过谷歌搜索或通过 stackoverflow 搜索很难找到答案。我认为这种方法很少见。

  • 有谁知道如何在Android Studio中制作静态JNI库
  • 有谁知道如何在 Android Studio 中使用静态 JNI 库来制作 Android 应用程序JNI前端调用静态库函数?
  • 并且能够描述一下吗?
  • 这在 JNI 中可能是不可能的,但很高兴知道它是不可能的。是否可以通过这种方式进行优化?

最佳答案

您可以在 Android Studio 中使用静态库,但您应该使用 Android.mk 作为配置,使用 ndk-build 来构建它。

在你的build.gradle中你可以引用这个预建库“c:\android\obj\libmystatic.a”:

model {
android.ndk {
moduleName = "hello-jni"
abiFilters += armeabi-v7a
ldFlags += "-LC:/android/obj"
ldLibs += "mystatic"
}
}

关于android - 制作一个 Android Studio JNI 静态库以供 JNI 读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33994089/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com