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. MVC MODEL Attribute 操纵速记

    目的: 扩充Attribute 任意读取并Render 需要的Attribute     用法: @Html.ParaLabelFor(x=>x.ServiceName):@Html.ParaN ...

  2. Windows 10 IoT Serials 2 - Windows 10 IoT RTM 升级教程

    7月29日,微软推出了Windows 10 for PC的正式版,其版本号是Build 10240.近两天官方说已经有4700万的下载安装量,同时这个数字还在不断攀升.另外,除了Windows 10 ...

  3. MySQL server version for the right syntax to use near 'TYPE=MyISAM'

    最近将一个版本为4.0.18-Max的MySQL数据库迁移到5.6.20-enterprise-commercial-advanced上.好吧,这是我迄今为止,见到过的最古老版本的MySQL数据库,这 ...

  4. ORA-19502: write error on file "xxxxx", block number xxxx

    错误现象: 在ORACLE 10g下为表空间IGNITE_EGVSQL01增加数据文件时,报如下错误: SQL> ALTER TABLESPACE IGNITE_EGVSQL01      AD ...

  5. web.xml is missing and <failOnMissingWebXml> is set to true 错误解决办法

    对web项目的解决方案: 右击项目——>Java EE Tools——>Generate Deployment Descriptor Stub. 然后系统会在src/main/webapp ...

  6. 【转载】Markdown使用笔记

    献给写作者的 Markdown 新手指南 http://www.jianshu.com/p/q81RER 「简书」作为一款「写作软件」在诞生之初就支持了 Markdown,Markdown 是一种「电 ...

  7. Tomjson - 一个"短小精悍"的 json 解析库

    Tomjson,一个"短小精悍"的 json 解析库,tomjson使用Java语言编写,主要作用是把Java对象(JavaBean)序列化为json格式字符串,将json格式字符 ...

  8. postman使用之三:API请求和查看响应结果

    请求 postman支持很多请求类型,界面左侧可以看到请求类型:get.post.put.patch等,右侧是发送和保存按钮,下方是请求支持的认证方式.信息头.信息体.私有脚本和测试结果.下面我们介绍 ...

  9. NOIP2001统计单词个数[序列DP]

    题目描述 给出一个长度不超过200的由小写英文字母组成的字母串(约定;该字串以每行20个字母的方式输入,且保证每行一定为20个).要求将此字母串分成k份(1<k<=40),且每份中包含的单 ...

  10. java1.8函数式编程概念

    有关函数式编程 ·1 函数作为一等公民 特点:将函数作为参数传递给另外一个函数:函数可以作为另外一个函数的返回值 ·2 无副作用 函数的副作用指的是函数在调用过程中,除了给出了返回值外,还修改了函数外 ...