本文简单介绍一下Android系统, Android是基于Linux内核的开源的应用于移动平台一款操作系统。

它包含以下一些特色的功能:针对移动设备优化的Dalvik虚拟机, 基于开源浏览器引擎WebKit的集成浏览器,优化的2D图形库和基于OpenGL ES3D图形库,用来存放结构化数据的SQLite,支持各种格式的多媒体,对蓝牙,WiFi,GPS的支持,当然最重要的还是强大的系统框架和API来方便我们重用它的组件,以及非常丰富的开发环境的支持,包括设备模拟器,Eclipse插件支持,内存性能剖析工具等。

下面来看一下Android的系统架构图:

这里可以看到Android需要Linux内核提供核心的功能,如驱动管理,内存管理,进程管理等。Android系统提供了供各种组件使用的C/C++类库。

Google针对移动设备内存小和处理器慢的特点,实现了一个非规范的Java虚拟机Dalvik。默认情况下,每个应用程序会在单独一个虚拟机的一个进程里运行,多个虚拟机可以并行运行。不像传统JVM运行class文件,Dalvik运行.dex格式的文件,它通常比同样class文件打成的.jar包要小,因为它进行了一些优化,比如同样的String只保存一个拷贝的String Interning方式。

接下来简单介绍一下Android系统包含的几大组件:

1) Activities: Android系统的用户界面都是基于Activity创建的,一个应用程序可以包括一个或者多个Activity, 但都是继承于android.app.Activity这个基类。每个Activity包括一个默认窗口用来填充一系列的View,用户通这些View来与Activity交互,Android系统提供了很多View的控件,如按钮,文本框,滚动条等。

2) Content providers: 它是对Android系统的数据访问的一种封装, 提供一系列标准的存取数据方法,不管数据是存在文件系统,还是SQLite数据库,各个应用程序都可以通过Content provider访问数据。如果想在各个应用程序之间共享数据也只有通过Content provider方式来实现。Android的编程模型也是鼓励我们创建自己的数据的同时,也可以让其它应用程序访问。比如在发送消息的应用程序用必然会调用到联系人的数据。

3) Services: 类似于windosw平台上的服务。不同于ActivityContent providers的短生命周期,Services可以一直在后台运行,而且可以独立于任一Activity,比如播放背景音乐,定时检查软件是否需要更新等。

4) Intents: Android中的系统消息。我们知道很多系统中各应用程序都是通过发送消息来进行交互的, Android正是通过Intents来通知应用程序的各种事件,比如电池电量不足,检测到存储卡等。

更多相关文章

  1. “罗永浩抖音首秀”销售数据的可视化大屏是怎么做出来的呢?
  2. Nginx系列教程(三)| 一文带你读懂Nginx的负载均衡
  3. Nginx系列教程(六)| 手把手教你搭建 LNMP 架构并部署天空网络电影
  4. 不吹不黑!GitHub 上帮助人们学习编码的 12 个资源,错过血亏...
  5. 关于 Android(安卓)进程保活,你所需要知道的一切
  6. 开发手机刷机工具箱的过程
  7. Android最新面试题汇总
  8. 深入Android【八】 ―― Activity间数据传输
  9. Activity intent intent filter 广播接收器的区别

随机推荐

  1. 阿里技术精华干货整理
  2. android_5 修改一个textview中的字符串的
  3. 关于 android 的JNI的java 调用 C和 C 调
  4. 自定义按比例显示的ImageView
  5. android design library提供的TabLayout
  6. FileProvider 调用系统相机拍照 出现on a
  7. Android(安卓)kernel和标准Linux Kernel
  8. Android(安卓)4.4+ 实现半透明状态栏(Tran
  9. sendBroadcast和sendStickyBroadcast的区
  10. Android实现网络多线程断点续传下载