一样的Android,不一样的学习
来源:互联网 发布:淘宝汽车装饰安装联盟 编辑:程序博客网 时间:2024/05/01 10:14
这几年,Android开始慢慢流行起来,很多项目也开始涉及这部分内容,所以学习Android也就变的很有意义了。
从上面图中,我们可以看出,这个Android的架构从上到下分为四层,分别是应用程序层、应用程序框架层、系统运行库层以及Linux内核层。
所谓Lib库,其实就是对应用程序框架层的支撑,它所实现的所有功能都是通过应用程序框架层对外提供,并将Linux内核和应用程序框架层进行连接。
Android的运行时类似于Java的运行时机制,可以分为API核心库和一个类似于JVM的虚拟机Dalvk。这部分可以参考JVM进行理解和学习,这里不再赘述。
通过上面的分析,我们可以清晰的认识到,Android的设计最核心的就是分层。但是如何分层这就是我们要关注的了,所以,学习Android不在于做出一个应用,而是通过学习Android分析它的架构,借鉴、完善、应用并创造价值。
学习最终要的不是学什么,而是想学什么,做人不在于你做什么,而是你想做什么。
学什么
学习Android应该学什么,很多人有不同的见解。一般程序员可能只是学习Android的UI控件和Android的API使用等。高级程序员可能会研究一下Android的FrameWork和Android的实现原理。相对于这两者,顶级的程序员会深入的了解Android的层次架构和设计思想并将这些架构和设计思想加以改造、优化之后应用在其他方面。你会怎么做呢?Android层次架构
既然要学习Android,那么就要从最有魅力架构和设计理念开始。首先咱们先来看一下Android的架构设计图,如下所示:从上面图中,我们可以看出,这个Android的架构从上到下分为四层,分别是应用程序层、应用程序框架层、系统运行库层以及Linux内核层。
应用程序层
应用程序层主要包括一些应用程序,这一层可以简单的理解为我们能够在移动设备上看到的的各种软件和应用。这些软件和应用都是可以被程序开发人员开发的其他应用程序替换和更新的,这一点相对于早期固化在系统内部的移动端软件更加的灵活和个性化。应用程序框架层
应用程序框架层主要面对的是Android的应用开发人员,它为Android开发人员开发应用提供了许多可重用的组件,同时,它也允许开发人员替换这些组建。通过这一层,开发人员可以开发丰富的应用,开发人员开发的应用完全可以使用其他应用已开发的功能。系统运行层
从上图所示,系统运行层可以分为两部分:一部分是Android提供的Lib库,另一部分是Android的运行时。所谓Lib库,其实就是对应用程序框架层的支撑,它所实现的所有功能都是通过应用程序框架层对外提供,并将Linux内核和应用程序框架层进行连接。
Android的运行时类似于Java的运行时机制,可以分为API核心库和一个类似于JVM的虚拟机Dalvk。这部分可以参考JVM进行理解和学习,这里不再赘述。
Linux内核层
Android从本质上来讲,就是在Linux的基础之上进行的一次封装。通过利用Linux Kernel作为硬件和软件之间的抽象层的,并其为上层提供的安全、内存管理、进程管理、网络堆栈、驱动模型等服务的特性,Andorid最终实现了它最基础的核心架构和设计。通过上面的分析,我们可以清晰的认识到,Android的设计最核心的就是分层。但是如何分层这就是我们要关注的了,所以,学习Android不在于做出一个应用,而是通过学习Android分析它的架构,借鉴、完善、应用并创造价值。
学习最终要的不是学什么,而是想学什么,做人不在于你做什么,而是你想做什么。
24 5
- 一样的Android,不一样的学习
- 一样的Android不一样的学习
- 一样的Android,不一样的学习
- 一样的问题不一样的解决之道
- 一样的月亮,不一样的心情
- 一样的寒假不一样的感受
- 一样的世界杯,不一样的心情
- 一样的世界,不一样的我
- 英雄会解读:不一样的回答,一样的CTO
- 英雄会解读:不一样的回答,一样的CTO
- 4.一样的精灵,不一样的API(1)
- 4.一样的精灵,不一样的API(2)
- 谷歌浏览器“一样”的代码,不一样的结果
- 一样的远程服务不一样的服务体验
- 让一样的大脑,下载不一样的视频
- 一样的月光,不一样的中秋 9/15日记
- 人的本性都一样,个性都不一样
- 父子进程变量的地址一样,但值不一样
- 求值(SDUT 1256)
- ISCC2014-reverse
- 位图文件(Bitmap)
- 统计每个字符出现的次数
- Android之Fragment(官网资料翻译)
- 一样的Android,不一样的学习
- 大型网站架构演变和知识体系
- 写给 Qt 初学者,编译不通过,且不报错
- 求数列前n项和实例
- 【Android源码编译】使用repo工具下载获取android源码
- thinkphp 中 使用PHPMailer发送邮件
- python中的字符串连接
- db2 目录结构
- OpenSees开发(一)windows 上编译opensees (使用vs2005)