Android学习笔记(一)——初识Android的系统

目录:

1. Android系统结构

2. Android的"四大天王"

3. 必需面对的问题

<1>Android系统架构:

                       

上面那张图显示了Android系统的整体结构。从下到上来分成了四层:

第一层Linux Kernel(Linux内核层):

  Android的底层其实就是Linux!这一层主要是与系统打交道的,负责管理各个硬件的协调工作。

第二层Libraries和Android Runtime(各种库与Android运行时):

  Android的大部分App是用Java开发的,Google自己提供了一个Java虚拟机的实现——Dalvik VM,我们写的大部分App就是在这个虚拟机中运行的。这一层主要是C语言的标准库,是对应用框架层提供支持的层。

第三层应用框架层(Application FrameWork):

  应用开发者经常会和这一层打交道,它提供了应用程序的基础,我们要做的就是利用这些API做出我们自己的应用。

第四层应用层(Application):

  Android之所以那么成功的的一大原因就是其拥有大量的应用。这些应用包括Google提供的基础的应用,比如电话、短信这些。剩下的就是来自第三方的。

<2>Android中的四大天王:

Activity:

在Android平台上,负责显示,与用户进行交到的组件就是Activity。

Activity可以说这是一个App的“门面”,一个App就是由负责不同功能的Activity组成的。

Service

Service是一个“默默无闻”的后台工作者,它没有界面,但它却可以在后台长期运行。比如我们在后台播放音乐就是通过它实现的。

Boardcast Receiver:

想象一下,当收到一条信息时,你的App怎么知道呢?

在Android通过广播来实现的。当系统的某些状态发生改变的时候,系统就会发出相应的广播(当然,我们自己也可以发送广播),我们只要注册相应的广播接收器来处理就行。

Content Provider:

Android的基于Linux的,所以有着其大部分的的特性,文件管理就是一个体现。

在Android中,应用程序的数据(不是mp3、pdf之类的文件)是独立的,也就是说我们是不能直接访问其他App的私有数据的。

Content Provider提供了一套接口,使用我们可以将数据“暴露”给其他App。比如通过Content Provider, 我们可以访问短信的内容,而不需知道它是如何存储的。

<3>必需面对的问题:

安卓在这几年中取得了令人惊叹的发展,但这背后我们开发者要面对的一个巨大的问题就是平台分化。

手机的硬件千差万别、分辨率千奇百怪、系统版本分化严重。接下来一点一点来说:

1. 硬件竞赛:

想想笔者的上一部手机——诺基亚5530。400多Mhz的老架构 cpu、128M的内存(实际可用大概有60多M)、640*360的屏幕。好了,来看看前些天魅族的MX2:1.6Ghz的四核cpu、2G的内存、1280*800的屏幕。在感叹硬件发展的同时,做为开发者的我们最苦逼的就是要做出一个能够适应这么多硬件的App,就屏幕分辨率一项来说:

320*240

这个基本不用考虑了~~~

480*320

比较低端,但有很大的占有量

800*480

V880等,2011年主流

854*480

里程碑1、小米1等等

960*540

今年MTK平台很多使用这个

960*640

魅族m9、MX

1280*720

应该是接下来的主流了

1280*768

Nexus 4

1280*800

Note 1、MX 2

注意,这些还只是手机!如果加上平板就更加恶心了,就做好适应屏幕就是一个不小的挑战~~~

2. 系统版本:

谷歌的更新相当勤快,可是并不是所有设备都可以升级的呀~~~,很多机器来停留在2.2、2.3,谷歌都出到4.2了~~~

好在兼容性上做的还不错,大部分应用可以完美运行在高版本的设备中,可是许多新版本才有的特性就用不了了。

2012.11.29 by yjiyjige

原文地址:https://www.cnblogs.com/yjiyjige/p/2795175.html