文档章节

android jni 使用流程

lgl_lfx
 lgl_lfx
发布于 2016/02/29 16:48
字数 342
阅读 9
收藏 0

android jni 使用流程

一 环境配置
linux,eclipse,sdk,jdk,ndk(windows 编译so文件比较麻烦)

1.下载ndk 配置ndk到环境中
sudo gedit ~/.bashrc
(末尾加入,具体路径自行修改,以下环境适用linux,windows配置环境变量)
NDK=/home/guilin/software/java/android-ndk-r10b
export PATH=$NDK:$PATH
2.(刷新环境,限linux) source ~/.bashrc
3.输入ndk-build 检测ndk环境是否设置成功

二 使用NDK开发jni

1.新建android工程
2.创建需要使用jni的类,方法如
public class JniPrint {
    public native String hello();

    static {
        System.loadLibrary("testJni");
    }
}
3.生成c头文件(命令行进入android工程目录)
javah -classpath bin/classes -d jni  包名.类名

4.刷新工程目录,可以找到jni文件夹
5.新建c文件,include 生成的.h头文件,把头文件的方法拷贝到c文件中进行实现
6.在jni文件夹下新建Android.mk文件(需修改调用名字和源文件名字)
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
#java 中调用的名字
LOCAL_MODULE    := testJni
#c源文件名字
LOCAL_SRC_FILES := testJni.c
include $(BUILD_SHARED_LIBRARY)

7.命令行进入android工程jni目录
8.使用命令 $NDK/ndk-build
9.若8成功则会在android工程中的libs/armeabi中生成.so包(可改名字),并在android工程中生成了obj目录,这个目录没啥用处可删除。
10.编译完成



© 著作权归作者所有

共有 人打赏支持
lgl_lfx
粉丝 0
博文 6
码字总数 2371
作品 0
厦门
程序员
私信 提问
Android NDK开发简介

最近由于项目的需要,使用到了Android的NDK技术,对项目核心算法跨平台的移植。简答而言,就是使用C对原来的算法进行了改进,并集成到原来的app项目里。 从前的项目一直没有使用NDK进行开发的...

zhiweiofli
2013/03/07
0
0
Android使用FFmpeg(四)--ffmpeg实现音频播放(使用AudioTrack进行播放)

关于 Android使用FFmpeg(一)--编译ffmpeg Android使用FFmpeg(二)--Android Studio配置ffmpeg Android使用FFmpeg(三)--ffmpeg实现视频播放 Android使用FFmpeg(四)--ffmpeg实现音频播放(使用A...

天王盖地虎626
01/14
0
0
开发兼容英特尔架构的Android应用(三) 如何设置您的NDK应用

如何设置您的NDK应用 本篇主要介绍NDK应用的开发步骤,调试流程已经如何为英特尔架构设置您的NDK应用。 相关文章 •1. 开发兼容英特尔架构的Android应用(一) 应用架构介绍 •2. 开发兼容英特...

LiSteven
2013/08/07
0
0
我眼中的 Qt for Android

引子 前几天,我分享了一下qt for android,从大家的反应和回馈,我看到两种极端的状态。一个是:“太好了!想做Android开发但是不想转java,这下不用了!” 另一个是:“不要在Qt上浪费时间...

鉴客
2011/10/23
5.2K
4
使用 Android NDK 重用现有的 C 代码

开始之前 首先,了解 Android 原生开发工具包(NDK)的动机之一是得以利用开源项目,大多数项目都是用 C 语言编写的。完成本教程后,您将了解到如何创建 Java 本地接口(JNI)库,它使用 C ...

IBMdW
2012/01/05
952
0

没有更多内容

加载失败,请刷新页面

加载更多

大数据教程(11.9)hive操作基础知识

上一篇博客分享了hive的简介和初体验,本节博主将继续分享一些hive的操作的基础知识。 DDL操作 (1)创建表 #建表语法CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name [(col_name ...

em_aaron
今天
0
0
OSChina 周四乱弹 —— 我家猫真会后空翻

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @我没有抓狂 :#今天听这个# 我艇牛逼,百听不厌,太好听辣 分享 Led Zeppelin 的歌曲《Stairway To Heaven》 《Stairway To Heaven》- Led Z...

小小编辑
今天
2
0
node调用dll

先安装python2.7 安装node-gyp cnpm install node-gyp -g 新建一个Electron-vue项目(案例用Electron-vue) vue init simulatedgreg/electron-vue my-project 安装electron-rebuild cnpm ins......

Chason-洪
今天
3
0
scala学习(一)

学习Spark之前需要学习Scala。 参考学习的书籍:快学Scala

柠檬果过
今天
3
0
通俗易懂解释网络工程中的技术,如STP,HSRP等

导读 在面试时,比如被问到HSRP的主备切换时间时多久,STP几个状态的停留时间,自己知道有这些东西,但在工作中不会经常用到,就老是记不住,觉得可能还是自己基础不够牢固,知识掌握不够全面...

问题终结者
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部