Android Studio Ndk 编程
如今开发Android程序基本都已经从Eclipse转到了Android Studio了, 近期项目需求, 须要用到ndk编程, 于是就折腾了一下。
开发环境
- Android Studio 1.5.1
- android-ndk-r10e
- gradle 2.8
首先我们新建一个project叫做NdkDemo, 创建后的project文件夹结构例如以下
然后我们打开gradle.properties文件, 在文件的尾端写一句。 假设没有写这一句会编译不通过
android.useDeprecatedNdk=true
接着配置ndk路径, 点击左上角File然后选择Project Structure(或者直接点击红框标注的那个button)进入配置界面, 然后在红框内配置下载好的ndk路径就可以。
到此,配置工作就所有完毕。 以下进行开发相关的工作。
相信在Eclipse进行ndk编程过的同学都知道我们要去编写Android.mk, 可是在Android Studio是全然不用我们去编写的, 我们仅仅须要在gradle下写几个简单的语句。 Studio就会自己主动帮我们写好Android.mk,很方便。
defaultConfig {
...
ndk{
moduleName "ndk-demo" //要引用module的名字
ldLibs "log" //引用库的名字(选填)
abiFilters "armeabi" //配置须要编译出那些版本号的so库(假设不写,就编译出所有版本号的so库)
}
}
以上就是app文件夹的build.gradle的配置, 仅仅须要在defaultConfig 节点下写入ndk相关的配置就能够了。
接着我们新建一个Comman类, 写一个本地函数, System.loadLibrary的參数填的就是刚才在build.gradle配置的moduleName
public class Command {
public static native String getStringFromC();
static{
System.loadLibrary("ndk-demo");
}
}
然后我们右键app文件夹, 选择新建一个jni文件夹
点击下方的控制台Tab。 输入一下命令, 就会发现奇妙的在jni文件夹下会自己主动生成相关的.h文件
解释一下两句命令行的意思。第一句意思是进入到app/src/main/java文件夹下。第二句中, javah是jdk一个生成头文件的工具。 -d ../jni 表示生成的文件要放到上一层文件夹的jni文件夹下。 com.zwf.ndkdemo.ndk.Command就是刚才我们写的Command的全路径。
有了头文件我们就能够開始编写相关的c文件了, 在jni文件夹下新建一个c文件跟刚才的头文件名称字一样。 写入相关的功能。
点击执行, 成功!
那么。 我们生成的so库在哪里找呢。
完毕!
Android Studio Ndk 编程的更多相关文章
- Android Studio NDK编程初探
继上一篇学习了如何使用NDK编译FFMPEG后,接下来就是要学习如何在Android Studio中使用了. 经过参考和一系列的摸索,记录下具体步骤. 创建C++ Support的Android St ...
- Android Studio NDK编程-环境搭建及Hello!
一,下载 安装android-ndk开发包 NDK各个版本链接二,新建项目NDKDemo,选择空Activity就可以:(注:Android studio 2.2,可通过SDK Tools 添加LLD ...
- Android Studio NDK编程-环境搭建及Hello!
一,下载 安装android-ndk开发包 NDK各个版本链接二,新建项目NDKDemo,选择空Activity就可以:(注:Android studio 2.2,可通过SDK Tools 添加LLD ...
- Android Studio NDK环境配置
本文参考:Android Studio NDK环境配置及JNI使用方法:http://blog.csdn.net/tongseng/article/details/53005123 并添加自己的实践: ...
- 【Android】Android Studio NDK 开发
Android Studio NDK 开发 记录在Android Studio中NDK简单开发的步骤 用到的Android Studio版本为3.5. 配置NDK 下载NDK 一般在SDK下已经有自带 ...
- Android Studio NDK初探
Android Studio中实现NDK开发较之前Eclipse+Cygwin,方便了很多. 本文以最简单的从C程序中获取字符串,并显示到MainActivity的TextView上为例进行NDK开发 ...
- android studio ndk配置和ndk开发
配置开发环境: 1:下载ndk,导入android studio中. 2:在项目中引入NDK 3:在计算机path变量中导入NDK路径,在编译.h文件的时候会用到. 一:建立java的native ...
- android studio ndk使用openMP
好久没碰ndk了,之前都是在eclipse下写makefile配置c++程序的,现在发现主流都是用android studio,eclipse俨然已经被遗弃了,正好最近项目需要用openMP做算法加速 ...
- Android Studio NDK 学习之接受Java传入的字符串
本博客是基于Android Studio 1.3 preview版本,且默认你已经安装了Android SDK, Android NDK. 用Android Studio新建一个工程叫Prompt,其 ...
随机推荐
- linux各种版本查看方法
1.linux内核版本 cat /proc/version Linux version 4.13.0-39-generic (buildd@lgw01-amd64-038) (gcc version ...
- Jeddict:怎样在window系统下,成功打包Angular
在Jeddict的应用过程中,发现了一个问题.如果前端视图选择Angular(具体版本,需要根据插件版本确定.此处理解为非Angular JS),那么在自动构建的过程中,会发现,每当在安装NodeJS ...
- BZOJ-1221 软件开发
这题是基于一道经典的费用流模型. 将每天拆成两个点i和j,新增源和汇并建立六种边: 1.从源出发到每个i点,flow为+∞,cost为每条新餐巾的价值,表示这一天所使用的餐巾中来自购买的餐巾 2.从源 ...
- 大杂烩 Classpath / Build path / Debug关联源码 / JDK&JRE区别
Classpath的理解及其使用方式 原文地址:http://blog.csdn.net/wk1134314305/article/details/77940147?from=bdhd_site 摘要 ...
- java面试题之spring aop中jdk和cglib哪个动态代理的性能更好?
在jdk6和jdk7的时候,jdk比cglib要慢: 在jdk8的时候,jdk性能得到提升比cglib要快很多: 结论出自:https://www.cnblogs.com/xuliugen/p/104 ...
- A* k短路 学习笔记
题目大意 n个点,m条边有向图,给定S,T,求不严格k短路 n<=1000 m<=100000 k<=1000 不用LL 分析 A*算法 f(i)表示从S出发经过i到T的估价函数 \ ...
- javaweb学习总结(九)—— 通过Servlet生成验证码图片(转)
(每天都会更新至少一篇以上,有兴趣的可以关注)转载自孤傲苍狼 一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类,如下:
- *NOI热身赛C. 小x的城池
码农题gun.
- vue2 父子组件间通信
父组件往子组件传值 props 传text father.vue <template> <div class="father"> {{'我是父组件'}} & ...
- JS函数调用原理($.ajax原理)
参考四种函数调用:http://www.cnblogs.com/qlqwjy/p/7660013.html http://www.cnblogs.com/qlqwjy/p/7660375.html 1 ...