Android下用JNI让Java调用C函数

原创 2012年03月26日 08:27:20

原文地址:http://blog.csdn.net/ariesjzj/article/details/7388874

基本步骤是首先将C函数编译成一个.so库,然后用Java主程序通过JNI载入库和调用其中的函数。

 

第一步是下载NDK,其中有些很适合入手的例子,按官方文档说的装好或解压好。

 

第二步:编译动态链接库。以NDK自带的sample之一hello-jni为例,先进入到该目录下,然后执行ndk-build(在NDK目录下)就能生成以下一些目录:

libs: stripped过的.so,这个是一般情况下拿来链接进最终app的库。

obj: 没stripped过的.so,这个带符号表等调试信息,debug的时候可以用。

assets, gen, res等一坨其它的东西

注意JNI下的Application.mk可指示生成的目标为针对arm还是x86平台。如果要将.so编译成x86平台的,在jni下创建Application.mk:

APP_ABI    := x86

 

第三步:编译整个app的apk。初始的时候工程目录一般包含两个文件夹,一个jni,包含c文件,另一个src,包含java文件。在上一步编译完so后用eclipse导入项目(File->New->Project->Android Project),然后有个选项是从已有工程中载入,选中后它会自动解析Android.mk文件帮忙填好各项。

最后点eclipse中的运行,就会自动用刚才编译完的指定平台的so生成最后的可执行文件,而且自动打包成apk。如果连了n个设备记得运行前设置下用哪个。

版权声明:本文为博主原创文章,只要标明出处即可转载。 举报

相关文章推荐

Android下双调试器(gdb+jdb)调试应用程序

原文地址:http://blog.csdn.net/ariesjzj/article/details/7402832 Android下的程序大多数用java写的,跑在dalvik里,但中间又夹杂着n...

使用JDB指令模拟Eclipse调试java程序.

使用JDB指令模拟Eclipse调试java程序.最近一段时间在研究JVM虚拟机, 大致明白了其运作过程。研究完毕后, 向上走, 便在想是如何实现程序调试功能的,刚好查看到JDB工具.JDB(Java...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

Android中用gdb调试一启动就崩溃的程序

原文地址:http://blog.csdn.net/ariesjzj/article/details/7393573 一般情况下程序是在某一个点挂掉的,我们可以用adb shell ps查到PID,...

Android下的JDB调试

http://blog.csdn.net/jinzhuojun/article/details/7399249 第一步在$HOME/.jdbrc里设断点,如: stop in com.almale...

Android调试工具adb的使用详解

点击打开链接 Android开发环境中,ADB是我们进行Android开发经常要用的调试工具,它的使用当然是我们Android开发者必须要掌握的。        ADB概述     ...

gdb attach 进程

gdb调试正在运行的进程 2009年04月18日 星期六 下午 08:21     有时会遇到一种很特殊的调试需求,对当前正在运行的其它进程进行调试(正是我今天遇到的情形)。这种情况有可能发生...

回归简单实用的java调试工具JDB

早期搞过java的人应该都接触过jdb,那时候写个java程序用的都是记事本,调试用得是jdb,现在有了eclipse,已经很少人会用记事本和jdb来开发java程序了,从我接触到的搞Java开发的人...

JDB 调试命令集合 (debug command set)

JDB debug operators    connectors                &...

利用JDB附加调试JAVA程序

之前有介绍用Eclipse远程调试JAVA程序,见Eclipse远程调试JAVA程序,但现场JAVA程序出现异常,又不能在现场真实环境装Eclipse来调试,所幸有JDB这个工具。此工具的常规用法不介...

Android下的JDB调试

原文地址:http://blog.csdn.net/ariesjzj/article/details/7399249   第一步在$HOME/.jdbrc里设断点,如: stop in com....
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)