小松的技术博客

六和敬

若今生迷局深陷,射影含沙。便许你来世袖手天下,一幕繁华。 你可愿转身落座,掌间朱砂,共我温酒煮茶。

Android之入门小记

Android有Google缔造并且开源,苹果iphone开启了移动时代的大门,但却仅有少数贵族能够通行,而Android则使得更多的人可以跨过这扇大门。

其开源使得任何一个人都能够去探索系统运行背后种种原理,即给了每个人探索生命奥妙的机会,但事实上我们没有那么伟大,只有少数人去探索了Android生命的真谛,而大多数人还停留在编写应用程序的位置,因为去探索真谛首先需要能力,其次需要勇气(前路漫漫)。

一、Android系统架构

安卓系统架构

从上图可知,Android可分为四层,从下到上一次为:

  • Linux内核层:包含linux内核和一些驱动模块。

  • Libraries层:这一层提供了动态库(共享库)、Android运行时库、Dalvik虚拟机等,从编程角度来说,这一层大部分都是用C或C++写的,也可看为Native层。

  • Framework层:这一层大多数使用Java语言写的,是Android平台上Java世界的基石。

  • Application层:与用户直接交互的就是这些应用程序了,都是Java开发。

Android系统牛逼的地方就是搭建了一个受广大Java开发者热捧的Java世界,而它真实的运转却依赖于Google老大极力隐藏的Native世界,其交互主要有JNI(Java Native Interface)层进行负责。

二、Android四大基本组件

Activity:

在一个应用程序中,Activity就是一个单独的屏幕,相当于网页重构中一个单独的HTML页面,它可以显示页面,也可以响应用户的事件。

Activity之间靠Intent进行交互。

每一个Activity都有自己的生命周期。

Service :

一个Service 是一段长生命周期的,没有用户界面的程序,可以用来开发如监控类程序,是在背后默默支持应用的核心组件。

BroadcastReceive:

Android采用广播的形式发放消息,而我们打造的应用可以使用它对外部事件进行过滤的功能只对感兴趣的外部事件进行接收并做出响应。广播接收器没有用户界面。然而,它们可以启动一个activity或serice 来响应它们收到的信息,或者用NotificationManager 来通知用户。通知可以用很多种方式来吸引用户的注意力──闪动背灯、震动、播放声音等。一般来说是在状态栏上放一个持久的图标,用户可以打开它并获取消息。

Content Provider:

一个应用内部的交互还好说话但是要夸应用进行交互,就没有那么方便了,而google也专门正对这一点打造了Content Provider这个组件使一个应用程序的指定数据集提供给其他应用程序,对应也就有Content Resolver来接受数据

←支付宝← →微信 →
comments powered by Disqus