Android应用程序开发——安卓应用开发介绍
这是网易公开课 密西西比河谷州立大学:Android应用程序开发 的笔记。
视频地址:http://v.163.com/special/opencourse/developingandroidapplications.html
这个课程有六节课。课程目标是在这六节课后让学习者对android平台有一个比较好的了解,兼作复习。
概述
android是一个为移动设备准备的软件栈,它包括一个Linux操作系统和一些中间件,还附带一些关键性的应用,比如联系人管理、地图应用、浏览器等等。
安卓由谷歌开发和维护,它是一个开源项目。
下面的这张图描述了安卓平台的结构。
安卓结构可分为4层,应用层:预装一些应用,比如联系人管理。开发者可以在这层开发自己的应用。第二层是android框架层,提供开发这一些应用接口,其中有一系列不同的子框架,如处理窗口,处理电话事件的框架等。
框架本身是在一系列库之上写出来的。也就是绿色这层,库内容由C和C++编写,这些库是自带的。有一些由谷歌实现,一些是开源集成项目。如SQLite和WebKit等。
安卓运行时则是基于Dalvik虚拟机。由谷歌实现。
所有这些都建于Linux内核之上。
你开发的应用和系统自带的应用都是基于应用框架,没有本质差别。也就是说谷歌安卓的API都是公开的。
Dalvik虚拟机介绍:
移动设备的计算和存储资源有限,于是谷歌开发了专门的虚拟机。
Dalvik是基于寄存器的虚拟机而不是基于堆栈机器。总体而言,它将提供更高效的指令流。
每条指令上所得到的语义内容将会更多。
一个for循环由Dalvik转为汇编语言后的代码行数要显著少于一般的Java虚拟机的数量。
实际的结构块和基本的安卓概念
活动(Activity):代表用户正在做某事,这通常呈现在同一屏幕上,但在屏幕上可以有多个视图。
视图:视图View是安卓的GUI基类。用来在区域内描绘矩形,以及对屏幕区域发生的事件做出响应。它是图形化及交互的基本抽象。
建立新活动则通过扩展Activity类实现。
从Activity中派生新类。
服务(service):service是没有用户界面的应用或应用组件,它在后台运行。使用时同Activity。比如播放器例子。
广播接收器(Broadcast receiver):Broadcast receiver 接收广播并做出反应。它也没有用户界面,但能调用有用户界面的活动。
内容提供器(Content Provider):content provider是用来管理应用程序数据的。它可以让一个应用的数据用于设备上的其他应用,也可用于该应用本身,即我们能使用内容提供器访问其数据。
数据一般存于SQLite数据库中。安卓还支持文件系统的概念。它拥有一些键值对所组成的首选项。
也就是说,本地数据存储有几种不同的方式。
如联系人应用的联系人数据库。
以上是安卓应用中的四大构建块。
每个安卓进程都以单独的Linux进程运行。
每个应用安装后都具有唯一用户ID。
从用户界面来看,安卓会管理所谓的“活动栈”。这些活动将形成活动栈,安卓系统会管理所有的细节问题。
下图是安卓活动的生命周期图:
在活动基类中存在钩子函数,在状态转换时,由底层框架调用,如onCreate() hook function。
当应用不在前台,但占用大量资源时,系统会终止进程。
当内存空间很低时,安卓系统会选择性地停止那些不在前台,但占用内存的应用。当用户再次回到该应用时,需要重新onCreate,所以在停止时需要存储应用状态。
程序如何从一个活动转移到另一个活动。在安卓中用intent来处理。
intent是一个活动传给另一个的异步信息。一般的intent包含有两段数据,首先是动作信息,然后是该动作所需数据的实际URL。在安卓中还分为显性意图和隐性意图。在显性意图中,活动中明确了另一个活动是什么,可以在意图中硬编码,明确想转到的活动是什么。
但更一般的方式是隐性意图。只说明要做的动作和所需数据。在编写活动时会编写意图过滤器(intent filter),声明哪个活动能够运行相应的意图,然后系统会将控制转给此活动。比如用浏览器浏览网页。
Android应用程序开发——安卓应用开发介绍相关推荐
- 桃词典 Peach Dictionary 简易英语词典app开发 安卓软件开发 Part 4
前文: 桃词典 Peach Dictionary 简易英语词典app开发 安卓软件开发 Part 3 导航: 桃词典 Peach Dictionary 简易英语词典app开发 安卓软件开发 The E ...
- 桃词典 Peach Dictionary 简易英语词典app开发 安卓软件开发 Part 7
前文: 桃词典 Peach Dictionary 简易英语词典app开发 安卓软件开发 Part 6 导航: 桃词典 Peach Dictionary 简易英语词典app开发 安卓软件开发 The E ...
- 桃词典 Peach Dictionary 简易英语词典app开发 安卓软件开发 Part 8
前文: 桃词典 Peach Dictionary 简易英语词典app开发 安卓软件开发 Part 7 导航: 桃词典 Peach Dictionary 简易英语词典app开发 安卓软件开发 ...
- 桃词典 Peach Dictionary 简易英语词典app开发 安卓软件开发 Part 1
前言 由于笔者操作不当,将项目搞崩了,所以打算重写一遍,记下开发过程,作为学习记录.此软件能实现最普通的单词查询功能,也有启动动画.登录注册之类的功能,但笔者目前能力有限,未能将其完善,这是初学阶段的 ...
- 桃词典 Peach Dictionary 简易英语词典app开发 安卓软件开发 Part 9
前文: 桃词典 Peach Dictionary 简易英语词典app开发 安卓软件开发 Part 8 导航: 桃词典 Peach Dictionary 简易英语词典app开发 安卓软件开发 The E ...
- 桃词典 Peach Dictionary 简易英语词典app开发 安卓软件开发 Part 3
前文: 桃词典 Peach Dictionary 简易英语词典app开发 安卓软件开发 Part 2 导航: 桃词典 Peach Dictionary 简易英语词典app开发 安卓软件开发 The E ...
- 桃词典 Peach Dictionary 简易英语词典app开发 安卓软件开发 Part 5
前文: 桃词典 Peach Dictionary 简易英语词典app开发 安卓软件开发 Part 4 导航: 桃词典 Peach Dictionary 简易英语词典app开发 安卓软件开发 The E ...
- 桃词典 Peach Dictionary 简易英语词典app开发 安卓软件开发 Part 6
前文: 桃词典 Peach Dictionary 简易英语词典app开发 安卓软件开发 Part 5 导航: 桃词典 Peach Dictionary 简易英语词典app开发 安卓软件开发 The E ...
- 桃词典 Peach Dictionary 简易英语词典app开发 安卓软件开发 Part 2
前文: 桃词典 Peach Dictionary 简易英语词典app开发 安卓软件开发 Part 1 导航: 桃词典 Peach Dictionary 简易英语词典app开发 安卓软件开发 The ...
- 桃词典 Peach Dictionary 简易英语词典app开发 安卓软件开发 The End 导航页及收尾工作
导航: 桃词典 Peach Dictionary 简易英语词典app开发 安卓软件开发 Part 1 桃词典 Peach Dictionary 简易英语词典app开发 安卓软件开发 Part 2 桃词 ...
最新文章
- spyder 断点调试python代码
- HTTP基础认证Basic Authentication
- tcp和udp的区别?
- LCS(最长公共子串)系列问题
- OpenCASCADE绘制测试线束:检查器命令之Inspector
- Zookeeper选举算法( FastLeader选主)
- 代码 | 一天一点代码坏味道(1)
- apache hadoop_使用Apache Hadoop计算PageRanks
- 重造车轮—基于JQ的商品展示放大镜
- 策略模式(headfirst设计模式学习笔记)
- Python3安装cx_Oracle连接oracle数据库实操总结
- MATLAB图形界面设计(上)
- Delphi插件创建、调试与使用应用程序扩展
- 如何给网站添加支付宝支付功能
- 循环赛日常表算法(N可为奇数和偶数)
- 戴尔vStart:加快虚拟化,并马上应用戴尔私有云
- spring-boot集成elastic-job 并实现http类型作业
- 基于方格网法的填挖方量计算(C++)
- Arcgis js featureLayer加载完成之后,对其加载的要素重新定义样式
- 如何倾听客户之声?你需要的不仅仅是调研