Android开发的基础知识
来源:互联网 发布:刷yy币软件 编辑:程序博客网 时间:2024/05/21 15:41
Android开发的基础知识
本文对Android中系统架构做详细的解释,为Android开发者发展的方向做一个引导。
一.基础概念
Android 是Google开发的基于Linux平台的、开源的、智能操作系统。
Android包括操作系统、中间件和应用程序,由于源代码开放,Android可以被移植到不同的硬件平台上。
二.Android系统架构
Android系统架构共分四大层,如图:
(一)Application应用程序层
Android提供了一组应该程序,包括桌面,浏 览器,通讯录,短信,日历, Email客户端,地图等,
这部分程序均使用Java语言编写.
(二)Application Framework(应用程序框架)层
无论Android提供的应用程序还是开发人员自己编写的应用程序.开发人员也可以完全访问核心应用程序所使用的API框架。该应用程序的架构设计简化了组件的重用;任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性限制)。同样,该应用程序重用机制也使用户可以方便的替换程序组件。
框架层能控制一系列的服务和系统, 其中包括;
1. 丰富而又可扩展的视图(Views),可以用来构建应用程序, 它包括列表(lists),网格(grids),文本框(text boxes),按钮(buttons), 甚至可嵌入的web浏览器。
2.内容提供器(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联系人数据库), 或者共享它们自己的数据。
3.资源管理器(Resource Manager)提供 非代码资源的访问,如本地字符串,图形,和布局文件( layout files )。
4.通知管理器 (Notification Manager) 使得应用程序可以在状态栏中显示自定义的提示信息。
5.活动管理器( Activity Manager) 用来管理应用程序生命周期并提供常用的导航回退功能。
(三)Libraries(库)层
1)Android提供了一组C/C++库,它们为平台的不同组件所使用.开发人员通过
Application Framework来使用这些库所提供的不同功能
2)Android Runtime(Android运行时)
Android运行时包括核心库和Dalvik虚拟机两部分.核心库中提供了Java 语言核心中包含部分功能,
虚拟机负责运行程序.Dalvik虚拟机专门针对 移动设备进行编写.不过效率更高,而且内存占用更少。
(四)Linux Kernel(Linux内核)层
Android平台使用Linux2.6版内核提供的核心系统服务.这些服务包括安 全性,内存管理,进程管理等。
上面就是Android开发中需要知道的构架知识,有很多人不知道这个架构知识有什么用,
其实这就是一个知识的全局掌握的意识了。我们要知道我们学习的知识是Android架构中的哪一部分知识,
学完之后还要看看我们还有什么知识没学到,是否有必要去写那个架构的另一些知识。
这对我们职业发展是很重要的。
对上面Android架构的一个通俗理解,Android的应用程序层相当于java的基础知识,
而Android的应用程序框架层相当于java的高编知识,而后面的第三层就涉及到其他的语言和一些高深的计算机思想,最后一层就是基本驱动的东西。
我们Android开发者主要精力还是在第一层(Application应用程序层)和第二层(Application Framework应用程序框架层)。
- Android开发的基础知识
- android邮件系统开发的基础知识
- Android 开发ABI的基础知识
- Android内核开发必备的基础知识
- Android 游戏开发必备的基础知识
- Android网络开发基础知识
- Android 开发基础知识 Timer
- Android 开发基础知识
- Android开发---JNI基础知识
- Android开发基础知识
- Android网络开发基础知识
- Android音频开发:基础知识
- Android 开发基础知识
- Android音频开发基础知识
- Android开发基础知识
- Android开发核心基础知识
- Android NDK开发基础知识
- Android蓝牙开发基础知识
- 1、WebService介绍
- Java设计模式--抽象工厂
- 新 第十七章 实现DVD迷你管理
- OpenAI 首个研究成果 生成式模型系列
- 栈空间和堆空间
- Android开发的基础知识
- 学习Socket类,实现简单聊天室
- Java网络编程
- 第五周项目2 -建立链栈算法库
- lda原理及python代码
- 第一次机房收费系统--结账
- SqlServer 判断字符是否汉字或数字方法
- 第一篇 Object-C快速入门
- 2017 小米笔试题 编程题 求树的高度 Java代码实现