目录:
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