Android Studio Ndk 编程

现在开发Android程序基本都已经从Eclipse转到了Android Studio了, 最近项目需求, 需要用到ndk编程, 于是就折腾了一下。

开发环境

  • Android Studio 1.5.1
  • android-ndk-r10e
  • gradle 2.8


首先我们新建一个工程叫做NdkDemo, 创建后的工程目录结构如下

然后我们打开gradle.properties文件, 在文件的尾端写一句, 如果没有写这一句会编译不通过

android.useDeprecatedNdk=true

接着配置ndk路径, 点击左上角File然后选择Project Structure(或者直接点击红框标注的那个按钮)进入配置界面, 然后在红框内配置下载好的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源码

时间: 2024-08-03 11:11:32

Android Studio Ndk 编程的相关文章

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

一,下载 安装android-ndk开发包 NDK各个版本链接二,新建项目NDKDemo,选择空Activity就可以:(注:Android studio 2.2,可通过SDK Tools 添加LLDB,CMake,更方便的开发jni程序了) 三,按F12,配置项目NDK路径: 四,在MainActivity中添加如下代码: static {    System.loadLibrary("MyJni");//导入生成的链接库文件}public native String getStri

android studio NDK 开发初探

android studio NDK 开发初探 环境配置 1)下载ndk 2)在android studio中配置ndk 路径 3)配置gradle 在gradle.properties中加入 android.useDeprecatedNdk=true配置 开启ndk 在开发过程中我们有时还会用到c++中到stl库这时我们就需要在build.gradle 中加入 defaultConfig { ndk { moduleName "jnitest" stl "stlport_s

Android Studio NDK开发

整理完Eclipse的NDK开发,再整理下Android Studio的.. 一个比较不错的百度网盘: http://pan.baidu.com/share/home?uk=2383159761  经常更新最新的Android方面的开发包,可以到里面下载到ndk的包 创建一个Android的工程,放一个TextView用于显示文字,功能很简单,从native层获取字符串并显示到TextView上 然后编写相关代码: public class MainActivity extends AppCom

超全Android JNI&NDK编程总结

由于网上关于JNI/NDK相关的知识点介绍的比较零散而且不具备参照性,所以写了这篇JNI/NDK学习笔记,便于作为随时查阅的工具类型的文章,本文主要的介绍了在平时项目中常用的命令.JNI数据类型.签名等,便于查阅相关资料.文末相关参考资料比较适合刚接触或者不熟悉Android NDK开发的朋友参阅. 常用命令 javac 编译java源文件生成.class文件 由于JNI对应的头文件由javah工具根据对应的.class文件生成,所以在进行JNI编程之前,写好Java代码后需要先编译,在使用ja

Android Studio NDK及so文件开发

前言 什么是NDK? NDK全称是Native Development Kit,NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk.NDK集成了交叉编译器(交叉编译器需要UNIX或LINUX系统环境),并提供了相应的mk文件隔离CPU.平台.ABI等差异,开发人员只需要简单修改mk文件(指出"哪些文件需要编译"."编译特性要求"等),就可以创建出so. 为什么使用NDK? 1.代码的保护.由于apk的ja

两分钟学会Android平台NDK编程(无须Eclipse和cygwin,可使用命令行打包多个so)

之前在进行cocos2dx开发时,已经详细介绍了如何将win32的c++代码移植到Android平台,当再次回顾时,发现一些基础的东西理解并不是很彻底,今天使用Android NDK提供的一个例子做一个简单的移植.在进行该demo前,请确认你已经配置了Android开发环境和安装了最新的Android NDK. 1.创建Android项目 创建一个Android项目 , 包名是com.example.hellojni,创建一个Activity作为程序进入的Acitivity,命名为HelloJn

Android平台NDK编程

转自:http://blog.csdn.net/wangbin_jxust/article/details/37389383 之前在进行cocos2dx开发时,已经详细介绍了如何将win32的c++代码移植到Android平台,当再次回顾时,发现一些基础的东西理解并不是很彻底,今天使用Android NDK提供的一个例子做一个简单的移植.在进行该demo前,请确认你已经配置了Android开发环境和安装了最新的Android NDK. 1.创建Android项目 创建一个Android项目 ,

[Android Studio][NDK]Execution failed for task ':app:compileDebugNdk'. Error Code:2

Execution failed for task ':app:compileDebugNdk'. > com.android.ide.common.internal.LoggedErrorException: Failed to run command: C:\Users\sodinochen\AppData\Local\Android\ndk-r10b\ndk-build.cmd NDK_PROJECT_PATH=null APP_BUILD_SCRIPT=C:\Users\sodinoch

Android Studio JNI编程

操作步骤: 配置好NDK开发环境 指明ndk路径 可以在local.properties中手动输入ndk路径,或者用Studio菜单栏File--Project Structure--Android NDK Location中点击选中ndk路径. 修改build.gradle配置 工程中共有两个build.gradle配置文件,我们要修改的是在<Project>\app\build.gradle这个文件(就是Module:app).为其在defaultConfig分支中增加上 ndk { mo