看到csdn博客上面其它大牛的系列性android博客,小弟确实十分羡慕。所以经过一番思想斗争后,小弟终于要打算写写系列性的博客了。通过对一些选题的推敲,我决定对android的sdk文档进行一个比较彻底的研读,并通过博文的形式和大家分享分享,交流交流。哈哈,现在想起来就热血沸腾啊!
这就是第一次尝试啦。这篇文章主要介绍了android sdk文档的结构和使用方法以及pakage index里面的android这一条的相关知识。
好啦,废话少说,开动!
一、楔子:关于android sdk文档
第一,什么是android sdk文档?
这个问题太白痴了:看到这里,你肯定会在心里这么想。但且慢,这个问题我觉得还是值得谈谈的,理由嘛,看了下面的你就不点自明了。android sdk的全名是android software develop kit,也就是android程序开发工具组。这也就是说,它本质上也就是一个供大家使用的工具而已--和锤子、扳手一样(怪不得代表android开发的logo会是小机器人腰里别着一个扳手和一个锤子 )。既然是一个工具,而且是由谷哥大大最近几年才猛顶起来的一个新型工具,那么如果想让我们这些对它感兴趣的人能够把它使用自如的话,就必然得有一份详尽的说明书来阐述它在哪里用、怎么用以及如何才是在最好的用。android sdk文档则起到了这个作用:它包含了该工具的几乎各种情况下使用的组件(也就是android sdk中包含的各种类)的介绍--UI构建时、Gps模块调用时、数据库操作时、硬件调用时等等;它让你能够知道各种工具组件该怎么使用--各种类所包含的方法、字段介绍几乎都已涵盖,基本上有一定基础的同学看过即知如何使用该类;它可以使你知道怎样才是在最好的使用该工具--哪些方法已经过期它会告诉你,一些类的特殊属性它会教你怎么最好地使用(例如android.app.Service类的 startForeground (int id, Notification notification) 方法处它就教会了我用java反射机制来调用父类无法继承给子类的final方法)。到了这里,我们可以这么描述android sdk文档了:一份android sdk的使用说明书。
第二,哪里可以看到sdk文档?
看sdk文档有两个途径,在线网页浏览和离线文档浏览。
在线的地址是:developer.android.com(被河蟹掉了,表示极为不解,可以去这里,感谢FaxLJ的提醒)
离线查看无需你再去单独下载文档包,因为如果你当初下载android sdk时选择完整下载了,文档就被一并下载到本地了。一般andorid sdk的根目录里的docs文件夹就是文档所在地,里面有一个index.html,打开它就可以看到sdk文档的homepage。
个人推荐离线查看,虽然可能不是最新版本的文档,但总比被龟速折磨来的好些╮(╯▽╰)╭。
第三、文档重要性。
以前我刚开始学java的时候曾经做过一件很脑残的事情:看到System.out.println("Hello World!");这一句代码时我就想知道System是一个什么样的东西,于是就去网上搜索--可是花了很多时间,也看了一些文章,但就还是无法对System有一个系统性的了解--还是到后来了解到java文档,把java文档下载下来(java文档在sdk里默认是不包含的)后去看了才把它了解透--What a shame!好了,不用我说你也就应该了解到了sdk文档的重要性:文档是官方提供的,所以具有无以伦比的权威性;文档是起说明式作用的,所以你想要知道什么,"骡迹"上是都会给你提供的;因为文档是很重要的,所以文档是很重要的。我建议大家要养成一个习惯,以后遇到疑问时,首先应该想到去sdk文档上查找,然后再去百度上google:这样做一来可以锻炼自己理解E文的能力,二来也会让自己的印象更深刻些。
第四、关于文档的好东东推荐
1.在线java2中文文档查看
2.google官方c++规范
3.android中google地图使用文档
4.关于javadoc
二、开端和升华:android sdk文档基本知识介绍
要想能够快速的、有技巧的使用android sdk文档,首先就要了解这个东东。所以接下来我会和大家侃侃android sdk文档的结构、内容等各方面的基本知识。
1.android sdk文档结构
1号区域:标签栏,各个标签代表了文档所包含的不同种类的帮助。
Home:欢迎界面
SDK:对各版本SDK的概述、对开发环境的搭建的指导等等一些开发准备知识
Dev Guide:对开发本身进行了比较初级的指导,一些比较实用给力的例子都在这里了
Reference:类似于Java api文档的android api文档,以后我们会常光顾的地方(上图就是Reference的首页)
Resources Video 和 Blog:对开发者的一些其他支持资源,我们的网络环境下估计是很难享受到的
以后我会主要去探索Reference这个含金量比较多的版块,另外有需要的话会穿插看看Dev Guide。
2号区域:Reference中的包列表
关于各包的简介看这里。
3号区域:Reference主要内容浏览区域
4号区域:搜索框,主要用于搜索某个类后接口以快速浏览该类的Reference(好用,极力推荐!)
利用文档自带的搜索框的自动补全功能,你可以以神速搜索到你想要查询的类。例如我要搜索LayoutParams,就只需输入Layo四个字母就可以出现这个类,然后点击该类就直接进入了LayoutParams的文档。
5号区域:用于根据android apiLevel(android中对各个版本的api作了一个序号对应,从而易于分辨。例如2.2版本对应8)过滤类和接口以及相关方法,也很实用
6号区域:某包内各类以及接口的展示区域
2.文档内容
在这里就说说Reference的主要内容吧。
对于一个类,Reference相关于它会罗列出如下的几部分相关内容:
(1)重要属性概述。该类的“前缀”——public、private、abstract等;该类的“亲戚”关系——继承于谁、实现了哪些接口、有哪些直接子类和间接子类等等;该类的历史渊源——从哪个apiLevel开始存在。例如Intent(如下图):
这就告诉了我们Intent是一个public class,并且继承自Object,它还实现了Parcelable以及Cloneable接口。它有一个直接子类LabeledIntent。而且Intent自Api Level 1就已经存在了(元老级人物啊)。
(2)该类的整体介绍(Class Overview)。在这里会对该类进行一个功能上的和性质上的描述,语言简洁给力,是极为重要因而必须认真品读的一部分。例如LayoutInflater的Class Overview:
看完后大概就可以知晓:LayoutInflater是一个将XML文件中的layout信息进行实例化,转化为View类实例的工具类。而且十分令人兴奋的是,这里还给予了一个获得LayoutInflater的方法(中间java代码处),真是考虑的周到啊(当你看了Activity、View、Intent等的Class Overview后,你甚至会感动地“内牛满面”)!
(3)简述(Summary)。在这个地方会对该类的一切属性(没错,就是一切,包括了XML代码中会用到的属性)进行一个概括式的(通常是一句话)描述——主要目的就是方便你查找。这部分包含了如下几个小单元:
i.该类的内部类(Nested Classes)
在这里会将会介绍该类的全部内部类。想要查看某个内部类的具体信息,可以点击该内部类的链接,这样回跳到该内部类的文档界面。
ii.可以应用到该类上面的XML属性(XML Attributes)
很多童鞋在刚开始都有一些疑问:我该到哪里去找一个UI组件的XML属性介绍呢?我要把LinearLayout的背景设为某个图片,可我该用哪个XML属性呢?有没有哪个XML属性可以把我的Button变得更漂亮呢?刚开始我也十分困惑,而且总因为这些疑问得不到解决而郁闷。到后来我仔细研究了android sdk文档后,这些问题就大致得到解决了——因为文档里面有专门的一块来
介绍XML属性。例如ImageView的XML属性介绍:
看了Description后,是不是很多疑问都变成浮云啦(觉得给力就鼓掌吧,我可是不会介意的)?另外你可能会纳闷——中间的Related Method有什么用——这里就是重点了:这些Related
Method其实就是Related Method in java,也就是说在java代码中能够改变这个属性的相关该类的方法。例如,想给ImageView设置一个图片,你可以这样来android:src="@drawable/my_picture",而当你看到android:src属性还有一个setImageResource(int)的相关方法时,你就还可以这样来在java代码中设置:myImageView.setImageResource(R.drawable.my_picture);。还记得当初我发现这个可是好好的窃喜了一段时间的。
iii.继承而来的XML属性(Inherited XML Attributes)
没错,神奇的XML决定了android中的各种属性是可以通过继承从父类传递到子类的。当你在XML Attributes中找不到某个属性时,你可以在这里找找,一般是可以找到的。
iv.常量(Constants)
这里包含了该类拥有的一些常量。常量后面有简介,点击常量后会跳转到该常量的详细介绍。建议大家去看看Intent、Window等比较重要的类的常量介绍,相信我,很给力的。
v.继承来的常量(Inherited Constants)
从父类继承而来的常量。
vi.方法列举(Methods)
这里包含了该类所有的方法的索引式简介——包括public protected方法,构造器(constructors)方法。private方法就别想看到了,如果你想使用的话,先去看看sdk源代码,然后再利用反射来获取该方法吧。
(4)详细描述
此部分与简述部分进行一一对应,将简述部分的XML属性、常量和方法进行了更详细的描述。有的地方甚至还会提供一些范例供读者参考。
对于XML属性,这里会告诉你该给此属性赋予什么样的值:
clickable必须设置为一个boolean值
对于方法,这里会提供参数以及返回值的概述:
好啦,我承认这一部分很小白,请各位不要见怪。但我觉得介绍一个东西就要负责任地完整展示,所以就把这部分放上来了。想要拍砖的童鞋看完这部分后请把砖留在评论部分,如果砖的质量还不错,我会收藏的哦!
三、高 潮:android包介绍
当你打开Reference这页文档时,你在Pakage Index里首先看到就是android包。这个包也许许多童鞋还没进去光顾过吧——不过我得告诉你,这个包里面的东西可是给力指数8星级的哦!流口水了吧?好,咱们这就去看看里面的东东(这个包包含的东西相对结构简单些,所以一次性全部介绍完)。
android这个包里面
该包所含类:
(1)Manifest
好的,你肯定已经想到了android工程文件中的AndroidManifest.xml
文件,并且在猜想它和该类的“暧昧”关系了。Bingo!其实就是这样的——它们的关系十分亲密:Manifest类的实例其实一般是通过AndroidManifest.xml文件通过XML解析后生成的(如果你暂时无法理解,可以联想一下LayoutInflater这个将XML中的Layout解析为View类的实例这个很熟悉的过程)。Manifest实例中便保存了AndroidManifest.xml中的信息(Activity属性信息、权限使用信息)以协助系统处理你的应用——例如该把哪个Activity作为起始Activity、Activity是否禁止横屏显示等等。
(2)Manifest.permission和Manifest.permission_group
这两个类的主要成员是一些String。通过这些String,android实现了应用权限的的给予以及管理。
如果你在android程序中使用过Google Api的话,或者你曾经研究过调用相机来拍照的话,那你就对这几句代码不会陌生:
1 |
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
|
2 |
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
|
3 |
<uses-permission android:name="android.permission.CAMERA"></uses-permission>
|
这些代码都声明了你的应用的使用权限——位置获取功能使用权限、使用网络的权限、硬件相机的使用权限——如果你不声明权限的话,应用就会意外终止。而这些在AndroidManifest.xml中声明的语句其实也会在应用加载的过程中被解析为Manifest.permission和Manifest.permission_group中的String对象。
(3)R以及它的所有子类(从R.anim至R.xml)
这里的R代表的是Resource,也就是资源的意思。不难猜想到这一系列的类构成了android系统自带资源的集合。
R.anim:系统自带的android动画文件,包含我们熟悉的fade_in和fade_out
R.array:系统自带数组。
R.attr:这个类是十分给力的,因为android中所有的xml属性都在这里查得到——不用说常见的layout_height和layout_width,一些我们基本不会遇到的xml属性这里都有介绍。所以,以后如果在别人的代码中看到了一个自己闻所未闻的xml属性,就来这里查查吧——相信我,你不会失望的!
R.bool:很奇怪的类,因为它除了一个构造方法外什么都没有——他是干什么用的呢?期待大鸟解答!
R.color:一些系统平时会调用到的颜色资源(应该也就是一些RGB颜色码的数值吧),当然,你也可以在你的应用中调用,从而使它尽量和android系统保持一样的配色风格。
R.demon:看了文档我只知到它和android的程序启动器(android launcher)有关——因为它有一个属性是app_icon_size,这个属性定义了标准的应用图标大小。
R.drawable:一些系统会用到的drawable资源。
R.id:系统程序会调用到得组件的id。
R.integer:这里有一些常量,而且都用于控制android animation的时长——长、中等、短(config_longAnimTime、config_mediumAnimTime、config_shortAnimTime)。你可以在你自定义的animation中使用这些现成的时长,从而让你的animation符合android的本地特色。
R.layout:系统里面经常用到的layout文件都在这里。平时我们使用Spinner时常常会使用到android.R.layout.simple_list_item_single_choice就是出自这里。
R.plurals:和bool一样等待高人解释。
R.raw:没有任何成员被文档指出,但根据名字我猜想是系统的一些原生资源的集合地(例如开关机的声音文件)。
R.string:一些系统会调用的string对象。
R.style:系统内一些常用的android style文件(也就是一些主题(Theme)文件)。
写到这里,希望能够解决掉各位童鞋心中的些许抑或,一个我也很高兴很满足了。
四、尾声:一些声明
由于是第一篇,所以讲的东西可能对于大牛们这些东西就有些小白了,但是为了照顾刚刚起步的童鞋们,还是把一些最基础的知识加了进来形成第一篇“前传”。对于已经对上述基础熟悉的童鞋们,就看看讲述android包的那部分吧,应该还是有点帮助的——另外该包里有几个没有我没有研究透的,希望有高手帮助解决——不胜感激啦!
至于转载的话,随便你啦,觉得好,有帮助就顶下吧!另外请注明是出于csdn(说不说是俺没关系,但是csdn的是必须注明的,望理解)。
好啦,鸣谢:摆渡、谷哥。
各位看官,谢谢围观。
如有纰漏,欢迎拍砖!
分享到:
相关推荐
8. **安全与隐私**:Android SDK文档也会涉及应用的安全性和用户隐私保护,包括权限管理、数据加密和网络通信安全等内容。 9. **最新更新**:随着Android系统的不断升级,SDK文档也会及时更新,反映最新的API特性和...
### Android SDK离线文档知识点详解 #### 一、Android SDK离线文档概述 **Android SDK离线文档**是指为了方便开发者在没有网络连接的情况下查阅Android SDK API和其他相关文档而提供的本地文档包。这对于那些在...
1. **设备模拟器**:Android SDK提供的模拟器可以让开发者在无需物理设备的情况下测试应用程序。 2. **调试工具**:包括内存分析、性能分析等功能,辅助开发者优化应用性能。 3. **Eclipse集成开发环境插件**:...
Android SDK 是 Android 应用开发的核心工具集,它包含了开发者构建、测试和部署 Android 应用所需的所有组件。"android-33" 指的是 Android SDK 的一个特定版本,代表了 Android 操作系统的第 33 版本。这个版本...
Android SDK (SDK Platforms)-android-30.zip 是一个包含了Android开发平台版本30的软件开发工具包,这是Android操作系统的一个重要组成部分,专为开发者提供,用于构建、测试和调试针对Android 11(API级别30)的...
这个版本的SDK包含了开发者需要的一切,包括API文档、工具、库以及模拟器等,以便于为最新的Android操作系统版本进行开发。 **Android SDK主要组成部分:** 1. **平台工具**:这包括了如`adb`(Android Debug ...
这份"Android SDK 中文文档"虽然不完整,但对于初学者来说,仍是一个宝贵的资源,可以帮助他们快速理解和掌握Android开发的基本概念。 在Android SDK中,主要包含以下几个关键部分: 1. **SDK Manager**: 这是SDK...
- **Background Execution Limitations**:Android 8.1对后台服务和后台进程的限制更严格,以优化电池寿命和系统资源。 - **Notification Channels**:引入了通知渠道,允许开发者将通知分组,提高用户对通知管理...
7. **开发者工具**:Android SDK还包括其他开发者工具,如Android Studio IDE,它是开发Android应用的主要环境,提供了代码编辑、调试、性能分析、版本控制集成等功能。 8. **权限和安全**:Android 12引入了更多...
3. **框架接口**:Android 29的SDK包含了所有必要的框架接口,让开发者可以访问系统服务,如ActivityManager、ContentResolver等,以实现各种功能。 4. **权限管理系统**:Android Q进一步强化了权限管理,例如,...
**Android SDK:开启移动开发之旅** Android SDK(软件开发工具包)是开发安卓应用程序的核心工具集,它为开发者提供了创建、测试和调试应用所需的一切。本文将深入探讨Android SDK的关键组件、功能及其在安卓开发...
Android SDK(Software Development Kit)是开发Android应用必不可少的工具集,它包含了编译、调试、模拟器、性能分析等一系列功能,让开发者能够构建、测试和优化Android应用程序。本压缩包包含的是一个完整的...
15. **版本更新**:Android SDK会定期更新,包含新功能、API改进和安全修复,开发者需要关注并适时更新SDK以保持应用的最新状态。 总之,Android SDK是Android开发的基石,它的文档提供了全面的技术指导,帮助...
Android SDK (SDK Platforms)-android-34.zip 是一个包含了Android操作系统第34版本(也称为Android 13)开发所需平台工具的压缩包。这个压缩文件对于开发者来说至关重要,因为它提供了构建、测试和调试Android应用...
Android sdk 在首次安装好后 要用SDK Manager.exe进行更新,因服务器在国外,下载经常断开及下载非常慢 上面我把SDK的更新所需要各文件下载地址提供出来,用下载工具下载后即可使用,上面已更新到2014年2月6日 第一...
Android SDK r10.从http://d.android.com/sdk/index.html下载,国内无法直接访问,希望对大家有用。 上传日期 2011-04-11, 上传文件 installer_r10-windows.exe
1. **Android SDK (Software Development Kit)**:Android SDK是Android应用程序开发的基础,它为开发者提供了构建、调试和发布Android应用所需的工具和库。SDK包括了API文档、编译工具、模拟器、各种版本的Android...
1. **API文档**:Android SDK提供了详细的API参考文档,帮助开发者了解每个类、方法和属性的功能,以及如何在代码中使用它们。API级别28的文档会列出所有在这个版本中可用的类库和接口。 2. **SDK Tools**:这是一...
1. **Activity**:Android应用的基本单元,负责用户界面和交互。 2. **Intent**:用于启动其他组件(如Activity或Service)的通信机制。 3. **Fragment**:可插入到Activity中的UI模块,方便在不同屏幕尺寸间复用。 ...