Android NDK编译环境配置

一直在断断续续学习【非虫】大大的《Android软件安全与逆向分析》,刚刚开通博客,算是一个学习轨迹记录吧~希望看完书做完实验能所成长!(ง •̀_•́)ง

第7章 Android NDK程序逆向分析 ——7.1.2 如何编译原生程序

1. 三种编译方法
*使用gcc编译器手动编译
*使用ndk-build工具手动编译
*使用Eclipse创建工程并自动编译

2.使用ndk-build工具手动编译(许多步骤来自网络,这里只是整理加上一些自己实验的心得)
结合网上的资料加上自己的实现,配置NDK的环境的过程如下:

(1) 下载Android NDK

官网:http://wear.techbrood.com/tools/sdk/ndk/

下载完解压得到一个文件夹,里面有用到的所有文件。


(2) 下载cygwin

Cygwin是一个在windows平台上运行的类UNIX模拟环境。官网:https://www.cygwin.com/

下载完成后,单击安装,需要注意的是一定要选择下载Devel开发工具包(如下图),里面包含了gcc编译器,单击“Default”可以将状态切换成“Install”。


(3) Cygwin环境配置:

在系统变量Path后面加上cygwin的安装目录,例如:C:\cygwin\bin ,这样在dos下输入“bash”可以直接进入cygwin环境;


在系统变量Path后面加上NDK文件夹的目录,例如:E:\android\android-ndk-r8;


定义一个系统变量NDK_ROOT=E:\android\android-ndk-r8,注意这个命令在cygwin下 cd $NDK_ROOT可以快速定位到E:\android\android-ndk-r8,在cygwin下显示为/cygdrive/e/android/android-ndk-r8,当然系统变量名称可以自拟。


在cygwin文件夹中找到一个home\<你的用户名>\.bash_profile文件,打开bash_profile文件,添加NDK=/cygdrive/<你的盘符>/<android ndk 目录如:    


(4) 使用NDK编译

在dos环境下输入“bash”或者直接打开cygwin,输入:


进入到NDK文件夹则表示上一步配置成功,接着进入里面的samples文件夹,这里选择案例中的hello-jni来编译。

进入hello-jni文件夹,输入:


看到以上提示则表示编译成功,在hello-jni文件夹中的libs/armeabi/生成文件:


这样基础的编译工作就完成啦~ (* ̄∇ ̄*)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在 Android NDK编译 Go 语言,需要进行以下步骤: 1. 安装 Android NDK 首先,需要下载并安装 Android NDK。可以从官方网站上下载最新版本的 NDK。 2. 安装 Go 语言 接下来,需要安装 Go 语言。可以从官方网站上下载最新版本的 Go。 3. 配置环境变量 将 Android NDK 和 Go 语言的路径添加到环境变量中。例如,在 Linux 系统中,可以将以下命令添加到 ~/.bashrc 文件中: ``` export ANDROID_NDK=/path/to/ndk export PATH=$PATH:/path/to/go/bin ``` 4. 生成交叉编译工具链 执行以下命令,生成交叉编译工具链: ``` $NDK/build/tools/make_standalone_toolchain.py --arch arm --api 21 --install-dir /path/to/toolchain ``` 其中,--arch 参数指定目标架构,例如 arm、arm64、x86_64 等;--api 参数指定目标 API 级别;--install-dir 参数指定工具链安装路径。 5. 编译 Go 语言 接下来,使用生成的交叉编译工具链,编译 Go 语言: ``` GOOS=android GOARCH=arm GOARM=7 CGO_ENABLED=1 CC=$TOOLCHAIN/bin/arm-linux-androideabi-gcc CXX=$TOOLCHAIN/bin/arm-linux-androideabi-g++ ./make.bash ``` 其中,GOOS 参数指定目标操作系统,例如 android、linux 等;GOARCH 参数指定目标架构,例如 arm、arm64、x86_64 等;GOARM 参数指定目标 ARM 版本;CGO_ENABLED 参数开启 cgo 功能;CC 和 CXX 参数指定编译器路径。 6. 编译 Android 应用 最后,使用编译好的 Go 语言,编译 Android 应用。可以使用 Go 编写 Native Activity 或者使用 Go Mobile 生成绑定库。具体步骤可以参考官方文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值