采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师您好,课程看完第二章了,我基础比较差,想问一些基础知识的问题。
1. What: framework是什么,他包括了哪些部分? 2. Why; 在Android系统中扮演什么角色,他解决了什么问题? 3. How: 就是课程内容了,这个我边看边请教吧
所以想请老师帮忙回答下前两问,以便可以从总体上给学生一个印象,谢谢您了!
谢谢您的提问,
第一个问题呢,还是Android官方的文档最权威了,这里面详细地讲到了framework的架构和各个组成部分,
https://developer.android.com/guide/platform
至于说第二个问题呢,我个人理解哈,framework上面是应用层,下面是linux层,主要包含三块,一个是虚拟机,一个是各类系统服务,还一个是底层的各种库。总的来说,都是为了充分调动系统资源,支撑上层的应用运行。
谢谢老师的回复. 我感觉您的这个回答更像是 What: "Framework 主要包含三块,一个是虚拟机,一个是各类系统服务(AMS/PMS/...),还一个是底层的各种库。 上面是应用层,下面是linux层,总的来说,都是为了充分调动系统资源,支撑上层的应用运行" >>> 看了您的回复之后想到如下观点, 可能这些对剖析framework没什么用, 但我还是想理解一下. 还请老师指正: Android 系统为什么需要引入 Framework 层? 因为在 Android 最开始发行正式版本的时候(大概是 2005 年前后?)最流行的语言是 Java. 为了吸引这些 Java 开发者很容易的开发 Android App, 所以他们需要为 App 开发人员提供 Java 的 API. 换句话说,如果当初最流行的开发语言是 JavaScript 或 Python, 那么今天 我们看到的 Framework 层的接口可能(仅仅是可能 了解这其中牵涉的因素很多) 就不是 针对 Java 的了. 关于我的提问中: 他解决了什么问题 我想或许是, Android 是基于Linux系统, 他或许提供了全面的 C/C++ 的API接口, 进程管理接口等, 而如果想让 Java 程序员基于这些接口来开发 Android App, 这些 Java 开发人员可能需要先写一部分 JNI 用来跟 Android 系统提供的 API 接口进行交互, 然后再用 Java 调用这些 JNI 接口完成类似UI 绘制/IPC 等基础操作. 最后才能写 Java 代码实现具体业务场景. 而因为 Android 团队认识到中间这部分是所有 Android App 都必须要使用的基础框架, 所以他们直接 提供了Android Java API Framework, 以此Java 程序员可以在无须了解 C/C++ 接口的前提下, 直接开发 Android 程序.
谢谢回复,您的意思我大概明白了,就是framework解决的问题的出发点是开发语言。 不过我个人觉得语言问题是术,framework真正的作用还是充分调动系统资源,支撑上层的应用运行。 不论上层是什么语言开发,底层都是需要各类系统服务和基础库的。
谢谢老师,我想我应该明白framework的作用了,并且以此为目的相关的职责范围也比之前理解清晰一些了。
登录后可查看更多问答,登录/注册
一手助力冲刺Android高级职位,一手把握系统底层原理,理清面试思路,提升技术段位
2.8k 4
768 16
756 8
1.0k 8
1.3k 7