基于Android Studio 的NDK之 “Hello,World!”

  • 环境

    Android Studio:1.3.2

    JRE:1.7.0

    Android SDK Tools:24.3.4

    Android NDK:r10e

  • Android Studio安装步骤略,下载地址:http://developer.android.com/tools/studio/index.html

    找到下载地址后,复制到迅雷下载后安装,Studio很好用的一个地方就是有更新直接下载安装,不用像Eclipse那样重新下载新版。

  • Android NDK下载地址:https://developer.android.com/tools/sdk/ndk/index.html

    同样迅雷下载安装,唯一提醒一点,先把安装包拷贝到要安装的目录,exe文件自动提取到当前目录下,害的我又拷贝了一般,3个多G呐!

    上述环境安装完毕,启动Android SDK Manager更新好Android SDK,进入正题;

  1. 首先Studio中新建一个工程,默认就是这个样子:

  2. 在Project的local.properties文件中告知Android Studio你的ndk所在目录:

    注意‘:‘和‘\‘要进行转义

    ndk.dir=D\:\\Android\\android-ndk-r10e

  3. 创建一个JNI文件(我放在一个单独的jni包中),简单的一个native方法add,计算两个整数相加的值:

  4. 接着我们就要写C层的代码了,在main文件夹下建立一个jni的子文件夹(跟java文件夹并列,Android会默认知道这事底层的代码源文件夹),声明头文件和源码文件:

    tips:可以使用javah -jni ‘your jni java class with package name‘来自动生成.h文件

    用法:打开命令行,切换到..\your project path\app\build\intermediates\classes\debug目录下,执行上述命令,然后把这个生成的.h文件拷贝到刚建立的jni目录下

  5. 建一个cpp文件,名称自己起名,我起名为math.cpp,实现头文件中声明的方法:
//
// Created by dell on 2015/9/10.
//

#include "math.h"

JNIEXPORT jint JNICALL Java_com_lbrant_jni_MathJNI_add
        (JNIEnv *env, jobject, jint a, jint b) {
    return a + b;
}

在gradle.properties中添加如下,不然编译器会提示错误:

android.useDeprecatedNdk=true

在app module中(注意不是项目根目录),配置ndk编译(这里只配置了moduleName和平台):

 defaultConfig {
    applicationId "com.lbrant.x_project"
    minSdkVersion 15
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"

    ndk {
        moduleName "math"
        abiFilters "armeabi", "armeabi-v7a", "x86"
    }
}

由于是JNI和应用层是在同一个工程中,直接运行系统会自动编译,生成Android.mk和对于so:

时间: 2024-12-11 07:18:26

基于Android Studio 的NDK之 “Hello,World!”的相关文章

Mac下Android studio 之NDK配置教程

Mac下Android studio 之NDK配置教程(一) 1.概述 最近项目全线转移到Mac下使用使用Android studio开发.遇到关键代码封装到 ***native***层,此时在win下的NDK配置步骤全部失效. 为此,花费了大量时间用来查阅资料,在此,记录下来,分享给大家供以后配置中作为参考. 2.环境 本人使用的开发配置 是:MAC OS 10.10 +androioid studio 1.2+android-ndk-r10e-darwin-x86_64+git .其他配置类

导入开源库到基于Android Studio构建的项目中

前两天,谷歌发布了Android Studio 1.0的正式版,也有更多的人开始迁移到Android Studio进行开发.然而,网上很多的开源库,控件等还是以前的基于Eclipse进行开发,很多人不知道怎么导入到自己的基于Android Studio项目中来,微博上也有人私信我,让我来写写,正好今天回来的比较早,就写写吧.主要介绍一下常见的一些导包的场景. 前言 --project //项目目录 | build.gradle //项目的gradle配置文件 | settings.gradle

Android Studio 使用NDK开发

