Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >android studio JNI使用

android studio JNI使用

作者头像
xiangzhihong
发布于 2018-02-01 08:22:17
发布于 2018-02-01 08:22:17
7850
举报
文章被收录于专栏:向治洪向治洪

Step: 1. 添加native接口注意写好native接口和System.loadLibrary()即可了,并无特别之处。 Step: 2.执行Build->Make Project 生成了.class文件..class文件的生成路径是在 app_path/build/intermediates/classes/debug下的. 这个在android studio里面看不到, 到文件管理器里面翻到的, 里面还有好多东西。

Step: 3.javah生成c头文件 点击"View->Tool Windows->Terminal",即在Studio中进行终端命令行工具.执行如下命令生成c语言头文件。

这 里需要注意的是要进入 <Project>\app\src\main的目录下执行javah命令,为的是生成的 .h 文件同样是在<Project>\app\src\main路径下(jni下面),可以在Studio的工程结构中直接看到。

操作命令:

javah -d jni -classpath <SDK_android.jar>;<APP_classes> <class>

javah -d jni -classpath c:\Users\Ximei\AppData\Local\Android\sdk1\platforms\android-21\android.jar;..\..\build\intermediates\classes\debug com.example.jnitest 好长一串,  好家伙,  这通敲. 然后就看到<project>\app\src\main\jni\com_example_jnitest.h出现了.  Step: 4.编辑c文件

在<project>\app\src\main\jni\jnitest.c文件中实现头文件中的函数。

Step: 5.配置NDK

这一步包括两个动作:

1.指明ndk路径 在local.properties中添加ndk目录, ndk目录中不可包含空格. ndk.dir=C\:\\android-ndk-r10d

2. 修改build.gradle配置

