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开发的更多相关文章

  1. 使用Android Studio进行ndk开发的准备

    1. gradle-ex2. ndk开发包3. 项目目录结构4. lldb调试器 1. 一般来说gradle不是必需的,gradle也是可以进行ndk编译的,然而你需要在编译时使用更多(多于一个)c+ ...

  2. Android Studio C/C++开发环境配置

    Android Studio C/C++开发环境配置  我的开发环境 : Win 10 + android studio 1.5   一, 安装NDK 开发环境: 1.  Settings -> ...

  3. 【Android Studio安装部署系列】二十五、Android studio使用NDK生成so文件和arr文件

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 Android Studio使用ndk的简单步骤. NDK环境搭建 下载NDK 下载链接:https://developer.and ...

  4. Android studio 使用NDK工具实现JNI编程

    前言: Android开发中常常会使用到第三方的.so库.在使用.so库的时候就要用到JNI编程.JNI是Java Native Interface的缩写.它提供了若干的API实现了Java和其它语言 ...

  5. Android Studio 之 NDK篇

    由于工作内容的关系,对于NDK的工作涉及比较广(保密性,安全性),所以本章内容讲述一下NDK的基本使用过程. 网上也有很多这样的教程或者描述,但描述的并不完全 开发工具:Android Studio ...

  6. Mac下Android studio 之NDK配置教程(一)

    Mac下Android studio 之NDK配置教程(一) 1.概述 近期项目全线转移到Mac下使用使用Android studio开发. 遇到关键代码封装到 ***native***层,此时在wi ...

  7. IDEA插件(Android Studio插件)开发示例代码及bug解决

    IDEA插件(Android Studio插件)开发示例代码及bug解决 代码在actionPerformed方法中,有个AnActionEvent e 插件开发就是要求我们复写上述的这个方法即可,在 ...

  8. 用Android studio进行 OpenCV 开发的第一个项目

    我的天! 折腾了好久终于搭建成功了第一个项目. 项目环境: Windows 7  家庭普通版  64位 Android studio 1.5.1 OpenCV-2.4.9-android-sdk 基于 ...

  9. Android studio 百度地图开发(3)地图导航

    Android studio 百度地图开发(3)地图导航 email:chentravelling@163.com 开发环境:win7 64位,Android Studio,请注意是Android S ...

随机推荐

  1. 代码管理(四)SVN和Git对比

    在日常运维工作中,经常会用到版本控制系统,目前用到最广泛的版本控制器就是SVN和Git,那么这两者之间有什么不同之处呢?SVN(Subversion)是集中式管理的版本控制器,而Git是分布式管理的版 ...

  2. python .dcm文件读取,并转化为.jpg格式

    .dcm文件是DICOM(Digital Imaging and Communications in Medicine)即医学数字成像和通信中记录医学图像和相关信息的文件,在用于医学图像处理的时候我们 ...

  3. QT creator 编辑器快捷键

    QT creator 编辑器快捷键 一.快捷键配置方法:   进入“工具->选项->环境->键盘”即可配置快捷键.     二.常用默认快捷键:       编号 快捷键 功能 1 ...

  4. SQL Server中判断字符串出现的位置及字符串截取

    首先建一张测试表: )); insert into teststring values ('张三,李四,王五,马六,萧十一,皇宫'); 1.判断字符串中某字符(字符串)出现的次数,第一次出现的位置最后 ...

  5. sublime unityshaderplugin

  6. [na]tcp&udp扫描原理(nmap常用10条命令)

    nmap软件使用思路及常见用法 Nmap高级用法与典型场景 namp -sn 4种包 使用nmap -sn 查询网段中关注主机或者整个网段的IP存活状态 nmap -sn nmap针对局域网和广域网( ...

  7. [jk]服务器远控卡及kvm切换器

    远控卡的需求 经常我们有这么一个需求,那就是某一台器服务器突然宕机,不能启动,而机房却在外地.解决这个问题的方法有两种,一是联系机房人员,二是通过idrac卡远程连接.我们必须根据事情的轻重缓急,来选 ...

  8. jira 跟工时有关的配置文件

    ./atlassian-jira/WEB-INF/classes/jpm.xml 关建字:jira.timetracking.hours.per.day <property> <ke ...

  9. 菜鸟译文(一)——Java中的继承和组合

    阅读英文的能力对于程序员来说,是很重要的.这几年也一直在学习英文,今天心血来潮,就在网上找了一篇简短的博文翻译一下.水平一般,能力有限,还请各位看官多多指点. 译文: 本文将会举例说明Java中继承和 ...

  10. angular学习笔记(三十)-指令(10)-require和controller

    本篇介绍指令的最后两个属性,require和controller 当一个指令需要和父元素指令进行通信的时候,它们就会用到这两个属性,什么意思还是要看栗子: html: <outer‐direct ...