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,其 ...
随机推荐
- iOS学习笔记29-系统服务(二)通讯录
一.通讯录 iOS中的通讯录是存储在数据库中的,由于iOS的权限设计,开发人员是不允许直接访问通讯录数据库的,实现通讯录操作需要使用到AddressBook.framework框架. AddressB ...
- 【bzoj2339】[HNOI2011]卡农 dp+容斥原理
题目描述 题解 dp+容斥原理 先考虑有序数列的个数,然后除以$m!$即为集合的个数. 设$f[i]$表示选出$i$个集合作为满足条件的有序数列的方案数. 直接求$f[i]$较为困难,考虑容斥,满足条 ...
- co模块总结
1.thunk函数 javascript中的thunk函数就是一个单参数函数,且该参数必须是一个callback函数,callback的签名必须为callback(err,args...); 所谓的t ...
- CF985F Isomorphic Strings (字符串Hash,巧解)
题目链接 题意翻译 给你一个长度为 \(n\) 的字符串,\(m\) 次询问. 问两个相同长度的子串是否匹配. 我们称两个子串是匹配的,当且仅当其满足: 其中一个子串的字母可替代另一个子串的字母 例如 ...
- bzoj 2330 [SCOI2011]糖果 差分约束模板
题目大意 幼儿园里有N个小朋友,lxhgww老师现在想要给这些小朋友们分配糖果,要求每个小朋友都要分到糖果.但是小朋友们也有嫉妒心,总是会提出一些要求,比如小明不希望小红分到的糖果比他的多,于是在分配 ...
- Milk Patterns(poj 3261)
题意:找出出现k次的可重叠的最长子串的长度. /* 求出height数组,二分答案,将height分组,看有没有一组个数大于K. WA了很多遍,最后看别人的题解,发现往字符串后面填了一个0,就可以AC ...
- POJ 2893 M × N Puzzle
逆序对 n 数码问题的扩展 对于一个n * m 的问题来说,结论和 列数 m 奇偶有关 对于 m 是奇数来说 , 两个局面互相可达,当且仅当这两个局面按顺序写成一个数列,这个数列的逆序对数的奇偶性相同 ...
- 洛谷 [P2887] 防晒霜
贪心 首先以 miSPF 为关键字降序排列,然后对于每一头奶牛寻找满足范围的 SPF 值最大的防晒霜用, 我们发现,因为已经按最小值降序排列,所以对于下界来说若当前奶牛满足,之后的奶牛肯定满足,对上界 ...
- C语言第四题
今天就一道题 阅读printf代码的具体实现,要求在阅读过程中要做下列的事 1.至少列出十个c标准库的方法,并且说明他们方法的含义,以及参数的含义 2.至少列出2个c标准库的引入(或者是依赖),并且说 ...
- 【NOIP2015】信息传递(强连通分量)
题意:找一张图中的最小环 O(n) 思路:强连通分量tarjan即可 注意环中节点数>1 ..]of longint; n,i,ans,tot,id,top,time,x:longint; pr ...