美文网首页
使用cmake/make打包Android 动态库

使用cmake/make打包Android 动态库

作者: ben大福 | 来源:发表于2020-08-30 08:58 被阅读0次

    打包需要使用cmake是AndroidSdk目录下的
    ${ANDROID_HOME}/cmake/3.6.4111459/bin/cmake

    参数:
    -H

    指定CMakeLists目录
    

    -B

    指定build目录
    

    -DANDROID_NDK

    ndk路径
    

    -DCMAKE_LIBRARY_OUTPUT_DIRECTORY

    输出目录
    

    -DCMAKE_MAKE_PROGRAM

    cmake 程序ninja
    

    -DCMAKE_TOOLCHAIN_FILE

    打包工具链的路径
    ${ANDROID_SDK}/ndk-bundle/build/cmake/android.toolchain.cmake
    

    -DANDROID_ABI

    armeabi-v7a 
    armeabi-v7a with NEON   与 -DANDROID_ABI=armeabi-v7a -DANDROID_ARM_NEON=ON 相同。
    arm64-v8a   
    x86 
    x86_64
    

    -DCMAKE_BUILD_TYPE

    构造模式:Release、Debug。是否带debug调试信息
    

    -DANDROID_NATIVE_API_LEVEL 最低支持的Api版本
    -DANDROID_TOOLCHAIN

    工具链名称
    

    -DCMAKE_GENERATOR

    构造器 Ninja
    

    打包所有abi的脚本例子:

    echo "start build"
    export NDK=/Users/zhumingwei/Downloads/android-ndk-r20b //自己下载NDK目录,也可用SDK中的目录
    export MINSDKVERSION=19
    cmake_exec=$ANDROID_HOME/cmake/3.6.4111459/bin/cmake
    ninja_exec=$ANDROID_HOME/cmake/3.6.4111459/bin/ninja
    export CMAKE_GENERATOR="Ninja"
    export BUILD_TYPE=Debug #Release、Debug
    export OUTPUT_DIR="输出目录"
    H_dir="源文件目录"
    B_dir=${H_dir}/build
    build(){
        echo "start build $1"
        pre=$(pwd)
        export ANDROID_ABI=$1 # armeabi-v7a、arm64-v8a、x86、x86_64,默认armeabi
        $cmake_exec \
        -H$H_dir \
        -B$B_dir \
        -DANDROID_NDK=${NDK} \
        -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=${OUTPUT_DIR}/${ANDROID_ABI} \
        -DCMAKE_MAKE_PROGRAM=${ANDROID_HOME}/cmake/3.6.4111459/bin/ninja \
        -DCMAKE_TOOLCHAIN_FILE=$NDK/build/cmake/android.toolchain.cmake \
        -DANDROID_ABI=$ANDROID_ABI \
        -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \
        -DANDROID_NATIVE_API_LEVEL=$MINSDKVERSION \
        -DANDROID_TOOLCHAIN=clang \
        -DCMAKE_GENERATOR=$CMAKE_GENERATOR\ 
        cd $B_dir
        $ninja_exec
        cd $pre
    }
    
    build "x86"
    build "armeabi-v7a"
    build "arm64-v8a"
    build "x86_64"
    

    相关文章

      网友评论

          本文标题:使用cmake/make打包Android 动态库

          本文链接:https://www.haomeiwen.com/subject/ozvssktx.html