关闭

Android下用JNI让Java调用C函数

标签: jnijavaandroidceclipse平台
2549人阅读 评论(0) 收藏 举报
分类:

原文地址: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个设备记得运行前设置下用哪个。

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

android使用C/C++调用SO库

分类: android2012-05-11 02:24 1470人阅读 评论(3) 收藏 举报 有时候,我们反编译apk得到一个so库,如果直接使用这个so库的话,必须使用原来so库同样的p...
  • mirkerson
  • mirkerson
  • 2013-03-06 14:29
  • 17504

Android开发之JNI调用本地C库专题(一):JNI的使用

JNI,是用于开发本地C函数库的技术。用于链接JAVA和C或者C++语言的桥梁。在部分android项目开发中,我们是需要用到这项技术的。那么废话不多说,进入正题。 开发JNI,需要用到NDK,这个大...
  • victorfreedom
  • victorfreedom
  • 2015-01-21 22:54
  • 1872

Android JNI之Java和C互相调用

概述JNI是什么JNI是Java Native Interface的缩写,它提供了若干的API实现了Java和其他语言的通信(主要是C&C++)。从Java1.1开始,JNI标准成为java平台的一部...
  • qq_17250009
  • qq_17250009
  • 2016-11-15 14:56
  • 1826

Android JNI实现简单的c层调用Java层函数(C层调用Java层Toast进行提示)

Android JNI实现简单的c层调用Java层函数(C层调用Java层Toast进行提示)
  • hty1053240123
  • hty1053240123
  • 2016-08-05 10:09
  • 1175

Android 项目中使用调用jni库调用本地C/C++方法

Android 项目中使用调用jni库调用本地C/C++方法
  • wfei101
  • wfei101
  • 2017-06-12 22:00
  • 277

Java Jni入门(一):Hello Jni(在Java中调用C库函数)

本文介绍了如何使用命令行工具来编写Jni程序,以实现Java中调用C库函数的功能。包含Windows 32位、Windows 64位、Linux、Mac三种环境。
  • afunx
  • afunx
  • 2016-12-05 07:12
  • 686

Android Studio 2.0下创建jni应用调用本地C函数

开发环境 jdk1.8.0_77 sdk 25.1.1 ndk android-ndk-r11c-windows-x86_64 Android Studio 2.0 参考:Step by Step -...
  • Tommy996633
  • Tommy996633
  • 2016-04-11 23:11
  • 6832

android JNI 使用的两种形式 --自己实现c和调用第三方so库

1. 在调用JNI的工程中实现JNI代码 JNI调用,一般书上都会给你讲第一种形式,自己写JNI代码,,然后编译使用,在eclipse中  --项目--右键-   Android tools --添加...
  • pengpeng375
  • pengpeng375
  • 2015-01-24 10:53
  • 1223

学习JNI--Android下使用JNI调用C

JNI是Java Native Interface的缩写,中文为JAVA本地调用。从Java1.1开始,Java Native Interface(JNI)标准成为java平台的一部分,它允许Java...
  • cyp331203
  • cyp331203
  • 2014-10-23 17:28
  • 1486

JAVA中通过JNI调用C程序实例教程

JAVA是跨平台的语言,但在有些时候还是不得不调用本地代码,而且这些代码通常是C/C++写的,比如一某个手机的项目,需要JAVA程序在发送短信的时候和第三方的短信服务器连接。短信接口是用C++写的。需...
  • rickiyeat
  • rickiyeat
  • 2016-09-11 11:10
  • 893
    个人资料
    • 访问:1081246次
    • 积分:12983
    • 等级:
    • 排名:第1216名
    • 原创:196篇
    • 转载:109篇
    • 译文:1篇
    • 评论:448条
    文章分类
    文章存档