我正处于一个项目的开始阶段,我们正在尝试为Android智能手机编写应用程序,该应用程序将调用用C编写的共享库。
似乎这样做的方法是使用Android NDK以与智能手机硬件兼容的二进制格式构建库,然后使用JNI从Java调用共享库。可能会使用SWIG来促进JNI包装器功能。
但是在我走这条路之前,我是否错过任何一种可能更简单的方法来让智能手机上的C应用程序运行?是什么让我觉得可能有其他选择是Canonical项目希望在智能手机上运行ubuntu(http://www.ubuntu.com/devices/android),但它似乎还没有。
对此主题的任何横向想法都表示感谢
答案 0 :(得分:4)
据我所知,NDK是在android中使用本机代码时首选的路径。您还可以围绕C代码构建一个java包装器库,与您的Android项目分开,并在您的Android应用程序中包含.jar。这使用标准Java而不是Google的NDK,并且我在Android中使用了以这种方式构建的几个库,而且只需很少的努力。