https://blog.csdn.net/annaload/article/details/42008257

 

Development Kit),NDK(Native Development Kit),我們可以從它們的用途以及針對的人群來理解一下。

1.SDK 軟體發展套件

  一般平臺都會發佈自己的SDKSDK包含該平臺為應用程式開發人員提供的開發工具,主要是所有公開API

的集合,應用程式開發人員可以借助SDK中的API快速的進行應用的開發。

   Android SDK針對所有安卓應用開發人員開放,下載ADT查看sdk目錄如下:

 sdk
├── add-ons
├── build-tools
├── extras
├── platforms
├── platform-tools
└── tools

SDK檔目錄解釋:

1) add-ons   這裡保存一些附加庫,例如GoogleMaps

2) build-tools 這裡放的是Android的一些重要的編譯工具,比如aaptaidl、逆向調試工具dexdump和編譯腳本dx

3) extras 存放的是幾次大的升級添加的新功能相關的static library,android-v4,android-v7,android-v13

4) platforms 存放的是平臺真正的SDK,其中會根據APILevel來區分SDK的版本,命名規則android-APILevel,android 4.4

                     SDK的資料夾名稱為android-20,其檔目錄如下:

├── android.jar
├── build.prop
├── data
├── framework.aidl
├── sdk.properties
├── skins
├── source.properties
├── templates
└── uiautomator.jar

該目錄下主要檔android.jar為該版本framework的主要檔,包括class,圖片等;

data目錄下為系統的資源檔,包括字串資源,fonts字體庫檔,activity broadcastaction記錄,intentcategory,

widget的清單等內容;skins目錄為Android模擬器的皮膚資源;templates目錄下為創建Android工程預設範本,包括

AndroidManifest.xml,java檔,launch圖示等;

5) platform-tools  此目錄主要放置的是平臺工具,如adb, fastboot, sqlite3

6) tootls  這個目錄中有比較重要的調試工具,如ddms(包括一些截圖)Android模擬器的主程序emulatortraceview性能優化工具,

               UI控制項掃描工具uiautomatorviewerUI層級顯示工具hierarchyviewer,代碼混淆工具proguardant編譯腳本,代碼缺陷

               掃描工具lint等,這個目錄下也有個templates目錄,簡單看了下不太明白是幹什麼用的,有興趣的可以瞭解一下。

2.PDK 平臺開發套件(合作夥伴開發套件)

PDK主要針對系統和平臺開發的人員,有的博客上說PDK對於解決Android碎片化有一定的作用,在PDK推出之前,未能參與Google

早期開發設備計畫的OEM廠商和半導體供應商必須等到Android開源版本公佈後,才能開始進行開發。而從Jelly Bean,也就是Android

 4.1版本開始Google在發佈新的Android版本之前會Release給與其簽約過的OEM廠商和半導體供應商PDK(PDK的獲取需要授權,因為

PDK中的新版Android尚未正式發佈),這樣OEM廠商不會再落後於Google挑選的獨家早期開發夥伴。原來的時候,只有Google的自有品

Nexus設備才能成為市場領先者,但以後的情況可能不一定會如此,因為會有許多積極的OEM 廠商也能借助PDK快速推出新版產品。

 

這個就是PDK的作用,加快OEM廠商的update速度,不然Android的新版本的使用率會跟不上更新的速度。

這個PDK中會有一些平臺的少量Code,以及一些binary檔,能夠是系統工程師儘快的進行本平臺的一些驅動的開發,調試,以及一些

平臺的新功能開發,至於PDK的詳細檔目錄以及檔內容我暫時不太清楚。

3.NDK 原生開發套件(這個我翻譯得比較蹩腳)

AndroidSDK是中的API都是java的,眾所周知,安卓應用跑在dalvik/ART上,所以協力廠商應用基本上只能通過java來進行開發,如果

想要通過C來開發,需要通過JNI來實現,個人理解由於C/C++上有很多成熟的庫可以用,所以Google開闢的NDK,可以使得C/C++

應用也能直接在Android上跑起來,但是這裡面也存在技術障礙,比如程式更加複雜,相容性難以保障,無法訪問Framework APIDebug

難度更大等,開發者需要自行斟酌使用。NDK官方說明

我沒有進行過NDK的開發,查閱到NDK的講述有一篇特別詳細的博客,有興趣或這需求的可以根據該blog學習一下。

如果有更多關於NDK的問題可以到NDK論壇找找看。

參考文章:

1.http://www.cnblogs.com/Soprano/articles/2559332.html

2.http://www.eet-china.com/ART_8800676827_617693_NT_2debd506.HTM

3.http://www.oschina.net/p/android+ndk

    全站熱搜

    立你斯 發表在 痞客邦 留言(0) 人氣()