使用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 ...
随机推荐
- 代码管理(四)SVN和Git对比
在日常运维工作中,经常会用到版本控制系统,目前用到最广泛的版本控制器就是SVN和Git,那么这两者之间有什么不同之处呢?SVN(Subversion)是集中式管理的版本控制器,而Git是分布式管理的版 ...
- python .dcm文件读取,并转化为.jpg格式
.dcm文件是DICOM(Digital Imaging and Communications in Medicine)即医学数字成像和通信中记录医学图像和相关信息的文件,在用于医学图像处理的时候我们 ...
- QT creator 编辑器快捷键
QT creator 编辑器快捷键 一.快捷键配置方法: 进入“工具->选项->环境->键盘”即可配置快捷键. 二.常用默认快捷键: 编号 快捷键 功能 1 ...
- SQL Server中判断字符串出现的位置及字符串截取
首先建一张测试表: )); insert into teststring values ('张三,李四,王五,马六,萧十一,皇宫'); 1.判断字符串中某字符(字符串)出现的次数,第一次出现的位置最后 ...
- sublime unityshaderplugin
- [na]tcp&udp扫描原理(nmap常用10条命令)
nmap软件使用思路及常见用法 Nmap高级用法与典型场景 namp -sn 4种包 使用nmap -sn 查询网段中关注主机或者整个网段的IP存活状态 nmap -sn nmap针对局域网和广域网( ...
- [jk]服务器远控卡及kvm切换器
远控卡的需求 经常我们有这么一个需求,那就是某一台器服务器突然宕机,不能启动,而机房却在外地.解决这个问题的方法有两种,一是联系机房人员,二是通过idrac卡远程连接.我们必须根据事情的轻重缓急,来选 ...
- jira 跟工时有关的配置文件
./atlassian-jira/WEB-INF/classes/jpm.xml 关建字:jira.timetracking.hours.per.day <property> <ke ...
- 菜鸟译文(一)——Java中的继承和组合
阅读英文的能力对于程序员来说,是很重要的.这几年也一直在学习英文,今天心血来潮,就在网上找了一篇简短的博文翻译一下.水平一般,能力有限,还请各位看官多多指点. 译文: 本文将会举例说明Java中继承和 ...
- angular学习笔记(三十)-指令(10)-require和controller
本篇介绍指令的最后两个属性,require和controller 当一个指令需要和父元素指令进行通信的时候,它们就会用到这两个属性,什么意思还是要看栗子: html: <outer‐direct ...