码迷,mamicode.com
首页 > 移动开发 > 详细

Android SDK PDK NDK详解

时间:2015-08-21 19:24:21      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:

Android PDK,NDK,SDK都是做什么的?

三个词应该是在软件开发领域通用的,它们的全称分别为:

SDK(Software Development Kit)

PDK(Platform Development Kit)

NDK(Native Development Kit)

1.SDK 软件开发套件

一般平台都会发布自己的SDK,SDK包含该平台为应用程序开发人员提供的开发工具,主要是所有公开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的一些重要的编译工具,比如aapt、aidl、逆向调试工具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 broadcast的action记录,intent的category,

widget的列表等内容;skins目录为Android模拟器的皮肤资源;templates目录下为创建Android工程默认模板,包括

AndroidManifest.xml,java文件,launch图标等;

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

6) tootls  这个目录中有比较重要的调试工具,如ddms(包括一些截图),Android模拟器的主程序emulator,traceview性能优化工具,

               UI控件扫描工具uiautomatorviewer,UI层级显示工具hierarchyviewer,代码混淆工具proguard,ant编译脚本,代码缺陷

               扫描工具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 原生开发套件(这个我翻译得比较蹩脚)

Android的SDK是中的API都是java的,众所周知,安卓应用跑在dalvik/ART上,所以第三方应用基本上只能通过java来进行开发,如果

想要通过C来开发,需要通过JNI来实现,个人理解由于C/C++上有很多成熟的库可以用,所以Google开辟的NDK,可以使得C/C++的

应用也能直接在Android上跑起来,但是这里面也存在技术障碍,比如程序更加复杂,兼容性难以保障,无法访问Framework API,Debug

难度更大等,开发者需要自行斟酌使用。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

Android SDK PDK NDK详解

标签:

原文地址:http://www.cnblogs.com/cyqx/p/4748641.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!