Android Studio 2.0 NDK开发环境搭建

Android Studio 2.0 NDK 开发教程(一) 重要提醒: 对于现阶段的AS NDK而言,读者往往因为各项参数配置的不合理而出错,这是读者最关心的。本文的各项参数对应关系如下: (1)Android Studio 版本:2.0; (2)compileSdkVersion = 23; (3)buildToolsVersion = "23.0.3"; (4)gradle-experimental版本:com.android.t 阅读详情

Android Studio 2.0 NDK开发环境搭建

0x00 前情回顾

前不久写了一篇环境搭建,虽然可以跑一个demo,但是如果你跟着做的话就会发现,仅仅是可以跑一个Demo,真做起来很是蛋疼。编写源码,生成so,跑App,改一点代码,再生成so,跑app。而且编写代码没有提示,不能格式化,各种不能,就是最基本的文本开发。经过一段时间折腾和Android Studio 2.0的 release,发现有更完美的方式,而且不用编写Android.mk和Application.mk。看在我刚开始学的份上,容我再来写一遍。看完这篇,你会发现JNI的开发也是如此的so easy。

0x01 环境搭建

所需环境:

  1. Android Studio 2.0
  2. Gradle 2.10(最低要求)
  3. NDK:ndk-r11c(目前最新版:2016-04-16)
  4. LLDB:2.1(目前最新版:2016-04-16)

下面开始正式操作:

  • 安装Android Studio 2.0

    这个就不细说了。

  • 配置Gradle

    最低要求Gradle版本为2.10,目前最新版本为2.12。修改方法:

    项目根目录/gradle/wrapper/gradle-wrapper.properties

    将最下面的一行改成你要的版本,如:

    distributionUrl=https://services.gradle.org/distributions/gradle-2.10-all.zip

  • 安装NDK

    安装NDK有两种方式,一种是直接下载最新的NDK安装文件进行安装,另一种是通过SDK安装:

    1. NDK安装文件

      下载参考这里。根据你的操作系统下载不同版本。

    2. 通过SDK安装

      Android Studio > Preferences > Appearance & Behavior > Syetem Settings > Android SDK > SDK Tools

      在这个Tab中找到 Android NDK,选中安装即可。安装之后我们可以在 Android SDK 的目录下看到一个 ndk-bundle 目录,这个就是我们的NDK目录。

    ndk_lldb

  • LLDB

    和 GDB 类似,LLDB 是一款调试器,可以调试我们的JNI代码。同上打开SDK设置界面:

    Android Studio > Preferences > Appearance & Behavior > Syetem Settings > Android SDK > SDK Tools

    在这个Tab中找到 LLDB,选中安装即可。安装之后我们可以在 Android SDK 的目录下看到一个 lldb 目录,这个就是我们的 LLDB 目录。LLDB的更多信息可参考这里。

通过上面的配置,接下来就可以开始我们的JNI的开发了。 可能你会问之前我有介绍过一篇开发环境的搭建,这个有什么不同呢?如果你使用之前的方法,你需要配置 Android.mk、Application.mk,无代码自动完成,不能代码个时候,运行调试麻烦,等等。这些问题在这里都不存在了,让我们把更多的精力放到代码编写中。

0x02 测试Demo

新建java代码:

public class CipherUtils {
    static {
        System.loadLibrary("CipherUtils");
    }
    public static native int add(int x, int y);
}

生成对应的C++代码:

令人兴奋的是,Android Studio可以帮我们自动生成 C 代码。点击 add 方法,Option + Return 即可生成一个 CipherUtils.c文件,由于我打算使用C++,因此将扩展名改为 cpp ,同时添加头文件,最终如下:

#include <jni.h>
#include <string>

using namespace std;

#include "utils/log.h"

JNIEXPORT jint JNICALL Java_com_ttdevs_jniutils_CipherUtils_add(JNIEnv *env, jclass type, jint x, jint y) {
    std::string input_str("Test add two number!");
    LOGE("%s", input_str.c_str());
    return x + y;
}

PS:如果报错,可是将错误的 cpp文件拷贝出来再考吧回去。

build.gradle 配置

