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

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

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

定 價:¥69.00

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

ISBN: 9787302683032 出版時間: 2025-04-01 包裝: 平裝-膠訂
開本: 16開 頁數(shù): 字數(shù):  

內(nèi)容簡介

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

作者簡介

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

圖書目錄

基  礎(chǔ)  篇
第1章  NDK入門基礎(chǔ)( 60min) 3
1.1  NDK的概念 3
1.1.1  JNI的基礎(chǔ)概念 3
1.1.2  NDK的使用場景 4
1.1.3  NDK的學(xué)習(xí)方法 4
1.1.4  開發(fā)資料 5
1.2  編譯概念 5
1.2.1  動態(tài)庫 5
1.2.2  靜態(tài)庫 18
1.2.3  靜態(tài)庫和動態(tài)庫的使用場景 21
1.2.4  交叉編譯 21
1.2.5  預(yù)編譯庫 22
1.2.6  預(yù)編譯庫和源碼編譯庫的區(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虛擬機安裝 32
2.1.2  獨立NDK環(huán)境配置 48
2.2  集成NDK環(huán)境搭建之Android Studio 52
2.3  本章小結(jié) 56
第3章  NDK開發(fā)場景( 57min) 57
3.1  NDK開發(fā)實際集成源碼的場景 57
3.1.1  使用Android Studio源碼直接集成 57
3.1.2  使用命令編譯出符合平臺相關(guān)的預(yù)編譯庫 65
3.1.3  使用Android Studio 直接集成預(yù)編譯庫 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è)置庫的輸出路徑 96
4.1.5  CMake如何包含頭文件 97
4.1.6  CMake如何包含源文件列表及包含所有源文件語法 98
4.2  CMake多模塊場景 99
4.2.1  多CMake應(yīng)用場景 99
4.2.2  多CMake的實際使用案例 100
4.3  本章小結(jié) 104
第5章  NDK開發(fā)常用的數(shù)據(jù)類型及使用方法( 67min) 105
5.1  基礎(chǔ)類型說明 105
5.2  引用類型說明 106
5.2.1  C語言下的引用類型 106
5.2.2  C 語言下的引用類型 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ā)核心知識點( 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ù)注冊方式( 32min) 163
8.1  函數(shù)的靜態(tài)注冊方式 163
8.2  函數(shù)的動態(tài)注冊方式 164
8.2.1  JNINativeMethod 164
8.2.2  RegisterNatives和UnregisterNatives函數(shù) 165
8.2.3  示例 165
8.3  靜態(tài)注冊和動態(tài)注冊的優(yōu)缺點及使用場景 167
8.3.1  靜態(tài)注冊的優(yōu)缺點及使用場景 167
8.3.2  動態(tài)注冊的優(yōu)缺點和使用場景 168
8.3.3  小結(jié) 168
8.4  本章小結(jié) 168
實  戰(zhàn)  篇
第9章  NDK開發(fā)之大量數(shù)據(jù)傳輸( 79min) 171
9.1  DirectByteBuffer簡單介紹 171
9.2  DirectByteBuffer的使用方法 172
9.2.1  創(chuàng)建DirectByteBuffer 172
9.2.2  DirectByteBuffer API使用 172
9.3  DirectByteBuffer的使用場景 177
9.3.1  大數(shù)據(jù)量的IO密集型操作 177
9.3.2  長期使用的數(shù)據(jù) 177
9.3.3  對內(nèi)存管理有特殊要求的場景 177
9.3.4  需要直接訪問操作系統(tǒng)內(nèi)存資源的場景 177
9.4  DirectByteBuffer的使用案例 177
第10章  NDK開發(fā)之opus開源庫開發(fā)案例( 70min) 181
10.1  開源庫opus源碼封裝 182
10.1.1  opus預(yù)編譯庫的編譯與集成 183
10.1.2  opus庫的基本使用 187
10.1.3  opus庫的封裝 190
10.2  使用opus開發(fā)PTT語音通話案例 192
10.2.1  UI開發(fā) 192
10.2.2  編解碼及網(wǎng)絡(luò)接口封裝 198
10.2.3  錄音功能實現(xiàn) 207
10.2.4  播放功能實現(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  動態(tài)庫Debug版本和Release版本的區(qū)別 226
11.2.3  如何快速定位Native崩潰 227
11.3  本章小結(jié) 231
第12章  線上崩潰Log捕獲( 31min) 232
12.1  使用谷歌開源庫捕獲崩潰信息 232
12.1.1  轉(zhuǎn)儲文件 232
12.1.2  平臺支持 233
12.1.3  工作過程 233
12.1.4  Breakpad封裝 233
12.2  線上崩潰信息捕獲的注意事項 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è)計高效接口 246
13.1.4  綜合考慮性能和資源管理 246
13.1.5  盡量避免跨層異步通信 246
13.2  JNI線程使用時的注意事項 246
13.3  JNI接口開發(fā)建議 246
13.4  動態(tài)庫瘦身 247
參考文獻 248
  
VI
VII
 
 

本目錄推薦

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