`
soboer
  • 浏览: 1337623 次
文章分类
社区版块
存档分类
最新评论

android sdk 文档导读之前传:初涉

 
阅读更多

看到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的是必须注明的,望理解)。

好啦,鸣谢:摆渡、谷哥。

各位看官,谢谢围观。

如有纰漏,欢迎拍砖!

分享到:
评论

相关推荐

    Android SDK 中文帮助文档

    8. **安全与隐私**:Android SDK文档也会涉及应用的安全性和用户隐私保护,包括权限管理、数据加密和网络通信安全等内容。 9. **最新更新**:随着Android系统的不断升级,SDK文档也会及时更新,反映最新的API特性和...

    Android SDK离线文档

    ### Android SDK离线文档知识点详解 #### 一、Android SDK离线文档概述 **Android SDK离线文档**是指为了方便开发者在没有网络连接的情况下查阅Android SDK API和其他相关文档而提供的本地文档包。这对于那些在...

    Android SDK 中文开发文档.pdf

    1. **设备模拟器**:Android SDK提供的模拟器可以让开发者在无需物理设备的情况下测试应用程序。 2. **调试工具**:包括内存分析、性能分析等功能,辅助开发者优化应用性能。 3. **Eclipse集成开发环境插件**:...

    android sdk android-33

    Android SDK 是 Android 应用开发的核心工具集,它包含了开发者构建、测试和部署 Android 应用所需的所有组件。"android-33" 指的是 Android SDK 的一个特定版本,代表了 Android 操作系统的第 33 版本。这个版本...

    Android SDK (SDK Platforms)-android-30.zip

    Android SDK (SDK Platforms)-android-30.zip 是一个包含了Android开发平台版本30的软件开发工具包,这是Android操作系统的一个重要组成部分,专为开发者提供,用于构建、测试和调试针对Android 11(API级别30)的...

    android sdk android-34

    这个版本的SDK包含了开发者需要的一切,包括API文档、工具、库以及模拟器等,以便于为最新的Android操作系统版本进行开发。 **Android SDK主要组成部分:** 1. **平台工具**:这包括了如`adb`(Android Debug ...

    Android SDk 中文文档

    这份"Android SDK 中文文档"虽然不完整,但对于初学者来说,仍是一个宝贵的资源,可以帮助他们快速理解和掌握Android开发的基本概念。 在Android SDK中,主要包含以下几个关键部分: 1. **SDK Manager**: 这是SDK...

    android sdk27版本

    - **Background Execution Limitations**:Android 8.1对后台服务和后台进程的限制更严格,以优化电池寿命和系统资源。 - **Notification Channels**:引入了通知渠道,允许开发者将通知分组,提高用户对通知管理...

    Android SDK (SDK Platforms)-android-31.zip

    7. **开发者工具**:Android SDK还包括其他开发者工具,如Android Studio IDE,它是开发Android应用的主要环境,提供了代码编辑、调试、性能分析、版本控制集成等功能。 8. **权限和安全**:Android 12引入了更多...

    Android SDK (SDK Platforms)-android-29.zip

    3. **框架接口**:Android 29的SDK包含了所有必要的框架接口,让开发者可以访问系统服务,如ActivityManager、ContentResolver等,以实现各种功能。 4. **权限管理系统**:Android Q进一步强化了权限管理,例如,...

    android sdk说明文档

    **Android SDK:开启移动开发之旅** Android SDK(软件开发工具包)是开发安卓应用程序的核心工具集,它为开发者提供了创建、测试和调试应用所需的一切。本文将深入探讨Android SDK的关键组件、功能及其在安卓开发...

    Android SDK网盘下载

    Android SDK(Software Development Kit)是开发Android应用必不可少的工具集,它包含了编译、调试、模拟器、性能分析等一系列功能,让开发者能够构建、测试和优化Android应用程序。本压缩包包含的是一个完整的...

    android SDK文档

    15. **版本更新**:Android SDK会定期更新,包含新功能、API改进和安全修复,开发者需要关注并适时更新SDK以保持应用的最新状态。 总之,Android SDK是Android开发的基石,它的文档提供了全面的技术指导,帮助...

    Android SDK (SDK Platforms)-android-34.zip

    Android SDK (SDK Platforms)-android-34.zip 是一个包含了Android操作系统第34版本(也称为Android 13)开发所需平台工具的压缩包。这个压缩文件对于开发者来说至关重要,因为它提供了构建、测试和调试Android应用...

    Android sdk 各版本离线安装包下载地址及方法(解决更新慢)

    Android sdk 在首次安装好后 要用SDK Manager.exe进行更新,因服务器在国外,下载经常断开及下载非常慢 上面我把SDK的更新所需要各文件下载地址提供出来,用下载工具下载后即可使用,上面已更新到2014年2月6日 第一...

    Android SDK r10

    Android SDK r10.从http://d.android.com/sdk/index.html下载,国内无法直接访问,希望对大家有用。 上传日期 2011-04-11, 上传文件 installer_r10-windows.exe

    Android SDK (SDK Platforms)-android-32.zip

    1. **Android SDK (Software Development Kit)**:Android SDK是Android应用程序开发的基础,它为开发者提供了构建、调试和发布Android应用所需的工具和库。SDK包括了API文档、编译工具、模拟器、各种版本的Android...

    Android SDK (SDK Platforms)-android-28.zip

    1. **API文档**:Android SDK提供了详细的API参考文档,帮助开发者了解每个类、方法和属性的功能,以及如何在代码中使用它们。API级别28的文档会列出所有在这个版本中可用的类库和接口。 2. **SDK Tools**:这是一...

    Android SDK中文开发文档

    1. **Activity**:Android应用的基本单元,负责用户界面和交互。 2. **Intent**:用于启动其他组件(如Activity或Service)的通信机制。 3. **Fragment**:可插入到Activity中的UI模块,方便在不同屏幕尺寸间复用。 ...

Global site tag (gtag.js) - Google Analytics