背景
做开发最痛苦的事情,不是写代码,是看别人的代码,看老代码. 写个功能,刷刷就完了,要看懂别人的代码,就想骂娘.但是作为开发进入一个老项目时,又不得不熟悉老代码.那怎么样才能最快的熟悉呢? 安卓开发里要了解老项目时,一般先从UI开始,一边在手机上把app跑起来熟悉界面,一边看代码.那么怎么找到当前浏览界面对应的代码呢? 大多数情况下,可见界面是一个activity,有时主体是fragment.本文介绍这个点.
一、查看当前界面所属activity
-
BaseActivity里打断点
一般的工程都会自定义一个BaseActivity,其他activity都是从这个继承的.基于这一点,可以在BaseActivity的onCreate方法里打断点即可.
-
AppCompatActivity或更底层基类打断点
如果工程里没有定义统一的BaseActivity,或者只有部分activity继承了BaseActivity,那可以在activity的基类AppCompatActivity或更底层基类onCreate方法中打断点.
- 使用查看当前最前端activity的app
该项目地址:https://github.com/sinawangnan7/CurrentActivity
app下载地址
效果:
二、查看当前界面所属fragment
类似activity的查看方式,在BaseFragment或者更底层的基类中onViewCreated方法打断点.
-
BaseFragment里打断点
一般的工程都会自定义一个BaseFragment,其他fragment都是从这个继承的.基于这一点,可以在BaseFragment的onViewCreated方法里打断点,然后在Debug面板中切换到“Variables”查看this的值即可.
-
Fragment或更底层基类打断点
如果工程里没有定义统一的BaseFragment,或者只有部分fragment继承了BaseFragment,那可以在fragment的基类或更底层基类中onCreateView方法中打断点,然后在Debug面板中切换到“Variables”查看this的值即可.
三、查找界面元素对应的xml文件
- 根据界面显示的文字直接到工程里搜索.
适用于具有特点的文字字符串,并且不是拼接的那种. -
通过uiautomatorviewer查看界面元素对应的控件id,再根据id到代码中查找.
适用于控件设置了id,并且id唯一.
运行安卓sdk自带的uiautomatorviewer(sdk/tools/bin目录下)命令工具.resource-id的最后一部分(斜线后面部分)就是控件id.
安卓开发技术分享: https://www.jianshu.com/p/442339952f26
点击关注专辑,查看最新技术分享
更多技术总结好文,请关注:「程序园中猿」

网友评论