Android NDK 開發的問題,透過圖書和論文來找解法和答案更準確安心。 我們找到下列懶人包和總整理
Android NDK 開發的問題,我們搜遍了碩博士論文和台灣出版的書籍,推薦FLAPPYPIG戰隊寫的 CTF特訓營:技術詳解、解題方法與競賽技巧 和盧譽聲的 移動平台深度神經網路實戰:原理、架構與優化都 可以從中找到所需的評價。
另外網站Android NDK开发初试(基础) - 腾讯云也說明:首先,什么是NDK开发,听到这个词,我的第一感觉是高大上的,其实倒也没错,NDK在Android开发中属于偏底层的,需要与C++等进行联系,它没有像应用层 ...
這兩本書分別來自機械工業 和機械工業所出版 。
國立彰化師範大學 工業教育與技術學系數位學習碩士班 張庭毅所指導 黃皇銘的 具 Zstandard 資料壓縮之行動支付智慧自助洗車場與硬體電路設計 (2021),提出Android NDK 開發關鍵因素是什麼,來自於資料壓縮、物聯網、樹莓派、Android、iOS、雲端資料庫、Firebase。
而第二篇論文國立清華大學 資訊工程學系 李政崑所指導 張元銘的 人工智慧和開放計算語言的執行時系統和框架支持 (2020),提出因為有 異構系統架構、開放計算語言、執行時系統、便攜式計算語言、圖形處理器、開放式神經網路格式、交換式神經網路格式、神經網路應用接口的重點而找出了 Android NDK 開發的解答。
最後網站【开发者福利】手把手教你如何用android studio进行NDK开发則補充:安卓,NDK开发. ... 由于apk的java层代码很容易被反编译,而C/C++库反汇难度较大。 ... 下载完ndk的zip包,我解压到D:\Android这个目录下了:.
CTF特訓營:技術詳解、解題方法與競賽技巧
為了解決Android NDK 開發 的問題,作者FLAPPYPIG戰隊 這樣論述:
本書由國內老牌CTF戰隊FlappyPig撰寫,戰隊成員曾多次榮獲XCTF國際聯賽冠軍、TCTF/0CTF冠軍、WCTF世界駭客大師挑戰賽季軍,多次入圍Defcon全球總決賽,具有豐富的實戰經驗。 本書圍繞CTF競賽需要的安全技術、解題方法和競賽技巧3個維度展開,旨在通過作者扎實的技術功底和豐富的競賽經驗,引領對CTF競賽感興趣的讀者快速入門。書中依據CTF競賽的特點,分別從Web、Reverse、PWN、Crypto、APK、IoT這六個方面系統地對CTF競賽的知識點、模式、技巧進行了深入講解,每一篇都搭配歷年真題,幫助讀者加深理解。全書一共分六篇。 Web篇(第1~8章)主要講解C
TF比賽中Web類型題目的一些基礎知識點與常用的工具和外掛程式,這些知識點和工具也可以用於部分滲透測試的實戰中。Reverse篇(第9~10章)主要對CTF中逆向分析的主要方法、常用分析工具、逆向分析技術和破解方法進行講解,幫助讀者提高逆向分析能力。PWN篇(第11~17章)對PWN二進位漏洞挖掘利用的詳細分析,主要講解了針對各種漏洞的利用方法和利用技巧,作者可以結合實例題目加深理解。Crypto篇(第18~22章)對Crypto類型題目的知識和例題講解,主要從概述、編碼、古典密碼、現代密碼以及真題解析幾個方向進行敘述。 APK篇(第23~25章)講解CTF中的APK的相關內容,主要從AP
K的基礎知識點、Dalvik層的逆向分析技術,以及Native層的逆向分析技術三個方面介紹APK題目的寄出內容、解題方法和競賽技巧。IoT篇(第26~30章)對IoT類型題目的講解,內容涉及IoT、無線通訊的基礎知識和相關題型的解題技巧,幫助大家培養解決IoT相關題目的能力。 FlappyPig 國內老牌知名CTF戰隊,曾獲數十個各級CTF競賽冠亞季軍,具備國際CTF競賽水準,具備豐富的CTF參賽經驗。先後獲得XCTF聯賽總冠軍、XNUCA總決賽冠軍、CISCN冠軍、TCTF/0CTF(Defcon外卡賽)冠軍、WCTF世界駭客大師挑戰賽季軍,連續三年闖進Defcon決
賽,Defcon最好成績第10名。戰隊開發維護了CTFrank網站進行了CTF賽事的rank評級和推薦。 現在以r3kapig聯合戰隊的方式參賽。 戰隊成員挖掘並披露漏洞獲得CVE編號上百枚,向各類SRC報備漏洞數百個。戰隊成員在Geekpwn、天府杯、PWN2OWN等漏洞挖掘類競賽也取得了不錯的成績。 戰隊主要成員目前就職于阿裡巴巴、騰訊、京東等,從事網路安全、漏洞挖掘相關工作。在網路安全競賽、漏洞挖掘、滲透測試等領域具有非常深厚的積累,擅長Web、應用層軟體、作業系統、區塊鏈、嵌入式等多領域的漏洞挖掘與利用。 前 言 第一篇 CTF之Web 第1章 常用工具安裝及
使用 2 1.1 Burp Suite 2 1.2 Sqlmap 8 1.3 流覽器與外掛程式 9 1.4 Nmap 11 第2章 SQL注入攻擊 13 2.1 什麼是SQL注入 13 2.2 可以聯集查詢的SQL注入 14 2.3 報錯注入 14 2.4 Bool 盲注 16 2.5 時間盲注 17 2.6 二次注入 18 2.7 limit之後的注入 20 2.8 注入點的位置及發現 20 2.9 繞過 21 2.10 SQL讀寫文件 24 2.11 小結 24 第3章 跨站腳本攻擊 25 3.1 概述 25 3.2 常見XSS漏洞分類 25 3.3 防護與繞過 29 3.4 危害與利
用技巧 38 3.5 實例 40 第4章 服務端請求偽造 42 4.1 如何形成 42 4.2 防護繞過 43 4.3 危害與利用技巧 43 4.4 實例 46 第5章 利用特性進行攻擊 48 5.1 PHP語言特性 48 5.1.1 弱類型48 5.1.2 反序列化漏洞49 5.1.3 截斷51 5.1.4 偽協議51 5.1.5 變數覆蓋52 5.1.6 防護繞過54 5.2 Windows系統特性 54 第6章 代碼審計 56 6.1 源碼洩露 56 6.2 代碼審計的方法與技巧 61 第7章 條件競爭 67 7.1 概述 67 7.2 條件競爭問題分析及測試 68 第8章 案
例 解 析 73 8.1 NSCTF 2015 Web實例 73 8.2 湖湘杯2016線上選拔賽Web實例 75 8.3 0CTF 2017 Web實例 79 8.4 2019 WCTF 大師賽賽題剖析:P-door 80 本篇小結 87 第二篇 CTF之Reverse 第9章 Reverse 概述 90 9.1 逆向分析的主要方法 90 9.2 彙編指令體系結構 91 9.2.1 x86指令體系91 9.2.2 x64指令體系92 9.3 逆向分析工具介紹 93 9.3.1 反彙編和反編譯工具93 9.3.2 調試器97 9.3.3 Trace類工具100 第10章 Reverse
分析 102 10.1 常規逆向分析流程 102 10.1.1 關鍵代碼定位102 10.1.2 常見加密演算法識別104 10.1.3 求解flag109 10.2 自動化逆向 113 10.2.1 IDAPython114 10.2.2 PythonGdb114 10.2.3 pydbg115 10.2.4 Angr115 10.3 幹擾分析技術及破解方法 116 10.3.1 花指令116 10.3.2 反調試117 10.3.3 加殼119 10.3.4 控制流混淆121 10.3.5 雙進程保護124 10.3.6 虛擬機器保護127 10.4 指令碼語言的逆向 132 10.4.
1 .NET程式逆向132 10.4.2 Python程式逆向135 10.4.3 Java程式逆向137 本篇小結 139 第三篇 CTF之PWN 第11章 PWN 基礎 142 11.1 基本工具 142 11.2 保護機制 143 11.3 PWN類型 143 11.4 常見利用方法 144 11.5 程式記憶體佈局 149 11.6 真題解析 150 第12章 棧相關漏洞 166 12.1 棧介紹 166 12.1.1 函數棧的調用機制167 12.1.2 函數參數傳遞168 12.2 棧溢出 169 12.2.1 基本概念169 12.2.2 覆蓋棧緩衝區的具體用途170 12
.3 棧的特殊利用 177 12.4 棧噴射 177 12.5 執行緒棧 178 12.6 真題解析 184 12.6.1 {ZCTF-2015} guess(PWN100)184 12.6.2 {ZCTF-2015} spell (PWN300)187 12.6.3 {Codegate-2015} Chess(PWN700)189 12.6.4 {RCTF-2015} Welpwn(PWN200)196 第13章 堆相關漏洞 198 13.1 堆介紹 198 13.1.1 堆基本資料結構chunk198 13.1.2 堆空閒塊管理結構bin200 13.1.3 malloc基本規則201
13.1.4 free基本規則201 13.1.5 tcache202 13.2 漏洞類型 204 13.3 利用方法 206 13.3.1 最基本的堆利用206 13.3.2 unlink208 13.3.3 fastbin attack211 13.3.4 forgotten chunk212 13.3.5 house of force217 13.3.6 house of spirit218 13.3.7 house of orange218 13.3.8 堆噴射224 13.3.9 更多堆利用技巧224 13.4 真題解析 225 第14章 格式化字串漏洞 244 14.1 基本概念
244 14.2 資訊洩露與修改 245 14.3 額外技巧 249 14.4 真題解析 254 14.4.1 {CCTF-2016} PWN3(PWN350)254 14.4.2 {RCTF-2015} nobug(PWN300)256 14.4.3 {LCTF-2016} PWN200258 第15章 整型漏洞 261 15.1 寬度溢出 261 15.2 符號轉換 263 15.3 陣列越界 264 15.4 真題解析 265 第16章 邏輯漏洞 269 16.1 基本概念 269 16.2 競態條件漏洞 269 16.3 真題解析 271 第17章 Attack&Defense
模式 273 17.1 修補方案 273 17.1.1 大小修改法273 17.1.2 函數替換法275 17.1.3 .eh_frame 段Patch法276 17.1.4 其他方法277 17.2 攻防策略 277 相關知識連結推薦 278 本篇小結 279 第四篇 CTF之Crypto 第18章 Crypto 概述 282 第19章 編碼 284 19.1 hex 284 19.2 urlencode 286 19.3 morsecode 286 19.4 jsfuck 289 19.5 uuencode 291 19.6 base家族 291 第20章 古典密碼 294 20.
1 移位元密碼 294 20.1.1 簡單移位元密碼 294 20.1.2 曲路密碼 296 20.1.3 雲影密碼 296 20.1.4 柵欄密碼 296 20.2 替代密碼 298 20.2.1 單表替代密碼 298 20.2.2 多表替代密碼 303 第21章 現代密碼 309 21.1 區塊編碼器和序列密碼 309 21.1.1 DES/AES基本加解密 309 21.1.2 區塊編碼器CBC bit翻轉攻擊 310 21.1.3 區塊編碼器CBC選擇密文攻擊 312 21.1.4 區塊編碼器CBC padding oracle攻擊 312 21.1.5 Feistel結構分析 31
3 21.1.6 攻擊偽亂數發生器 314 21.2 公開金鑰密碼 319 21.2.1 RSA基礎 319 21.2.2 直接模數分解 320 21.2.3 費馬分解和Pollard_rho分解 322 21.2.4 公約數模數分解 325 21.2.5 其他模數分解方式 327 21.2.6 小指數明文爆破 329 21.2.7 選擇密文攻擊 330 21.2.8 LLL-attack 330 21.2.9 Wiener Attack & Boneh Durfee Attack 334 21.2.10 共模攻擊 338 21.2.11 廣播攻擊 340 21.2.12 相關消息攻擊 342
21.2.13 DSA 343 21.3 雜湊 344 21.3.1 雜湊碰撞 344 21.3.2 雜湊長度擴展攻擊 345 第22章 真題解析 348 22.1 SUPEREXPRESS 348 22.2 VIGENERE 350 22.3 Revolver 357 22.4 Railgun 362 本篇小結 365 第五篇 CTF之APK 第23章 APK基礎 368 23.1 Android題目類型 368 23.2 Android基本架構 368 23.2.1 Android的Dalvik虛擬機器 369 23.2.2 Native層 369 23.3 ARM架構基礎知識 3
69 23.3.1 函式呼叫/跳轉指令 370 23.3.2 出棧入棧指令 371 23.3.3 保存/恢復寄存器的值 371 23.4 adb 371 23.5 APK檔案格式 372 第24章 Dalvik層逆向分析 373 24.1 Dalvik基礎知識 373 24.1.1 寄存器 374 24.1.2 類型 374 24.1.3 方法 375 24.1.4 指令特點 375 24.2 靜態分析 376 24.2.1 使用Apktool反編譯APK程式 376 24.2.2 使用dex2jar生成jar檔 379 24.2.3 使用jd-gui查看反編譯的Java代碼 380 24.
2.4 使用FernFlower反編譯Jar檔 381 24.2.5 使用Android Killer / jadx / APK Studio逆向分析平臺 381 24.2.6 使用JEB進行靜態分析 388 24.2.7 其他的靜態分析軟體 393 24.3 動態調試 394 24.3.1 使用log調試 394 24.3.2 smali動態調試 396 24.3.3 使用Xposed框架Hook進程 400 24.3.4 使用Frida框架Hook進程 405 24.4 Dalvik層混淆及加固技術 409 24.4.1 ProGuard混淆 409 24.4.2 DEX破壞 409 24
.4.3 APK偽加密 410 24.4.4 APK增加資料 410 24.4.5 DEX隱藏 410 第25章 Native層逆向 411 25.1 Native層介紹 411 25.1.1 正向—使用NDK編寫Native層應用 411 25.1.2 JNI調用特徵分析 413 25.2 使用IDA Pro靜態分析 419 25.3 動態調試 423 25.3.1 使用IDA Pro進行動態調試 423 25.3.2 使用GDB進行動態調試 425 25.3.3 使用Frida框架HOOK進程 428 25.4 OLLVM混淆及加固技術 430 25.4.1 -fla 431 25.4.
2 -bcf 432 25.4.3 -sub 434 本篇小結 436 第六篇 CTF之IoT 第26章 IoT基礎知識 438 26.1 什麼是IoT 438 26.2 什麼是嵌入式系統 439 26.3 嵌入式系統的基本概念 439 26.4 CTF中常見的IoT題型歸類 441 第27章 IoT固件逆向工程 443 27.1 常見IoT架構介紹 443 27.2 晶片手冊的尋找與閱讀 446 27.3 使用IDA手動尋找固件入口點 450 27.4 寄存器位址和SRAM位址的處理方法 453 27.5 IDA之CPU高級選項 456 27.6 動態調試環境搭建 458 27.7 專
業調試工具 459 27.8 反編譯工具 469 第28章 固件結構分析 470 28.1 常見固件類型 470 28.2 Flash檔案系統 471 28.3 固件基底位址確定方法 471 28.4 固件分析工具 473 第29章 無線信號分析 475 29.1 無線通訊基本理論介紹 475 29.2 常見調製方式與解調方法 476 29.3 Matlab在數位信號處理中的應用 478 第30章 經典賽題講解 483 30.1 PCTF2016:Confused ARM 483 30.2 UCTF2016資格賽:TWI 486 30.3 UCTF2016決賽:Normandie 491
30.4 ACTF2016:4G Radio 498 30.5 UCTF2016資格賽:感測器(1)(2) 500 30.6 UCTF2016資格賽:Add 502 本篇小結 506
具 Zstandard 資料壓縮之行動支付智慧自助洗車場與硬體電路設計
為了解決Android NDK 開發 的問題,作者黃皇銘 這樣論述:
近年來,5G技術、人工智慧的熱潮帶動了企業對數據、資料傳輸及運算資源的需求大幅增長,數據量也因此達到了前所未有的高度。然而,在網路傳輸和存儲能力有限的情況下,資料壓縮變得越來越重要。透過資料壓縮,能夠有效減少傳輸的數據量、降低網路傳輸頻寬的負荷,有效節省存儲容量。本研究開發一客製化APP並導入Zstandard資料壓縮技術,將洗車場的使用紀錄、收益紀錄經過壓縮後上傳至雲端資料庫,以減少數據儲存於雲端資料庫所需花費的成本。另外一方面,研究所開發之物聯網系統使用微動開關來偵測投幣器之投幣訊號,透過繼電器驅動電路來控制車格內之所有功能,並使用顯示模組以呈現給使用者投幣金額和使用功能之倒數時間。
移動平台深度神經網路實戰:原理、架構與優化
為了解決Android NDK 開發 的問題,作者盧譽聲 這樣論述:
本書精講移動平臺深度學習系統所需核心演算法、硬體級指令集、系統設計與程式設計實戰、海量資料處理、業界流行框架裁剪與產品級性能優化策略等,深入、翔實。 深度學習基礎(第1~4章),介紹開發機器學習系統所需重要知識點,以及開發移動平臺機器學習系統演算法基石,諸如人工神經網路、稀疏自編碼器、深度網路、卷積神經網路等。 移動平臺深度學習基礎(第5~6章),介紹移動平臺開發環境搭建、移動平臺開發基礎、ARM指令集加速技術,以及羽量級網路的實現原理與實戰。 深入理解深度學習(第7~8章),剖析資料預處理原理與方法,高性能即時處理系統開發,以及基於深度神經網路的物體檢測與識別。本篇是下一篇內容的前導與
“基石”。 深入理解移動平臺深度學習(第9~12章),本篇應用前述章節的框架與技術,實現移動平臺深度學習系統的實現與集成,具體涵蓋:① 移動平臺性能優化,資料獲取與訓練,為開發移動平臺圖像分類系統建立基礎;② 深入剖析TensorFlow Lite代碼體系、構建原理、集成方法以及核心代碼與裁剪分析,模型處理工具,並完成移動平臺系統集成;③ 結合實戰分析主流移動平臺機器學習框架、介面,並展望未來。 盧譽聲 Autodesk資料平臺和計算平臺資深工程師,負責平臺架構研發工作。工作內容涵蓋大規模分散式系統的伺服器後端、前端以及SDK的設計與研發,在資料處理、即時計算、分散式
系統設計與實現、性能調優、高可用性和自動化等方面積累了豐富的經驗。擅長C/C++、JavaScript開發,此外對 Scala、Java以及移動平臺等也有一定研究。 著有《移動平臺深度神經網路實戰:原理、架構與優化》、《分散式即時處理系統:原理架構與實現》,並譯有《高級C/C++編譯技術》和《JavaScript程式設計精解(原書第2版)》等。 序一 序二 前言 第一篇 深度學習基礎 第1章 向未來問好 2 1.1 機器學習即正義 2 1.1.1 照本宣科 3 1.1.2 關鍵概念概述 4 1.1.3 數學之美 5 1.2 機器學習的場景和任務 6 1.3 機器學習
演算法 8 1.4 如何掌握機器學習 10 1.4.1 學習曲線 10 1.4.2 技術棧 11 1.5 深度學習 12 1.6 走進移動世界的深度學習 25 1.7 本書框架 26 1.8 本章小結 27 第2章 機器學習基礎 28 2.1 機器學習的主要任務 28 2.2 貝葉斯模型 29 2.3 Logistic回歸 33 2.4 本章小結 44 第3章 人工神經網路 45 3.1 人工神經網路簡介 45 3.2 基本結構與前向傳播 46 3.3 反向傳播演算法 50 3.4 實現前向神經網路 53 3.5 稀疏自編碼器 61 3.6 神經網路資料預處理 64 3.7 本章小結 65
第4章 深度網路與卷積神經網路 66 4.1 深度網路 66 4.2 卷積神經網路 70 4.3 卷積神經網路實現 73 4.4 本章小結 110 第二篇 移動平臺深度學習基礎 第5章 移動平臺深度學習框架設計與實現 112 5.1 移動平臺深度學習系統開發簡介 112 5.2 ARM Linux基礎開發環境 113 5.2.1 通用ARM工具鏈安裝 114 5.2.2 Android NDK安裝 114 5.2.3 樹莓派工具鏈安裝 115 5.3 TensorFlow Lite介紹 115 5.3.1 TensorFlow Lite特性 115 5.3.2 TensorFlow Li
te架構 116 5.3.3 TensorFlow Lite代碼結構 117 5.4 移動平臺性能優化基礎 118 5.4.1 ARM v8體系結構 119 5.4.2 ARM v8資料類型與寄存器 120 5.4.3 Neon指令集介紹 122 5.4.4 ARM v8記憶體模型 124 5.4.5 Neon指令集加速實例 127 5.5 本章小結 140 第6章 移動平臺羽量級網路實戰 141 6.1 適用於移動平臺的羽量級網路 141 6.2 SqueezeNet 142 6.2.1 微觀結構 142 6.2.2 宏觀結構 142 6.2.3 核心思路 143 6.2.4 實戰:用Py
Torch實現SqueezeNet 144 6.3 MobileNet 153 6.4 ShuffleNet 154 6.5 MobileNet V2 155 6.5.1 MobileNet的缺陷 155 6.5.2 MobileNet V2的改進 155 6.5.3 網路結構 156 6.5.4 實戰:用PyTorch實現MobileNet V2 157 6.6 本章小結 161 第三篇 深入理解深度學習 第7章 高性能數據預處理實戰 164 7.1 資料預處理任務 164 7.2 數據標準化 166 7.3 PCA 167 7.4 在Hurricane之上實現PCA 170 7.5 本章
小結 192 第8章 基於深度神經網路的物體檢測與識別 193 8.1 模式識別與物體識別 193 8.2 圖像分類 197 8.3 目標識別與物體檢測 207 8.4 檢測識別實戰 213 8.5 移動平臺檢測識別實戰 237 8.6 本章小結 258 第四篇 深入理解移動平臺深度學習 第9章 深入移動平臺性能優化 260 9.1 模型壓縮 260 9.2 權重稀疏化 262 9.3 模型加速 275 9.4 嵌入式優化 287 9.5 嵌入式優化代碼實現 290 9.6 本章小結 313 第10章 資料獲取與模型訓練實戰 314 10.1 收集海量資料 314 10.2 圖片資料爬蟲
實現 317 10.3 訓練與測試 330 10.3.1 模型定義 330 10.3.2 訓練 334 10.3.3 測試 342 10.3.4 封裝 344 10.4 本章小結 345 第11章 移動和嵌入式平臺引擎與工具實戰 346 11.1 TensorFlow Lite構建 346 11.2 集成TensorFlow Lite 357 11.3 核心實現分析 358 11.4 模型處理工具 407 11.5 本章小結 425 第12章 移動平臺框架與介面實戰 426 12.1 Core ML 426 12.2 Android Neural Networks API 437 12.2
.1 等等,Google還有一個ML Kit 437 12.2.2 NNAPI程式設計模型 437 12.2.3 創建網路與計算 439 12.2.4 JNI封裝與調用 451 12.2.5 App實戰:集成NNAPI 454 12.3 實戰:實現Android圖像分類器App 459 12.3.1 JNI封裝 459 12.3.2 Java調用 474 12.4 未來之路 479 12.5 本章小結 480 為什麼要寫這本書 機器學習、雲計算與移動技術的興起為電腦科學領域注入了前所未有的活力,而海量資料時代的來臨更是為機器學習技術帶來了新的發展契機。我們可以看到,越
來越多的企業和研發機構開始在自己的產品當中加入機器智慧,曾經僅僅是為了錦上添花而使用的機器學習應用,如今搖身一變,成了現代軟體產品或服務的核心競爭力。 通過機器學習技術,軟體或服務的功能和體驗得到了質的提升。比如,我們甚至可以通過啟發式引擎智慧地預測並調節雲計算分散式系統的節點壓力,以此改善服務的彈性和穩定性,這是多麼美妙。而對移動平臺來說,越來越多的移動終端、邊緣計算設備和App開始引入人工智慧技術,而且對預測即時性要求高的環境也越來越依賴於離線即時機器學習,另外移動技術的普及也讓邊緣計算支援機器智慧成為可能。 然而,開發成熟完善的機器學習系統並不簡單。不同于傳統電腦軟體系統開發,研發機
器學習系統不僅需要掌握扎實的軟體發展技術、演算法原理,還需要掌握紛繁複雜的資料處理原理和實踐方法。此外,機器學習系統的實際載體多種多樣。一個典型的機器學習系統可以是運行在雲計算平臺(比如AmazonAWS)之上的實例,通過API調用的方式提供預測服務。另一種情況是,集中式提供機器學習服務固然不錯,但離線機器學習計算是一項重大補充。 在對即時性要求極為苛刻的生產環境中,即時的本地機器學習預測技術就顯得尤為關鍵,如何在確保準確率的前提下,提升整體計算效率、降低系統功耗成為需要攻克的難題。在移動技術、邊緣計算等技術突飛猛進的當下,研發高可靠、高效率以及低功耗的移動平臺機器學習系統擁有廣闊的發展願景
和市場,這既為我們創造了新的機遇,也使研發面臨巨大的挑戰。這是筆者撰寫本書的原動力。本書著眼於移動平臺之上的深度神經網路系統的研發和實戰,從理論開始,抽絲剝繭地闡述、歸納和總結研發高性能計算系統的各個方面,同時輔以實戰,帶領讀者一起掌握實際的工程落地方法。 未來已至,我們需要做好準備! 本書特色 本書是一本由淺入深詳細講解研發高性能移動平臺深度學習系統的程式設計實戰書。本書從基礎機器學習知識開始講起,涵蓋設計和使用高性能分散式即時處理系統,移動平臺程式設計,前向引擎優化和裁剪,實際的代碼編寫,最終實現一整套針對移動領域開發的完整機器學習解決方案。在本書中,我們將介紹一套以C++編寫的高性能分
散式即時處理系統Hurricane及其使用方法,供資料收集和預處理使用。在此基礎上,我們會深入剖析機器學習原理和深度神經網路概念,而概念講解伴隨而來的是程式設計實戰,本書主要使用Python來講解基礎演算法,驗證設想。 另外,本書採用循序漸進的方式講解理論知識,從基礎知識入手到艱澀的優化演算法。相比於C/C++,Python是一門易於上手並實驗友好的膠水語言,因此在講解各類概念與演算法時,我們會使用Python來驗證設想。從神經網路和深度學習篇章開始,為了給工程開發學習打下堅實的基礎,本書除了使用Python代碼驗證設想外,還使用C/C++來實現產品級的代碼。 由於本書的主題是講解如何開發
實現高性能的移動平臺深度學習系統,因此會花費大量篇幅講解各種旨在提升演算法速度和減小模型的小的演算法與技術手段,從羽量級網路等演算法模型層面改良到Neon指令集應用、權重稀疏化、半精度、權重量化等優化演算法與技術實現,最終完成適用於移動平臺的深度學習引擎性能增強與模型裁剪。為了完成完整的深度學習系統,我們除了要掌握基本原理外還需要掌握各類實現應用所需的工程技術。例如,在第三篇講解與完成整個系統相關的所有技術時,還介紹了如何爬取訓練用的圖像資料、清理訓練資料、編寫訓練代碼等內容,並以Tensor FlowLite為例,講解移動平臺深度學習引擎框架的搭建方法,卷積層、池化層和全連接層實現與iOS(
包括iPadOS)、Android等平臺的交互操作實現與封裝方案,最終完成可以在iOS與Android上實際運行的深度學習系統。 期待讀者能從本書中學到新的知識,以便對深度學習與移動平臺系統開發有更加深入的認識,瞭解如何構建一個高性能移動平臺深度學習系統。
人工智慧和開放計算語言的執行時系統和框架支持
為了解決Android NDK 開發 的問題,作者張元銘 這樣論述:
在高等程式語言中,執行時系統正變得越來越重要。它可以用來當作控制與向後協尋幫助的引擎,為人工智能模型和人工智能語言提供一個執行環境。在現在的開放計算語言中,執行時系統,可以調用核心程序在圖形處理器上並做運算。因此,執行時系統可以在程序調度,執行和分區等方面發揮作用。在我們的研究工作中,我們將努力的為執行時系統提供幾個先進的研究。本文的主要貢獻如下。首先,在先前的工作中,我們的實驗室成員幫助異構系統架構中啟用了開放計算語言框架1.2的版本,使用開源軟體的便攜式計算語言的執行時框架作為實作的架構基礎。在這項工作中,我們進一步擴展了框架,予以支持開放計算語言2.0功能,並通過了13隻AMD軟體開發
套件中的計算語言2.0範例程式。其次,我們的研究工作開發出允許交換式神經網路格式的模型在Host和Android平台上執行推理的任務,並通過Android平台上的神經網絡應用接口靈活地調用神經網絡,以加快推理操作。我們開發了一種名為BFSelector的算法,該算法基於經典的廣度優先搜索,並包括使用成本的考量去決定輸入的模型如何做區分。我們的初步實驗結果表明,我們在交換式神經網路格式的模型上使用API 27的神經網路應用接口,可以使基準速度提高1.32至22.52倍,在API 28的基準下速度提高4.56至211倍,其中基準是無調用神經網路應用接口。實驗包括AI模型,例如LeNet,AlexN
et,MobileNet_V1,MobileNet_V2,VGG-16和VGG-19。最後,我們看一下在圖形處理器架構上調度相依程序的執行時功能。我們創建框架來分析神經網路模型(例如交換式神經網路格式和開放式神經網路格式的模型)並找到相關相依程序的模板,然後可將其進行調度使用開放計算語言或CUDA在圖形處理器架構上。 初步的實驗結果表明,通過結合神經網路運算單元和適當的內存策略,該技術平均可將整體性能提高8%,並將緩存未命中率平均降低14%。
想知道Android NDK 開發更多一定要看下面主題
Android NDK 開發的網路口碑排行榜
-
#1.Google's Android NDK简介
其实,从 Android 平台诞生起,就已经支持使用C/C++开发。 众所周知, Android SDK Framework API 基于Java平台, 这意味着基于Android SDK进行开发的第三方应用都必须使用 ... 於 blog.fpliu.com -
#2.Android NDK開發掃盲及最新CMake的編譯使用">Android NDK ...
1.1 NDK 基礎概念. 首先先用簡單的話分別解釋下 JNI 、 NDK , 以及分別和Android 開發、c/c++ 開發的配合 ... 於 www.itread01.com -
#3.Android NDK开发初试(基础) - 腾讯云
首先,什么是NDK开发,听到这个词,我的第一感觉是高大上的,其实倒也没错,NDK在Android开发中属于偏底层的,需要与C++等进行联系,它没有像应用层 ... 於 cloud.tencent.com -
#4.【开发者福利】手把手教你如何用android studio进行NDK开发
安卓,NDK开发. ... 由于apk的java层代码很容易被反编译,而C/C++库反汇难度较大。 ... 下载完ndk的zip包,我解压到D:\Android这个目录下了:. 於 wetest.qq.com -
#5.ARCore supported devices - Google for Developers
Manufacturer Device model Comments Asus ROG Phone Asus ROG Phone II Asus ROG Phone III Supports Depth API 於 developers.google.com -
#6.Android NDK开发学习(一) - 看云
Android NDK开发 学习,讲解一些入门的知识,如配置,导入项目及官方demo。 於 www.kancloud.cn -
#7.Android NDK 开发教程七:调试- Android在线手册 - 一起大数据
開發 應用一個關鍵的步驟是調試,對於NDK的c++代碼調試有很多種方法,. 對於和Android平台相關性不大的部分代碼,可以單獨創建一個C/C++項目,編寫測試代碼,測試完成 ... 於 www.17bigdata.com -
#8.原生開發工具包- 維基百科,自由的百科全書
^ Android NDK. [2011-03-28]. (原始內容存檔於2013-08-19). 於 zh.wikipedia.org -
#9.Android NDK开发指南---Application.mk文件 - 华为云社区
Android NDK开发 指南---Application.mk文件 ... 要将C\C++代码编译为SO文件,光有Android.mk文件还不行,还需要一个Application.mk文件。 於 bbs.huaweicloud.com -
#10.开发自己的NDK 程序- JNI/NDK 开发指南- UDN开源文档
android 的NDK 开发需要在linux 下进行: 因为需要把C/C++ 编写的代码生成能在arm 上运行的 .so 文件,这就需要用到交叉编译环境,而交叉编译需要在linux 系统下才能 ... 於 doc.yonyoucloud.com -
#11.使用NDK與jni編譯原生C語言程式碼 - Google Docs
因為使用NDK+jni來使得原生的C/C++程式可供Android應用程式呼叫,似乎與開發環境(Android Studio或Eclipse)以及NDK版本有關,不同的開發環境在設定/目錄結構上似乎有些微 ... 於 docs.google.com -
#12.玩Android - wanandroid.com - 每日推荐优质文章
最新学习路线 更多> · Android framework - 学习路径 · 高级编程NDK/JNI - 学习路径 ; 最受欢迎问答 更多> · 每日一问| Dialog 的构造方法的context 必须传入Activity吗? 於 www.wanandroid.com -
#13.Android NDK开发基础 - 知乎专栏
NDK 即Native Development Kit,是Android上用来开发c/c++的开发工具包。 安装步骤:developer.android.com/studio/proj… 於 zhuanlan.zhihu.com -
#14.AndroidSecNotes/Android开发基础/Android NDK 开发基础.md ...
安装android-ndk开发包,这个开发包可以在google android 官网下载,通过这个开发包的工具才能将android jni 的C/C++的代码编译成库。 android应用程序开发环境: 包括 ... 於 github.com -
#15.Android NDK开发,使用ndk-build编译,androidkotlin教程
Android NDK 开发 ,使用ndk-build 编译,androidkotlin 教程 · Class: com_ang_ndkdemo_MainActivity · Method: fromJNIString. 於 xie.infoq.cn -
#16.Android NDK开发的一些技巧 - 稀有猿诉
Android NDK (Native Development Kit)是基于Java JNI的使用C/C++和Java来混合开发应用的一种方式,甚至在Android 2.3(API 9)以后可以用Native(Native ... 於 toughcoder.net -
#17.Android进阶学习—NDK开发实战以及如何学习NDK - BiliBili
Android 高级进阶视频合集,干货讲解,持续更新中,喜欢的小伙伴记得一键三连哟,需要《 Android 高级教程全套+BAT面试题集+学习心得》以及 ... 於 www.bilibili.com -
#18.Android NDK开发之旅1--C语言基础--基本数据类型 - 慕课网
慕课网为用户提供Android NDK开发之旅1--C语言基础--基本数据类型相关知识,前言NDK开发需要用到C/C++语言,为. 於 www.imooc.com -
#19.Android NDK 讓C/C++語言寫的程式也能在Android上執行
NDK (Native Development Kit)是Android開發用的工具集,和SDK不同的是,NDK允許開發者使用Android的C/C++原生語言,且可與SDK的Java語言一同使用, ... 於 magiclen.org -
#20.什麼是Android NDK – 柯博文老師
Android NDK (Native Development Kit)簡化工作與機器底層的程式碼。 ... 大多數的開發者都是使用Android SDK來設計應用程式,它是一個以JAVA 為基礎的程式語言,但是 ... 於 www.powenko.com -
#21.如何在Android Studio下进行NDK开发 - 脚本之家
这篇文章主要介绍了如何在Android Studio下进行NDK开发,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值, ... 於 www.jb51.net -
#22.Android NDK开发- 大刚强- 简书
1.什么是NDK? NDK的全称是Native Development Kit, 是一套工具原生开发套件,使你能够在Android 应用中使用C 和C++ 代码,并提供... 於 www.jianshu.com -
#23.ndk开发- 京东
0条评价. UI、NDK与安全. 0条评价. UI、NDK与安全. 0条评价. 二手Android C++高级编程——使用NDK(移动开发经典丛书)95. 二手Android C++高级编程——使用NDK(移动开发 ... 於 www.jd.com -
#24.[教學][程式] Android NDK JNI 設定教學 - Potato Media
NDK 是Google開發的一套開發和編譯工具,可以生成動態鏈接庫,並自動將.so打包至apk,主要用於Android的JNI開發。 設定教學. 1. Android Studio 安裝相關套件. 於 www.potatomedia.co -
#25.Android Studio配置NDK开发环境 - 51CTO博客
Android Studio配置NDK开发环境,1.下载开发工具下载CMake、LLDB、AndroidNDK,如图所示(勾选表示已经下载了,没勾选就勾选并点击右下角的apply进行 ... 於 blog.51cto.com -
#26.Android開發中的NDK到底是什麼?(詳細解析+案例) - 每日頭條
一,NDK介紹(1)簡介定義:Native Development Kit,是Android的一個工具開發包NDK是屬於Android 的,與Java並無直接關係作用:快速開發C、 C++的動態 ... 於 kknews.cc -
#27.Google發布最新Android NDK r21工具集測試版,並預告此為第 ...
讓開發者可以在Android裝置中執行C/C++程式的NDK(Native Development Kit)開發工具集,釋出了最新的r21測試版本,不只更新了工具鏈以及系統需求,也 ... 於 www.ithome.com.tw -
#28.Get started with Kotlin Multiplatform for mobile
You can share application logic between iOS and Android apps and write platform-specific code only when you need to implement a native UI or ... 於 kotlinlang.org -
#29.Android-NDK开发之概述 - 苍耳的博客
概述Android Studio 用于构建原生库的默认工具是CMake,需要提供CmakeList.txt 用于构建原生代码。 Android Studio 还支持ndk-build 构建原生库, ... 於 ljd1996.github.io -
#30.Kotlin Android Development | Udacity
Learn Kotlin. Nanodegree Program. Master Android app development with Kotlin, a modern programming language that enables developers to be more concise and ... 於 www.udacity.com -
#31.Android NDK开发系列教程3:基本方法调用及传参(续) - 天宇
Android NDK开发 系列教程3:基本方法调用及传参(续) · native向java返回字符串类型 · native向java返回java对象 · native向java返回数组类型 ... 於 huangtianyu.gitee.io -
#32.Android NDK开发之JNI基础- UCloud云社区
之前写了一篇文章简单的介绍了Android NDK的组件和结构,以及在Android studio中开发NDK,NDK是Android底层的c/c++库,然而要在java中调用c/c++的原生 ... 於 www.ucloud.cn -
#33.NDK开发概述- ToolGuide
Android NDK ( Native Development Kit )是一个工具包,利用 C/C++ 编译成的库来辅助 Android 开发. 之前通过 ndk-build 生成 Android 本地库,目前新增支持通过 CMake ... 於 toolguide.readthedocs.io -
#34.Android Developers Blog
News and insights on the Android platform, developer tools, and events. 於 android-developers.googleblog.com -
#35.使用Android NDK開發(一) - jni - 台部落
接觸Android應用開發也有一兩年了,之前一直沒用Android NDK進行開發,都是基於Android SDK,興沖沖地搭建好環境(教程我的博客也有),成功運行了NDK ... 於 www.twblogs.net -
#36.Reference - Expo Documentation
Expo is an open-source platform for making universal native apps for Android, iOS, and the web with JavaScript and React. 於 docs.expo.dev -
#37.[筆記] Android NDK 開發的初體驗 - 研發紀事
Android SDK 開發 程式都以JAVA 語法為主,不過有些以C/C++ 語言編寫的程式 ... 因此Android 提供一套NDK (Native Development Kit) 讓原本C/C++ 開發 ... 於 han-ya.blogspot.com -
#38.Developing packages & plugins - Flutter documentation
For Android: Gradle, which invokes the Android NDK for native builds. See the documentation in android/build.gradle . For iOS and macOS: Xcode, ... 於 docs.flutter.dev -
#39.CTIMES- Android原生開發套件(NDK)介紹與實例
什麼是Android NDK? 每個Android應用程式都是透過Dalvik虛擬機器執行,由虛擬機器來負責程式所需的資源管理,就像Java程式是透過Java虛擬機器執行 ... 於 www.ctimes.com.tw -
#40.[APP] Android NDK 開發的初體驗 - 漢亞科技Han-Ya
Android NDK 開發 的初體驗<遇上NDK 編譯的問題> Android SDK 開發程式都以JAVA 語法為主,不過有些以 C. 於 yijenlu.pixnet.net -
#41.NDK開發基礎①使用Android Studio編寫NDK - 壹讀
開發 環境. 工具下載地址(win)(需要科學上網) :Android Studio 2.2 RC2 --- Android Studio Download 2.2 RC2Android NDK r12b --- Android NDK ... 於 read01.com -
#42.Android-NDK开发——基本概念- hongui - 博客园
在Android开发中,有时候出于安全,性能,代码共用的考虑,需要使用C/C++编写的库。虽然在现代化工具链的支持下,这个工作的难度已经大大降低, ... 於 www.cnblogs.com -
#43.webrtc Android 代码 - 音视频开发中文网
由于WebRTC是一个开源项目,因此可以在GitHub上找到所有WebRTC代码。如果您只需要Android平台的WebRTC代码,则可以从以下位置下载: ... 於 avmedia.0voice.com -
#44.Android NDK开发入门- 个人文章 - SegmentFault 思否
NDK (Native Development Kit缩写)一种基于原生程序接口的软件开发工具包,可以让您在Android 应用中利用C 和C++ 代码的工具。通过此工具开发的程序 ... 於 segmentfault.com -
#45.NDK开发入门终极教程 - 稀土掘金
在AndroidStudio 工具配置中,选择Android SDK -> SDK Tools 中,勾选CMake并安装。 2 新建支持NDk工程. 现在的 AndroidStduio 更支持一种极简方式集成 ... 於 juejin.cn -
#46.Android NDK 从入门到精通(汇总篇) 原创 - CSDN博客
未完待续,佛性更新中~~专栏地址Android NDK 开发,从入门到精通NDK 入门NDK 开发第一课:环境配置与第一个JNI 程序JNI 知识JNI 数据类型和类型描述 ... 於 blog.csdn.net -
#47.Android 開發教學筆記- 使用Android NDK (Native ... - 隨意窩
前陣子上過幾個小時的android 課程,恰好稍微提到NDK 的部份,此部份主要是設計給遊戲類的使用,例如之前寫OpenGL ES 時,必須透過Android Java API 來 ... 於 blog.xuite.net -
#48.Top Android Development Courses Online - Udemy
Join millions learning to create applications and interfaces for the Android operating system with an Android development course offered on Udemy. 於 www.udemy.com -
#49.爱玩斗牛手机下载安装
... 源代码管理工具-GIT · Android开发之Android Studio NDK开发步骤 · 解读中英税收新协定 · 主人啊,我舍不得你啊 · 哈哈一山更比一山高。 於 114.xixik.com -
#50.Android 入門#Java教學#Java物件導向#android ... - YouTube
Android AIOT程式設計第一章 Android 程式設計(00:00:00)在Mac電腦安裝 Android Studio實作(00:20:04) Android 簡介和 Android 開發 環境(00:22:05) Android ... 於 www.youtube.com -
#51.(原创)Android-NDK开发记录 - 刘伟强(Joinee)
最近要在android中使用ffmpeg,因此涉及到NDK开发,之前没有用过,在此把相关使用做个记录,方便用时查看。 於 liuweiqiang.win -
#52.Android NDK 开发之CMake 必知必会| - 音视频开发进阶
Android Studio 从2.2 版本起开始支持CMake ,可以通过CMake 和NDK 将C/C++ 代码编译成底层的库,然后再配合Gradle 的编译将库打包到APK 中。 於 glumes.com -
#53.[原创]NDK集成OLLVM模块流程记录-Android安全 - 看雪
个人微信公众号主要围绕Android 应用的安全防护和逆向分析, 分享各种安全攻防手段、Hook 技术、ARM 汇编等Android 相关的知识。 集成流程. 具体的编译NDK ... 於 bbs.kanxue.com -
#54.Android Studio下NDK开发该如何配置 - 鸡啄米
使用Android Studio开发前我们也要做点额外工作,我们需要在项目根目录下local.properties中添加编译NDK的路径:ndk.dir=/Users/liangqi/android-ndk. 於 www.jizhuomi.com -
#55.实验一. Android NDK之Hello World开发入门实验
NDK (英语:native development kit,简称NDK)是一种基于原生程序接口的软件开发工具。通过此工具开发的程序直接以本地语言运行,而非虚拟机。因此只有java等基于虚拟 ... 於 luffycheung.gitbooks.io -
#56.如何搭建Android NDK开发环境--华清远见嵌入式培训中心
Android NDK 是运行于Android 平台上的Native Development Kit 的缩写,Android 应用开发者可以通过NDK 调用C 或C++ 本地代码。如果你还是对Android NDK一头雾水的话, ... 於 www.hqyj.com -
#57.android NDK 开发步骤 - 百度经验
... 安装好了NDK和android开发环境)1.创建一个项目2.创建JNI目录3.编写nativejava层方法4.生成JNI头文件(1)编写javaNative代码(2)执行命令javah (3)添加android.jar包 ... 於 jingyan.baidu.com -
#58.NDK 使用入門
Native Development Kit (NDK) 是一套工具,可讓您在Android 系統中使用C ... 設計新手,因為他們只需要使用Java 程式碼和架構API 來開發應用程式。 於 developer.android.com -
#59.Android系统面经_140道面试题答案解析 - 牛客
140道安卓系统Framework面试题答案链接:《Android系统面试题全解析》本人是2020年毕业于广东工业大学研究生:许乔丹,有国内大厂CVTE和世界500强企业安卓开发经验, ... 於 m.nowcoder.com -
#60.如何透過NDK開發VR — Wave VR 5.3.0 documentation
此章節將藉由JAVA 及NDK 混和的方式進行開發VR 應用程式, 建議將Activity 繼承 ... 模組需要倚賴Wave VR 所提供的libwvr_api.so 函式庫,從Android.mk中以預先掛載模 ... 於 hub.vive.com -
#61.Add Firebase to your Android project
Adding Firebase to your app involves tasks both in the Firebase console and in your open Android project (for example, you download Firebase config files from ... 於 firebase.google.com -
#62.Android-NDK開發之概述_蒼耳的部落格
Android -NDK開發之概述. ... 主題: Gradle 安卓開發. Android ... Android Studio 還支援ndk-build 構建原生庫,需要提供Android.mk 構建指令碼。 於 www.gushiciku.cn