《[互联网]Android》由会员分享,可在线阅读,更多相关《[互联网]Android(149页珍藏版)》请在金锄头文库上搜索。
1、Android,Android的发展和简介,Android并不是Google创造的,而是由Android公司所创造,创始人是Andy Rubin。后来该公司被Android收购。 Google于2007年11月5日发布了Android 1.0手机操作系统,这个版本没有得到广泛的支持。 2009年5月,Google发布了Android 1.5。这个版本提供了华丽的用户界面和蓝牙支持,才吸引了大量的开发者的目光,之后的Android版本更新很快,目前最稳定的版本是2.3,最新版本为4.0。,Android的发展和简介,市场上常见的手机操作系统: Symbian BlackBerry iPhone
2、Palm Windows Mobile Android 目前Android的市场占有率还不高,但Android的竞争力已经显现,而且发展势头强劲,有可能成为最主流的手机操作系统。 就国内环境来说,已有大量手机厂商开始手产Android操作系统的手机,因为Android平台是完全开放的,而且不需要支付任何费用,无论是知名品牌还是山寨手机厂商,Android都是一个不错的选择。 目前已经开始发布使用Android系统的厂商有:摩托罗拉、三星、HTC、索尼爱立信、LG、华为、联想、中兴等。,Android平台架构及特性,Android系统的底层建立在Linux系统之上,由操作系统、中间件、用户界面和
3、应用软件四层组成。Android采用一种被称为软件叠层(Software Stack)的方式进行构建。这种软件叠层的结构使层与层之间相互分离、明确各层的分工,保证了各层之间的低耦合。,Android平台架构及特性,Home,Contacts,Phone,Browser,Package Manager,Telephony Manager,Resource Manager,Location Manager,Notification Manager,Activity Manager,Window Manager,Content Providers,View System,Surface Manage
4、r,OpenGL|ES,SGL,Media FrameWork,FreeType,SSL,SQLite,WebKit,libc,Core Libraries,Dalvik Virtual Machine,Display Driver,Camera Driver,Flash Memory Driver,Binder(IPC) Driver,Keypad Driver,WiFi Driver,Audio Drivers,Power Management,应用程序层,应用程序框架,函数库,Andriod 运行时,Linux内核,Content Providers,View System,Androi
5、d平台架构及特性,应用程序层:Android系统将会包含系列的核心应用程序,这些程序包括电子邮件客户端、SMS程序、日历、地图、浏览器、联系人等,这些应用程序都是用Java编写,我们主要学习的也是如何编写Android系统上的应用程序。 应用程序框架:当我们开发Android应用程序时,就是面向应用程序框架进行的,所以无论系统应用程序和普通开发者的应用程序,都可以访问Android提供的API框架。,Android平台架构及特性,函数库:Android包含一套被不同组件所使用的C/C+库的集合。从上图可知,Android开发者一般不可以直接调用这套C/C+库的函数,但可以通过应用程序框架来调用
6、。 系统C库:一个从BSD系统派生出来的标准C系统库(libc)。并且专门为嵌入式Linux设备调整过。 媒体库:基于PacketVideo的OpenCORE,这个媒体库支持播放和录制许多流行的音频和视频格式,以及查看静态图片。主要包括MPEG4、H.264、MP3、AAC、AMR、JPG、PNG等格式。,Android平台架构及特性,函数库: Surface Manager:管理对显示子系统的访问不,并可以对多个应用程序的2D和3D图层机提供无缝整合。 LibWebCore:一个全新的Web浏览器引擎,该引擎为Android浏览器提供支持,也为WebView提供支持,WebView完全可以嵌
7、入开发者自己的应用程序中。 3D libraries:基于OpenGL ES 1.0 API实习的3D系统,这套3D库既可使用硬件3D加速,也可使用高度优化的软件3D加速。 FreeType:位图和向量字体显示。 SQLite:供所有应用程序使用的、功能强大的轻量级关系型数据库。,Android平台架构及特性,Android运行时:由两部分组成: Android核心库集:提供了Java语言核心库所能使用的绝大部分功能。 Dalvik虚拟机:负责运行 Android应用程序。 每个Android应用程序都运行在单独的一个Dalvik虚拟机内,因此Dalvik专门针对同时高效地运行多个虚拟机进行了
8、优化,因此Android系统可以方便地实现对应用程序进行隔离。,由于Android应用程序的编程语言是Java,因此会有人把Dalvik虚拟机和JVM搞混,实际上Dalvik并未遵守JVM规范,两者也互不兼容。JVM运行字节码。而Dalvik运行的是其专有的dex(Dalvik Executable)文件。Dalvik无法直接运行字节码,它需要专有的DX工具将字节码编译成.dex文件来执行。,Android平台架构及特性,Android运行时: Dalvik虚拟机非常适合在移动终端上使用,相对于PC或服务器而言Dalvik虚拟机不需要很快的CPU速度和大量的内存空间,它主要有两个特点: 运行专
9、有的.dex文件:.dex文件减少了.class文件中的冗余信息,而且会把所有的.class整合到一个文件中,从而提高运行效率。DX工具还会对.dex文件进行一些性能的优化。 基于寄存器实现:JVM和大多数虚拟机是基于栈(Stack)的,而Dalvik虚拟机则是基于寄存器的。基于寄存器的虚拟机会有更好的性能,但硬件通用性会略差。,Android平台架构及特性,Linux内核:Android系统建立在Linux 2.6之上,Linux内核提供了安全性、内存管理、进程管理、网络协议栈和驱动模型等核心系统服务。同时,Linux内核也是硬件层和软件层之间的抽象层。,搭建Android开发环境,Andr
10、oid的官方网站:http:/。 登录http:/ SDK的完整开发包,需要以在线安装的方式安装Android SDK,所以先解压以上软件包。 包内目录结构如下: Add-ons:存放额外的附件软件。 Platforms:存放不同版本的Android。 Tools:存放Android开发、调试工具。 SDK Manager.exe:运行此工具对SDK进行在线安装和管理。 AVD Manager.exe:运行此工具对虚拟设备进行管理。,搭建Android开发环境,下载ADT插件压缩包(不解压) 开打Eclipse 点击菜单Help-Install New Software 点击Add 点击Arc
11、hive 选择下载的ADT包点击“OK” 在Developer Tools打勾后点击“Next” 选择“同意协议”,点击“Finish”,搭建Android开发环境,安装成功后,工具栏上多出两个图标:,搭建Android开发环境,点击第二个按钮“Opens the Android Virtual Device Manager”。 点击“New”新建一个虚拟手机。 选择已建好的虚拟手机,点击“Start”。,搭建Android开发环境,搭建Android开发环境,DDMS调试环境。 点击右上角的OpenPerspective,选择DDMS 进行Android开发时,程序中的System.out.
12、println方法不会把信息输出到控制台,而是DDMS下的LogCat中。,HelloWorld安卓版,创建一个Android项目。 在XML布局文件中定义应用程序的用户界面。(rs目录下的main.xml文件) 编写代码。,程序说明,Main.xml是一个用户界面的设计文档,这样作的好处是降低了UI和业务代码之前的耦合度,让XML专门处理界面,Java代码专门处理业务逻辑。我们可以把它当成一个Android XML版的HTML页面进行设计、开发。只不过普通页面使用的是HTML标记,而main.xml使用的是Android标记。,程序说明,Main.xml详解: TextView:代表一个文本
13、框。 Button:代表一个按钮。 Android:id:该属性指定控件的唯一标识,在Java代码中通过findViewById(“id”);来获取指定的界面控件对象。 Android:layout_width/height:指定该界面控件的大小(宽度、高度),如果该属性值为fill_parent,则该控件填充父容器的大小,若为wrap_content则控件大小为刚好装下它的内容。,程序说明,Lx01Activity.java:这个程序很简单,它只作了三件事: 使用main.xml文件定义的界面布局作为用户界面。 获得ID为R.id.ok的按钮控件。 为获得的按钮绑定监听器,并在onclick
14、事件中改变ID为R.id.show的文本框控件的内容。 那么R是哪来的?,程序说明,上图中,src、res、AndroidManifest.xml文件是Android项目所必须的,其它目录和文件是可选的。 res:存放Android项目的各种资源文件。 layout:存放界面布局文件。 values:存放各种XML格式的资源文件,如字符串资源strings.xml、颜色资源colors.xml、尺寸资源dimens.xml drawable-ldpi/drawable-mdpi/drawable-hdpi分别存放小、中、大三种图片。 src:普通的Java源代码目录。 AndroidManif
15、est.xml:是Android项目的系统清单文件,用于控制Android应用的名称、图标、访问权限等整体属性。 bin:自动编译之后会生成,存放字节码、资源打包文件(.ap_)、Dalvik虚拟机的可执行文件(.dex)等。 gen:自动编译之后会生成,存入Android自动生成的R.java(清单文件)。,R.java,R.java是由aapt工具根据应用中的资源文件来自动生成的,因此我们可以把R.java理解成Android应用的资源字典。 aapt生成R.java的规则主要有两条: 每类资源对应R类的一个内部类。 每个具体的资源项对应内部类的一个public static final
16、int类型Field。,res目录,该目录里存放了Android应用所用到的所有资源,包括图片、字符串、颜色、尺寸等。 Android按照约定,将不同的资源放在不同的文件夹内,这样可以方便地让AAPT工具来扫描这些资源,并为它们生成资源清单类:R.java。如:字符串资源文件:,使用资源,在Java代码中使用资源:通过AAPT工具生成的R.java,在Java代码中可以用R.string.app_name的方式引用到“Androidtest”这个字符串。 在XML文件中使用资源:按照规定的格式:/ 例如:string/app_name 当需要给某些组件分配标识符且无需使用专门的资源进行定义时,使用如下格式: +id/例如:android:id=“+id/show“,AndroidManifest.xml,