Android Studio Ndk 基础篇
来源:互联网 发布:中国十大淘宝村 编辑:程序博客网 时间:2024/06/12 00:13
非官方方法
方法1
方法2
看了很多的博客,android studio 的ndk使用,虽然用倒是可以用,但是既然as现在集成的这么好,不如试试官方给的办法好了
基础篇
(平台:windows下)
第一步:下载Ndk与build工具
- 在一个打开的项目里,选择 Tools > Android > SDK Manager
- 选择 SDK Tools
- 点击 LLDB,Cmake,NDK , 点击 apply
Ndk:
一个允许你在Android下,使用C和C++代码的工具集。
并且提供了一些可以让你管理native activity 和 使用比如传感器等物理设备组件的平台库
nativeactivity官方解释:完全用native code(c++,c)实现的activity
Cmake官网 :
与Gradle类似,是用来编译你的 native 库的,如果你打算用 ndk-build 那就不需要添加这个模块了
how to use Cmake
LLDB官网:
Android studio 用来对native code debug的
how to debug native code
第二步:创建一个C/C++支持的新项目
1 创建一个新的项目,点击 Include C++ Support
2 点击next选择一些其他的项目,直到出现以下页面
- C++ Standard 用于选择你想使用哪种C++,选择 Tool chain Default 使用的是默认的Cmake设置
- Exception Support 检查如果你想支持c++的异常处理,那么就点选
- Runtime Type Information Support 如果你想支持RTTI,那么点选这个
c++中的exception的使用
什么是RTTI?
3 点击finish,新的目录结构里出现了两个新的部分
cpp 和 External Build Files
cpp 中存放的是你项目中的 native source code,header 和 预编译的库文件。而External Build Files是Cmake和ndk-build的编译脚本文件
第三步:运行样例app
点击Run,之后
- Gradle 调用 你的 external build script
- Cmake 遵从 脚本中的命令来编译C++源文件,生成一个 so 库,然后Gradle把这个库打包如apk中
- 在运行时,java文件使用
System.loadLibrary()
来载入生成的so库,库中的方法就在app中使用了
第四步:分析此时的Apk中的库
点击 build -> Analyze Apk
选择apk,点击ok
可以看到对应不同的cpu架构,都有着对应的so库
0 0
- Android Studio Ndk 基础篇
- Android Studio NDK基础使用
- Android Studio NDK开发基础
- Android studio的NDK开发基础
- android studio ndk-build 编译C生成.so文件(ndk基础篇)
- NDK开发基础①使用Android Studio编写NDK
- NDK开发基础①使用Android Studio编写NDK
- Android Studio 之 NDK篇
- android studio cMake脚本添加ndk,构建C/C++程序(基础使用篇
- Android逆向基础笔记—Android NDK开发4之Android studio NDK自动编译
- JNI基础(一)Android Studio 配置NDK
- JNI基础(二)Android Studio 配置NDK
- Android Studio NDK开发篇一
- android studio + NDK
- NDK With Android Studio
- Android studio NDK开发
- NDK With Android Studio
- windows+Android studio+ndk
- clCreateBuffer中cl_mem_flags参数解释
- php开发App接口
- 对象object与数组array转化,互转
- MySQL终极配置解决UTF8编码出现的乱码问题
- 详细解读Python的web.py框架下的application.py模块
- Android Studio Ndk 基础篇
- kubenetes平台监控cAdvisor查看
- 为 MySQL 设置默认字符集(UTF-8)避免产生乱码
- Android 中 ImageView 控件 scaleType 属性
- rhel7.2 优化技巧
- mac上安装docker
- lua 编译
- 笔试题-计算图中黑色瓷砖数(深度优先遍历的使用)
- jquery中的attr和prop区别