• android 关联源码


    当我们阅读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:UsersAdministratorandroid-sdks

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

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

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

    找到目录路径

    C:UsersAdministratorandroid-sdkssourcesandroid-19

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

    点击Edit,

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

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

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

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

    之后找该拓展包到目录,这就是V4的架包路径,我的路径为:C:UsersAdministratorandroid-sdksextrasandroidsupportv4src

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

    我的是support v4的架包源码路径为C:UsersAdministratorandroid-sdksextras\androidsupportv4src

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

    如果是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有更深入的体会和了解。

  • 相关阅读:
    (转)-为什么分布式一定要有Redis?
    (九)redis使用lua脚本
    (八)redis实现分布式锁
    (七)面试题-Redis比较常见的面试题-转载
    (六)redis缓存穿透,击穿,雪崩以及解决方案
    (五)redis的主从复制
    (四)redis的数据持久化-RDB,AOF
    (三)redis的其他功能-Bitmap,HyperLogLog,GEO
    JsTracker
    Web开发者助手 FeHelper
  • 原文地址:https://www.cnblogs.com/syjhsgcc/p/4827451.html
Copyright © 2020-2023  润新知