搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
NDK开发与实践(入门篇微课视频版)/开发者成长丛书
0.00     定价 ¥ 69.00
图书来源: 浙江图书馆(由浙江新华配书)
此书还可采购15本,持证读者免费借回家
  • 配送范围:
    浙江省内
  • ISBN:
    9787302683032
  • 作      者:
    编者:蒋超|责编:赵佳霓
  • 出 版 社 :
    清华大学出版社
  • 出版日期:
    2025.04
收藏
作者简介

蒋超,一个在IT领域摸爬滚打十多年的老程序员、课程讲师、作者。在公司担任资深软件工程师职务,有多年嵌入式、OS、客户端、服务器端全栈开发经验,特别对音视频和NDK有较深入的研究。

展开
内容介绍

本书旨在通过深入的理论与丰富的实战案例,引领读者系统学习NDK开发技术。NDK技术以其高安全性、卓越性能和高度复用性,成为现代应用开发的关键技术之一。本书从基本概念出发,全面介绍了NDK开发所需的核心基础知识,并详细讲解了如何从零开始构建一个完整的NDK项目,以及如何利用集成开发环境高效地进行NDK项目的调试与优化。书中不仅涵盖了当前主流的开发技术和最佳实践,更通过理论与实战相结合的教学模式,让读者能够迅速将所学知识应用于实际工作中,提高开发效率,打造出更优质的应用产品。

本书共13章,分为基础篇和实战篇。基础篇(第1~8章)详细讲述NDK开发理论基础及环境搭建相关知识。从NDK基础概念到交叉编译原理、CMake基本语法的使用,逐步深入到NDK实战项目的运用;实战篇(第9~13章)利用入门基础篇所学内容搭建一个完整的NDK实战项目。本书示例代码丰富,实际性和系统性较强,并配有视频讲解,助力读者透彻理解书中的重点、难点。

本书既适合初学者入门,精心设计的案例对于工作多年的开发者也有参考价值,并可作为高等院校和培训机构相关专业的教学参考书。


展开
目录

基  础  篇
第1章  NDK入门基础( 60min) 3
1.1  NDK的概念 3
1.1.1  JNI的基础概念 3
1.1.2  NDK的使用场景 4
1.1.3  NDK的学习方法 4
1.1.4  开发资料 5
1.2  编译概念 5
1.2.1  动态库 5
1.2.2  静态库 18
1.2.3  静态库和动态库的使用场景 21
1.2.4  交叉编译 21
1.2.5  预编译库 22
1.2.6  预编译库和源码编译库的区别 23
1.3  CPU指令集和ABI 24
1.3.1  CPU指令集 25
1.3.2  ABI 25
1.4  CMake概念 27
1.4.1  CMake介绍 27
1.4.2  选择CMake的原因 28
1.5  NDK目录介绍 29
1.6  本章小结 31
第2章  环境搭建( 41min) 32
2.1  Ubuntu环境搭建 32
2.1.1  Ubuntu虚拟机安装 32
2.1.2  独立NDK环境配置 48
2.2  集成NDK环境搭建之Android Studio 52
2.3  本章小结 56
第3章  NDK开发场景( 57min) 57
3.1  NDK开发实际集成源码的场景 57
3.1.1  使用Android Studio源码直接集成 57
3.1.2  使用命令编译出符合平台相关的预编译库 65
3.1.3  使用Android Studio 直接集成预编译库 70
3.1.4  使用开源代码原始的方式交叉编译FFmpeg 77
3.1.5  Neon 86
3.2  本章小结 88
第4章  CMake开发基础( 72min) 89
4.1  CMake的基础使用 89
4.1.1  日志打印方法 89
4.1.2  流程控制 90
4.1.3  目标生成与链接 95
4.1.4  CMake设置库的输出路径 96
4.1.5  CMake如何包含头文件 97
4.1.6  CMake如何包含源文件列表及包含所有源文件语法 98
4.2  CMake多模块场景 99
4.2.1  多CMake应用场景 99
4.2.2  多CMake的实际使用案例 100
4.3  本章小结 104
第5章  NDK开发常用的数据类型及使用方法( 67min) 105
5.1  基础类型说明 105
5.2  引用类型说明 106
5.2.1  C语言下的引用类型 106
5.2.2  C 语言下的引用类型 107
5.3  UTF-8和UTF-16字符串 108
5.4  常用数据类型操作函数的使用 109
5.4.1  String字符串的使用 109
5.4.2  数组操作 111
5.5  本章小结 116

 

