如何在短时间内快速熟悉一个刚接手的Android项目

  • 前言
  • 1. 熟悉流程
  • 2. 查看主要的Activity和Fragment
    • 2.1 查看当前Activity
    • 2.2 查看当前Fragment
  • 3. 熟悉项目结构
  • 参考材料

前言

从来没有去过有项目文档的公司,也不知道如何看项目文档。就这样我现在需要去熟悉一个新的Android项目。

在熟悉项目的时候,不妨开一个Word文档,流程和项目结构的东西都可以记录在里面,虽然说久而久之的都会记下来,但是如果一开始记了忘忘了记也挺烦的。

如果项目的规模很大,除了参考本文以外,还可以参考这篇:
Android 当项目规模很大的时候,刚来没多久如何进行开发
https://blog.csdn.net/qq_41872247/article/details/116456260

1. 熟悉流程

  当一个项目刚到手的时候,不要急着对着代码去看去翻,这样翻是翻不出什么结果的。先打开项目app的测试版(一般都会有),进去把app内每个按钮都点一下,每一个流程都先过一遍。遇到比较复杂的业务,比起自己在那乱点,最好再请教一下同事。但是也不要一直去问别人,问多了也挺招人烦的,问个一次两次就够了,最好还是自己多看一看。

2. 查看主要的Activity和Fragment

  我们做Android的都知道,Activity和Fragment是所有逻辑的起点,在对流程有一定的熟悉之后,就要去查看不同页面所在的Activity或者Fragment,然后在剩下的时间再看看页面布局,看看大部分Activity中是否用上了Fragment,用的时候都用在了哪一部分。

前期无论是遇到什么需求,都要以页面作为起点去分析逻辑

2.1 查看当前Activity

我有试过其他人说的各种各样的方法,但是最简单也是最直接的方法只有这几个。

  1. 如果项目比较规范,有一个比较完整的BaseActivity的话,可以在BaseActivity的onCreate方法或者onResume方法前,打上一句log,内容填getClass.getName()。这样当你打开新的Activity时,你只要在Logcat中进行过滤,就可以很轻易的知道当前Activity类所在的地址了。
  2. 如果项目比较乱,那你只好在源码的AppCompatActivity类中,OnCreate方法里面打个断点。以Debug的方式打开项目,这样每当打开一个新的Activity的时候,项目会整个停住,这个时候通过翻堆栈信息可以查看当前所在的Activity。一般的项目中,会涉及到各种各样的网络请求或者框架加载,很有可能你这边停住,整个逻辑就会出现问题不能继续运行下去(我自己实际上在熟悉项目的时候,就出现过连续点好几下运行都不会继续运行的情况)。

2.2 查看当前Fragment

方法基本等同于查看Activity

  1. 项目比较规范,在BaseFragment中用log打印getClass().getName(),在点一遍app,就可以知道Fragment具体挂在哪个Activity下或者在哪里有复用了,和Activity一起打印,更容易知道两者之间的层级关系。
  2. 项目比较乱,在Fragment类中对onCreate()方法设置断点,用debug的方式打开项目。就可以一个个查看了。

3. 熟悉项目结构

在熟悉了主要Activity和Fragment之后,就可以根据他们所在的包,对项目结构进行熟悉了,主要是对项目中,每个包存放了什么样的代码,完成了哪方面的逻辑做一个主要的记录。

  1. 我曾经熟悉一个MVP项目,这个项目中View单独一个包,Presenter单独一个包,Model单独一个包,每个包点进去有几十个类。这种类型的项目的话,它的类命名都会高度统一(比如说HomeActivity和HomePresenter和HomeModel),了解每个名字前缀完成了哪方面的逻辑并记录即可。

  2. 还有一种是项目是把每个Activity和其相关的逻辑代码单独打一个包,遇到这种情况了解每一个包完成了哪方面的逻辑并记录即可。

参考材料

Android程序员如何快速熟悉一个新的项目 - 简书
https://www.jianshu.com/p/02fb0f200d5a
如何用最快的速度熟悉安卓项目老代码 - 简书
https://www.jianshu.com/p/18d84f6e40e3