工程中共有两个build.gradle配置文件,我们要修改的是在<Project>\app\build.gradle这个文件。为其在defaultConfig分支中增加上     ndk {         moduleName "jnitest"

    } 3.  添加Application.mk  和 Android.mk文件 Application.mk APP_PROJECT_PATH := $(call my-dir)/project APP_MODULES      := nativebt Android.mk LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE    := jnitest LOCAL_SRC_FILES :=  jnitest.c LOCAL_DEFAULT_CPP_EXTENSION := cpp #include $(BUILD_EXECUTABLE) include $(BUILD_SHARED_LIBRARY) 然后进行编译,  会出现no rule to make target....错误,  按照网上的经验,  生成一个空的empty.c文件,  错误通过. (啧, 2014年3月的bug,  居然还没有fix版) 终于编译成功, 编译出来的库文件在如下路径:  <project>\app\build\intermediates\ndk\debug\lib\  共7个目录, 7种架构吧。 至此, 开发环境建立成功。 

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-04-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
AndroidStudio创建JNI 工程与调用
MakeProject或者 RebuildProject之后,到 app下的 build⽂件夹找到 class所在⽬ 录; 进⼊到包名的上级⽬录,运⾏:javah -jni com.example.jnitest.JNITools ⽣成⼀个 com_example_jnitest_JNITools.h⽂件,com.example.jnitest.JNITools是 你 JNI⼯具类所在引⽤,可根据实际情况修改。
毛大姑娘
2020/09/15
1.2K0
AndroidStudio创建JNI 工程与调用
Android Studio下的JNI开发(一):NDK的配置
今天发送两篇基础的JNI开发和配置的文章,可能大家很多都在应用层开发,但是我感觉JNI的基础配置和原理开发大家有必要了解一下,就推送两篇非常基础,大家都能看懂的文章,如果大家感觉现在用不到,可以稍微看两眼了解一下基础过程,对大家未来可能会有帮助。 随着Android Studio的推出,越来越多的开发者都把项目从Eclipse迁移到了Android Studio上,说明Android Studio相对Eclipse来说,具有很明显的优势。同样对于JNI开发来说,Android Studio的配置比Eclip
非著名程序员
2018/02/02
1.8K0
Android Studio下的JNI开发(一):NDK的配置
Android的JNI【实战教程】2⃣️--AS下NDK环境配置及第一个工程
通过上一篇相信大家已经对java和c/c++之间的桥梁JNI有了初步认识,那么接下来就让我们写个小demo来实现。 http://blog.csdn.net/github_33304260/article/details/62891137 let’s show time!
先知先觉
2019/01/21
7400
Android Studio 4.0.+NDK .so库生成打包
以Android studio 4.0.2来分析讲解,gradle=6.1.1,如图文和网上其他资料不一致,可能是别的资料版本较低而已
全栈程序员站长
2022/06/25
1.7K0
Android Studio 4.0.+NDK .so库生成打包
Android Studio2.2下NDK开发初试
很久没更博了,这次来记录一下如何在Android Studio2.2中进行NDK开发吧,NDK开发嘛,就是将C/C++的代码编译成so类库,供java调用(当然c调用java也是可以的),还记得以前没
forrestlin
2018/05/24
9830
Android Studio 2.2 Native 开发新特性
本文介绍了如何在Android Studio中通过CMake和NDK-Build构建原生库。首先介绍了Android Studio中CMake和NDK-Build的基本用法,然后详细描述了如何使用CMake和NDK-Build构建原生库。同时,还提供了在构建过程中可能遇到的常见问题和解决方案。此外,文章还介绍了如何使用Android Studio中的“监视”功能来查看构建进度和结果。
QQ音乐技术团队
2017/11/02
1.7K0
Android Studio 2.2 Native 开发新特性
Android JNI学习(二)——实战JNI之“hello world”
首先在Android Studio创建一个Android项目,包名为gebilaolitou.ndkdemo
隔壁老李头
2018/08/30
2.7K0
Android JNI学习(二)——实战JNI之“hello world”
NDK开发 从入门到放弃(一:基本流程入门了解)
● NDK Native Development Kit(NDK)是一系列工具的集合。它提供了一系列的工具,帮助开发者快速开发C/C++的动态库,并能自动将so和java一起打包成apk。
te大大
2021/11/18
8550
Android NDK and OpenCV development with Android Studio
Android NDK and OpenCV development with Android Studio
宅男潇涧
2018/08/01
7070
Android NDK and OpenCV development with Android Studio
Android NDK Makefile相关与示例
Android Studio 3之前,需要编写Android.mk和Application.mk文件。
AnRFDev
2021/02/01
8430
Androidstudio编译c/c++jni方法
开发环境:Androidstudio2.3 开发目的:在Androidstudio上编译c/c++jni并自动生成so库,在java类中引用。 开发过程中遇到的问题很多,但终归是成功了,记录下
fanfan
2018/01/24
9350
老司机带你快速掌握JNI
JNI 是一种用来使得java代码和c代码之间互相调用的技术。那么我们会问,java代码为什么要调用c代码呢?出现的场景很多,比如:效率问题,众所周知java是高级语言,java程序一般都会依赖各种库,java语句的执行时间一般比c语句要慢,因此在对效率要求严格的情况下可以通过jni用c代码来提高效率。
open
2020/03/19
8690
Android:JNI 与 NDK到底是什么?(含实例教学)
本文根据版本的不同介绍了两种在Android Studio中实现 NDK的方法:Android Studio2.2 以下 & 2.2以上
Carson.Ho
2019/02/22
3.4K0
快速上手ndk开发! Mac/Win下配置和使用!(2018.4重编版)
前言 说下我的AndroidStudio版本是2.3.3, 还没有更新到3.x(手动委屈), 主要还是想把手头项目搞定了再跳坑. 然后这次添加了mac平台的配置, 其实没多大区别, 当然, linu
sean_yang
2018/09/04
1K0
快速上手ndk开发! Mac/Win下配置和使用!(2018.4重编版)
Android Studio 简单生成so文件并调用「建议收藏」
注意:可以直接翻到后面的## 2021年新增部分看起了,当然前面看看也挺好,哈哈。
全栈程序员站长
2022/11/04
5.1K0
Android Studio 简单生成so文件并调用「建议收藏」
android Ndk JNI 入门
相信很多人对于NDK 开发都是懵逼的,比如都知道把加密的逻辑以及密钥放在so文件中,但是你知道怎么生成so文件吗?你知道开发jni吗?你熟悉jni语法吗?怎么配置android studio 中的NDK环境?此时你一定很懵逼,我也是从这过来的,我不能帮助你开发Ndk,但是我可以让你不懵逼。
Anymarvel
2018/10/22
1.3K0
android Ndk JNI 入门
★ Android基础篇 初步NDK开发 .SO文件生成与JIN调用
就是生产个so文件,并且可以调用C里面的方法。但为什么要写一篇满论坛多的是的文章呢,就是因为我踩了N多个坑,希望可以帮助大家,让大家少走弯路。 要加上这句代码:android.useDeprecatedNdk=true 很重要!很重要!
全栈程序员站长
2021/04/07
1.1K0
手把手教你如何在Android下进行JNI开发(入门)
(1)LOCAL_PATH:=$(callmy-dir) :指向当前目录的地址,包含该.mk
xuexiangjys
2022/04/18
4.7K0
手把手教你如何在Android下进行JNI开发(入门)
相关推荐
AndroidStudio创建JNI 工程与调用
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文