.png)
?
一、技能儲(chǔ)備階段
第一講:背景介紹和搭建NDK開(kāi)發(fā)環(huán)境
背景介紹和開(kāi)發(fā)環(huán)境搭建
?
第二講:NDK基本類(lèi)型及簽名、字符串及數(shù)組操作
01.JNI函數(shù)提示—搭建QT開(kāi)發(fā)環(huán)境,
02.JNI類(lèi)型簽名和方法簽名
03.JNI操作普通、靜態(tài)、構(gòu)造方法
04.javap命令的使用
05.JNI操作字符串函數(shù)
06.JNI操作數(shù)組函數(shù)
?
第三講:使用JNI函數(shù)操作Java類(lèi)、屬性和方法
01.JNI操作java類(lèi)的相關(guān)函數(shù)
02.JNI操作java對(duì)象的相關(guān)函數(shù)
03.java類(lèi)屬性相關(guān)操作函數(shù)(上)
04.java類(lèi)屬性相關(guān)操作函數(shù)(下)
05.java類(lèi)方法相關(guān)操作函數(shù)(上)
06.java類(lèi)方法相關(guān)操作函數(shù)(下)
07.java屬性訪問(wèn)權(quán)限,final,類(lèi)型特殊情況
?
第四講:局部變量、全局變量、弱變量及資源緩存與回收
01.局部變量、全局變量、弱變量引用概念與操作函數(shù)(上)
02.局部變量、全局變量、弱變量引用概念與操作函數(shù)(下)
03.弱變量引用操作函數(shù)示例
04.資源緩存
05.資源回收
06.Frame資源回收
?
第五講:異常處理與線程
01.JNI異常處理函數(shù)講解
02.JNI異常捕獲函數(shù)示例
03.JNI異常拋出函數(shù)講解及示例
04.JNI操作Java線程同步函數(shù)講解及示例
05.pthread常用函數(shù)
?
第六講:本地方法注冊(cè)、java NIO的JNI操作
01.本地方法的注冊(cè)的JNI函數(shù)及步驟
02.本地方法注冊(cè)的JNI函數(shù)使用示例(上)
03.本地方法注冊(cè)的JNI函數(shù)使用示例(下)
04.JNI操作java NIO的函數(shù)及使用
05.JNI使用總結(jié)
?
第七講:NDK中本地庫(kù)的使用
01.NDK目錄介紹
02.SourceInsight安裝及android系統(tǒng)源碼導(dǎo)入
03.android系統(tǒng)支持的本地庫(kù)
?
第八講:使用SWIG自動(dòng)生成JNI代碼
使用SWIG自動(dòng)生成JNI代碼
?
第九講:NDK支持C++特性介紹使用
01.NDK支持C++特性介紹
02.NDK支持C++特性使用示例
?
第十講:Android系統(tǒng)中Native API
01.Android.mk文件和Application.mk文件介紹
02.Android.mk文件和Application.mk文件簡(jiǎn)單編寫(xiě)
03.編譯多個(gè)本地庫(kù)
04.訪問(wèn)assets目錄函數(shù)講解
05.訪問(wèn)assets目錄操作示例及源碼閱讀(上)
06.訪問(wèn)assets目錄操作示例及源碼閱讀(下)
07.native activity開(kāi)發(fā)介紹(上)
08.native activity開(kāi)發(fā)介紹(下)
?
第十一講:NDK中可以使用的系統(tǒng)資源
01.build.prop內(nèi)容介紹
02.讀取build.prop內(nèi)容示例
03.訪問(wèn)set命令環(huán)境變量中的內(nèi)容
04.訪問(wèn)系統(tǒng)中被標(biāo)記為hide的代碼
?
第十二講:NDK開(kāi)發(fā)調(diào)試及性能
01.錯(cuò)誤定位
02.調(diào)試
03.性能優(yōu)化
二、應(yīng)用實(shí)戰(zhàn)階段
?
第十三講:NDK加載APK實(shí)戰(zhàn)
01.DEX文件加載器ClassLoader的區(qū)別
02.java層與DVM虛擬機(jī)加載DEX文件流程分析
03.ART虛擬機(jī)加載DEX文件處理流程分析
04.java代碼加載APK文件示例
05.C++代碼加載APK文件示例
06.使用第三方庫(kù)multidex加載APK示例
?
第十四講:NDK編譯第三方庫(kù)——編譯SQLite庫(kù)
01.編譯sqlite庫(kù)步驟及C API說(shuō)明
02.sqlite數(shù)據(jù)庫(kù)創(chuàng)建表、插入、查詢、刪除操作示例
?
第十五講:NDK做性能優(yōu)化——SQLite數(shù)據(jù)庫(kù)數(shù)據(jù)插入優(yōu)化案例
01.SQLite數(shù)據(jù)庫(kù)性能優(yōu)化原理講解
02.使用java代碼的方式向數(shù)據(jù)庫(kù)插入數(shù)據(jù)優(yōu)化示例
03.使用C++代碼的方式向數(shù)據(jù)庫(kù)插入數(shù)據(jù)優(yōu)化示例
?
第十六講:使用NDK方式調(diào)用DVM函數(shù)
01.dlfcn.h頭文件中的函數(shù)介紹及name mangling規(guī)則介紹
02.調(diào)用DVM中函數(shù)示例?
三、高級(jí)進(jìn)階階段
?
第十七講:android加殼方案實(shí)現(xiàn)
01.加殼原理介紹及Dex文件頭講解
02.DVM從內(nèi)存中加載DEX文件分析
03.從assets目錄讀取DEX文件內(nèi)容到內(nèi)存
04.從libdvm.so庫(kù)中查找函數(shù)代碼編寫(xiě)
05.構(gòu)造ClassLoader類(lèi)加載器代碼示例
06.替換mCookie示例并編寫(xiě)注釋
07.構(gòu)造java層環(huán)境及編寫(xiě)java代碼并調(diào)試項(xiàng)目代碼
08.思路總結(jié)
?
第十八講:android Hook技術(shù)分析與實(shí)現(xiàn)
01.Xposed介紹及代碼分析環(huán)境搭建
02.Xposed Hook在DVM中實(shí)現(xiàn)分析
03.ART Method的invoke方法執(zhí)行流程分析
04.AndFix庫(kù)簡(jiǎn)單使用
05.AndFix庫(kù)java層實(shí)現(xiàn)原理分析
06.apkPatch工具代碼實(shí)現(xiàn)分析
07.AndFix庫(kù)的DVM與ART虛擬機(jī)代碼實(shí)現(xiàn)原理分析
?
第十九講:android 圖片特效處理
01.圖片特效處理API講解及環(huán)境準(zhǔn)備
02.使用java代碼處理圖片特效示例
03.使用NDK處理圖片函數(shù)介紹及準(zhǔn)備
04.使用NDK處理圖片特效示例
05.openCV介紹及性能優(yōu)化建議
?
第二十講:android cocos2d-x游戲開(kāi)發(fā)入門(mén)
01.coco2d-x介紹及開(kāi)發(fā)環(huán)境搭建
02.coco2d-x編譯過(guò)程講解及示例代碼介紹
?
第二十一講:NDK技術(shù)平臺(tái)兼容性和前景
NDK技術(shù)平臺(tái)兼容性和前景總結(jié)