Android源码分析(五)-----如何从架构师的角度去设计Framework框架
一 : 架构与程序
软件架构是一种思维方式,而程序只是实现思维方式的一种手段,代码固然重要,但是若没有整体的思维架构,一切程序都如水中浮萍。
二 : 框架如何设计
暂时抛开Android Framework框架不谈,我们回想一下JavaWeb的核心思想mvc架构。what?这又是什么东西?好吧,不知道mvc架构的百度一下,只能帮你这些了…….
mvc主要是模型、视图、控制器。模型层以Entity,视图层jsp,控制层Action为主的三层架构模型,实现业务分离,以及代码解耦。外层通过Apache Tomcat服务器构建项目。
现在是否有些许的灵感?我们思考一下Framework框架是否也可以按照这种架构去设计呢,请忘掉你大脑中的Android系统,思考该如何去设计一个Framework框架。这是重点,必须要自己思考,自己设计!系统框架设计思想可以参考我之前的文章,此处就不添加链接了,感兴趣的可以自行查阅。切记不可跳过自己思考,自己设计环节而贸然去阅读Android源码,一旦这样做便是痛苦的开始,最终懵逼的离去。
给大家一个参考图,仅供参考,切勿模仿。一定要绘制出自己的架构图。
基于mvc架构衍生出来的模型图中大概包括了共享数据ContentProvicer、资源文件Resource、界面显示View、业务处理ActivityManager、视图管理WindowsManager、项目构建PackageManager。
现在我们可以去观摩一下Android官方架构图
这里比我们设计的Framework多个几项功能,通话管理TelephonyManager,通知管理NotificationManager,位置管理LocationManager,XMPPService。
通话管理TelephonyManager,通知管理NotificationManager,位置管理LocationManager主要是为了完善Framework框架,XMPPService暂时不用考虑,国内无法使用,关于即时通信服务器可参考Mqtt服务器搭建。
三 : 总结
我们Framework框架的设计主要包含了如下六项内容:
- ContentProvider、
- ResourceManager、
- ViewSystem、
- ActivityManager、
- WindowsManager、
- PackageManager、
这些也就是Framework的核心架构,不可缺少任何一项,无论系统如何升级,何种版本,只能围绕核心架构去做扩展。只要掌握了精髓,一切代码皆是浮云。
喜欢源码分析系列可参考其他文章:
Android源码分析(一)—–如何快速掌握Android编译文件
Android源码分析(二)—–如何编译修改后的framework资源文件
Android源码分析(三)—–系统框架设计思想
Android源码分析(四)—–Android源码编译及刷机步骤