注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)操作系統(tǒng)NDK開發(fā)與實(shí)踐(入門篇·微課視頻版)

NDK開發(fā)與實(shí)踐(入門篇·微課視頻版)

NDK開發(fā)與實(shí)踐(入門篇·微課視頻版)

定 價(jià):¥69.00

作 者: 蔣超
出版社: 清華大學(xué)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

購(gòu)買這本書可以去


ISBN: 9787302683032 出版時(shí)間: 2025-04-01 包裝: 平裝-膠訂
開本: 16開 頁(yè)數(shù): 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  本書旨在通過深入的理論與豐富的實(shí)戰(zhàn)案例,引領(lǐng)讀者系統(tǒng)學(xué)習(xí)NDK開發(fā)技術(shù)。NDK技術(shù)以其高安全性、卓越性能和高度復(fù)用性,成為現(xiàn)代應(yīng)用開發(fā)的關(guān)鍵技術(shù)之一。本書從基本概念出發(fā),全面介紹了NDK開發(fā)所需的核心基礎(chǔ)知識(shí),并詳細(xì)講解了如何從零開始構(gòu)建一個(gè)完整的NDK項(xiàng)目,以及如何利用集成開發(fā)環(huán)境高效地進(jìn)行NDK項(xiàng)目的調(diào)試與優(yōu)化。書中不僅涵蓋了當(dāng)前主流的開發(fā)技術(shù)和最佳實(shí)踐,更通過理論與實(shí)戰(zhàn)相結(jié)合的教學(xué)模式,讓讀者能夠迅速將所學(xué)知識(shí)應(yīng)用于實(shí)際工作中,提高開發(fā)效率,打造出更優(yōu)質(zhì)的應(yīng)用產(chǎn)品。本書共13章,分為基礎(chǔ)篇和實(shí)戰(zhàn)篇。基礎(chǔ)篇(第1~8章)詳細(xì)講述NDK開發(fā)理論基礎(chǔ)及環(huán)境搭建相關(guān)知識(shí)。從NDK基礎(chǔ)概念到交叉編譯原理、CMake基本語(yǔ)法的使用,逐步深入到NDK實(shí)戰(zhàn)項(xiàng)目的運(yùn)用;實(shí)戰(zhàn)篇(第9~13章)利用入門基礎(chǔ)篇所學(xué)內(nèi)容搭建一個(gè)完整的NDK實(shí)戰(zhàn)項(xiàng)目。本書示例代碼豐富,實(shí)際性和系統(tǒng)性較強(qiáng),并配有視頻講解,助力讀者透徹理解書中的重點(diǎn)、難點(diǎn)。本書既適合初學(xué)者入門,精心設(shè)計(jì)的案例對(duì)于工作多年的開發(fā)者也有參考價(jià)值,并可作為高等院校和培訓(xùn)機(jī)構(gòu)相關(guān)專業(yè)的教學(xué)參考書。

作者簡(jiǎn)介

  蔣超,一個(gè)在IT領(lǐng)域摸爬滾打十多年的老程序員、課程講師、作者。在公司擔(dān)任資深軟件工程師職務(wù),有多年嵌入式、OS、客戶端、服務(wù)器端全棧開發(fā)經(jīng)驗(yàn),特別對(duì)音視頻和NDK有較深入的研究。

圖書目錄