Android Studio 使用NDK编程 使用Android Studio有半年多了,感觉很好用,不就感觉费劲的就是NDK的支持一直不是很好,再Bate版的时候好像0.4.x之前可以使用NDK,当然本身Android Studio本身是支持NDK编译的,下面我就来解释一下怎么使用Android Studio来编译. 很简单,首先要创建你的项目,创建完成之后点击项目右键new->Folder->JNI Folder,如图 然后就生成了jni文件夹 再往里面添加你的c/cpp文件和Androi

Android Studio 之 NDK篇

由于工作内容的关系,对于NDK的工作涉及比较广(保密性,安全性),所以本章内容讲述一下NDK的基本使用过程. 网上也有很多这样的教程或者描述,但描述的并不完全 开发工具:Android Studio 2.1.2 NDK版本:android-ndk-r10e,支持64位so库的编译 JDK版本:1.8 64位 使用步骤如下: 第一步:NDK环境的搭建 ①jdk,Android SDK这些准备充分(只要能正常使用Android Studio的,这一条基本不用考虑) ②下载NDK,可以通过Androi

Mac下Android studio 之NDK配置教程(一)

Mac下Android studio 之NDK配置教程(一) 1.概述 近期项目全线转移到Mac下使用使用Android studio开发. 遇到关键代码封装到 ***native***层,此时在win下的NDK配置步骤所有失效. 为此,花费了大量时间用来查阅资料,在此,记录下来,分享给大家供以后配置中作为參考. 2.环境 本人使用的开发配置 是:MAC OS 10.10 +androioid studio 1.2+android-ndk-r10e-darwin-x86_64+git . 其它配

【移动终端软件开发】2017-2018秋学期教材《Android移动应用设计与开发(第2版)——基于Android Studio开发环境》

经过仔细比较,最终选定2017-2018秋季教材: <Android移动应用设计与开发(第2版)——基于Android Studio开发环境> 出版日期:2017-03-01  书号:978-7-115-44780-7  定价:49.80 元   页数:268 第1章 Android简介 11.1 Android发展概述 11.2 配置开发环境 31.2.1 安装JDK 31.2.2 安装Android Studio 51.2.3 安装SDK 51.3 本章小结 7习题 7 第2章 Andro

Mac下Android studio 之NDK配置教程(二)

Mac下Android studio 之NDK配置教程(二) (一)简述 从上一篇NDK配置教程(一) 中,我 简单的阐述了MAC下NDK的基本解压和环境配置步骤. 本节我讲详细描述android studio 在MAC下的的配置运行步骤. (二)开始 首先,我们前往上次解压好的NDK文件路径,使用Android studio 导入Hello-jni 导入完成后,AS会自动帮我们构建为grade版本. 等待完成,版本构建完成. 打开文件目录如图所示 我们在local.properties文件下添

Android实战技巧之二十三:Android Studio的NDK开发

较新的NDK版本是r10b,Android Studio对NDK开发的支持还处于构思阶段,所以很多工作比如用javah生成头文件等工作还要自己做.今天用一个例子来演示AS中的NDK开发. 新建一个项目SecondNdkTest 在此项目中新建一个Module叫ndklibrary,作为so库单独划出来.在library中新建一个java类SecondLib,内容如下: package com.linc.ndklibrary; /** * Created by linc on 15-3-29. *

《ArcGIS Runtime SDK for Android开发笔记》——基于Android Studio构建ArcGIS Android开发环境(离线部署)

1.前言 在上一篇的内容里我们介绍了基于Android Studio构建ArcGIS Runtime SDK for Android开发环境的基本流程,流程中我们采用的是基于Gradle的构建方式,在这种方式里主要通过设置maven仓库位置,设置编译选项.依赖版本在联网环境下下载对应SDK依赖包. 但是在网络情况不好的情况下这种方式就不行了,那怎么解决在离线环境或者内网环境实现开发流程呢?目前了解到的有两种方式: 1)配置内网环境maven仓库,预先缓存到内网环境下,然后离线调用. 2)采用直接