当我们阅读android API开发文档时候,上面的每个类,以及类的各个方法都是已经写好的方法和控件,可是我们只是在搬来使用,不知道它的原理,它是如何被实现的。android系统是开源的,所以谷歌官方在每发布一个版本的时候都会放出它对应的API源码的,让我们可以深入了解android的API实现过程,这就是开源的魅力。如果我们从API源码的角度去了解了开发过程,那样对于作为开发人员的我们,便会对他有更深入的体会,有助于日后的软件开发。

比如查看Activity的源码,如图

也可以查看系统方法怎么去实现一个过程,

如每个activity设置界面时都会去调用的一个方法:setContentView(R.layout.welcome);

从代码中我们可以看到,这个方法其实就是系统分装好我们拿来用的简化版,我们也可以按照源码里面的

getWindow().setContentView(R.layout.welcome);

这样的实现效果都是一样的。

在例如系统提供的按钮控件Button:

不看不知道一看明白了,原来它的父类就是TextView,那在然我们看看TextView控件的源码:

可以发现,它的父类是View,安卓的系统控件都是继承了View类,画出来的,所以在我们想要自定义控件的时候,可以继承View去做出自己想要的控件。

在Eclipse中需要查看某个类的源码,直接按住Ctrl 然后点击想要查看的类或则方法,就会打开相对应的类文件,可是这是建立在配置好源source的情况下才会打得开,下面让我们去看看如何配置:

一.android API 源码

1.首先要先下载SDK下的对应版本API的源码Source for Android SDK

2.之后找到你所安装的SDK所在的目录,我的SDK目录路径是:C:\Users\Administrator\android-sdks

找到各个版本的对应sources文件夹

里面就是对应的你所下载版本的源文件

我们拿4.3来做个例子(android-19  就是对应4.3)

找到目录路径

C:\Users\Administrator\android-sdks\sources\android-19

之后右击你的项目,选菜单最下方的Properties --- Java Buld Path  --- Libraries  --- android 4.3  ---  android.jar

点击Edit,

在上图所示输入框放入你前面源码的目录,之后项目会自动更新,之后便可以查看源码了。

二:查看对应的support拓展包的源码

下面以android-support-v4.jar为例子

1.先要下载SDK下的android support library,这个里面包含了最新版本的拓展包

之后找该拓展包到目录,这就是V4的架包路径,我的路径为:C:\Users\Administrator\android-sdks\extras\android\support\v4\src

在你所在的项目的LIB文件下,会有一个android-support-v4.jar架包,在该目录下建立文件命名为:android-support-v4.jar.properties,(其他V7什么的架包类似,在原架包名称后面加上.properties既可以),如下图所示:

我的是support v4的架包源码路径为C:\Users\Administrator\android-sdks\extras\\android\support\v4\src

之后打开你所创建的这个文件,在里面输入你该架包源码所在的位置路径:

如果是WINDOWS操作系统下,输入的路径为:C:\\Users\\Administrator\\android-sdks\\extras\\android\\support\\v4\\src

ndroid-support-v4.jar.properties文件中格式: src = C:\\Users\\Administrator\\android-sdks\\extras\\android\\support\\v4\\src

之后这步很关键,就是把这个项目CLOSE了,之后在OPEN,

之后我想查看V4架包的FRAGMENT这个类,就是通过按住CTRL在点击FRAGMENT,查看了,

通过源码去深入学习API的实现过程,可以让我们对android有更深入的体会和了解。