android {
    ......
        defaultConfig {
        ......
        ndk {
            moduleName "CipherUtils"
            stl "gnustl_static" // stlport_static
            abiFilters "armeabi", "armeabi-v7a"
            ldLibs "log", "android"
        }
    }

    sourceSets.main {
        // 如果不写(jni.srcDirs = ['src/main/jni/'])
        // Android展示模式没有jni目录
        // this file has been added after the last project sync with gradle
        // 必须有值,如: 'src/main/jni/'
        jni.srcDirs = ['src/main/jni/']
        // jniLibs.srcDir "libs"
    }
    ......
}

直接点击运行按钮,即可跑我们的测试程序了。就这么简单。

0x03 JNI层的Debug

这个同样简单。首先需要在外面的build.gradle中配置一下:

android {
    ......
    buildTypes {
        debug {
            jniDebuggable = true
        }
        ......
    }
}

在 C/C++ 源文件上添加断点,点击debug,就可以像debug我们的java代码一样调试我们的原生代码了。

Android Studio的NDK开发环境搭建 目标 由于要涉及到音视频的开发,所以要用到JNI,之前一直用AS2.0的,发现用这个做NDK开发太麻烦了,后来看到动脑学院老师的一个教学视频,android studio的NDK开发配置,做了一个学习笔记,视频可以百度搜索的到。配置要求 Android Studio 2.2以上(因为在2.2以上更好的兼容了ndk开发) gradle2.5 以上android-ndk-r10以上如果配置一个过高一个过 阅读详情

相关推荐

Android Studio 之ndk

Android Studio 中使用ndk 开发

lldb安装以及调试Android程序

Android Studio自带lldb,安装过程不再赘述。lldb官网。

helloworlddm的博客 1714

[Android] 环境配置之Android Studio开发NDK

http://blog.csdn.net/qiujuer/article/details/42040963

android studio 配置NDK环境进行JNI开发

刚好在移植ArlinkPlayer工程到地面软件中需要用到一些NDK、JNI进行开发,就研究了一点入门基础,,纠结了好几天的问题,终于在昨天晚上解决了 分享一下技术成果,整理如下: 一、NDK基础:                                                                                              NDK全

zoe技术博客专栏 2056

STM32G474串口调试避坑指南:从CubeMX配置到中断收发,手把手教你搞定USART1

本文详细解析了STM32G474串口调试中的常见问题,从CubeMX配置到中断收发,提供USART1的避坑指南。涵盖时钟树同步、GPIO模式选择、中断接收逻辑、波特率偏差修正等关键点,帮助开发者高效解决串口通讯难题,提升嵌入式开发效率。

weixin_29191081的博客 210

Gemini 2.5 Pro国内免魔法直连教程:5分钟搞定专业级PPT图表(附折线图/柱状图案例)

本文详细介绍了如何利用Gemini 2.5 Pro快速生成专业级PPT图表,包括折线图和柱状图等常见商业图表。通过自然语言交互和智能图表生成功能,用户可以在5分钟内完成数据可视化,大幅提升工作效率。文章还提供了实战案例和高级技巧,帮助用户轻松应对各种商业场景需求。

weixin_30733003的博客 460

Android studio 2.0集成NDK

前言 现在的ndk开发已经越来越便捷,打开老电脑的AS2.0,再一次对ndk-build的编译方式有了新的认识,以前对jni、libs、jniLibs这些目录理解有点凌乱。 开发环境: windows 7 android-ndk-r14b android studio 2.0 步骤 一.local.properties添加ndk路径 ndk.dir=D\:\\do

kernel 491

双极性步进电机驱动技术:从H桥电路到精准控制

本文深入解析了双极性步进电机驱动技术的核心,从H桥电路的基础原理讲起,阐述了其作为实现电机正反转和精准控制的关键。文章详细介绍了H桥的工作模式、防共态导通设计,并对比了L298N、DRV8825及TMC2209等主流集成驱动芯片的选型。进一步探讨了通过微步进与电流矢量控制实现平滑、静音运行的高级技术,并提供了基于STM32的实战代码与避坑指南,帮助开发者从理论到实践全面掌握精准运动控制。

tea88的博客 599

