1.0 Android基础--Android定义


前言

Android是由Google公司和开放手机联盟领导并开发的一种基于Linux的自由且开放源代码的操作系统,该平台由操作系统中间件用户界面应用软件组成,主要使用于移动设备。(来源:搜狗百科)

一、系统框架

Android的系统架构和其他操作系统一样,采用了分层架构。从架构图看,Android分为个层,从高层到低层分别是应用程序层应用程序框架层系统运行库层Linux内核层

1.应用程序框架

开发人员可以完全访问核心应用程序所使用的API框架。隐藏在每个应用后面的是一系列的服务和系统:

  • 丰富且可扩展的视图(Views)
    作用:构建应用程序。包括:列表(Lists)、网格(Grids)、文本框(Textboxes)、按钮(Buttons),甚至可以嵌入web浏览器。
  • 内容提供器(Content Providers)
    作用:使得应用程序可以访问另一个应用程序的数据(如联系人数据库),或者共享数据
  • 资源管理器(Resource Manager)
    作用:提供非代码资源的访问,如本地字符串、图形和布局文件(Layout files)。
  • 通知管理器(Notification Manager)
    作用:使得应用程序可以在状态栏中显示自定义的提示信息
  • 活动管理器(Activity Manager)
    作用:用来管理应用程序生命周期并提供常用的导航回退功能。

2.系统运行库

Android包含一些**C/C++**库,这些库能被Android系统中不同的组件使用。它们通过Android应用程序框架为开发者提供服务。核心库如下:系统C库、媒体库、Surface Manager、LibWebCore。

二、应用组件

Android开发大组件分别是:

  • 活动(Activity):用于表现功能
  • 服务(Service):后台运行服务,不提供界面呈现
  • 广播接收器(Broadcast Receiver):用于接听广播
  • 内容提供商(Content Provider):支持在多个应用中存储和读取数据,相当于数据库。

1.活动【Activity】

Android中,Activity是所有程序的根本,所有程序的流程都运行在Activity之中。
在程序当中,Activity一般代表手机屏幕的一屏。如果把手机比作一个浏览器,Activity就相当于一个网页,在其中可以添加一些Button、Checkbox等控件。
一般一个Android应用是由多个Activity组成的。这多个Activity之间可以进行相互跳转。相比于网页跳转,细微区别在于Activity之间的跳转可能有返回值
举例:从Activity A跳转到Activity B,那么当Activity B 运行结束的时候,有可能会给Activity A一个返回值。

原理:当打开一个新屏幕时,之前一个屏幕会被置为暂停状态,并且压入历史堆栈中。用户可以通过回退操作返回到以前打开过的屏幕。可以选择性移除不必要保留的屏幕,因为Android会把每个应用的开始到当前的每个屏幕保存到堆栈中。

2.服务【Service】

Service的级别和Activity差不多,但是他不能自己运行,只能后台运行,并且可以与其他组件进行交互。

  • Service是没有界面长生命周期的代码。Service是一种程序,它可以运行很长时间,但是它却没有用户界面
    举例:打开一个音乐播放器的程序,这个时候想要上网,打开Android浏览器,这时虽然已经进入了浏览器的程序,但是歌曲播放并没有停止,而是在后台继续一首接着一首的播放,这个播放就是由播放音乐的Service进行控制。当然这个Service也可以停止:①播放列表里面所有歌曲都结束②用户按下了暂停音乐播放的快捷键
  • Service可以在和多场合应用中使用。
    举例:①播放多媒体的时候用户启动了其他Activity时,程序要在后台继续播放。②检测SD卡上文件的变化③在后台记录地理信息位置的改变。
    服务总是在后台!!!
  • 开启Service的两种方式
    (1)Context.startService():Service会经历onCreate()–>onStart()–>onDestroy()
    tip1:Service如果运行起来,则可以省略onCreate,只调用onStart()【可以多次调用
    tip2:StopService的时候直接onDestroy,如果是调用者自己直接退出而没有调用方法的话,Service会一直在后台运行。
    (2)Context.bindService():Service会经历onCreate()–>onBind(),onBind将返回给客户端一个IBind接口实例,IBind允许客户端回调服务的方法,Context退出,Service就会调用onUnbind–>onDestroyed相应退出,所谓“绑定共存亡”。

3.广播接收器【Broadcast】

在Android中,Broadcast是一种广泛运用在应用程序之间传输信息的机制。而BroadcastReceiver是对发送出来的Broadcast进行过滤接受,并响应的一类组件。

  • 可以使用BroadcastReceiver来让应用对一个外部的事件做出响应。
    举例:①当电话呼入这个外部事件到来的时候,②当下载一个程序成功完成的时候,可以利用BroadcastReceiver进行处理。
  • BroadcastReceiver不能生成UI,也就是说对于用户来说是不透明的,用户不可见。Broadcast通过NotificationManager来通知用户事件的发生。
  • BroadcastReceiver既可以在AndroidMainfest.xml中注册,也可以在运行时的代码中使用**Context.registerReceiver()**进行注册。只要注册,事件到来时,即使程序没有启动,系统也在需要时候启动程序。
  • 各种应用还可以通过使用**Context.sendBroadcast()**将他们自己的Intent Broadcasts广播给其他应用程序。

4.内容提供【 Content Provider】

Content Provider是Android提供的第三方应用数据的访问方案
在Android中,对数据的保护是很严密的,除了放在SD卡中的数据,一个应用所持有的数据库、文件等内容,都是不允许其他直接访问的。
应用想对外提供的数据,可以通过派生Content Provider类,封装成一枚Content Provider,每个Content Provider都用一个URI作为独立表示,例如:content://com.xxxx。和REST类似,URI有两种类型,一种是带id的,另一种是列表的。

三、平台优势

  • 开放性 拥有更多的开发者,对于消费者来说,最大的受益是丰富的软件资源。
  • 丰富的硬件 各式各样的产品,不会影响数据同步,甚至软件兼容。
  • 方便开发 提供了一个十分宽泛、自由的环境,不受限制。
  • Google应用 无缝对接Google优秀服务,例如地图、邮件、搜索等。

总结

以上就是今天要讲的内容,本文主要介绍了Android的系统框架和应用组件,以及如今的平台优势。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Doctor.Sunny

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值