gpt4 book ai didi

Android - JNI 指南

转载 作者:太空宇宙 更新时间:2023-11-03 11:41:36 27 4
gpt4 key购买 nike

我想将小型、精简且平均的基于 C 的解析器合并到我的 Android 项目中。我过去做过 JNI 编程,但没有在 Android 上进行任何类型的 native (C) 开发。我的计划是将 C lib 编译成 SO 并围绕它创建 JNI 包装器,我将在我的应用程序中使用它。这是可以/应该如何完成的吗?第二个也是最重要的问题 - 如何将 .so 包含到我的 APK 中?它会去哪里?

最佳答案

这取决于您传递的数据量以及我严重怀疑 Java/JNI/C 的执行速度是否会比 native Java 实现更快的频率。

将除“Java Int”以外的任何内容传递给“C long”会调用 JNI 数据转换例程,这些例程绝不精简。

因此,除非您的 JNI 例程符合模式:

  • 传递少量数据。
  • 用 C 做很多很多工作。
  • 传回小结果集。

您将比本地 java 实现慢得多。如果您坚持使用“ native ”数据类型(int、char、String)的基本“C”,如 java 操作(+、-、*、==、>),并避免花哨的库,Java 的执行速度几乎与C.

Java 性能的其余问题是启动 JVM 并使一切正常运行所花费的时间,但是当您从 Java 程序开始时,这不是问题。

Java 性能“慢”的另一个原因是人们坚持使用不必要的工厂、容器、xml bean 等,在这些地方,普通、简单的方法会做得更好。

关于Android - JNI 指南,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1541884/

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