AndroidStudio简单使用(二):左侧Structure

Structure结构

上面有说, 可以通过 Alt + 7 快捷键 调出来。 个人觉得, 这个对于查看代码结构,还是很方便的。直接可以看到代码的大体结构。 我们以 android-23 的 View 类,为例

右侧2个箭头

Paste_Image.png

【箭头向下 指向横线】

选中后, 我们点击左侧,具体的类 或者 接口。 我们发现右侧会跟着移动

Paste_Image.png

取消选择以后,可以发现不会跟着移动

Paste_Image.png

【箭头向下 指向横线】,表示随着左侧点击,右侧自己查找类和方法

【横线指出 向下箭头】

选中后, 我们点击右侧, 具体代码位置。 发现也会到对应的位置。

Paste_Image.png

同理, 取消后,就不存在了

【横线指出 向下箭头】,表示随着右侧点击,左侧查找所在类和方法

或者总体自己理解 横线,表示代码。 一个是选择后,去找代码。 一个是从代码,去找位置


展开合并

Paste_Image.png

我们【点击Expand All,展开全部】

Paste_Image.png

可以发现,左侧全部展开了

【点击 Collapse All, 合拢全部】

Paste_Image.png

可以发现,左侧全部合拢了

这2个,表示左侧 全部合拢, 全部展开


匿名类

显示匿名类

Paste_Image.png

具体匿名类概念,这里就不描述了,属于基础,可以参考 http://docs.oracle.com/javase/tutorial/java/javaOO/anonymousclasses.html


显示继承

Paste_Image.png

选择之前,是这样的

Paste_Image.png

选择之后,可以发现,浅灰色的方法,都是继承自父类的(双击,可以进入父类查看)

Paste_Image.png


显示非公开

Paste_Image.png

点击前,我们可以看见左边有一些类

Paste_Image.png

点击后,我们可以发现, 一些private等的类,也可以看见了

Paste_Image.png

这里,我们可以看见 DeclaredOnClickListener 私有静态类 (都说反射效率低, 但是可以发现 很多底层的类, 都大量运用反射)

Paste_Image.png

取消点击后, 我们在左边就看不见对应的类了


显示属性

这里f , 就是 field的意思, 也就是 属性, 当然,我觉得理解成 字段 也挺好。

Paste_Image.png

点击前,我们只能看见 类,接口和方法 点击后,我们可以看见对应的属性

Paste_Image.png


按属性排列

这里P,是 Property。 自己 理解 Property属性, 和 Field的区别。 (Property是对外的, 通常是为了让外面知道,通常有setter或getter) (Field 不存在对不对外, 类中需要存储, 都属于Field) (自己参考:Properties and fields are the same, except a property is a settable/gettable field)

Paste_Image.png

我们拿android-23的View 的 setOnClickListener() 方法举例。 我们调整成, Autoscroll from Source 也就是,【横线指出 向下箭头】, 通过源码去移动左侧的标记

Paste_Image.png

当我们点击【P】的时候

Paste_Image.png

我们可以发现,左侧 把对应的方法 放置到了 属性 onClickLister: OnClickListener 下面 这样, 我们可以按 Property属性去了解作者的代码想法


按实现归类

Paste_Image.png

这个符合,自己看不太清楚, 感觉 像一个【I】,也就是 Interface的意思

Paste_Image.png

我们可以发现, View 实现 3个接口, 2个类的内部接口Callback, 一个公开接口AccessibilityEventSource 拿 KeyEvent的内部接口为例:

Paste_Image.png

onKeyDown 方法 是经常用的

我们在View中, 找到实现

Paste_Image.png

这个时候,左侧方法是单独排列的。 当我们点击 【I】的时候,

Paste_Image.png

我们可以发现,是按接口类型, 排列 这样, 当一个类实现多个接口的时候 可以清楚看出哪些方法是实现哪个接口


按字母顺序排序

按字母顺序排列, 这个比较好理解

Paste_Image.png

点击后,就按字母顺序排列

Paste_Image.png


按是否可见排列

要按可见度排序, 要先打开 show non-public【显示非公开】

Paste_Image.png

我们以装载 OnClickLister的 静态内部类 ListenerInfo 举例(没有修饰符,是不可见的) 这个时候,我们没点击 可见度排序 前 我们发现 ListenerInfo 是按 代码排序的, 比较靠前

Paste_Image.png

点击后:

Paste_Image.png

就按可见度排序,排到后面了


其他表示

访问权限

访问权限修饰符修饰成员变量和方法

  • public:表明该成员变量和方法是共有的,能在任何情况下被访问。
  • protected:必须在同一包中才能被访问。
  • friendly:在一个包中或者子类中才能被访问。(可以不写)
  • private: 只能在本类中访问。

我们看见在【m】后面(当然,类和接口后都有)

Paste_Image.png

有这4中,也就是分别代表上面的四种修饰符

  • public:

Paste_Image.png

  • protected:

Paste_Image.png

  • friendly:

Paste_Image.png

  • private:

Paste_Image.png

其他1

Field:字段属性

Paste_Image.png

Method:方法

Paste_Image.png

Class:类

Paste_Image.png

Interface:接口

Paste_Image.png

其他2

这里比较多, 就拿 方法m 来举例子: final:

Paste_Image.png

static:

Paste_Image.png

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏web前端

Vuejs --03 模板语法

一、插值      1、文本 <span>{{msg}}</span> //mustache语法 <span v-once>{{msg}}</spa...

21490
来自专栏小樱的经验随笔

洛谷 P1914 小书童——密码【字符串+模拟】

P1914 小书童——密码 题目背景 某蒟蒻迷上了“小书童”,有一天登陆时忘记密码了(他没绑定邮箱or手机),于是便把问题抛给了神犇你。 题目描述 蒟蒻虽然忘记...

33070
来自专栏一个会写诗的程序员的博客

前端知识体系整理(不断更新)

var x = {}; var y = []; var z = null; typeof x; // "object" typeof y; // "objec...

16420
来自专栏从零开始学自动化测试

python爬虫beautifulsoup4系列4-子节点​

前言 很多时候我们无法直接定位到某个元素,我们可以先定位它的父元素,通过父元素来找子元素就比较容易,简单一点来说就是通过父亲找儿子。 一、子节点 1.以博客园...

36670
来自专栏owent

JSON显示库 -- showJson (Javascript)

现在的web的js开发很方便啊,但是碰到iframe里的东西还是不方便看到变量的内容,所以就写了这么个看json内容的玩意,还可以当控制台输出用。

8710
来自专栏自动化测试实战

flask第二十四篇——模板【6】自定义过滤器

26060
来自专栏柠檬先生

Angularjs基础(九)

AngularJS 应用 应用程序讲解     实例:         <html ng-app="myNoteApp">           <he...

19360
来自专栏前端说吧

Sass-学习笔记【基础篇】

43040
来自专栏积累沉淀

JavaScript基础1

什么是Javascript? Javascript是一种基于对象和事件驱动的, 与平台无关的 ,具有安全性的 ,弱类型的脚本语言。 为什么要用? 使...

25850
来自专栏全栈之路

golang教程

这里有两个关键点。 - 其一是defer关键字。defer语句的含义是不管程序是否出现异常,均 在函数退出时自动执行相关代码。 - 其二是Go语言的函数允许返回...

71020

扫码关注云+社区

领取腾讯云代金券