基  礎(chǔ)  篇
第1章  NDK入門基礎(chǔ)( 60min) 3
1.1  NDK的概念 3
1.1.1  JNI的基礎(chǔ)概念 3
1.1.2  NDK的使用場(chǎng)景 4
1.1.3  NDK的學(xué)習(xí)方法 4
1.1.4  開發(fā)資料 5
1.2  編譯概念 5
1.2.1  動(dòng)態(tài)庫(kù) 5
1.2.2  靜態(tài)庫(kù) 18
1.2.3  靜態(tài)庫(kù)和動(dòng)態(tài)庫(kù)的使用場(chǎng)景 21
1.2.4  交叉編譯 21
1.2.5  預(yù)編譯庫(kù) 22
1.2.6  預(yù)編譯庫(kù)和源碼編譯庫(kù)的區(qū)別 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  本章小結(jié) 31
第2章  環(huán)境搭建( 41min) 32
2.1  Ubuntu環(huán)境搭建 32
2.1.1  Ubuntu虛擬機(jī)安裝 32
2.1.2  獨(dú)立NDK環(huán)境配置 48
2.2  集成NDK環(huán)境搭建之Android Studio 52
2.3  本章小結(jié) 56
第3章  NDK開發(fā)場(chǎng)景( 57min) 57
3.1  NDK開發(fā)實(shí)際集成源碼的場(chǎng)景 57
3.1.1  使用Android Studio源碼直接集成 57
3.1.2  使用命令編譯出符合平臺(tái)相關(guān)的預(yù)編譯庫(kù) 65
3.1.3  使用Android Studio 直接集成預(yù)編譯庫(kù) 70
3.1.4  使用開源代碼原始的方式交叉編譯FFmpeg 77
3.1.5  Neon 86
3.2  本章小結(jié) 88
第4章  CMake開發(fā)基礎(chǔ)( 72min) 89
4.1  CMake的基礎(chǔ)使用 89
4.1.1  日志打印方法 89
4.1.2  流程控制 90
4.1.3  目標(biāo)生成與鏈接 95
4.1.4  CMake設(shè)置庫(kù)的輸出路徑 96
4.1.5  CMake如何包含頭文件 97
4.1.6  CMake如何包含源文件列表及包含所有源文件語(yǔ)法 98
4.2  CMake多模塊場(chǎng)景 99
4.2.1  多CMake應(yīng)用場(chǎng)景 99
4.2.2  多CMake的實(shí)際使用案例 100
4.3  本章小結(jié) 104
第5章  NDK開發(fā)常用的數(shù)據(jù)類型及使用方法( 67min) 105
5.1  基礎(chǔ)類型說明 105
5.2  引用類型說明 106
5.2.1  C語(yǔ)言下的引用類型 106
5.2.2  C 語(yǔ)言下的引用類型 107
5.3  UTF-8和UTF-16字符串 108
5.4  常用數(shù)據(jù)類型操作函數(shù)的使用 109
5.4.1  String字符串的使用 109
5.4.2  數(shù)組操作 111
5.5  本章小結(jié) 116
 
