Windows环境使用CLion进行Android NDK开发配置

主要思路

CLion开发NDK,思路就是在代码开发编译的时候必须使用ndk提供的依赖环境。代码编译完成后,然后将二进制包发送到目标机器上,然后进行远程调试。

下载软件与系统相关配置

下载安装CLion 2021.2.2版本
下载安装Android Studio最新版本,如下图进入设置,然后下载最新版本的NDK和CMake
在这里插入图片描述

进入Android Studio下载的SDK,SDK包含了Android开发的所有套件以及依赖,包含了C++, Java等依赖都在这里。
在这里插入图片描述
下载完成了Android SDK后,Android中的adb一些组件加入操作系统的环境变量,这样的目的是我们可以在命令行使用adb这些组件了。
在这里插入图片描述
我们在windows系统中的命令行界面敲入adb,就能正常使用adb命令了。

在这里插入图片描述

Android模拟器配置

这里我使用夜神模拟器,需要给夜神模拟器分配一个局域网静态IP地址,需要注意的是子网页面要和操作系统的一致,局域网静态IP不要被其他设备已经占有的。
在这里插入图片描述

配置完成了网络后,需要将夜神模拟器中的adb替换成Android Studio SDK中的adb,夜神模拟器中nox_adb与adb都需要更换成Android Studio SDK中的adb(nox_adb与adb都是Android Studio SDK中的adb只是名字不一样)。
在这里插入图片描述

CLion配置(NDK的关键,重要)

首先需要配置Toolchains

在这里插入图片描述
make配置成

C:\Users\crdch\AppData\Local\Android\Sdk\ndk\23.0.7599858\prebuilt\windows-x86_64\bin\make.exe

C Compiler配置成

C:\Users\crdch\AppData\Local\Android\Sdk\ndk\23.0.7599858\toolchains\llvm\prebuilt\windows-x86_64\bin\clang.exe

C++ Compiler配置成

C:\Users\crdch\AppData\Local\Android\Sdk\ndk\23.0.7599858\toolchains\llvm\prebuilt\windows-x86_64\bin\clang++.exe

debugger也是配置NDK中的debugger,地址:

C:\Users\crdch\AppData\Local\Android\Sdk\ndk\23.0.7599858\prebuilt\windows-x86_64\bin\gdb.exe

本小节总结:发现到一个点是,NDK开发的时候不需要用操作系统MinGW的编译与调试工具,谷歌官方提供完整的编译与调试组件,编译器与调试器必须要使用他们提供的。
同时在后面的开发也是如此,代码中所需要的依赖也必须使用NDK中提供的,不能使用其他的,否则肯定会报错运行不了。

配置CMake

如下图的配置,名称可以随便起,Toolchain那个配置,就是我们刚才配置的Toolchain。其中的CMake options需要着重注意。
在这里插入图片描述
下面是CMake options的内容。DCMAKE_TOOLCHAIN_FILEDCMAKE_ANDROID_NDK 需要根据你的Android Studio SDK中的NDK配置改变而改变。

-DCMAKE_TOOLCHAIN_FILE="C:\Users\crdch\AppData\Local\Android\Sdk\ndk\23.0.7599858\build\cmake\android.toolchain.cmake"
-DCMAKE_SYSTEM_NAME=Android
-DANDROID_ABI=x86
-DCMAKE_ANDROID_NDK="C:\Users\crdch\AppData\Local\Android\Sdk\ndk\23.0.7599858"
-DCMAKE_SYSTEM_VERSION=24
-DCMAKE_C_FLAGS=""
-DCMAKE_CXX_FLAGS=""
-DCMAKE_ANDROID_NDK_TOOLCHAIN_VERSION=clang

DANDROID_ABI 这个参数是你打算把代码编译成什么架构运行的二进制代码,我使用的是夜神模拟器,CPU架构是x86 32位的。所以这里是x86,如果是其他架构的CPU需要改变,改变的链接和图片如下。

https://developer.android.google.cn/ndk/guides/abis
在这里插入图片描述

代码配置

一般情况下,在使用 https://github.com/strazzere/android-unpacker 的代码时候,通常是没有CMakeLists.txt的。那么你需要根据业务的需要创建一个,其中在创建的时候这引入依赖是不能缺少的。
在这里插入图片描述
文本内容的如下

cmake_minimum_required(VERSION 3.6)
project(android_unpacker C)

set(CMAKE_C_STANDARD 11)

#include_directories(hide-emu)
include_directories(C:\\Users\\crdch\\AppData\\Local\\Android\\Sdk\\ndk\\23.0.7599858\\toolchains\\llvm\\prebuilt\\windows-x86_64\\sysroot\\usr\\include)
include_directories(C:\\Users\\crdch\\AppData\\Local\\Android\\Sdk\\ndk\\23.0.7599858\\toolchains\\llvm\\prebuilt\\windows-x86_64\\sysroot\\usr\\include\\x86_64-linux-android)
link_directories(C:\\Users\\crdch\\AppData\\Local\\Android\\Sdk\\ndk\\23.0.7599858\\toolchains\\llvm\\prebuilt\\windows-x86_64\\sysroot\\usr\\lib)
#include_directories(native-unpacker)

add_executable(kisskiss

        definitions.h
        kisskiss.c
        kisskiss.h)
创建gdb remote debug

如下图中的ip地址,就是夜神模拟器中的静态ip地址,端口号是任意指定的。
在这里插入图片描述

夜神模拟器启动gdbserver

adb shell进入Android系统./gdbserver :1234 ./tmp/kisskiss 其中的./tmp/kisskiss是代码中编译完成的二进制可执行程序,需要通过gdbserver指向它。
在这里插入图片描述
gdbserver也是由Android Studio提供,如下图方框中是不同的Android系统环境的gdbserver。
在这里插入图片描述
启动配置好调试器就
在这里插入图片描述

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值