文档章节

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应用(三) 如何设置您的NDK应用

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

LiSteven
2013/08/07
0
0
Android 网络编程 目录

Android 网络编程 目录 Android 网络编程1 Http协议 to be continued... Android 架构师之路 目录 Android 架构师之路1 UML图之用例图 Android 架构师之路2 UML图之类图 Android 架构师之路3...

香沙小熊
06/21
0
0
Android JNI学习(二)——实战JNI之“hello world”

本系列文章如下: Android JNI(一)——NDK与JNI基础 Android JNI学习(二)——实战JNI之“hello world” Android JNI学习(三)——Java与Native相互调用 Android JNI学习(四)——JNI的常用方法...

隔壁老李头
05/09
0
0
深入了解android平台的jni---注册native函数

注册native函数有两种方法:静态注册和动态注册。 1、静态注册方法 根据函数名找到对应的JNI函数:Java层调用函数时,会从对应的JNI中寻找该函数,如果没有就会报错,如果存在则会建立一个关联...

mfcai
2013/10/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

内存模型是怎么解决缓存一致性的?

在再有人问你Java内存模型是什么,就把这篇文章发给他。这篇文章中,我们介绍过关于Java内容模型的来龙去脉。 我们在文章中提到过,由于CPU和主存的处理速度上存在一定差别,为了匹配这种差距...

Java填坑之路
15分钟前
1
0
vue-cli 3.0 初体验

最近复习了下vue,突然发现vue-cli已经更新到3.0版本了,并且变化蛮大,看来要不停的学习,真是一入前端深似海。 安装步骤: 1、全局安装 npm install -g @vue/cli Vue CLI 的包名称由 vue-...

tianyawhl
17分钟前
0
0
Angular进阶之路

【初级】会写页面,能出东西。 给定环境和 rest API,不用第三方库,能在十分钟内完成一个 master/detail 结构的带路由的应用(可以不管美观)。 知识点:Angular CLI、组件、路由、HTTP 服务...

陆小七的主页
20分钟前
0
0
Redis缓存数据库安全加固指导(一)

背景 在众多开源缓存技术中,Redis无疑是目前功能最为强大,应用最多的缓存技术之一,参考2018年国外数据库技术权威网站DB-Engines关于key-value数据库流行度排名,Redis暂列第一位,但是原生...

中间件小哥
20分钟前
0
0
百万级数据mysql分区

1. 什么是表分区? 表分区,是指根据一定规则,将数据库中的一张表分解成多个更小的,容易管理的部分。从逻辑上看,只有一张表,但是底层却是由多个物理分区组成。 2. 表分区与分表的区别 分表...

罗文浩
22分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部