第6章  NDK開發(fā)核心知識(shí)點(diǎn)( 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開發(fā)關(guān)鍵函數(shù)( 163min) 128
7.1  函數(shù)操作基礎(chǔ) 128
7.1.1  函數(shù)簽名 128
7.1.2  jclass 133
7.1.3  jmethodID 135
7.2  調(diào)用Java端的函數(shù) 136
7.2.1  Native調(diào)用Java端成員函數(shù) 137
7.2.2  Native調(diào)用Java端的靜態(tài)函數(shù) 140
7.3  Linux線程使用方法 141
7.3.1  線程的創(chuàng)建函數(shù)pthread_create 141
7.3.2  獲取線程ID函數(shù)pthread_self 142
7.3.3  線程退出函數(shù)pthread_exit 143
7.3.4  線程資源回收函數(shù)pthread_join 147
7.3.5  線程終止函數(shù)pthread_cancel 149
7.3.6  線程分離函數(shù)pthread_detach 153
7.3.7  線程屬性pthread_attr_t 155
7.3.8  小結(jié) 158
7.4  原生線程中獲取JNIEnv 158
7.5  本章小結(jié) 162
第8章  NDK開發(fā)函數(shù)注冊(cè)方式( 32min) 163
8.1  函數(shù)的靜態(tài)注冊(cè)方式 163
8.2  函數(shù)的動(dòng)態(tài)注冊(cè)方式 164
8.2.1  JNINativeMethod 164
8.2.2  RegisterNatives和UnregisterNatives函數(shù) 165
8.2.3  示例 165
8.3  靜態(tài)注冊(cè)和動(dòng)態(tài)注冊(cè)的優(yōu)缺點(diǎn)及使用場(chǎng)景 167
8.3.1  靜態(tài)注冊(cè)的優(yōu)缺點(diǎn)及使用場(chǎng)景 167
8.3.2  動(dòng)態(tài)注冊(cè)的優(yōu)缺點(diǎn)和使用場(chǎng)景 168
8.3.3  小結(jié) 168
8.4  本章小結(jié) 168
實(shí)  戰(zhàn)  篇
第9章  NDK開發(fā)之大量數(shù)據(jù)傳輸( 79min) 171
9.1  DirectByteBuffer簡(jiǎn)單介紹 171
9.2  DirectByteBuffer的使用方法 172
9.2.1  創(chuàng)建DirectByteBuffer 172
9.2.2  DirectByteBuffer API使用 172
9.3  DirectByteBuffer的使用場(chǎng)景 177
9.3.1  大數(shù)據(jù)量的IO密集型操作 177
9.3.2  長(zhǎng)期使用的數(shù)據(jù) 177
9.3.3  對(duì)內(nèi)存管理有特殊要求的場(chǎng)景 177
9.3.4  需要直接訪問操作系統(tǒng)內(nèi)存資源的場(chǎng)景 177
9.4  DirectByteBuffer的使用案例 177
第10章  NDK開發(fā)之opus開源庫(kù)開發(fā)案例( 70min) 181
10.1  開源庫(kù)opus源碼封裝 182
10.1.1  opus預(yù)編譯庫(kù)的編譯與集成 183
10.1.2  opus庫(kù)的基本使用 187
10.1.3  opus庫(kù)的封裝 190
10.2  使用opus開發(fā)PTT語(yǔ)音通話案例 192
10.2.1  UI開發(fā) 192
10.2.2  編解碼及網(wǎng)絡(luò)接口封裝 198
10.2.3  錄音功能實(shí)現(xiàn) 207
10.2.4  播放功能實(shí)現(xiàn) 210
10.3  本章小結(jié) 212
第11章  NDK開發(fā)調(diào)試( 80min) 213
11.1  使用Android Studio調(diào)試Native代碼 213
11.1.1  啟用調(diào)試功能 213
11.1.2  開始調(diào)試 214
11.2  問題跟蹤 225
11.2.1  Native函數(shù)返回值崩潰 225
11.2.2  動(dòng)態(tài)庫(kù)Debug版本和Release版本的區(qū)別 226
11.2.3  如何快速定位Native崩潰 227
11.3  本章小結(jié) 231
第12章  線上崩潰Log捕獲( 31min) 232
12.1  使用谷歌開源庫(kù)捕獲崩潰信息 232
12.1.1  轉(zhuǎn)儲(chǔ)文件 232
12.1.2  平臺(tái)支持 233
12.1.3  工作過程 233
12.1.4  Breakpad封裝 233
12.2  線上崩潰信息捕獲的注意事項(xiàng) 243
第13章  NDK開發(fā)推薦做法( 14min) 245
13.1  數(shù)據(jù)傳遞 245
13.1.1  減少跨層傳遞次數(shù) 245
13.1.2  減少數(shù)據(jù)轉(zhuǎn)換 245
13.1.3  設(shè)計(jì)高效接口 246
13.1.4  綜合考慮性能和資源管理 246
13.1.5  盡量避免跨層異步通信 246
13.2  JNI線程使用時(shí)的注意事項(xiàng) 246
13.3  JNI接口開發(fā)建議 246
13.4  動(dòng)態(tài)庫(kù)瘦身 247
參考文獻(xiàn) 248
  
VI
VII
 
 

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) www.stefanvlieger.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)