Android NDK技術詳解及應用(Android加殼\圖片處理\性能優化)
  完結
收藏課程
9999+

Android NDK技術詳解及應用(Android加殼\圖片處理\性能優化)

本課程主要講解NDK技術的基本使用方法,如基本常用的JNI函數、Android系統中能使用的本地庫的使用方法和注意事項以及GCC工具的使用,并結合實例熟悉函數的。。。

適合人群:中級
課時數量:53課時
用到技術:android加殼、android SQLite性能優化、NDK調用DVM函數、NDK處理圖片
涉及項目:android加殼方案實現、NDK加載APK實戰、android 圖片特效處理、NDK做性能優化——SQLite數據庫數據插入優化案例、android Hook技術分析與實現

  • 課程顧問貼心解答

    為你推薦精品課程,無論就業還是升職加薪,毫無壓力。

  • 名企定制緊隨大流

    量身打造緊貼企業需求的實用性課程。

  • 系統教學把控效果

    集學、測、練為一體的學習系統為你科學的安排學習進度,提高效率。

  • 一線大師1對1指導

    課程研發團隊內一線資深講師一對一指導,手把手教學,直到學會。

  • 點播答疑完美結合

    每周2-3次直播解答,保證學員日常學習問題能得到解決。

  • 量身定制學習計劃

    告別雜亂的學習方式,我們會根據你的情況定制學習計劃。

 

NDK技術在Android中的應用主要是充分利用C、C++語言的一些優勢,如運行性能、代碼破解難度大,從而提高Android應用的性能和安全,使用應用更具有競爭力,而不至于擔心技術和數據被反編譯竊取。隨著一些黑技術在Android上的運用,如動態加載技術和Hook技術,使Android應用開發更具有靈活性,同時大大降低了Android應用升級的成本。未來可能還會有更多的技術以NDK為橋梁,應用到Android平臺上。

 

講師本人總結實際開發中一些經典案例及實用場景和經驗,特意整理錄制成視頻。本課程全程手敲代碼,適合各層次學員學習本視頻的知識點。從課程的學習組成結構大家一看也就知道從基礎到高級、由淺入深、循序漸進的講解NDK整個知識體系及實際應用案例。同時帶大家查看系統源代碼并分析一些系統原理,并講解基礎案例,使學員能快速運用到實際開發中。希望新手能通過此視頻快速上手NDK開發,并成功進階,也希望老手通過此視頻能更一步的認識NDK的開發模式。預祝每位學員都能成為NDK開的行家里手。

 

 

1.課程研發環境

案例源代碼編譯和運行環境以JDK1.7和android-sdk-23以及android-ndk-10e版本為基準, ,以下環境都適用于項目。

開發工具:android studio 1.5正式版, QT 5.0,SourceInsight 3.5;

其他工具:使用到了IDEA PRO工具以及網站查看分析源碼。

 

2.內容簡介

本課程主要講解NDK技術的基本使用方法,如基本常用的JNI函數、Android系統中能使用的本地庫的使用方法和注意事項以及GCC工具的使用,并結合實例熟悉函數的運用;同時會講解一些實例,如編譯使用第三方開源庫、Android應用中使用SQLite數據庫優化插入性能,慢慢體現出NDK的技術優勢;再結合Android中的一些黑技術,做為一個提高實踐,同時較為淺顯的描述一些技術原理,這部分會以動態加載DEX文件,Hook技術為實例;最后會深入Android系統源碼,講解一些技術原理的實現。

 

 

jacky老師:6年android應用開發經驗,一直致力于android應用開發,具有豐富的android開發經驗,獨立開發Android商業應用十余款。對NDK開發研究較深,熟練使用android NDK開發,擅長使用NDK解決android開發中出現的問題。對虛擬機加載DEX文件原理及android加殼實現研究較深。

 

 

一、技能儲備階段

第一講:背景介紹和搭建NDK開發環境

背景介紹和開發環境搭建

 

第二講:NDK基本類型及簽名、字符串及數組操作

01.JNI函數提示—搭建QT開發環境,

02。JNI類型簽名和方法簽名

03.JNI操作普通、靜態、構造方法

