没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
安卓系统编程开发报告-Android编程报告 Android是基于Linux内核的操作系统,是Google公司在2007年11月5日公布的手机操作系统,早期由Google开发,后由开放手持设备联盟(Open Handset Alliance)开发。它采用了软件堆层(software stack,又名以软件叠层)的架构,主要分为三部分。底层Linux内核只提供基本功能;其他的应用软件则由各公司自行开发,部分程序以Java编写。 2010年末数据显示,仅正式推出两年的操作系统Android已经超越称霸十年的诺基亚(Nokia)Symbian OS系统,采用Android系统主要手机厂商包括宏达电子(HTC)、三星(SAMSUNG)、摩托罗拉(MOTOROLA)、LG、Sony Ericsson等,使之跃居全球最受欢迎的智能手机平台,Android系统不但应用于智能手机,也在平板电脑市场急速扩张。
资源推荐
资源详情
资源评论
Android 编程报告
一 安卓系统简介
Android 是基于 Linux 内核的操作系统,是 Google 公司在 2007 年 11
月 5 日公布的手机操作系统,早期由 Google 开发,后由开放手持设备联盟
(Open Handset Alliance)开发。它采用了软件堆层(software stack,又
名以软件叠层)的架构,主要分为三部分。底层 Linux 内核只提供基本功
能;其他的应用软件则由各公司自行开发,部分程序以 Java 编写。
2010 年末数据显示,仅正式推出两年的操作系统 Android 已经超越称
霸十年的诺基亚(Nokia)Symbian OS 系统,采用 Android 系统主要手机厂
商包括宏达电子(HTC)、三星(SAMSUNG)、摩托罗拉(MOTOROLA)、LG、
Sony Ericsson 等,使之跃居全球最受欢迎的智能手机平台,Android 系统
不但应用于智能手机,也在平板电脑市场急速扩张。
二 初识安卓应用程序
Android 以 Java 为编程语言,使接口到功能,都有层出不穷的变化,
其中 Activity 等同于 J2ME 的 MIDlet,一个 Activity 类(class)负责创
建视窗(window),一个活动中的 Activity 就是在 foreground(前景)模
式,背景运行的程序叫做 Service。两者之间通过由 ServiceConnection
和 AIDL 连结,达到复数程序同时运行的效果。如果运行中的 Activity 全
部画面被其他 Activity 取代时,该 Activity 便被停止(stopped),甚
至被系统清除(kill)。
View 等同于 J2ME 的 Displayable,程序人员可以通过 View 类与“XML
layout”档将 UI 放置在视窗上,Android 1.5 的版本可以利用 View 打造出
所谓的 Widgets,其实 Widget 只是 View 的一种,所以可以使用 xml 来设计
layout,HTC 的 Android Hero 手机即含有大量的 widget。至于 ViewGroup
是各种 layout 的基础抽象类(abstract class),ViewGroup 之内还可以
有 ViewGroup。View 的构造函数不需要再 Activity 中调用,但是
Displayable 的是必须的,在 Activity 中,要通过 findViewById()来从 XML
中取得 View,Android 的 View 类的显示很大程度上是从 XML 中读取的。View
与事件(event)息息相关,两者之间通过 Listener 结合在一起,每一个 View
都可以注册一个 event listener,例如:当 View 要处理用户触碰(touch)
的事件时,就要向 Android 框架注册 View.OnClickListener。另外还有
Image 等同于 J2ME 的 BitMap。
三 Andoroid 中介软件
操作系统与 应用程序的沟 通桥梁,并用 分为两层: 函 数层(Library)
和虚拟机(Virtual Machine)。 Bionic 是 Android 改良 libc 的版本。
Android 同时包含了 Webkit,所谓的 Webkit 就是 Apple Safari 浏览器背后
的引擎。Surface flinger 是就 2D 或 3D 的内容显示到屏幕上。Android 使
用工具链(Toolchain)为 Google 自制的 Bionic Libc。
Android 采用 OpenCORE 作为基础多媒体框架。OpenCORE 可分 7 大块:
PVPlayer、PVAuthor、Codec、PacketVideo Multimedia Framework(PVMF)、
Operating System Compatibility Library(OSCL)、Common、OpenMAX。
Android 使用 skia 为核心图形引擎,搭配 OpenGL/ES。skia 与 Linux
Cairo 功能相当,但相较于 Linux Cairo, skia 功能还只是阳春型的。2005
年 Skia 公司被 Google 收购,2007 年初,Skia GL 源码被公开,目前 Skia
也是 Google Chrome 的图形引擎。
Android 的多媒体数据库采用 SQLite 数据库系统。数据库又分为共用
数据库及私用数据库。用户可通过 ContentResolver 类(Column)取得共
用数据库。
Android 的中间层多以 Java 实现,并且采用特殊的 Dalvik 虚拟机
(Dalvik Virtual Machine)。Dalvik 虚拟机是一种“暂存器型态”
(Register Based)的 Java 虚拟机,变量皆存放于暂存器中,虚拟机的指
令相对减少。
Dalvik 虚拟机可以有多个实例(instance), 每个 Android 应用程序
都用一个自属的 Dalvik 虚拟机来运行, 让系统在运行程序时可达到优化。
Dalvik 虚拟机并非运行 Java 字节码(Bytecode),而是运行一种称为.dex
格式的文件。
四 硬件抽像层 (Hardware Abstraction Layer)
Android 的 HAL(硬件抽像层)是能以封闭源码形式提供硬件驱动模块。
HAL 的目的是为了把 Android framework 与 Linux kernel 隔开,让
Android 不至过度依赖 Linux kernel,以达成 kernel independent 的概
念,也让 Android framework 的开发能在不考量驱动程序实现的前提下进
行发展。
HAL stub 是一种代理人(proxy)的概念,stub 是以 *.so 档的形式
存在。Stub 向 HAL“提供”操作函数(operations),并由 Android runtime
向 HAL 取得 stub 的 operations,再 callback 这些操作函数。HAL 里包含
了许多的 stub(代理人)。Runtime 只要说明“类型”,即 module ID,就
可以取得操作函数。
五 Android 编程语言
Android 是运行于 Linux kernel 之上,但并不是 GNU/Linux。因为在
一般 GNU/Linux 里支持的功能,Android 大都没有支持,包括 Cairo、
X11、Alsa、FFmpeg、GTK、Pango 及 Glibc 等都被移除掉了。Android 又以
bionic 取代 Glibc、以 Skia 取代 Cairo、再以 opencore 取代 FFmpeg 等等。
Android 为了达到商业应用,必须移除被 GNU GPL 授权证所约束的部份,例
如 Android 将驱动程序移到 userspace,使得 Linux driver 与 Linux
kernel 彻底 分开 。bionic/libc/kernel/ 并 非标 准的 kernel header files。
Android 的 kernel header 是利用工具由 Linux kernel header 所产生的,
这样做是为了保留常数、数据结构与宏。
目前 Android 的 Linux kernel 控制包括安全(Security),存储器管
理(Memory Management),程序管理(Process Management),网络堆栈
(Network Stack),驱动程序模型(Driver Model)等。下载 Android 源
码之前,先要安装其构建工具 Repo 来初始化源码。Repo 是 Android 用来
辅助 Git 工作的一个工具。
六 安卓开发环境简介以及配置安卓的开发环境
a.下载必备的 IDE 软件
(1)Java JDK 下载:
进入该网页: http://java.sun.com/javase/downloads/index.jsp (或者直接点击下载)如下图:
选择 Download JDK 只下载 JDK,无需下载 jre.
(2)Eclipse 下载
进入该网页: http://www.eclipse.org/downloads/ (或者直接点击下载:BT 下载 HTTP 下载)如下图:
我们选择第一个(即 eclipse IDE for java EE Developers)
(3)下载 Android SDK
说明: Android SDK 两种下载版本,一种是包含具体版本的 SDK 的,一种是只有升级工具,而不包含具
体的 SDK 版本,后一种大概 20 多 M,前一种 70 多 M。
完全版下载 (android sdk 2.1 r01) 升级版下载 (建议使用这个,本例子就是使用这个这里面不包含具
体版本,想要什么版本在 Eclipse 里面升级就行)
b.软件安装
(1)安装 jdk 6u19 安装完成即可,无需配置环境变量
(2)解压 eclipse,eclipse 无需安装,解压后,直接打开就行
(3)解压 android sdk 这个也无需安装,解压后供后面使用
(4)最终有三个文件夹,如下图:
剩余16页未读,继续阅读
资源评论
Matlab神经网络深度学习
- 粉丝: 1w+
- 资源: 109
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 【黑马python:函数进阶】81-84
- STM32F407单片机无源蜂鸣器播放音乐
- 价值2w多直播带商城源码带详细部署教程
- simulink单相方波、三相方波、单相双极性SPWM和单相单极性SPWM逆变电路仿真模型.zip
- PandaX是Go语言开源的企业级物联网平台低代码开发基座,支持设备管控,规则链,云组态,可视化大屏,报表设计器,表单设计器等功
- 气动学基于matlab六自由度火箭姿态控制仿真【含Matlab源码 8827期】.zip
- 基于JavaWeb+SQL Server+jsp实现的图书管理系统【源码+数据库】
- 高分毕业设计基于XGBoost的O2O优惠券使用预测分析系统设计与实现源码+详细文档说明
- python模拟飞机选座的完整代码
- 玩客云底包 首选底包.img 底包ws1508-uboot-burn.img
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功