Android作为一个为当前手机系统市场带来新的活力的具有空前生命力的移动操作系统,其成功有其必然性,它定是集众高人的智慧,具有说也说不完的优点所在。
若想真正了解它,掌握它,肯定需要一个不断深入学习的过程,这里不防先从下面几个角度来理解Android系统的优点。
1、以分层的方式来看Android
Android体系结构图:
简单描述一下:
1. Linux Kernel:负责硬件的驱动程序、网络、电源、系统安全以及内存管理等功能。
2. Libraries和Android Runtime:
Libraries:即 C/C++函数库部分,大多数都是开放源代码的函数库。例如 WebKit,该函数库负责 Android 网页浏览器的运行。例如标准的C函数库Libc、OpenSSL、SQLite等。当然也包括支持游戏开发2D SGL和3D OpenGL | ES。在多媒体方面有MediaFramework框架来支持各种影音和图形文件的播放与显示。例如MPEG4、H.264、MP3、AAC、AMR、JPG和PNG等众多的多媒体文件格式。
Android Runtime :负责解释和执行生成的 Dalvik 格式的字节码。
3. Application Framework :( 应用软件架构),Java应用程序开发人员主要是使用该层封装好的API进行快速开发。
4. Applications : 该层是Java的应用程序层,Android内置的Google Maps、E-mail、即时通信工具、浏览器、MP3播放器等处于该层,Java开发人员开发的程序也处于该层,而且和内置的应用程序具有平等的位置,可以调用内置的应用程序,也可以替换内置的应用程序。
优点:上面四个层次中,下层给上层服务,上层支持下层支持,调用下层的服务,这种严格的分层机制,为 Android 系统带来很大的灵活性,稳定性和可扩展性。
也利于不同层的开发人员专心于该层次的开发任务。
二、以MVC模式来看Android结构
- View 负责将用户的请求通知 Controller,并根据model更新界面;
- Controller 完成业务逻辑后,Activity或Fragment接收用户请求后改变 Model状态;
- Model 将新的数据发送到 View 显示,用户得到反馈;
MVC的概念相信凡是做过软件的人都会接触到这个理念,即Model、View、Controller三层结构。
1. 模型(Model)对象:是应用程序的主体部分,所有的业务逻辑都应该写在该层。
2. 视图(View)对象:是应用程序中负责生成用户界面的部分。也是在整个MVC架构中用户唯一可以看到的一层,接收用户的输入,显示处理结果。注意这里只简单负责与用户交互相关的任务。
3. 控制器(Control)对象:是根据用户的输入,控制用户界面数据显示及更新Model对象状态的部分,控制器更重要的一种导航功能,想用用户出发的相关事件,交给M哦得了处理。
在 Android 里 MVC 模式体现在:
1. 模型层(Model):对数据库的操作、对网络等的操作都应该在Model里面处理,当然对业务计算等操作也是必须放在的该层的。
2. 视图层(View):一般采用XML文件进行界面的描述,使用的时候可以非常方便的引入,(当然,如何你对Android了解的比较的多了话,就一定可以想到在Android中也可以使用JavaScript+HTML等的方式作为View层,当然这里需要进行Java和JavaScript之间的通信,幸运的是,Android提供了它们之间非常方便的通信实现。)
3. 控制层(Controller):Android的控制层的任务主要是由众多的Acitvity的实现,这句话也就暗含了不要在Acitivity中写代码,要通过Activity交给Model业务逻辑层处理,这样做的另外一个原因是Android中的Acitivity的响应时间是5s,如果耗时的操作放在这里,程序就很容易被回收掉。