Android Studio中实现NDK开发较之前Eclipse+Cygwin,方便了很多。

本文以最简单的从C程序中获取字符串,并显示到MainActivity的TextView上为例进行NDK开发的基本流程。

准备

NDK开发环境

  在安装好的Android Studio上,在SDK Manager中进行NDK的下载安装;或直接去https://developer.android.com/ndk/downloads/index.html上下载对应的安装包,并解压到sdk的ndk-bundle下。

  设置相关的环境变量,建议将android-v7, v4等工具也添加到环境变量中。

实现步骤

  创建Project

  在app下创建一个名为jni的目录(依次点击:new folder jni-folder)

  在gradle_properties文件中加入:android.useDeprecatedNdk=true

  创建一个类NdkUtil,在其中声明native方法

      public class NdkUitls {
public native String getCLanguageString();
}  

  在terminal中使用命令行,在app\build\intermediates\classes\debug下,使用javah -jni lab.example.NdkUtil[根据实际情况而定]。在该目录下回产生一个.h文件,打开该文件后,复制其中的内容。

  

  

  在app目录下新建一个jni目录(new folder jni-folder),并创建一个C文件,粘贴.h中的内容。并作相应的修改。

  在app module目录下的build.gradle中,找到gradle文件的defaultConfig,添加ndk配置信息
  ndk{
    moduleName "YourJniLibName"
    abiFilters "armeabi", "armeabi-v7a", "x86"
  }

  

  在代码NdkUtil中加载给类库YourniLibName:
    static{
      System.loadLibrary("YourJniLibName");
    }

  编译,运行:

Android Studio NDK初探的更多相关文章

  1. Android Studio NDK编程初探

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

  2. Android Studio NDK环境配置

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

  3. 【Android】Android Studio NDK 开发

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

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

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

  5. android studio ndk配置和ndk开发

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

  6. android studio ndk使用openMP

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

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

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

  8. Android Studio NDK 学习之接受Java传入的Int数组

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

  9. android studio ndk 调试

    一: 先看看用 ndk-gdb 手动调试 这种方法只适用于手动编写 Android.mk 的情况,因为我们要手动 build debug 版本的 .so 文件.具体可以参考我的前一篇文章. 1 And ...

随机推荐

  1. Vue.js报错Failed to resolve filter问题原因

    Vue.js报错Failed to resolve filter问题原因 金刚 vue Vue.js js javascript 之前使用vue.js写分页功能时,写了一个过滤器,发现一个比较奇怪的错 ...

  2. [C#6] 3-null 条件运算符

    0. 目录 C#6 新增特性目录 1. 老版本的代码 namespace csharp6 { internal class Person { public string Name { get; set ...

  3. [Erlang 0104] 当Erlang遇到Solr

        Joe Armstrong的访谈中有一段关于"打开黑盒子"的阐述,给我留下很深的印象:Joe Armstrong在做XWindows开发时没有使用对应的类库,而是在了解XW ...

  4. Linked Server: EXECUTE permission denied on object 'xp_prop_oledb_provider', database 'master', owner 'dbo'

    问题出现环境: 使用SQL Server Management Studio 2008 连接到SQL Server 2000的数据库,点击其中一个Oracle链接服务器,单击"目录" ...

  5. hive load数据为null

    建表语句: CREATE EXTERNAL TABLE IF NOT EXISTS student2 > (sno INT,sname STRING,age INT,sex STRING) &g ...

  6. p2p tcp nat 原理图+源码(原创)

    现今网上p2p的 udp nat穿透 文章 多如牛毛, p2p tcp nat的文章寥寥无几 ,up主研究了几天 终于有所收获,特来向大家分享,请大家多多支持! 1.首先你要有台外网服务器 或者 电信 ...

  7. Ubuntu 网络参数设置

    修改网络设置 sudo vim /etc/network/interfaces 修改计算机名 sudo vim /etc/hostname sudo vim /etc/hosts

  8. 固态硬盘与机械硬盘 SQL Server 单表插入性能对比测试

    测试环境

  9. 在线倍增法求LCA专题

    1.cojs 186. [USACO Oct08] 牧场旅行 ★★   输入文件:pwalk.in   输出文件:pwalk.out   简单对比时间限制:1 s   内存限制:128 MB n个被自 ...

  10. Java集合之泛型的使用

    Java集合之泛型的使用 泛型提供了一种轻便灵活的数据操作,数据的安全性相对提高. 泛型提供了对列表元素的约束条件,比如ArrayList有序链表,可存储任意类型的元素. 此处构建一个ArrayLis ...