前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >AndroidStudio简单使用(二):左侧Structure

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

作者头像
dodo_lihao
发布于 2018-09-12 03:01:24
发布于 2018-09-12 03:01:24
1.7K0
举报
文章被收录于专栏:懒人开发懒人开发

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016.09.01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
AndroidStudio简单使用(一):基础面板
用android studio也比较长时间了 一直没有怎么总结过, 看了 徐宜生 的 android群英传: 神兵利器 后,才感觉到, 其实 除了代码以外, 有些也可以总结下
dodo_lihao
2018/09/12
1.5K0
AndroidStudio简单使用(一):基础面板
android studio简单使用(A2):自定义模版简单实战
复制EmptyActivity一份, 重命名为 DodoTemplateActivity
dodo_lihao
2018/09/12
6200
android studio简单使用(A2):自定义模版简单实战
《从案例中学习JavaScript》之实现网页版阅读器
序 现在手机上的文本阅读app已经非常丰富,良好的阅读体验与海量的书库常常令我感到无比兴奋。 我想到8年前用一点几寸屏幕的mp3看电子书的情景,顿生一种淡淡的温馨。再久远一些,小的时候,我也经常和小伙伴们组团去书店看白书,也就是白看书。古老的木质书架上那一叠叠厚重的黄皮小说书,在年幼的我眼里仿佛是比盘子里的午餐肉更加美味可口的东西。 而在当今这个信息化的时代,看书变得空前的便利,可是儿时那种期待和兴奋的感受却消失在了时间的长河。 岁月在流逝,时代在进步。 愿放下所有的浮躁,在新的时代愉快地生活,无所谓明天怎
剽悍一小兔
2018/05/17
1.3K0
android studio简单使用(A):自定义模版介绍
自己也没有怎么接触过android studio的模版 只是参考 鸿洋 的博客,接触到了, 自己记录一下 具体参考: https://github.com/WanAndroid/AndroidStudioTemplates
dodo_lihao
2018/09/12
9660
android studio简单使用(A):自定义模版介绍
Top 6 常见问题关于Java中的Map1 将Map转换成一个List2 遍历map中的键值对3 根据Map的key值排序4 根据Map的value值排序5 初始化一个静态的不可变的Map6 Has
我们都知道Map是一种键-值对的数据结构,每个键都是唯一的!本文讨论了关于Java中Map使用的最常见的8个问题。为了叙述的简单,所有的例子都会使用泛型。并且本文出现的泛型符号 K,V,都是继承实现Comparable接口的!
desperate633
2018/08/22
2.3K0
Top 6 常见问题关于Java中的Map1 将Map转换成一个List2 遍历map中的键值对3 根据Map的key值排序4 根据Map的value值排序5 初始化一个静态的不可变的Map6 Has
iOS开发-1.UITableView你会用吗?
前一段时间,公司招聘了一个新员工,界面做出来了,但是很卡,我看完他写的代码,发现没有对UITableViewCell进行循环使用,而且在UITableView代理方法中,创建了很多并没有什么用的对象,一些调用频繁的方法也没有很好地处理。
孙寅
2020/06/03
8340
iOS 9 Storyboard 教程(二上)介绍Segue静态单元格(static cell)
Add Player 最终的设计看上去像下面这样:#接第一部分: 原帖地址 简书地址
hrscy
2018/08/30
3.3K0
iOS 9 Storyboard 教程(二上)介绍Segue静态单元格(static cell)
【手把手】JavaWeb 入门级项目实战 -- 文章发布系统 (第九节)
1. 根据静态页面完成JavaBean设计 在上一节中,我们完成了文章封面的制作,这些都属于静态页面的部分。 Paste_Image.png 从图片中可以看到,一篇文章的主要信息有:文章标题,文章名称
剽悍一小兔
2018/05/17
7920
鸿洋AutoLayout代码分析(二):获取Manifest中的值
从AndroidManifest.xml中去取值,自己觉得应该和 PackageManager 或 Manifest 有关 (Manifest 简单是一个容器,存储和读写键值对用的, PackageManager 是抽象类,自己还没有了解过对应的实现)
dodo_lihao
2018/09/12
7620
鸿洋AutoLayout代码分析(二):获取Manifest中的值
iOS RunTime之六:Category
Category 是 Objective-C 2.0 之后添加的特性,一般我们使用 Category 的场景主要可以动态地为已经存在的类扩展新的属性和方法。这样做的好处就是:
s_在路上
2018/09/11
6660
iOS RunTime之六:Category
(windows)svn服务器与客户端的搭建
VisualSVN_Server 服务器端 TortoiseSVN 客户端
潇洒哥和黑大帅
2018/10/23
7.6K0
(windows)svn服务器与客户端的搭建
简单粗暴,详细得不要不要的 JavaWeb快速入门
Paste_Image.png 前端时间我在写一个系列,是关于JavaWeb的一个入门级项目实战,我的初衷就是打算写给初学者的,希望能对他们有所帮助。 这段时间博主也接触了一些事情,感觉有必要专门把J
剽悍一小兔
2018/05/17
8550
深入理解javascript中的原型原型的概念使用原型给对象添加方法和属性使用原型对象的属性和方法原型的陷阱小结
原型prototype是javascript中极其重要的概念之一,但也是比较容易引起混淆的地方。我们需要花费一些时间和精力好好理解原型的概念,这对于我们学习javascript是必须的。
desperate633
2018/08/22
4.3K1
深入理解javascript中的原型原型的概念使用原型给对象添加方法和属性使用原型对象的属性和方法原型的陷阱小结
HttpURLConnection,HttpClient的简单使用
在android 2.2及以下版本中HttpUrlConnection存在着一些bug(建议使用HttpClient) 建议在android 2.3以后使用HttpUrlConnection
专注APP开发
2019/11/07
7330
HttpURLConnection,HttpClient的简单使用
我的NodeJS学习之路3(IDE选择及填小坑)
我推荐Sublime Text或者WebStorm,当然你是一个Geeker,可以用vim或者记事本都是可以的!本人为了追求效率,并且延续Intellij Idea的使用习惯,选择了WebStorm。
飞奔去旅行
2019/06/13
1.7K0
我的NodeJS学习之路3(IDE选择及填小坑)
AR开发--(二)手势识别-FingerGestures
写这篇文章其实已经做完所有的开发工作,今天周末所以搞起,因为项目需要的是手指在屏幕上操作。所以寻找插件,发现这个需求还是蛮多的。
孙寅
2020/06/02
2.4K0
三分钟学会用SpringMVC搭建最小系统(超详细)
前言 做 Java Web 开发的你,一定听说过SpringMVC的大名,作为现在运用最广泛的Java框架,它到目前为止依然保持着强大的活力和广泛的用户群。 本文介绍如何用eclipse一步一步搭建SpringMVC的最小系统,所谓最小系统,就是足以使项目在SpringMVC框架下成功跑起来,并且能够做一些简单的事情(比如访问页面)的系统。 话不多说,让我们开始吧。所有的源代码和jar包都会在最后给出。 其他环境: 操作系统:Windos 10 Tomcat : v7.0 JDK : 1.7 正文 1
剽悍一小兔
2018/05/17
9170
iOS开发--UIWindow与程序启动原理与两种创建控制器的方法
UIWindow是一种特殊的View 1.iOS启动完毕后,创建的第一个视图控件就是UIWindow。 2.接着创建控制器的View, 3.然后将控制器的view添加到UIWindow上 4.于是控制器的View就显示在屏幕上了。 5.也就是说没有UIWindow,就没有UI界面
孙寅
2020/06/02
1.2K0
iOS开发--UIWindow与程序启动原理与两种创建控制器的方法
如何将MyEclipse项目导入eclipse
我们经常会在网上下载一些开源项目,或者从别的地方迁移一些项目进来,但经常会发现导入后各种报错。这是初学java肯定会遇到的问题,本文对一些常见的处理方案做一个总结。(本文将MyEclipse项目导入e
剽悍一小兔
2018/05/17
1.2K0
玩转EhCache之最简单的缓存框架
Ehcache是一个用Java实现的使用简单,高速,实现线程安全的缓存管理类库,ehcache提供了用内存,磁盘文件存储,以及分布式存储方式等多种灵活的cache管理方案。同时ehcache作为开放源代码项目,采用限制比较宽松的Apache License V2.0作为授权方式,被广泛地用于Hibernate, Spring,Cocoon等其他开源系统。Ehcache 从 Hibernate 发展而来,逐渐涵盖了 Cahce 界的全部功能,是目前发展势头最好的一个项目。具有快速,简单,低消耗,依赖性小,扩展性强,支持对象或序列化缓存,支持缓存或元素的失效,提供 LRU、LFU 和 FIFO 缓存策略,支持内存缓存和磁盘缓存,分布式缓存机制等等特点。
小程故事多
2018/08/22
2.8K0
玩转EhCache之最简单的缓存框架
推荐阅读
相关推荐
AndroidStudio简单使用(一):基础面板
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文