将复杂的原生应用程序编译到 Android ARM 的完整方法

Posted

技术标签:

【中文标题】将复杂的原生应用程序编译到 Android ARM 的完整方法【英文标题】:Complete Way to Compile Complex Native Applications to Android ARM 【发布时间】:2010-10-30 03:35:44 【问题描述】:

这是我的第一个 S/O 问题,请温柔!

我想了解更多关于将 C 应用程序移植到原生 ARM 以在 android 设备上使用的信息。

我可以使用源代码附带的预构建工具链来制作简单的程序,但是如何将这个工具链用于多个文件且需要配置和制作的应用程序?

【问题讨论】:

【参考方案1】:

这篇文章解释得很好: http://davanum.wordpress.com/2007/12/09/android-invoke-jni-based-methods-bridging-cc-and-java/

基本上,您可以像往常一样创建一个共享库,用 JNI 包装它,然后用 Java 的本地方法调用它。

【讨论】:

【参考方案2】:

在 Google I/O 上,他们谈到引入“NDK”——原生开发工具包——应该可以简化创建使用原生 (C) 代码的应用程序的过程。

在你走得太远之前,有几点值得注意:

    NDK 将提供有限的功能。它的主要目的是提供一种在本机上运行对时间极为敏感的代码的方法,但无法访问整个系统,也不会提供替代的应用程序开发模型(您仍然需要编写大部分应用程序)为达尔维克)。 您可以在没有 NDK 的情况下编写本机应用程序,但您将无法使用应用商店支持的传统 APK 应用程序包将它们分发给最终用户。如果您的应用是作为运营商/OEM 构建的一部分分发的,那么这确实是一个可行的选择 - 即使这样也不推荐。

【讨论】:

以上是关于将复杂的原生应用程序编译到 Android ARM 的完整方法的主要内容,如果未能解决你的问题,请参考以下文章

使用独立工具链 android arm 构建本机库

android系统 主要有哪几部分?

原生库的 Android AAR 包

应该使用哪个编译器将 C 代码移植到 ARM?

android NDK编译问题,在将项目中的JNI部分编译时,报出了错误,不能成功生成SO文件,

如何为 Android 不同平台打包原生预建库