Android studio cMake 使用详解
来源:互联网 发布:注塑机机械手如何编程 编辑:程序博客网 时间:2024/05/23 19:18
本人最近在学习ndk 开发,由于用惯了AS 之后不想再去试用Eclipse 所以最近一个人再折腾 使用Android Studio 进行NDK 开发(使用ffmpeg进行练手)
由于是一个人自己再折腾,再加上白天也比较忙,晚上还经常加班 折腾了好久才搞明白
废话不多说 开始NDK 流程
一.创建一个NDK 工程
这一部其实非常简单,只需要在android studio 中 下载NDK 然后在新建项目的时候 勾选c++选项即可
二.NDK 主要部分分析
使用android studio 创建好NDK 工程之后 会发现NDK 工程主要有三部分组成
如图所示: NDK项目相对于 一般的工程而言 多了如上三个部分
1. .externalNativeBuild 该部分是使用cMake 编译成so库部分 该部分内容为自动生成 在实际项目中 不会过多的操作该部分
2. cpp 该部分是生成了一个cpp文件目录 用于存放c/c++代码
3.CMakeLists.txt 该部分是cMake的脚本配置部分 需要在这里进行相应的配置
出了上图所示内容外 gradle 也多了一小部分内容 如下图所示:
三配置CMakeLists.txt
其实 配置该文件比较简单 主要的配置有 三个方面
1.常规 (系统自带部分)
cmake_minimum_required(VERSION 3.4.1)find_library( log-lib log )
这两部分 第一行是 设置cmake的最低版本 第二部分是 cmake自带库
2加入c++部分
该部分分为两种 1.引用外部so库 2.引用本地c/c++代码
add_library( avutil-54 SHARED IMPORTED )set_target_properties( avutil-54 PROPERTIES IMPORTED_LOCATION ../../../../libs/armeabi/libavutil-54.so )
改图为引用外部so库
add_library( native-lib SHARED src/main/cpp/native-lib.cpp )改图为引用本地c++代码
3.本地c++代码关联 和 外部so 库 引入头文件
include_directories(libs/include)target_link_libraries( native-lib swresample-1 avcodec-56 avfilter-5 swscale-3 avdevice-56 avformat-56 ${log-lib} )
四 编写本地c++ 代码
该部分 略。。。
五 打包apk
略。。
0 0
- Android studio cMake 使用详解
- android studio 使用CMAKE
- android studio 2.2 使用cmake编译NDK
- android studio 使用CMAKE 编译ffmepg
- android studio 下的cmake使用
- Android studio 2.2 使用 cmake 编译 libpng
- Android Studio中使用FFMPEG(CMake)
- android studio cmake 2.2使用案例
- Android Studio使用CMake编译JNI初探
- android studio中CMake的简单使用
- Android studio CMake (一)
- Android Studio CMake (二)
- Android-Studio使用详解
- android studio 2.2使用cmake进行NDK编程
- Android Studio使用cmake配置c++开发Admob
- Android Studio 2.3使用CMake方式NDK入门
- Android Studio 使用CMake实现自己的.so库
- Android Studio使用CMake构建脚本调用jni
- 第一篇博客
- 多种设计模式,需要掌握熟练的有哪些
- openjudge.1.8.22 神奇的幻方
- Android通用网络请求解析框架.3(代码实现,公共部分)
- jquery 日期比较 以及日期校验
- Android studio cMake 使用详解
- bootstrap导航栏、下拉菜单、表单的简单应用
- Redis之Set
- ACM模板 数据结构
- Python ZIP
- python写json文件,中文乱码问题
- pull-right 整体右浮动 (Bootstrap)
- 代码界的逗号分号
- Java基础中的一些知识点(一)