Android Studio NDK环境配置
本文参考:Android Studio NDK环境配置及JNI使用方法:http://blog.csdn.net/tongseng/article/details/53005123
并添加自己的实践:
1.前言
什么是NDK?
NDK全称是Native Development Kit,NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和Java应用一起打包成apk。NDK集成了交叉编译器(交叉编译器需要UNIX或Linux系统环境),并提供了相应的mk文件隔离CPU、平台、ABI等差异,开发人员只需要简单修改mk文件(指出“哪些文件需要编译”、“编译特性要求”等),就可以创建出so。
为什么使用NDK?
1. 代码的保护。由于apk的java层代码很容易被反编译,而C/C++库反汇难度较大。
2. 可以方便地使用现存的开源库。大部分现存的开源库都是用C/C++代码编写的。
3. 提高程序的执行效率。将要求高性能的应用逻辑使用C开发,从而提高应用程序的执行效率。
4. 便于移植。用C/C++写得库可以方便在其他的嵌入式平台上再次使用。
什么是JNI?
JNI的全称是Java Native Interface,它提供了若干的API实现了Java和其他语言的通信(主要是C和C++)。
为什么使用JNI?
JNI的目的是使java方法能够调用c实现的一些函数。
安卓中的so文件是什么?
Android中用到的so文件是一个C++的函数库。在Android的JNI中,要先将相应的C语言打包成so库,然后导入到lib文件夹中供java调用。
Android Studio NDK及so文件开发
2. NDK安装及配置
NDK安装
Android Studio从1.3 Beta1开始,支持了NDK。之前则不支持,所以我们建议使用新版的编辑器。
如果未安装,点击安装下载;打开Tools->Android->SDK Manager->SDK Tools选中LLDB和NDK,点击确认,软件会自动安装NDK。

安装文件在:

将该路径配置到你系统变量的path里面去,如下:

然后将 NDK_ROOT追加到 Path环境变量下-->;%NDK_ROOT%

打开 cmd,输入 ndk-build,看看是否有东西输出。
3. JNI的使用方法

要先build一下project,具体方法为:Build->Rebuild Project。

>>相关阅读:Android Studio 新建 NDK Javah生成JNI头文件出现找不到类的错误
>>相关阅读:NDK-JNI实战教程(一) 在Android Studio运行第一个NDK程序
NDK下载:https://developer.android.com/ndk/downloads/index.html
第二种方法:NDK for Eclipse
本文参考:在eclipse中android NDK开发环境的搭建:http://blog.csdn.net/lovexieyuan520/article/details/43212333 以及 Eclipse下Android的NDK开发环境配置:http://www.cnblogs.com/pplxlee/p/5559223.html
网上有很多关于搭建Android NDK开发环境的文章,发现很多都不能用,大部分都是过时的,比如安装什么Cygwin,在eclipse里面新建什么Builder之类的,有的只有部分内容。经过一天的摸索终于搭建好了android NDK开发环境,包括C/C++的调试等,废话不多说,开始我们的搭建流程。
首先、下载android NDK,得到一个android-ndk-r10d-windows-x86_64.exe的安装文件,双击解压得到一个android-ndk-r10d的文件夹。安装android NDK,前提是你必须是安装android sdk,能够看到这儿,应该是已经安装android sdk了的,点击菜单Window-->Preferences-->Android-->NDK,在NDK Location中输入之前android-ndk-r10d的全路径,点击OK,截图如下:
Android Studio NDK环境配置的更多相关文章
- android studio ndk 环境配置成eclipse模式
gradle.properties: android.useDeprecatedNdk=true build.gradle: android { ... sourceSets.main { jni.s ...
- android studio 开发环境配置
android studio 开发环境配置 参考: 第一次使用Android Studio时你应该知道的一切配置 https://www.cnblogs.com/qianguyihao/p/43909 ...
- Android Studio开发环境配置(win7)
由于近期,google网站封锁,导致eclipse配置android环境时,无法在线更新API和配置ADT.个人尝试之后,发现很多地方配置因为版本不合适而配置不成功,(ps:当然你FQ,或者下载到对应 ...
- Android Studio开发环境配置以及相关说明
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 这里简单记录下在开发的时候使用的Android Studio开发环境版本以及相关注意事项. 一般来讲,每隔一段时间就要检查下Andr ...
- Android之NDK环境配置+JNI开发+so文件编译
前言 这边Android作为日常记录,虽然破坏了文章队形~ 最近人工智能挺火的,也稍微了解了一些库,比如关于视觉库openCV.要在安卓下调用这些C/C++库,需要用到JNI开发,在此把过程分享一 ...
- Android开发:Android Studio开发环境配置
一.android studio下载: 1.Windows版: 下载地址:https://pan.baidu.com/s/1-sg4dN_2B5nn2YJf-C7XLQ 提取码:yedc 2.Mac版 ...
- android ndk环境配置(转)
转载自:http://jingyan.baidu.com/article/3ea51489e7a9bd52e61bbac7.html android sdk 更新到 r23 时,eclipse 自带 ...
- 【Android】Android Studio NDK 开发
Android Studio NDK 开发 记录在Android Studio中NDK简单开发的步骤 用到的Android Studio版本为3.5. 配置NDK 下载NDK 一般在SDK下已经有自带 ...
- Android studio 开发环境搭建
Android studio 开发环境搭建 一.环境: 下载java jdk:http://www.oracle.com/technetwork/cn/java/javase/downloads/jd ...
随机推荐
- IO模型之IO多路复用 异步IO select poll epoll 的用法
IO 模型之 多路复用 IO 多路复用IO IO multiplexing 这个词可能有点陌生,但是如果我说 select/epoll ,大概就都能明白了.有些地方也称这种IO方式为 事件驱动IO ( ...
- git之GitHub Pages
git之GitHub Pages GitHub Pages是github的一项很实用的功能,它可以让我们将github里面的静态网站的代码在线上展示出来,可以用来做项目展示和个人博客的载体. 1.将 ...
- HALCON形状匹配(转)
LIntExport Herror create_shape_model( const Hobject& Template , //reduce_domain后的模板图像 Hlong N ...
- 【微信小程序常识】如何绑定微信小程序体验者
转自:https://blog.csdn.net/futruejet/article/details/53223826 一.操作步骤 (1)打开微信小程序公众平台->点击右边菜单[用户身份]-& ...
- oracle常用函数总结(二)
之前也有写过“oracle常用函数总结(一)”,为了尽量找全常见oracle函数,笔者特意查找了相关资料来作为参考,下边给大家罗列出来,部分和之前有重复的,希望能帮到大家! 列举了31个函数和1个分组 ...
- LNK2026: 模块对于 SAFESEH 映像是不安全的<转>
转自VC错误:http://www.vcerror.com/?p=162 错误描述: 在使用VS2012编译工程时,提示错误:" error LNK2026: 模块对于 SAFESEH 映像 ...
- Invalid command 'Header', perhaps misspelled or defined by a module not included in the server configuration
在Apache的配置文件 httpd.conf 中开启 LoadModule headers_module modules/mod_headers.so 即可解决这个问题.
- js中function的与众不同
js中function的与众不同在于可以被调用
- easyui 验证框
转自:http://blog.csdn.net/pqszq1314/article/details/25896163 例如 校验输入框只能录入0-1000之间 最多有2位小数的数字 表单<inp ...
- JAVA中集合转数组遍历
JAVA中集合的遍历的一种方法时集合转数组遍历,也是就调用Collection中的toArray(). 代码: public static void main(String[] args) { ...