AndroidStudio NDK环境3种搭建方式

AndroidStudio NDK环境3种搭建方式 转载。 https://blog.csdn.net/zhang_jun_ling/article/details/85621427 一、前言 如今Android开发IDE都是使用的AndroidStudio,之前我写过一篇文章介绍的是如何在Eclipse中搭建NDK环境 ...

weixin_30348519的博客 610

接入 deepseek 实现AI智能问诊

必须包含user角色,用于传递用户输入。system角色可选,用于设置对话背景。多轮对话需要将历史记录添加到messages中。

weixin_51326478的博客 6544

Python pydub实现语音停顿切分

将pcm文件批量处理成wav文件 import wave import os filepath = "data/" # 添加路径 filename = os.listdir(filepath) # 得到文件夹下的所有文件名称 #f = wave.open(filepath + filename[1], 'rb') #print(filename) for i in range(len(fi...

wangqianqianya的博客 1万+

Android Studio NDK环境配置及JNI使用方法(下)

之前也对JNI和NDK做了详解,接下来,对它的使用做一个详细的介绍 1.NDK的安装及配置 配置环境变量 安装好的NDk一般位于你的sdk文件夹下的ndk-bundle。可以看到里面有ndk-build文件,下文进行编译的时候我们会用到。 然后将该路径配置到你系统变量的path里面去,如下: 1.在系统环境变量里面创建NDK_ROOT 2.将NDK_ROOT追加...

拉莫帅的博客 4749

用友u8服务器优化,用友U8erp软件运行的性能优化方案图文教程

今天一定要给大家分享一下用友U8erp软件运行的性能优化方案图文教程,以下方案来自用友软件官方维护工程师反馈在在处理客户问题的时候,有一类问题较为挠头,就是诸如用友U8服务器效率低下的问题。比如用友U8运行慢,卡住等,我们暂先不提用友U8软件代码、脚本层面本身的性能提升问题,我们只是基于现有用友U8软件版本,在客户现有环境下排查用友U8软件运行的性能瓶颈,并采取一定的技术手段进行性能调校。本文将推...

weixin_39882870的博客 5306

不用Android Studio!纯命令行配置Unity安卓开发环境(2021.3.35f1实测)

本文详细介绍了如何在Unity 2021.3.35f1中通过纯命令行配置安卓开发环境,无需依赖Android Studio。从JDK、Android SDK的获取与配置,到APK的生成与优化,提供了一套完整的极简解决方案,适合高效开发者与自动化CI/CD流程。

weixin_30823001的博客 250

Xilinx UltraScale+系列FPGA实现USB3.0 DEV 设备 部分原理图+代码分享

Zynq UltraScale+ MPSoC 系列是 Xilinx 新一代 Zynq 平台。在 FPGA 里有完整的 ARM 处理(PS),包含了四核或双核 Cortex-A53 处理器 ,处理器子系统中有DDR内存控制器等大量的外设,在FPGA中完全独立于可编程逻辑单元(PL)如果暂时没有用到PL部分,PS也能单独工作,相当于可以当成一个ARM来用了(以前的不行)。 ARM也包含USB3.0控制器,这是实现USB3.0DEV的关键,根据官方手册(ug1085)描述,USB主(Host)从(Device)

Pierre 1万+

[个人自用,全网最优]EDEM-FLUENT个人自学教程,拒绝手忙脚乱无用功!

[个人自用,全网最优]EDEM-FLUENT个人自学教程,拒绝手忙脚乱无用功!

zheaa的博客 4831

AndroidStudio gradle:3.2.0配置NDK开发环境

AndroidStudio gradle:3.2.0配置NDK开发环境 最近这段时间在学习Android开发人脸识别,踩了很多坑,也学到挺多东西的,第一篇笔记,记录一下NDK环境搭建。 首先打开SDK 然后下载这三个东西,是搭建环境需要的包正常情况下这样就可以了,我们打开File–&gt;Setting Structure,设置NDK路径 NDK默认下载到SDK目录之下 然后新建一个项目,记得把C...

Swallow的博客 3454

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Cocos2d-x 3.2alpha0 windows及android开发环境搭建说明

