做Android开发时,免不了使用Android SDK Manager,安装需要的sdk版本、buildTools版本等等。下图展示了2016.11.16号Android SDK Manager所有的package。很多Android开发的新人在使用的时候可能会疑惑了:这些package到都是什么功能呢,都要安装吗?本篇文章将为你把这些疑惑解开(如果你只想知道需要安装哪些package,直接跳至文末)。

1. SDK Manager 目录结构

SDK Manager 的package目录结构如下面两幅图所示


大体上可以分为Tools、Platforms和Extras三部分。install需要的package后,Android Studio将在本地创建对应的文件目录,如图是博主安装了一些package之后,PC上的目录结构:

通过本地文件,我们可以了解到install某个package之后,会提供什么样的功能,由文件夹的命名找到对应的package并不是很难,比如红色圈出来的三块,很容易知道来自SDK Manager的Tools目录下面。下面我们将通过查看Tools、Platforms和Extras三部分的本地文件的方式带大家详细了解SDK Manager。

1. Tools

Tools文件夹下包括三种tools:Android SDK Tools,Android SDK Platform-tools和Android SDK Build-tools。对应于本地文件夹的tools,platform-tools和build-tools。

  1. Android SDK Tools
    Android SDK Tools对应的本地文件夹的存储目录如下图所示:

    SDK Tools包含了很多重要的工具,比如:ddms用于启动Android调试工具;draw9patch则是绘制android平台的.9图的工具;monkeyrunner则是一个不错的压力测试工具,模拟用户在手机上随机按键;mksdcard是模拟器SD映像的创建工具,emulator是Android SDK模拟器主程序;traceview是android平台上重要的调试工具,可以列出每个方法调用所使用的事件,展开方法还能看到方法被调用其他方法所占用的时间百分比,这样就可以知道那个方法用了最多的资源,进而可以对其进行优化或者将其搬离主线程。其他工具就不一一介绍了,感兴趣的自行了解。
    由此可见,SDK Tools是需要安装的。

  2. Android SDK Platform-tools
    SDK Platform-tools的本地文件夹对应的文件目录

    Platform-tools同样包含了很多重要工具:adb是android调试工具,以命令行的形式和模拟器或者连接的手机进行通讯;sqlite3帮助开发者在PC上查看sqlite数据库等其它工具。同上,其他工具可以参考Google的开发者文档了解。
    SDK Platform-tools也是需要安装的。

  3. Android SDK Build-tools
    Android SDK Build-tools和Android SDK Tools以及Android SDK Platform-tools不同的地方是,Android SDK Managert 保留了Android SDK Build-tools的老版本,而其他两类Tools只提供最新版的update。在博主的电脑上安装过的Build-tools就有这几个版本:

    早期的Build-tools放在Platform-tools中,2013年之后为了
    将编译相关的组件从platform-tools组件中解耦,Google新建了Build-tools存放,并且Build-tools可以独立于IDE更新。

    Decoupled the build-specific components of the Android SDK from the platform-tools component, so that the build tools can be updated independently of the integrated development environment (IDE) components.

    为什么Build-tools需要保留旧的版本,stack overflow给出的解释是保持向后兼容的能力,新的Build-tools可能移除了老版的一些特性,此时对采用老版Build-tools build的工程来说,还得接着用旧版。

    they keep the old build tools because as they update the tools, some features become deprecated. But app developers might have source code that relies on those features so they keep the old versions available to support those old code bases.

    博主的24.0.2版本的Build-tools包含的工具如下:

    包括 aapt(Android Asset Packaging Tool)安卓资源打包工具:编译应用程序的资源文件(包括 AndroidManifest.xml 和你的 Activitiy 的 xml 文件),生成 R.java 文件,这样你就可以从你的java代码中引用资源;aidl:把 .aidl 接口转换成 java 接口;dx:转化 .class 中间代码为dvlik中间代码,所有经过 java 编译的生成 .class 文件都需要此工具进行转换,最后打包进 apk 文件中等工具等等功能。
    综上,博主建议大家创建新工程时尽量使用最新版的build-tools,一个是新版的修复老板的一些bug,二个是功能和性能上都会有提升。

2. Platforms

每个Android版本对应于一个Platforms版本,2016.11.16号官方给出的SDK版本可选项从Android 2.1到最新的Android 7.1.1。每个版本的Platforms又包括Android SDK 的SDK Platform,Document,Sources以及System Image。

  1. SDK Platform
    这个好理解,就是该版本编译好的SDK,肯定是必须装的
  2. Document
    离线的文档,方便你查阅API使用说明
  3. Sources
    源代码,一个是学习Google优秀的源代码,二个是查看源码方便调错。
  4. System Image
    编译好的系统映像,模拟器可以直接加载,一般没必要install,创建需要的模拟器后在获取也不迟。Android Studio 2.0之后,官方提供的模拟器已经很好用了,个人觉得可以不用Genymotion。

3. Extras

Extras中包含了很多blahblahblah的,比较重要的是这三个Android Support Repository , Android Support Library, Google Repository 。想知道这三者的区别,得先知道Android Studio和Eclipse在构建Android 项目时的区别。AS采用gradle构建,而eclipse采用ant构建。所以Google提供了Respository用于Android Studio,而Library用于Eclipse。

  1. Android Support Repository
    包含支持库的本地 Maven 存储库,该存储库提供了一组丰富的 API,这些 API 兼容大多数版本的 Android。该工具是 Android Wear、Android TV 和 Google Cast 等产品的必备工具。Google之所以要提供Android Support Repository,主要基于以下三点的考虑:向后兼容——新的SDK加入的新特性可以在旧版SDK体现;提供不适合打包进framework的功能——一些非强制要求的特性通过Android Support Repository的方式,供开发者选用;为了支持不同形态的设备——就像上面提到的,不同的设备之间的差异功能由Support Repository实现。Android Support Repository目前包含了13类的支持库,我们常用的有v4 ,v7,v13 这三种Support Library。关于Android Support Repository更多详解,参考Android Support Library的前世今生。

  2. Google Repository
    该存储库可为您的应用提供各种功能和服务,包括 Firebase、Google 地图、游戏成就和排行榜等。

