请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

请问关于framework的基础知识,3W

老师您好,课程看完第二章了,我基础比较差,想问一些基础知识的问题。

1. What: framework是什么,他包括了哪些部分?
2. Why; 在Android系统中扮演什么角色,他解决了什么问题?
3. How: 就是课程内容了,这个我边看边请教吧

所以想请老师帮忙回答下前两问,以便可以从总体上给学生一个印象,谢谢您了!

正在回答 回答被采纳积分+3

1回答

风语 2019-05-13 15:44:53

谢谢您的提问,

第一个问题呢,还是Android官方的文档最权威了,这里面详细地讲到了framework的架构和各个组成部分,

https://developer.android.com/guide/platform

至于说第二个问题呢,我个人理解哈,framework上面是应用层,下面是linux层,主要包含三块,一个是虚拟机,一个是各类系统服务,还一个是底层的各种库。总的来说,都是为了充分调动系统资源,支撑上层的应用运行。

0 回复 有任何疑惑可以回复我~
  • 提问者 慕斯0259969 #1
    谢谢老师的回复.
    
    
    我感觉您的这个回答更像是 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 程序.
    回复 有任何疑惑可以回复我~ 2019-05-13 16:11:06
  • 风语 回复 提问者 慕斯0259969 #2
    谢谢回复,您的意思我大概明白了,就是framework解决的问题的出发点是开发语言。
    不过我个人觉得语言问题是术,framework真正的作用还是充分调动系统资源,支撑上层的应用运行。
    不论上层是什么语言开发,底层都是需要各类系统服务和基础库的。
    回复 有任何疑惑可以回复我~ 2019-05-13 21:53:19
  • 提问者 慕斯0259969 回复 风语 #3
    谢谢老师,我想我应该明白framework的作用了,并且以此为目的相关的职责范围也比之前理解清晰一些了。
    回复 有任何疑惑可以回复我~ 2019-05-13 21:57:47
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信