大家好,我是刘望舒,I’m back!最近分享了一些视频,都属于望舒杂谈,望舒杂谈会分享一些经验,什么都会聊。除了望舒杂谈还有另一个视频分支叫做BATcoder,什么是BATcoder呢?它是Android进阶三部曲的番外篇,会对Android进阶三部曲的内容进行拓展和升级,会以视频的形式分享给大家。至于为啥叫BATcoder,这是因为我希望大家看了我的技术视频能进入自己中意的大厂。
这篇是BATcoder的第二个视频,来聊聊应用开发如何高效学习系统叠层源码,注意是给应用开发看的,如果你是系统开发、逆向安全开发,这个视频并不适用于你。

本视频主要从三个方面来进行讲解,分别是:
1.为何要阅读系统源码?
2.如何阅读调试系统源码
3.系统源码的知识体系

1.为何要阅读系统源码?

  1. 面试必备。无论是大公司还是中小公司,系统源码都是常问的部分。(便于筛选、得知潜力、解决难题)
  2. 更好的掌握编写代码的规范和技巧。
  3. 更好的理解设计模式。见《Android源码设计模式解析与实战》这本书。
  4. 有效的提高应用开发能力,比如:自定义View、调试疑难问题、插桩
  5. 更好的理解应用开发中涉及的原理,比如:热修复、插件化、Activity的启动模式…
  6. 转战框架层开发、多媒体开发、逆向安全开发…

2.如何阅读调试系统源码?

  1. 下载源码或者是在线阅读源码
    在线阅读源码推荐:http://androidxref.com/
    下载地址推荐:http://pan.baidu.com/s/1ngsZs
    也可以在Linux环境中用repo下载AOSP源码
  2. 选择阅读源码的工具,推荐Source Insight
  3. 选择调试源码工具,推荐AS

这一内容我会在后续的BATcoder的视频中进行分享,如果你想提前学习,可以查看我的博客的AOSP基础系列:
http://liuwangshu.cn/tags/AOSP%E5%9F%BA%E7%A1%80/

3.系统源码的知识体系?

主要涉及到以下知识:

Android系统架构
Android系统源码目录
Android系统启动过程
Binder原理
应用程序进程启动过程
根Activity的工作过程
Context的关联类
理解AMS
理解WindowManager
理解WMS
理解PMS
理解输入系统
阅读源码的通用套路
系统源码知识体系

这些都是应用开发需要掌握的,而且也只是部分内容,内容很多很杂,已经很难用文章来进行表述,就算用视频来讲解,也只能每个分类大概讲讲,旨在让大家了解应用开发需要掌握哪些系统源码知识,以及每个源码知识大概要了解哪些内容,然后通过这些内容总结出高效学习系统源码的通用套路。

话不多说,上视频。

也欢迎大家关注我的公号 会分享大前端、Java相关的技术。