除了这三个之外Intel x86 Emulator Accelerator用于加速Intel x86架构的手机模拟器,如有需要可以安装。

4. 总结

说了这么多,一张图概括下Android SDK Manager扮演的角色就是知乎—康建伟总结的下图:

本文的诞生要感谢
1. Android SDk Manager里面到底哪些东西是必须下载的?
2. What are the Android SDK build-tools, platform-tools and tools? And which version should be used?
3. Update the IDE and Tools
4. android sdk里的各目录作用
5. Android Support Library的前世今生
6. android what is the difference between Android Support Repository vs Android Support Library vs Google Repository vs Google Play Services
很惭愧,做了一点微小的贡献!

Android基础知识——Android SDK Manager详解相关推荐

  1. [Python从零到壹] 八.数据库之MySQL和Sqlite基础知识及操作万字详解

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  2. 纹理基础知识和过滤模式详解

    转载自 纹理基础知识和过滤模式详解 1. 为什么在纹理采样时候需要 texture filter (纹理过滤) 我们的纹理 要贴到三维图形表面,而三维图形上的pixel中心与纹理上的texel中心并不 ...

  3. Android SDK Manager详解

    转载自:https://blog.csdn.net/u011026779/article/details/53178602 做Android开发时,免不了使用Android SDK Manager,安 ...

  4. C语言基础知识入门(大全详解)

    一.C语言基础知识入门 C语言一经出现就以其功能丰富.表达能力强.灵活方便.应用面广等特点迅速在全世界普及和推广.C语言不但执行效率高而且可移植性好,可以用来开发应用软件.驱动.操作系统等.C语言也是 ...

  5. linux之find命令,Linux基础知识之find命令详解

    在运维人员操作系统时,要接触大量的文件,为了避免忘记文件存放位置的尴尬,就需要我们有一种文件查找工具的帮忙,下面是两个文件查找工具的详解,locate以及find,分别分享给大家. 第一款工具: Lo ...

  6. 前端必备基础知识:window.location 详解

    作者简介: 李中凯 八年多工作经验 前端负责人, 擅长JavaScript/Vue. 掘金文章专栏:https://juejin.im/user/57c7cb8a0a2b58006b1b8666/po ...

  7. linux中dd命令详解,Linux基础知识之dd命令详解

    本文先简要介绍dd的参数,然后通过几个实例介绍dd的应用,这些素材整理来源于网络. dd 是 Linux/UNIX 下的一个非常有用的命令,其作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的 ...

  8. 【Audio音频开发】音频基础知识及PCM技术详解

    个人主页:董哥聊技术 我是董哥,嵌入式领域新星创作者 创作理念:专注分享高质量嵌入式文章,让大家读有所得! 文章目录 1.前言 2.概念 3. PCM介绍 4. PCM原理 5.PCM相关概念 5.1 ...

  9. 全志 android 编译,全志Android SDK编译详解(二)

    注意要确定安装了jdk) 第一步: cd  lichee; ./build.sh  -p sun5i_elite -k 3.0  (apt-get install uboot-mkimage需要安装m ...

最新文章

  1. 基于ACR的镜像仓库管理,云计算技术与应用实验报告
  2. ASP导出数据到excel
  3. 老公和老婆的15个关于......
  4. POJ - 2942 Knights of the Round Table (双连通分量)
  5. x86_64编译JPEG遇到Invalid configuration `x86_64-unknown-linux-gnu'
  6. Brad Wilson写的 ASP.NET MVC 3 Service Location 系列文章索引
  7. 第五人格服务器维修中怎么进,第五人格进不去怎么办 游戏进不去解决方法详解[多图]...
  8. 孙子和外孙就是不一样吗?
  9. Adobe弄的flex质量也太差了
  10. fpga烧写bin文件_FPGA中可执行文件:bit/bin/mcs/elf
  11. 富士通服务器irmc账号密码,PRIMERGY TX1330 M2 E3-1200 V5单路 Fujitsu富士通立式服务器...
  12. inssider序列号_AP注册问题-华三.ppt
  13. (知乎)男生 25 岁了,应该明白哪些道理?
  14. DataGridView显示时间格式
  15. operator开发流程
  16. 【寒假每日一题2022】acw1934. 贝茜放慢脚步【二路归并】
  17. 在线人数统计和总访问量统计
  18. 新书推荐 |《用户增长方法论:找到产品长盛不衰的增长曲线》
  19. 【光学设计基础】--02球差
  20. 有图有话 | 嘘……你屏蔽了哪个微信群?

热门文章

  1. 公共WIFI上网短信认证解决方案
  2. 3评选最牛群主v1.0(4分)
  3. 阿里云ECS Ssh登录 密码栏灰色 密钥登录不上,VNC login incorrect解决
  4. 安装JDK及配置环境变量
  5. Simulink代码生成:目标硬件配置
  6. 《会计信息系统》课程期末复习题与参考答案
  7. python面试题库知乎_知乎面试题刷题
  8. TFN-F7系列光时域反射仪(OTDR)
  9. .Net iTextSharp 给Pdf添加图片水印
  10. UE4 蓝图学习 FlipFlop