栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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:UserscrdchAppDataLocalAndroidSdkndk23.0.7599858prebuiltwindows-x86_64binmake.exe

C Compiler配置成

C:UserscrdchAppDataLocalAndroidSdkndk23.0.7599858toolchainsllvmprebuiltwindows-x86_64binclang.exe

C++ Compiler配置成

C:UserscrdchAppDataLocalAndroidSdkndk23.0.7599858toolchainsllvmprebuiltwindows-x86_64binclang++.exe

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

C:UserscrdchAppDataLocalAndroidSdkndk23.0.7599858prebuiltwindows-x86_64bingdb.exe

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

配置CMake

如下图的配置,名称可以随便起,Toolchain那个配置,就是我们刚才配置的Toolchain。其中的CMake options需要着重注意。

下面是CMake options的内容。DCMAKE_TOOLCHAIN_FILE 和 DCMAKE_ANDROID_NDK 需要根据你的Android Studio SDK中的NDK配置改变而改变。

-DCMAKE_TOOLCHAIN_FILE="C:UserscrdchAppDataLocalAndroidSdkndk23.0.7599858buildcmakeandroid.toolchain.cmake"
-DCMAKE_SYSTEM_NAME=Android
-DANDROID_ABI=x86
-DCMAKE_ANDROID_NDK="C:UserscrdchAppDataLocalAndroidSdkndk23.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:UserscrdchAppDataLocalAndroidSdkndk23.0.7599858toolchainsllvmprebuiltwindows-x86_64sysrootusrinclude)
include_directories(C:UserscrdchAppDataLocalAndroidSdkndk23.0.7599858toolchainsllvmprebuiltwindows-x86_64sysrootusrincludex86_64-linux-android)
link_directories(C:UserscrdchAppDataLocalAndroidSdkndk23.0.7599858toolchainsllvmprebuiltwindows-x86_64sysrootusrlib)
#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。

启动配置好调试器就

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/293430.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号