04.javap命令的使用

05.JNI操作字符串函數

06.JNI操作數組函數

 

第三講:使用JNI函數操作Java類、屬性和方法

01.JNI操作java類的相關函數

02.JNI操作java對象的相關函數

03.java類屬性相關操作函數(上)

04。java類屬性相關操作函數(下)

05。java類方法相關操作函數(上)

06.java類方法相關操作函數(下)

07.java屬性訪問權限,final,類型特殊情況

 

第四講:局部變量、全局變量、弱變量及資源緩存與回收

01.局部變量、全局變量、弱變量引用概念與操作函數(上)

02。局部變量、全局變量、弱變量引用概念與操作函數(下)

03。弱變量引用操作函數示例

04.資源緩存

05。資源回收

06.Frame資源回收

 

第五講:異常處理與線程

01.JNI異常處理函數講解

02.JNI異常捕獲函數示例

03.JNI異常拋出函數講解及示例

04.JNI操作Java線程同步函數講解及示例

05.pthread常用函數

 

第六講:本地方法注冊、java NIO的JNI操作

01.本地方法的注冊的JNI函數及步驟

02.本地方法注冊的JNI函數使用示例(上)

03.本地方法注冊的JNI函數使用示例(下)

04.JNI操作java NIO的函數及使用

05.JNI使用總結

 

第七講:NDK中本地庫的使用

01.NDK目錄介紹

02.SourceInsight安裝及android系統源碼導入

03.android系統支持的本地庫

 

第八講:使用SWIG自動生成JNI代碼

使用SWIG自動生成JNI代碼

 

第九講:NDK支持C++特性介紹使用

01.NDK支持C++特性介紹

02.NDK支持C++特性使用示例

 

第十講:Android系統中Native API

01。Android。mk文件和Application。mk文件介紹

02.Android.mk文件和Application.mk文件簡單編寫

03。編譯多個本地庫

04.訪問assets目錄函數講解

05.訪問assets目錄操作示例及源碼閱讀(上)

06。訪問assets目錄操作示例及源碼閱讀(下)

07.native activity開發介紹(上)

08。native activity開發介紹(下)

 

第十一講:NDK中可以使用的系統資源

01.build.prop內容介紹

02。讀取build。prop內容示例

03。訪問set命令環境變量中的內容

04.訪問系統中被標記為hide的代碼

 

第十二講:NDK開發調試及性能

01.錯誤定位

02.調試

03.性能優化

二、應用實戰階段

 

第十三講:NDK加載APK實戰

01.DEX文件加載器ClassLoader的區別

02.java層與DVM虛擬機加載DEX文件流程分析

03.ART虛擬機加載DEX文件處理流程分析

04.java代碼加載APK文件示例

05。C++代碼加載APK文件示例

06。使用第三方庫multidex加載APK示例

 

第十四講:NDK編譯第三方庫——編譯SQLite庫

01。編譯sqlite庫步驟及C API說明

02.sqlite數據庫創建表、插入、查詢、刪除操作示例

 

第十五講:NDK做性能優化——SQLite數據庫數據插入優化案例

01.SQLite數據庫性能優化原理講解

02。使用java代碼的方式向數據庫插入數據優化示例

03。使用C++代碼的方式向數據庫插入數據優化示例

 

第十六講:使用NDK方式調用DVM函數

01。dlfcn。h頭文件中的函數介紹及name mangling規則介紹

02.調用DVM中函數示例 

三、高級進階階段

 

第十七講:android加殼方案實現

01.加殼原理介紹及Dex文件頭講解

02。DVM從內存中加載DEX文件分析

03.從assets目錄讀取DEX文件內容到內存

04。從libdvm。so庫中查找函數代碼編寫

05。構造ClassLoader類加載器代碼示例

06.替換mCookie示例并編寫注釋

07。構造java層環境及編寫java代碼并調試項目代碼

08。思路總結

 

第十八講:android Hook技術分析與實現

01。Xposed介紹及代碼分析環境搭建

02。Xposed Hook在DVM中實現分析

03.ART Method的invoke方法執行流程分析

04.AndFix庫簡單使用

