需要的环境:
-
- NDK
-
- cmake(若用android studio用过cmake则在sdk下有)
main.cpp
测试printf打印和log打印
cpp
#include <jni.h> // 需要智能提示则在 .vscode/c_cpp_properties.json 将 ndk 下的 toolchains\\llvm\\prebuilt\\windows-x86_64\\sysroot\\usr\\include 添加到 includePath
#include <stdio.h>
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO,LOG_TAG,__VA_ARGS__)
#define LOG_TAG test
int main()
{
LOGI("hello");
printf("hello2\r\n");
}
CMakeLists.txt
cmake_minimum_required(VERSION 3.0)
SET(PROJECT_NAME ndk_test)
project(${PROJECT_NAME})
add_executable(${PROJECT_NAME} main.cpp )
target_link_libraries(${PROJECT_NAME} log)
windows下编译
我的环境下,NDK路径是:D:/Android/sdk/ndk/23.1.7779620;Android SDK路径是:D:\Android\Sdk,SDK目录下有 cmake\3.22.1\bin,将其添加到PATH环境变量中。
build.cmd
sh
set build_path=build
set NDK_PATH="D:/Android/sdk/ndk/23.1.7779620"
mkdir %build_path%
cd %build_path%
::rem cmake编译
cmake -G "Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE="%NDK_PATH%/build/cmake/android.toolchain.cmake" -DANDROID_NDK=%NDK_PATH% -DANDROID_ABI="arm64-v8a" -DCMAKE_MAKE_PROGRAM="%NDK_PATH%/prebuilt/windows-x86_64/bin/make.exe" ..
::rem make编译
%NDK_PATH%"/prebuilt/windows-x86_64/bin/make.exe"