请问你们大家是怎么看源码的

dongcx1234567 2014-05-23 04:03:18
最近,找了个开源中国android端的源码。。请问我应该怎么看。。是从入口类开始,还是从一些工具类和全局的类开始看。。
感觉太多了,很容易理不清思路。请过来人介绍经验
...全文
267 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
何呵和喝 2014-05-30
  • 打赏
  • 举报
回复
别人的一篇文章,我不知道出处了。 1、一边阅读代码一边写注释。这是我用过的最好的方法,对代码理解得更深入,看一些重要代码或者特别难懂的代码时挺有用。更何况,注释也是一种文档嘛。 2、一边阅读代码一边绘制UML。这个方法适用于类之间的关系较复杂和调用层次较深的情况,我一般都是先绘制顺序图,然后为顺序图中的类绘制关系图。 3、通过Debug来跟踪程序的主要执行过程,这样就可以分清主次了,阅读的时候更有针对性。 4、类的快速阅读。先弄清楚它在继承链中的位置,看看它的内部状态,也就是成员变量,一般来说,类的对外接口都是对成员变量的访问、加工、代理等,然后看看它的对外接口,也就是公有成员函数,识别核心的一个或多个函数,这时候你应该可以大概了解这个类的职责或作用了。可能这个类是某个设计模式中的一个组成部分,所以,设计模式的掌握对代码的快速阅读也是很有帮助的。 5、带着问题去阅读。比如想了解android中的消息机制,那么看看Looper、Handler、MessegeQueue这几个类就可以了,其他的不要去看,要不然就跑题了。   下面列几个阅读源码时所处的情景,在特定场景下用哪些方法:      不太熟悉业务逻辑,还不是很清楚它是干啥的,可以用3、5。      代码量很大,有几十万行,甚至百万行,可以用2、3、5。      你无法看见程序的运行过程,比如没有用户界面,也有可能是无法运行的,可以用3、5。      设计复杂,用了大量的设计模式,调用链很深,可以用1、2、3、4、5。      时间有限,没有那么多时间让你看源码,可以用3、5。
yejsj 2014-05-30
  • 打赏
  • 举报
回复
按工作流来看,比如登陆就是一个工作流,登陆成功打开一个应用界面,就进入另一个工作流 把整个代码分成若干个工作流看,最后再连在一起看
dongcx1234567 2014-05-30
  • 打赏
  • 举报
回复
引用 3 楼 cclovescw 的回复:
找感兴趣的,近期要用的先看也行。
版主你好,有个问题请教一下。客户端和服务器端的交互用web service好还是j2ee。或者各有什么优缺点
dongcx1234567 2014-05-30
  • 打赏
  • 举报
回复
引用 4 楼 u013560831 的回复:
从应用主界面的类开始看,也就是打开应用第一个界面。然后先看它里面自己的方法,然后在看它调用别的类的方法,然后扩展到其它类去。就这样慢慢看吧!哈哈!
我就是这样做的。不过发现好多好乱。昨天一个下午就看了一个登陆的功能。
dongcx1234567 2014-05-30
  • 打赏
  • 举报
回复
引用 4 楼 u013560831 的回复:
从应用主界面的类开始看,也就是打开应用第一个界面。然后先看它里面自己的方法,然后在看它调用别的类的方法,然后扩展到其它类去。就这样慢慢看吧!哈哈!
你个人建议一个开源项目应该看多长时间合适,作为新手初次接触的话。不一定要非常准备,一个大概的时间就OK
荒颜 2014-05-30
  • 打赏
  • 举报
回复
可以先理清主要的入口 如果只有一个 跳过 然看查看你想知道的流程或者功能 比如你说的登陆 登陆过程中相关的验证以及其他状态等可以先放过 如果程序很大的话 还是以业务流程为线索看比较简单 像模块交互复杂交错的 需要多画图 整理不同模块的主要状态 什么情况下发生什么
中才德创 2014-05-29
  • 打赏
  • 举报
回复
最好作为参考来看。看看别人如何开线程的,开service,如何同步的。如果要全部理清,那就重写了。
缺水。的鱼 2014-05-29
  • 打赏
  • 举报
回复
从应用主界面的类开始看,也就是打开应用第一个界面。然后先看它里面自己的方法,然后在看它调用别的类的方法,然后扩展到其它类去。就这样慢慢看吧!哈哈!
  • 打赏
  • 举报
回复
找感兴趣的,近期要用的先看也行。
乐逍遥二 2014-05-23
  • 打赏
  • 举报
回复
根据方法调用的顺序,一步一步来,盲目的看很头疼。。。

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