Android开发知识体系结构
- 格式:xlsx
- 大小:19.49 KB
- 文档页数:6
Android平台架构及特性Android平台架构及特性 Android系统的底层是建⽴在Linux系统之上,改平台由操作系统、中间件、⽤户界⾯和应⽤软件四层组成,它采⽤⼀种被称为软件叠层(Software Stack)的⽅式进⾏构建。
好处:这种软件叠层结构使得层与层互相分离,明确各层的分⼯,这种分⼯保证了层与层之间的低耦合,当下层内或者层下发⽣改变时,上层应⽤程序⽆需任何改变。
下图显⽰Android系统的体系结构:1.应⽤程序层(Application) Android平台不仅仅是操作系统,也包含了许多应⽤程序,诸如SMS短信客户端程序、电话拨号程序、图⽚浏览器、Web浏览器等应⽤程序。
这些应⽤程序都是⽤Java语⾔编写的,并且这些应⽤程序都是可以被开发⼈员开发的其他应⽤程序所替换,这点不同于其他⼿机操作系统固化在系统内部的系统软件,更加灵活和个性化。
我们编写的主要是这⼀层上的应⽤程序。
2.应⽤程序架构层(Application Framework) 应⽤程序框架层是我们从事Android开发的基础,很多核⼼应⽤程序也是通过这⼀层来实现其核⼼功能的,该层简化了组件的重⽤,开发⼈员可以直接使⽤其提供的组件来进⾏快速的应⽤程序开发,也可以通过继承⽽实现个性化的拓展。
Android应⽤程序框架提供了⼤量的API供开发者使⽤。
a) Activity Manager(活动管理器)管理各个应⽤程序⽣命周期以及通常的导航回退功能b) Window Manager(窗⼝管理器)管理所有的窗⼝程序c) Content Provider(内容提供器)使得不同应⽤程序之间存取或者分享数据d) View System(视图系统)构建应⽤程序的基本组件e) Notification Manager(通告管理器)使得应⽤程序可以在状态栏中显⽰⾃定义的提⽰信息f) Package Manager(包管理器)Android系统内的程序管理g)Telephony Manager(电话管理器)管理所有的移动设备功能h)Resource Manager(资源管理器)提供应⽤程序使⽤的各种⾮代码资源,如本地化字符串、图⽚、布局⽂件、颜⾊⽂件等i)Location Manager(位置管理器)提供位置服务j)XMPP Service(XMPP服务)提供Google Talk服务3.系统运⾏库层: 1)函数库(Libraries) 函数是应⽤程序框架的⽀撑,是连接应⽤程序框架层与Linux内核层的重要纽带。
Android应用与开发课程标准1. 简介本课程是针对Android应用的入门级别,并将涉及到Android开发的最新技术。
主要目的是让学员从零开始了解Android应用的实现,包括了基础的概念、工具和实践技巧。
2. 学习目标学完本课程,学员应该达到以下目标:•了解Android开发的基础知识和常用的应用架构•掌握Android Studio和其相关工具的使用•学会设计、开发和发布Android应用程序•熟悉Android的安全机制和最佳实践3. 课程安排Module 1: Android应用概述本模块将会介绍Android应用的概述和Android系统的体系结构。
学员将会了解到Android应用的工作原理和各种Android设备从硬件到软件的相互作用。
Module 2: Android开发环境本模块将会介绍Android Studio开发环境的基本用法。
学员将会学习如何配置Android Studio、创建新项目、运行和调试应用程序。
Module 3: Android应用设计和UI开发本模块将会介绍Android应用的UI设计和开发。
学员将会学习如何使用Android布局、控件以及其它UI组件、绘图和动画效果等。
Module 4: Android应用数据存储本模块将会介绍Android应用数据存储和访问技术。
学员将会了解如何使用SQLite、SharedPreferences和文件系统等数据存储方法,还将掌握如何在应用程序中使用网络访问等技术。
Module 5: Android应用的发布和营销本模块将会教授学员如何将Android应用程序上传到对应的应用商店。
学员将学习如何添加广告和识别应用程序的一般规则。
Module 6: Android应用的安全和最佳实践本模块将会介绍Android应用的安全和最佳实践。
学员将会了解如何保护自己应用程序的数据和隐私安全,并且熟悉排除应用程序开发中容易发生的错误。
《Android应用开发》课程标准一、课程的性质与目标《Android应用开发》是面向计算机相关专业的一门专业课,涉及Android 基础知识、常见界面布局与控件、数据存储、四大组件、事件处理、网络编程、图形图像处理、多媒体应用等。
通过本课程的学习,学生能够掌握Android基础知识,学会编写简单的应用程序与教材中第6、12、15章的阶段案例。
二、教学条件要求操作系统:Windows 7开发工具:Android Studio 3.2+模拟器、JDK8三、课程的主要内容及基本要求第1章Android基础入门第2章Android常见界面布局第3章Android常见界面控件第4章程序活动单元Activity第5章数据存储第6章阶段案例——记事本第7章使用内容提供者共享数据第8章广播机制第9章服务第10章Android事件处理第11章网络编程第12章阶段案例——智能聊天机器人第13章图形图像处理14章多媒体应用开发第第15章综合项目——网上订餐四、学时分配五、考核模式与成绩评定办法本课程建议教学中主要提取一些具代表性的生产性问题,采用项目教学、案例教学为主,教师在每个案例教学中先提纲挈领的阐明一些新技术手段和语法表达形式,之后学生分组,以 3 - 5 人为宜,每组注意实践操作能力强弱的搭配,完成后抽取具代表性的作品公开集中评价,所有学生共同参与,同步提高。
结合案例教学的特点,对学生的考核采用平时情况结合期末总评情况综合评价。
学生在每次项目完成后,每组学生在项目组内自评,教师给每组一个总评,将学生自评成绩和教师总评成绩按比例结合为一次项目的成绩。
多次项目成绩组成了学生此课程的平时实践操作部分的成绩。
另外学生在每部分学习后完成的其它任务(如课后作业),此又作为学生平时成绩的一部分。
在期末课程结束后,按实际情况可布置每个学生独立完成一个较综合的项目实践,以此作为期末考核成绩;考虑到部分学生非独立完成的作弊行为,亦可组织学生统一卷面考试,以此成绩作为期末考核成绩。
1、Android体系结构Android是基于Linux内核的软件平台和操作系统,采用了软件堆栈的架构,共分为4层:第一层是Linux内核,提供由操作系统内核管理的底层基础功能;第二层是中间件层,由函数库和Android运行时构成;第三层是应用程序框架层,提供了Android平台基本的管理功能和组件重用机制;第四层是应用程序层,提供了一系列核心应用程序。
2、Dalvik虚拟机基于寄存器的Java虚拟机,每个应用程序在一个独立的Dalvik 虚拟机上运行3、.apk(Android Package)文件,该文件实际上是个压缩包,可改为.zip解压缩4、Android两种开发环境:JDK + Eclipse + ADT + Android SDKJDK + Android Studio + Android SDK5、14:Min SDK Version最低SDK版本22:Target SDK Version目标SDK版本22:Compile SDK Version编译的SDK版本6、adb:Android Debug Bridge,连接PC与Android设备的桥梁adb connect 127.0.0.1:6555查看设备:adb devices安装软件:adb install <apk文件路径>卸载软件:命令1:adb uninstall <软件名>命令2:adb uninstall -k <软件名>登录设备shell:命令1:adb shell命令2:adb shell <command命令>从计算机上发送文件到目标机:adb push <本地路径> <远程路径>从目标机上下载文件到计算机:adb pull <远程路径> <本地路径>显示帮助信息:adb help7、Android项目目录:(代码与资源分开)src 源代码目录gen 目录(R.java文件是ADT自动生成,不能手动修改,R.java作用:src中的代码通过R.java访问res中的资源)res 资源目录(/res/layout/目录:界面布局文件,xml;/res/raw不参加编译的资源,不能生成对应文件)AndroidManifest.xml 清单文件(声明应用程序属性信息,声明组件,声明权限,唯一一个组件BroadcastReceiver不需在AndroidManifest中注册)8、四大组件:Activity,Service,BroadcastReceiver,ContentProvider,前3个组件的组件之间的通信由Intent实现,另一app需通过ContentResolver 来与ContentProvider通信。
Android平台软件架构Android系统架构由5部分组成,分别是:Linux Kernel、Android Runtime、Libraries、Application Framework、Applications。
第二部分将详细介绍这5个部分。
架构详解现在我们拿起手术刀来剖析各个部分[2]。
其实这部分SDK文档已经帮我们做得很好了,我们要做的就是拿来主义,然后再加上自己理解。
下面自底向上分析各层。
1、Linux KernelAndroid基于Linux 2.6提供核心系统服务,例如:安全、内存管理、进程管理、网络堆栈、驱动模型。
Linux Kernel也作为硬件和软件之间的抽象层,它隐藏具体硬件细节而为上层提供统一的服务。
如果你学过计算机网络知道OSI/RM,就会知道分层的好处就是使用下层提供的服务而为上层提供统一的服务,屏蔽本层及以下层的差异,当本层及以下层发生了变化不会影响到上层。
也就是说各层各尽其职,各层提供固定的SAP(Service Access Point),专业点可以说是高内聚、低耦合。
如果你只是做应用开发,就不需要深入了解Linux Kernel层。
2、Android RuntimeAndroid包含一个核心库的集合,提供大部分在Java编程语言核心类库中可用的功能。
每一个Android应用程序是Dalvik虚拟机中的实例,运行在他们自己的进程中。
Dalvik虚拟机设计成,在一个设备可以高效地运行多个虚拟机。
Dalvik虚拟机可执行文件格式是.dex,dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。
大多数虚拟机包括JVM都是基于栈的,而Dalvik虚拟机则是基于寄存器的。
两种架构各有优劣,一般而言,基于栈的机器需要更多指令,而基于寄存器的机器指令更大。
dx 是一套工具,可以将 Java .class 转换成 .dex 格式。
一个dex文件通常会有多个.class。
1.4 Android体系结构采用软件堆层的架构,共分为四层⏹Linux内核❑硬件和其他软件堆层之间的一个抽象隔离层❑提供安全机制、内存管理、进程管理、网络协议堆栈、和驱动程序等⏹中间件层由函数库和Android运行时构成❑函数库,主要提供一组基于C/C++的函数库❑SQLite,轻量级的关系数据库引擎❑OpenGL ES,基于3D图像加速❑Android运行时❑Dalvik虚拟机,实现基于Linux内核的线程管理和底层内存管理⏹应用程序框架❑提供Android平台基本的管理功能和组件重用机制❑Location Manager,管理与地图相关的服务功能⏹应用程序❑提供一系列的核心应用程序❑包括电子邮件客户端、浏览器、通讯录和日历等2.2.1 Android SDK目录结构(+)add-ons(+)google_apis-3(-)README.txt(+)docs(+)platforms(+)android-1.1(+)android-1.5(+)tools(+)usb_driver(+)amd64(+)x86(-)documentation.html(-)RELEASE_NOTES.html1.add-one 目录下的是Google提供地图开发的库函数,支持基于Google Map 的地图开发2.docs目录下的是Android SDK的帮助文档,通过根目录下的documentation.html 文件启动3.platforms目录中存在两个子目录android-1.1和android-1.5,分别用来保存1.1版本和1.5版本的Android SDK 的库函数、外观样式、程序示例和辅助工具等4.tools目录下的是通用的Android开发和调试工具b_driver目录下保了用于amd64和x86平台的USB驱动程序6.RELEASE_NOTES.html是Android SDK的发布说明2.2.3 开发工具1.Android模拟器Android SDK 的最重要的工具;支持加载SD卡映像文件,更改模拟网络状态,延迟和速度,模拟电话呼叫和接收短信等;不支持接听真实电话,USB连接,摄像头捕获,设备耳机,电池电量和AC电源检测,SD卡插拔检查和使用蓝牙设备;Android模拟器外观2.Android调试器连接Android设备和模拟器的工具;客户端/服务器程序,包含守护程序、服务器程序和客户端程序3.DDMSAndroid系统中内置的调试工具;监视Android系统中进程、堆栈信息,查看logcat 日志,实现端口转发服务和屏幕截图功能,模拟器电话呼叫和SMS短信,以及浏览Android模拟器文件系统等3.2 Android程序结构⏹在“Package Explore”中,ADT以工程名称HelloAndroid作为根目录,将所有字段生成的和非自动生成的文件都保存在这个根目录下⏹根目录包含四个子目录:src、assets、res和gen,一个库文件android.jar,以及两个工程文件Androidmanifest.xml和default.properties⏹src目录是源代码目录,所有允许用户修改的java文件和用户自己添加的java文件都保存在这个目录中⏹HelloAndroid工程建立初期,ADT根据用户在工程向导中的“CreateActivity”选项,自动建立HelloAndroid.java文件⏹HelloAndroid.java是Android工程向导根据Activity名称创建的java文件,这个文件完全可以手工修改。