Cocos2d-x 3.2alpha0 windows及android开发环境搭建说明 一、首先搭建在windows平台的开发环境(以win7平台为例,win8可参考官网说明:http://cn.cocos2d-x.org/article/):以下改编自cocos2d-x官方文档说明 在Windows7上搭建Cocos2d-x 3.2alpha0开发环境 在windows7上搭建CO

chh19941125的专栏 780

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

android studio jni开发gradle 学习

Android studio 2.0 环境搭建总结:     Gradle -> wrapper -> gradle-wrapper.properties distributionUrl ->gradle-2.10-bin    对应NDK android-ndk-r11b     Settings.gradle   ----->>全局配置文件 Include ‘:app’ 

she540061941的专栏 354

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Android转AI全程纪实-大模型端部署

40岁老程序员转型AI领域,从Android开发转向AI工程部署与算法开发。技术路径分三步走:1)工程方向主攻模型端部署优化,先聚焦Android平台,再扩展至iOS/鸿蒙/跨端开发;2)技术方向学习AI算法基础、大模型和Agent开发;3)探索行业应用场景,寻找个人发展机会。这是一次拥抱技术变革的自我挑战,通过系统学习实现职业升级。

weixin_36848576的博客 457

保姆级避坑指南:UE5.3 + PICO4开发环境配置,从Android Studio到打包运行一次成功

本文提供了一份详尽的UE5.3与PICO4开发环境配置指南,涵盖从Android Studio安装到项目打包运行的全流程。通过精确的版本控制和避坑实践,帮助开发者快速搭建稳定的VR开发环境,解决常见的SDK冲突、插件加载失败等问题,确保一次配置成功。

weixin_33670713的博客 361

AnySoftKeyboard 开源项目开发环境搭建指南

AnySoftKeyboard 开源项目开发环境搭建指南 项目概述 AnySoftKeyboard 是一款高度可定制的开源安卓输入法应用,支持多种语言和主题。作为开发者,参与该项目开发需要搭建特定的开发环境。本文将详细介绍如何配置开发环境以及项目的基本结构。 开发环境要求 基础工具准备 Java 开发工具包: 必须使用 Java 17 版本 推荐使用 OpenJDK 或 AdoptOpenJ...

gitblog_00864的博客 638

Android Studio 4.0.+NDK项目开发详细教学

本篇博文主要讲解了使用Android Studio 4.0.+创建NDK项目的详细过程,对于碰到的问题进行解决和项目结构的讲解。对于NDK开发的进阶学习请继续阅读我的NDK系列博文。

luo_boke的博客 1万+

Android studio NDK开发环境搭建

作为一个新手,以前没搞过NDK开发,前一段一个项目需要用到。网上下载了一个Demo,SuperpoweredSDk,什么汁都绞尽了才把它跑起来,什么cmake了,Jni了都不懂,临时看的资料才了解了一点,网上的方法都试了,有的很麻烦(cd什么了最讨厌了),推荐我用的构建方法

zxy19910720的博客 699

Android Studio3.0之NDK环境搭建

最近在公司项目中需要用到串口通讯扫描头,所以需要已有项目中进行NDK开发,故将NDK环境搭建过程记录,并编写测试demo验证。 1.配置NDK环境 下载ndk需要的工具:打开SDKManager 然后选择SDK Tools 理论上以上三个都可以在这里下载并安装,如果下载失败,可以自行去浏览器下载,下载地址:https://developer.android.google.cn/ndk/downl...

Summer丶 1138

Android Studio 的NDK开发环境搭建

1. 准备1.1.版本要求(这个配置会解决Android Studio在开发C/C++的兼容性问题) (1) Android Studio 2.2以上; (2) Cmake3.6以上:是用来编译C/C++成so的构建工具,创建项目为C++的时候会自动导入这个插件; (3) Gradle2.5以上:从2.5开始支持C/C++,在本次选择2.8; (4) ndk-r-10以上:本次选择13

Jarry的博客 3040
上一篇: python文件拷贝工具shutil介绍
下一篇: 用support annotation替代enum
ttdevs
博客等级 码龄15年 388粉丝 91原创
评论 14
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值