Android 如何在Eclipse中查看Android API源码 及 support包源码的更多相关文章

  1. 【转】Android 如何在Eclipse中查看Android API源码 及 support包源码

    原文网址:http://blog.csdn.net/vipzjyno1/article/details/22954775 当我们阅读android API开发文档时候,上面的每个类,以及类的各个方法都 ...

  2. 如何在Eclipse中查看Android源码或者第三方组件包源码

    文章出处:http://blog.csdn.net/cjjky/article/details/6535426 在学习过程中如果经常阅读源码,理解程度会比较深,学习效率也会比较高,那么如何方便快捷的阅 ...

  3. 如何在Eclipse中查看Android API源码以及support包源码

    http://my.eoe.cn/futurexiong/archive/181.html 开发第三方Android应用的,大多数人应该还是Eclipse结合ADT来开发.那么大多数时候我们可能希望点 ...

  4. 沉淀再出发:如何在eclipse中查看java的核心代码

    沉淀再出发:如何在eclipse中查看java的核心代码 一.前言   很多时候我们在eclipse中按F3键打算查看某一个系统类的定义的时候,总是弹出找不到类这样的界面,这里我们把核心对应的代码加进 ...

  5. 在eclipse中查看Android源码

    声明:高手跳过此文章 当我们在eclipse中开发android程序的时候.往往须要看源码(可能是出于好奇,可能是读源码习惯),那么怎样查看Android源码呢? 比方以下这样的情况 图1 如果我们想 ...

  6. (转)如何在Eclipse中查看JDK类库的源代码

    在Eclipse中查看JDK类库的源代码!!! 设置: 1.点 “window”-> "Preferences" -> "Java" -> & ...

  7. Eclipse中查看Android模拟器SD卡目录

    · 有时候用到Android模拟器来模拟SD卡相关操作,在Eclipse中可以直接查看SD卡目录: 首先,新建模拟器的时候要创建SD卡,存储的大小根据需要创建: 启动模拟器,在Eclipse中打开视图 ...

  8. 在eclipse中查看android源代码

    自己写了一个类MainAcvitivity extends Activity, 按F12(我把转到定义改成了F12的快捷键),转到Activity的定义,弹出下面这样的界面 就是说没有找到androi ...

  9. 如何在eclipse中添加android ADT(转)

    转自: http://jingyan.baidu.com/article/b0b63dbfa9e0a74a4830701e.html 对于程序开发的学者来说,eclipse并不陌生,它为我们提供了一个 ...

随机推荐

  1. ThinkPHP 整合Bootstrap Ajax分页

    ThinkPHP Ajax分页代码 publicfunction index() { $where=array(); $name = I('name'); if(!empty($name)){ $wh ...

  2. Java动态代理 cglib

    代理模式:为某些对象提供代理以实现对这个对象的访问. 对一个对象进行访问控制的原因是为了只有在我们确实需要这个对象时才对它进行创建和初始化. 一般包括以下组件: 被代理者接口:提供被代理者的访问途径. ...

  3. SQL Server特殊用法笔记

    1. MERGE用法:关联两表,有则改,无则加 SQL语句: create table #AAA(id int,A int,AA int,AAA int,B int) create table #BB ...

  4. Hadoop 错误归档库

    在hive中操作任意mapreduce相关语句 The size of Container logs revealed the below error: 2015-04-24 11:41:41,858 ...

  5. IO复制多级目录 控制台输入文件目录然后把目录下java文件复制到 D: 并统计java个数

    package cn.itcast_05; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; impor ...

  6. Css3盒子模型-css学习之旅(5)

    主要内容: 盒子模型内边距,外边距,边框,外边距合并 主要包括:margin(外边距)padding(内边距) border(边框)centent(内容) 内边距:padding,paddinglef ...

  7. CSS弹性盒子的基本用法

    .container { width: 302px; height: 302px; border: 1px solid; display: flex } .item { width: 100px; h ...

  8. vue遍历数组和对象的方法以及他们之间的区别

    前言:vue不能直接通过下标的形式来添加数据,vue也不能直接向对象中插值,因为那样即使能插入值,页面也不会重新渲染数据 一,vue遍历数组   1,使用vue数组变异方法 pop() 删除数组最后一 ...

  9. LOJ#2722 情报中心

    解:有个暴力是枚举两条链然后O(n)判定,可以得到15分. 还可以优化一下,枚举一条链,然后第二条链直接求两端点树上带权距离.可以做到O(m(n + m)),但是我用的树剖,跟上面那一档没啥区别Orz ...

  10. python基础12_匿名_内置函数

    一个二分查找的示例: # 二分查找 示例 data = [1, 3, 6, 7, 9, 12, 14, 16, 17, 18, 20, 21, 22, 23, 30, 32, 33, 35, 36, ...