android -------- NDK 入門指南

來源:互聯網
上載者:User

標籤:應用程式   混淆   過程   渲染   特點   開發工具   防止   邏輯   驅動開發   

NDK介紹

 

原生開發套件 (NDK) 是一組可讓您在 Android 應用中利用 C 和 C++ 代碼的工具。 可用以從您自己的原始碼構建,或者利用現有的預構建庫。

 

NDK 不適用於大多數初學的 Android 編程者,對許多類型的 Android 應用沒什麼價值。 因為它不可避免地會增加開發過程的複雜性,所以通常不值得使用。 但如果您需要執行以下操作,它可能很有用:

  • 從裝置擷取卓越效能以用於計算密集型應用,例如遊戲或物理類比。
  • 重複使用您自己或其他開發人員的 C 或 C++ 庫。

 

 

NDK 的工作方式

Android NDK 是一組允許您將 C 或 C++(“原生代碼”)嵌入到 Android 應用中的工具。 能夠在 Android 應用中使用原生代碼對於想執行以下一項或多項操作的開發人員特別有用:

  • 在平台之間移植其應用。
  • 重複使用現有庫,或者提供其自己的庫供重複使用。
  • 在某些情況下提高效能,特別是像遊戲這種計算密集型應用。

 

 

特點

 

 

JNI與NDK的關係

NDK可以為我們產生了C/C++的動態連結程式庫,JNI是java和C/C++溝通的介面,兩者與android沒有半毛錢關係,只因為安卓是java程式語言開發,然後通過JNI又能與C/C++溝通,所以我們可以使用NDK+JNI來實現“Java+C”的開發方式。

為什麼要NDK開發


1. 項目需要調用底層的一些C/C++的一些東西(java無法直接存取到作業系統底層(如系統硬體等)),或者已經在C/C++環境下實現了功能代碼(大部分現存的開源庫都是用C/C++代碼編寫的。),直接使用即可。NDK開發常用於驅動開發、無線熱點共用、數學運算、即時渲染的遊戲、音視頻處理、檔案壓縮、Face Service、圖片處理等。


2. 為了效率更加高效些。將要求高效能的應用邏輯使用C/C++開發,從而提高應用程式的執行效率。但是C/C++代碼雖然是高效的,在java與C/C++相互調用時卻增大了開銷;


3. 基於安全性的考慮。防止代碼被反編譯,為了安全起見,使用C/C++語言來編寫重要的部分以增大系統的安全性,最後產生so庫(用過第三方庫的應該都不陌生)便於給人提供方便。(任何有效代碼混淆對於會smail文法反編譯你apk是分分鐘的事,即使你加殼也不能倖免高手的攻擊)


4. 便於移植。用C/C++寫得庫可以方便在其他的嵌入式平台上再次使用。

 

 

 

 

NDK:

https://developer.android.google.cn/ndk/downloads/index.html

 

 

 

Android Google官方文檔

 

https://developer.android.google.cn/ndk/guides/index.html

 

android -------- NDK 入門指南

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.