第6章  NDK开发核心知识点( 51min) 117
6.1  JavaVM 117
6.2  JNIEnv 119
6.3  全局引用和局部引用 120
6.3.1  局部引用 120
6.3.2  全局引用 122
6.3.3  弱全局引用 124
6.3.4  JNI_OnLoad 126
6.3.5  JNI_OnUnload 127
第7章  NDK开发关键函数( 163min) 128
7.1  函数操作基础 128
7.1.1  函数签名 128
7.1.2  jclass 133
7.1.3  jmethodID 135
7.2  调用Java端的函数 136
7.2.1  Native调用Java端成员函数 137
7.2.2  Native调用Java端的静态函数 140
7.3  Linux线程使用方法 141
7.3.1  线程的创建函数pthread_create 141
7.3.2  获取线程ID函数pthread_self 142
7.3.3  线程退出函数pthread_exit 143
7.3.4  线程资源回收函数pthread_join 147
7.3.5  线程终止函数pthread_cancel 149
7.3.6  线程分离函数pthread_detach 153
7.3.7  线程属性pthread_attr_t 155
7.3.8  小结 158
7.4  原生线程中获取JNIEnv 158
7.5  本章小结 162
第8章  NDK开发函数注册方式( 32min) 163
8.1  函数的静态注册方式 163
8.2  函数的动态注册方式 164
8.2.1  JNINativeMethod 164
8.2.2  RegisterNatives和UnregisterNatives函数 165
8.2.3  示例 165
8.3  静态注册和动态注册的优缺点及使用场景 167
8.3.1  静态注册的优缺点及使用场景 167
8.3.2  动态注册的优缺点和使用场景 168
8.3.3  小结 168
8.4  本章小结 168

实  战  篇
第9章  NDK开发之大量数据传输( 79min) 171
9.1  DirectByteBuffer简单介绍 171
9.2  DirectByteBuffer的使用方法 172
9.2.1  创建DirectByteBuffer 172
9.2.2  DirectByteBuffer API使用 172
9.3  DirectByteBuffer的使用场景 177
9.3.1  大数据量的IO密集型操作 177
9.3.2  长期使用的数据 177
9.3.3  对内存管理有特殊要求的场景 177
9.3.4  需要直接访问操作系统内存资源的场景 177
9.4  DirectByteBuffer的使用案例 177
第10章  NDK开发之opus开源库开发案例( 70min) 181
10.1  开源库opus源码封装 182
10.1.1  opus预编译库的编译与集成 183
10.1.2  opus库的基本使用 187
10.1.3  opus库的封装 190
10.2  使用opus开发PTT语音通话案例 192
10.2.1  UI开发 192
10.2.2  编解码及网络接口封装 198
10.2.3  录音功能实现 207
10.2.4  播放功能实现 210
10.3  本章小结 212
第11章  NDK开发调试( 80min) 213
11.1  使用Android Studio调试Native代码 213
11.1.1  启用调试功能 213
11.1.2  开始调试 214
11.2  问题跟踪 225
11.2.1  Native函数返回值崩溃 225
11.2.2  动态库Debug版本和Release版本的区别 226
11.2.3  如何快速定位Native崩溃 227
11.3  本章小结 231
第12章  线上崩溃Log捕获( 31min) 232
12.1  使用谷歌开源库捕获崩溃信息 232
12.1.1  转储文件 232
12.1.2  平台支持 233
12.1.3  工作过程 233
12.1.4  Breakpad封装 233
12.2  线上崩溃信息捕获的注意事项 243
第13章  NDK开发推荐做法( 14min) 245
13.1  数据传递 245
13.1.1  减少跨层传递次数 245
13.1.2  减少数据转换 245
13.1.3  设计高效接口 246
13.1.4  综合考虑性能和资源管理 246
13.1.5  尽量避免跨层异步通信 246
13.2  JNI线程使用时的注意事项 246
13.3  JNI接口开发建议 246
13.4  动态库瘦身 247
参考文献 248

  
VI


VII

 

 


展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证