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

陈文管的博客

分享有价值的内容

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

Android NDK版本配置和编译

2020年2月11日 | 最近更新于 上午12:39

项目上需要把功能下沉到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

    学习了,多谢分享!

博客公众号
博客公众号

GitHub

https://github.com/wenguan0927

近期文章

  • Gnirehtet终端设备共享PC网络实践
  • Python实现Android性能数据获取及压测场景模拟
  • Android模拟定位实现详解
  • Python性能分析优化及耗时异常自动化监控
  • Google Adsense申请及配置详解

友情链接

崔庆才的个人博客

Trinea  (codeKK)

Piasy

Paincker

wanandroid

陈祖杰的BLOG

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