如何在短时间内熟悉一个刚接手的Android项目相关推荐

  1. [网赚项目] 一个刚需搞钱项目,可多重变现!月入好几个w

    在互联网上,只需能为他人供给有用的服务和有用的产品,就能取得对应的酬劳. 服务能够分为短期或许长期,产品能够分为什物产品和虚拟产品. 但不管是哪一种.哪一类,只需需求一直在,咱们就能够在这个范畴一直深 ...

  2. supermap:创建一个imobile【supermap-java】项目,并添加天地图/百度地图

    文章目录 创建一个imobile[supermap-java]项目,并添加天地图/百度地图 创建Android项目,完成项目初始化设置 配置adb工具(上传文件,新建文件路径) 配置jar包和so依赖 ...

  3. 2、刚接手一个新团队要做什么?

    刚接手一个新团队要重点做什么? ①目标的本质是一种评价 ②简单清晰的目标是管理团队的第一步 ③比个人目标更重要的是团队目标 ④比管理型目标更重要的是经营型目标 ⑤经营目标来自上级 目标管理的5点常识 ...

  4. [网赚项目] 分享一个刚需赚钱项目,可多重变现,月入好几个w

    不知道你喜不喜欢看纪录片,就是人与自然\天地玄黄\浮生六日这类的纪录片,我是很喜欢的 这个项目就是这样,卖纪录片合集,很简单,但是想卖好,也需要一定技巧 先来看看收益,月入好几个w,还是很可观的吧(简 ...

  5. 开发者如何快速熟悉一个新敏捷项目

    在ThoughWorks有一句流传甚广的话 -- "在ThoughtWorks需要有拥抱随时变化的心态",因为我们践行敏捷.我们有各种各样的客户,而商机稍纵即逝.作为普通的dev, ...

  6. 如何熟悉一个完全陌生的系统

    作为工程师,在职业生涯中不可避免的会遇到以下场景:1.入职新公司或者转岗到新部门,如何有条不紊地熟悉已有系统?2.支援陌生系统的迭代开发或者维护,如何快速上手?3.所在团队同事离职或转岗,需要你接手相 ...

  7. 分享:新入职时,如何快速熟悉一个项目的代码

    一.总体思路 昨晚是深夜撰文的阿菌,希望通过这篇文章和大家分享一下,初入职场时,如何才能快速地熟悉一个项目的代码. 说实话,感觉自己去年入职时上手项目的速度是比较慢的,可能是没有一些系统的方法论参考吧 ...

  8. 如何熟悉一个服务/业务

    如何熟悉一个新业务,一个新服务.我们可以从以下几点入手. 一.数据 业务是基于数据之上的逻辑,接手到新业务,可以先列举该服务/业务使用的是什么存储方式?mysql,es,redis等等 数据的结构是什 ...

  9. 如何快速熟悉一个项目

    2019独角兽企业重金招聘Python工程师标准>>> 对IT人士而言,换一份工作或进入一个新的公司,往往意味着要熟悉一个新的开发环境,要快速了解新的项目.如何快速地熟悉项目代码,是 ...

最新文章

  1. 力扣(LeetCode)刷题,简单题(第14期)
  2. 玩转Android之二维码生成与识别
  3. Direct2D教程(九)渲染位图
  4. Spring AOP进行日志记录,管理
  5. $动态规划系列(2)——找零钱问题
  6. 爱因斯坦耗费近十年的最伟大研究,推导出什么神预言?
  7. python私有仓库_创建git私有仓库
  8. [转载] Python正则表达式(含正则表达式速查表)
  9. 【图像变换】基于matalb DIBR-3D图像变换【含Matalb源码 082期】
  10. “绿多多”绿色资产资讯:良设板+“空间优造”亮相雄安 绿色生态进击!
  11. 专访邓中亮:位置信息是大数据的基石
  12. PS人物换装--白色换纯色
  13. 专业的web打印插件
  14. 接口显示返回值正常,但是拿到的值却是undefined?
  15. 考研英语 常见短语及替换
  16. 实验6 熟悉直接操纵页面
  17. [music]Brand new day--Ryan Star
  18. 在Ubuntu上安装LibRaw
  19. Hadoop各配置文件详解
  20. 励志心灵鸡汤经典语录,满满都是道理!

热门文章

  1. 量化系统数据的频率-tick和挂单数据、日内Bars、分钟线、每日周月数据
  2. 一天测血压的最佳时间_每天什么时间量血压最好?一天量几次
  3. Java泛型真的是鸡肋吗?
  4. softmax,log_softmx,nll_loss和CELoss之间的关系
  5. FB个人账户被封(受限),如何处理?
  6. 苹果6访问限制密码4位_浅谈打印机共享无法访问,您知道您的电脑为什么无法访问了吗?...
  7. framework保持第三方app常驻
  8. 利用光流提升视频识别的速度和精度
  9. lua-protobuf 新手入门篇-第二章.Unity lua-protobuf 环境配置
  10. HDR图像评价指标:HDR-VDP-2.2(Q-Score)