使用Android Studio进行NDK开发
Step1:创建native方法
很easy,仅仅须要给定义好的方法加上native关键词就可以
注意:由于该方法的详细实现是在c++中详细实现的。所以相似于接口方法不须要加{}。
Step2:生成class文件(多数情况可忽略)
大多数情况下class文件是已经生成的。可是在刚进行改动或者代码中出现错误时,有可能会影响到class文件的生成,这时仅仅须要又一次生成一下就能够了。步骤为菜单条Build==>Make Project(若存在错误。修正后又一次尝试本操作就可以)
Step3:生成.h文件
点击View->Tool Windows->Terminal,将命令行窗体打开,相当于windows下的cmd窗体。
cd app/src/main/java
将路径切换到app/src/main/java
javah -d ../jni collector.com.indoorun.orientionsensorcollector.JNI
将包括native方法的类编译连接到.h文件
此时项目中已经生成了jni目录和.h文件(其余文件是后来加入的。请先无视)
Step4:实现c/c++文件
将上一步生成的.h文件复制一份,后缀名改成.cpp(个人喜欢c++,用c的话.c就可以),去除头尾和凝视部分。将方法详细实现,这一步骤须要一定的c/c++基础。
Step5:配置gradle文件
改动相应module的build.gradle文件(配置ndk)
改动local.properties文件(值得ndk路径,没有的话自己去下载个)
改动gradle.properties文件(开启ndk编译权限)
Step6:生成.so文件
执行完毕后的结果:
Step7:使用jni
在java代码中使用载入so库(建议写在Application中或者在jni类中用static代码块)
System.loadLibrary(“InertialJNI”);//你生成so文件时取的名字。
然后在你须要用到的地方当成一般java方法一样调用就可以了。
(确保使用前已经load)
以上~一切搞定~直接run就好了~
使用Android Studio进行NDK开发的更多相关文章
- 使用Android Studio进行ndk开发的准备
1. gradle-ex2. ndk开发包3. 项目目录结构4. lldb调试器 1. 一般来说gradle不是必需的,gradle也是可以进行ndk编译的,然而你需要在编译时使用更多(多于一个)c+ ...
- Android Studio C/C++开发环境配置
Android Studio C/C++开发环境配置 我的开发环境 : Win 10 + android studio 1.5 一, 安装NDK 开发环境: 1. Settings -> ...
- 【Android Studio安装部署系列】二十五、Android studio使用NDK生成so文件和arr文件
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 Android Studio使用ndk的简单步骤. NDK环境搭建 下载NDK 下载链接:https://developer.and ...
- Android studio 使用NDK工具实现JNI编程
前言: Android开发中常常会使用到第三方的.so库.在使用.so库的时候就要用到JNI编程.JNI是Java Native Interface的缩写.它提供了若干的API实现了Java和其它语言 ...
- Android Studio 之 NDK篇
由于工作内容的关系,对于NDK的工作涉及比较广(保密性,安全性),所以本章内容讲述一下NDK的基本使用过程. 网上也有很多这样的教程或者描述,但描述的并不完全 开发工具:Android Studio ...
- Mac下Android studio 之NDK配置教程(一)
Mac下Android studio 之NDK配置教程(一) 1.概述 近期项目全线转移到Mac下使用使用Android studio开发. 遇到关键代码封装到 ***native***层,此时在wi ...
- IDEA插件(Android Studio插件)开发示例代码及bug解决
IDEA插件(Android Studio插件)开发示例代码及bug解决 代码在actionPerformed方法中,有个AnActionEvent e 插件开发就是要求我们复写上述的这个方法即可,在 ...
- 用Android studio进行 OpenCV 开发的第一个项目
我的天! 折腾了好久终于搭建成功了第一个项目. 项目环境: Windows 7 家庭普通版 64位 Android studio 1.5.1 OpenCV-2.4.9-android-sdk 基于 ...
- Android studio 百度地图开发(3)地图导航
Android studio 百度地图开发(3)地图导航 email:chentravelling@163.com 开发环境:win7 64位,Android Studio,请注意是Android S ...
随机推荐
- golang 学习笔记 ---make/copy/append
package main import ( "fmt" ) func main() { a := [...]int{0, 1, 2, 3, 4, 5, 6, 7} s := mak ...
- MFC动态按钮的创建及其消息响应 和 自定义消息
原文链接: http://www.cnblogs.com/gaohongchen01/p/4046525.html 动态按钮(多个)的创建: 1.在类中声明并定义按钮控件的ID #define IDC ...
- asp.net中WinForm使用单例模式示例
例如在Windows应用程序中用下面代码打开一个窗体: 代码如下 复制代码 private void button1_Click(object sender, EventArgs e){ (new A ...
- php开启与关闭错误提示
windows系统开关php错误提示 如果不具备修改php.ini的权限,可以将如下代码加入php文件中: 代码如下 复制代码 ini_set("display_errors", ...
- debian 8 解压安装mysql(版本5.7.19)
debian 8 解压安装mysql(版本5.7.19)一.下载 根据目标主机的型号官网下载mysql安装包如: mysql-server_5.7.19-1debian8_amd64.deb-bund ...
- [转]Java加密算法
如基本的单向加密算法: BASE64 严格地说,属于编码格式,而非加密算法 MD5(Message Digest algorithm 5,信息摘要算法) SHA(Secure Hash Algorit ...
- maven pom文件简单模板和配置详解
https://blog.csdn.net/earbao/article/details/49924943 maven pom文件简单模板和配置详解
- springboot 利用configureMessageConverters add FastJsonHttpMessageConverter 实现返回JSON值 null to ""
/** * 文件名:@WebConfiguration.java <br/> * @author tomas <br/> import com.alibaba.fastjson ...
- ROC 曲线简要解释
阳性 (P, positive)阴性 (N, Negative)真阳性 (TP, true positive):正确的肯定.又称:命中 (hit)真阴性 (TN, true negative):正确的 ...
- MySQL与Oracle之间互相拷贝数据的Java程序
因为工作需要,先是需要将一个小型的MySQL数据库中的数据拷贝到Oracle中:近期又有需要将一个中型的Oracle数据库拷贝到MySQL中.曾经找过网上各种转换工具,大多收费的,自己写个吧,还一切可 ...