05。AndFix庫java層實現原理分析

06.apkPatch工具代碼實現分析

07。AndFix庫的DVM與ART虛擬機代碼實現原理分析

 

第十九講:android 圖片特效處理

01.圖片特效處理API講解及環境準備

02。使用java代碼處理圖片特效示例

03.使用NDK處理圖片函數介紹及準備

04。使用NDK處理圖片特效示例

05.openCV介紹及性能優化建議

 

第二十講:android cocos2d-x游戲開發入門

01。coco2d-x介紹及開發環境搭建

02.coco2d-x編譯過程講解及示例代碼介紹

 

第二十一講:NDK技術平臺兼容性和前景

NDK技術平臺兼容性和前景總結

 

 

 

 

 

 

 

 

本系課程,主要分為三部分完成

第一部分:技能儲備階段,學習使用NDK所需要的技能知識

第二部分:應用實戰部分,通過一些應用實例實戰,加深對NDK技術在Android應用開發過程中的運用與理解。

第三部分:高級進階部分,了解NDK技術背后的原理和實現

學完本系列課程后,學員將會達到以下學習目標:

本課程針對有一定Android應用開發基礎和C/C++語言基礎,并有志于利用C/C++完善Android應用中不足的學員,理解NDK技術的開發模式,能夠熟練使用NDK技術,以及NDK技術在Android應用中解決一些實際問題。

 

 

亮點一、項目中使用的第三方代碼等采用的均是目前為止流行的版本,講解時使用的這些代碼及框架的流行技術,技術的前沿性可以保證讓您的技術在二到三年內不會落伍.

 

亮點二、理論與實戰相結合,由淺入深。即照顧到基礎學員,又照顧到有一定經驗的學員,講解過程中留有學生思考的時間.

 

亮點三、課程絕大多數代碼均是一行一行手工敲入,手把手一步步帶領學員從入門到精通。

 

亮點四、整個課程雖案例不多,但整套視頻基本上涉及到NDK的基礎知識及基本API的使用,而且講師在講解過程中原理實現還給出不同思路,學員拿到該案例 后稍加改造就可以用到自己的項目,實用性超強.

 

 

 

1。課程針對人群

本課程針對具有一定的java和C/C++基礎(不要求對C/C++很熟悉,懂一些基本語法即可)與一定的android APP開發基礎的學員,想通過本課程的學習,了解在android中使用C/C++開發過程、熟練使用java JNI編程及android NDK編程的學員。也適 合于想學習分析android系統中比較前沿的黑技術的學員。  

 

2.我該怎么學,如何才能學好這門課程,給些建議。

2。1、時間上的安排建議

本課程共53課時,如果您時間上充分,建議以每天4-5課時的進度往前學習。 

2.2、學習要求

如果您沒有基礎,建議還是中規中矩的按照課程進度一點一點仔細觀看學習,并一定要把看完的視頻中的代碼自己手敲一遍,以加深理解和記憶

如果您有基礎,可不必按步就搬進行,可以拿你感興趣的部分去學習,但一定要注意實踐,并學會舉一反三 

2.3、講師建議

1.最好看完視頻之后,拋開視頻,獨立自己去把上課中的示例寫一遍,看自己是否理解,如果不正確,可以回過頭看再看下視頻,如果反復,達到真正理解和熟練掌握的目的。

2.對于項目實戰部分,一定要自己親自動手做一遍,不要滿足聽完就OK了

3。 建議一般聽視頻,一般拿個紙和筆,做一些記錄和筆記,這是一種非常好的學習習慣。

4。 一定不要過于依賴視頻,要學會看API和使用搜索引擎,學會思考,學會舉一反三

5。 最后祝您學有所成

 

 

課程是屬于某個特定的專業技術,掌握該技術后,你可以從事以下職位的相關工作

1.android應用開發工程師

2。android framework開發工程師

3。android NDK開發工程師

 

 

网赚平台有真实的吗 投票网赚 北京赛车PK10计划 云南11选5分布走势图 山东十一运夺金 秒速赛车官网 大有彩票开户 福建快3平台 互联网赚钱机器 北京快3