• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

陈文管的博客

分享有价值的内容

  • Android
  • Affiliate
  • SEO
  • 前后端
  • 网站建设
  • 自动化
  • 开发资源
  • 关于

Android NDK版本配置和编译

2020年2月11日发布 | 最近更新于 2023年8月28日

项目上需要把功能下沉到C++去实现来降低性能上的损耗,N年不碰C++的重操旧业,首先就是要配置NDK编译环境,以下记录Android NDK版本配置和编译遇到的坑。

一、NDK版本下载

NDK最新版本下载地址:

https://developer.android.google.cn/ndk/downloads/

NDK历史版本下载地址:

https://developer.android.google.cn/ndk/downloads/older_releases.html

在Mac上测试android-ndk-r10d和最新的android-ndk-r20b版本都存在问题,编译中会出现找不到编译模块,或者参数引用找不到的问题。

异常日志如下:

Android NDK: WARNING: There are no modules to build in this project!    

或者:

error: use of undeclared identifier 'STDERR_FILENO'

同事使用正常的是window平台 r10e 的版本,之后下载了Mac对应的版本包配置之后测试可以正常编译,对比了下测试的三个版本压缩包的大小:

  • android-ndk-r10d: 442.6MB
  • android-ndk-r20b: 843.2MB
  • android-ndk-r10e: 1.08GB

r10d和r20b的压缩包相对r10e模块或者功能方面有缺失或裁剪,Mac平台r10e版本下载地址如下:

https://dl.google.com/android/repository/android-ndk-r10e-darwin-x86_64.zip
Android NDK r10e 版本

二、NDK配置(Mac)

在ZIP包下载完毕之后,解压到本地,之后在.bash_profile配置文件里面配置解压之后的NDK路径,先执行以下命令打开配置文件

vim .bash_profile

添加解压之后的NDK路径,实际路径根据自己的存放路径来配置:

export PATH=$PATH:/Users/chenwenguan/Documents/AmapAuto/AndroidSDK/android-ndk-r10e

之后保存退出,执行以下命令让配置参数生效:

source .bash_profile

最后执行下命令查看配置是否成功:

ndk-build --version

示例输出:

GNU Make 3.81
Copyright (C) 2006  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
This program built for x86_64-apple-darwin

三、NDK编译

编译的时候直接cd到放置Android.mk和Cpp文件所在的jni目录,直接执行ndk-build开始编译。

相应的资料可以直接参考官网:

ndk-build脚本

Android.mk

Application.mk

使用预编译库

扩展阅读:

Android 8(Oreo)后台启动Service限制解析

Android ANR详解

Android 子线程更新UI详解

转载请注明出处:陈文管的博客 – Android NDK版本配置和编译

扫码或搜索:文呓

博客公众号

微信公众号 扫一扫关注

Comments

  1. 调查网 says

    2020年3月2日 at 下午10:25

    学习了,多谢分享!

文章目录

  • 一、NDK版本下载
  • 二、NDK配置(Mac)
  • 三、NDK编译
博客公众号

闽ICP备18001825号-1 · Copyright © 2025 · Powered by chenwenguan.com