如今开发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库在哪里找呢。

完毕!

Demo源代码

Android Studio Ndk 编程的更多相关文章

  1. Android Studio NDK编程初探

    继上一篇学习了如何使用NDK编译FFMPEG后,接下来就是要学习如何在Android Studio中使用了. 经过参考和一系列的摸索,记录下具体步骤. 创建C++ Support的Android St ...

  2. Android Studio NDK编程-环境搭建及Hello!

    一,下载 安装android-ndk开发包 NDK各个版本链接二,新建项目NDKDemo,选择空Activity就可以:(注:Android studio 2.2,可通过SDK Tools 添加LLD ...

  3. Android Studio NDK编程-环境搭建及Hello!

    一,下载 安装android-ndk开发包 NDK各个版本链接二,新建项目NDKDemo,选择空Activity就可以:(注:Android studio 2.2,可通过SDK Tools 添加LLD ...

  4. Android Studio NDK环境配置

    本文参考:Android Studio NDK环境配置及JNI使用方法:http://blog.csdn.net/tongseng/article/details/53005123 并添加自己的实践: ...

  5. 【Android】Android Studio NDK 开发

    Android Studio NDK 开发 记录在Android Studio中NDK简单开发的步骤 用到的Android Studio版本为3.5. 配置NDK 下载NDK 一般在SDK下已经有自带 ...

  6. Android Studio NDK初探

    Android Studio中实现NDK开发较之前Eclipse+Cygwin,方便了很多. 本文以最简单的从C程序中获取字符串,并显示到MainActivity的TextView上为例进行NDK开发 ...

  7. android studio ndk配置和ndk开发

    配置开发环境: 1:下载ndk,导入android studio中. 2:在项目中引入NDK   3:在计算机path变量中导入NDK路径,在编译.h文件的时候会用到. 一:建立java的native ...

  8. android studio ndk使用openMP

    好久没碰ndk了,之前都是在eclipse下写makefile配置c++程序的,现在发现主流都是用android studio,eclipse俨然已经被遗弃了,正好最近项目需要用openMP做算法加速 ...

  9. Android Studio NDK 学习之接受Java传入的字符串

    本博客是基于Android Studio 1.3 preview版本,且默认你已经安装了Android SDK, Android NDK. 用Android Studio新建一个工程叫Prompt,其 ...

随机推荐

  1. Django多变关联、增加数据、删除数据

    建立表之间的关联关系: models.py里面对表的字段及外键关系的设置如下: from django.db import models # Create your models here. #出版社 ...

  2. codeM预赛

    [编程|1000分] 音乐研究 时间限制:1秒空间限制:32768K 题目描述 美团外卖的品牌代言人袋鼠先生最近正在进行音乐研究.他有两段音频,每段音频是一个表示音高的序列.现在袋鼠先生想要在第二段音 ...

  3. iOS学习笔记33-UICollectionView入门

    一.UICollectionView介绍 UICollectionView和UICollectionViewController类是iOS6新引进的API,用于展示集合视图,布局更加灵活,可实现多列布 ...

  4. 二进制<4>

    位运算简介及实用技巧(四):实战篇 下面分享的是我自己写的三个代码,里面有些题目也是我自己出的.这些代码都是在我的Pascal时代写的,恕不提供C语言了.代码写得并不好,我只是想告诉大家位运算在实战中 ...

  5. mysql经验总结

    1. 连接mysql遇到 Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2),mysql没有正常启动 $ ...

  6. 微信小程序红包开发思路 微信红包小程序开发思路讲解

    之前公司开发小程序红包,将自己在开发的过程中遇到的一些坑分享到了博客里.不少人看了以后,还是不明白怎么开发.也加了我微信咨询.所以今天,我就特意再写一篇文章,这次就不谈我开发中遇到的坑了.就主要给大家 ...

  7. 清澄 A1485. Catch The Penguins 抓企鹅

    试题来源 2013中国国家集训队论文答辩 问题描述 Xyz带着他的教徒们乘着科考船一路破冰来到了南极大陆,发现这里有许许多多的企鹅.邪恶的Xyz想要抓很多企鹅回去开动物园,当宠物玩.但动物保护协会很快 ...

  8. 【NOIP2016】愤怒的小鸟(状压DP)

    题意: Kiana最近沉迷于一款神奇的游戏无法自拔. 简单来说,这款游戏是在一个平面上进行的. 有一架弹弓位于(0,0)处,每次Kiana可以用它向第一象限发射一只红色的小鸟,小鸟们的飞行轨迹均为形如 ...

  9. 【CF652C】Foe Pairs(线性扫描)

    题意:给你1-n的一个排列和m组数对,问有多少区间不包含任意一个数对. (1 ≤ n, m ≤ 3·105) 思路:数据范围过大,不能用容斥原理 f[i]表示以位置i上的数为左端点,右端点最小到哪里 ...

  10. 用jquery写的position瀑布流布局

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...