前言:今天很高興,自己看了NDK的一些很少的東西。。本人越來越感覺“條條大路通羅馬”。。意思很簡單,當你認認真真地學習某個語言的時候,你就會發現你慢慢的許多知識都會接觸到,慢慢地你就會學到各個方面的知識。。比如現在我知道等我把Android開發的相關知識學習到一定程度的時候,自己必然會重新學習C/C++方面的知識,這真的讓我感覺很愉悅。。
一、NDK【一種IDE】
(1)NDK與SDK區別
Android NDK:Native Development KIt【編程語言C\C++】【可以把一些C/C++動態庫添加到Android的系統運行庫中】
Android SDK:Software Development Kit【編程語言JAVA】【這裏主要是調用Android Framework的一些函數】
(2)NDK的優缺點
1、優點:
(1)代碼的保護。由於apk的java層代碼很容易被反編譯,而C/C++庫反編譯難度較大。
(2)可以方便地使用現存的開源庫。大部分現存的開源庫都是用C/C++代碼編寫的。--【可以把一些C/C++動態庫添加到Android的系統運行庫中】
(3)提高程序的執行效率。將要求高性能的應用邏輯使用C開發,從而提高應用程序的執行效率。--【Java是解釋性語言(先字節碼再用jvm到機器碼);C是編譯性語言】
(4)便於移植。用C/C++寫得庫可以方便在其他的嵌入式平臺上再次使用。
note:
什麼時候使用NDK?
1)對性能十分敏感的算法
2)不需要分配太多內存的操作,如信號處理,物理模擬等
3)重用現有的海量C/C++優秀代碼
2、缺點
(1)程序將會更加複雜,較小的兼容性
(2)不能訪問框架API,更加難以調試。