Android被人称为“PC时代的Windows”。PC时代Windows操作系统处于霸主地位,随着移动互联网时代(3G时代)已经来临,以Android和Iphone手机为代表的智能移动设备的发明敲响了PC时代的丧钟,Android用户在国内的市场占有绝对优势。我们当顺应趋势学习或开发一些对社会有价值的软件。
1.Android简介
Android,本意是指“机器人”。它是google推出的开源手机操作系统,它基于Linux平台,由操作系统、中间件、用户界面、应用软件组成,号称首个为移动终端打造的真正开放、完整的移动软件平台。它是由30多家科技公司、手机公司(如google、HTC(宏达电)、三星、摩托罗拉、LG、高通、T-Mobile等)组成的“开放手机联盟”共同开发研发的。
2.Android系统架构
Android的架构分4层:应用层、应用框架层、系统运行库层、Linux内核层。
1.应用层
是用Java语言写的运行在JVM上的程序。google捆绑了一些核心应用,如:Email客户端、SNS短消息、日历、地图、浏览器、联系人管理等程序。
2.应用框架层
是google发布核心应用时使用的API框架,开发人员可以重用该框架开发自己的应用,以简化架构设计,但必须遵守其框架的开发原则。举例框架组件如下
视图(View):丰富而可扩展。包括列表(List)、网格Grid、文本框Text Box、按钮Button、可嵌入的Web浏览器。
内容提供器(Content Providers):可以让一个应用访问另一个应用的数据(如联系人数据库),或共享自己的数据。
资源管理器(Resource Manager):提供非代码资源的访问,如本地字符串、图形、布局文件Layout File。
通知管理器(Notification Manager):应用可以在状态栏中显示自定义的提示信息。
活动管理器(Activity Manager):用来管理应用程序生命周期并提供常用的导航退回功能。
窗口管理器(Window Manager):管理所有的窗口程序。
包管理器(Package Manager):Android系统内的程序管理。
3.系统运行库层
为支持上层应用框架,Android系统提供的C/C++库以及其他Andriod组件库。
4.Linux内核层
Android的核心系统服务基于Linux2.6内核,如安全性、内存管理、进程管理、网络协议栈、驱动模型等。Linux内核层也作为硬件和软件之间的抽象层。
3.Android环境搭建
略
4.Android程序框架
Android程序目录结构
采用Eclipse开发的Android项目结构如下图
说明:
- src目录是包含所有java源文件;
- res目录包含项目中所有资源,有程序图标(drawable-名称开始的)、布局文件(layout目录中的xml文件)、常量(values目录中的strings.xml);
- gen目录中包含一个java类R.java,是IDE工具根据上述资源的布局文件、常量动态生成的类,可称之为资源索引类,在源码中可以引用该类;
- AndroidManifest.xml中包含了项目中使用的应用组件,如application、Permissions、Activity、Service、Receiver等。
Android应用构件
Android应用程序主要由4个模块构成:Activity、Intent、Content Provider、Service。
- Activity:“活动”,代表一个用户能看到的单独的屏幕,程序中为继承Activity基类的独立的类。主要用于显示视图控件组成的用户接口,对事件作出响应。
- Intent:“意图”。使用Intent类完成不同Activity之间的切换,一个Intent包含action(动作)、data(数据);使用IntentReceiver响应外部事件(如电话呼入、数据网络可用等),当用户感兴趣的事件发生时,系统可通过Intent广播给其他应用程序;使用Intent Filter,描述一个Activity能够操作哪些Intent。
- Service:“服务”,一般没有用户界面、在后台运行、具有长生命周期的程序。
- Content Provider:“内容提供器”,提供对存储在文件、SQLite数据库等容器的数据进行访问。
5.Android的用户界面UI
菜单Menus
用户的上下文菜单,按Android设备上的MENU键就会调出常见的应用程序菜单,这是Android提供视图层次的界面组件。使用时一般在Activity中定义onCreateOptionsMenu()、onCreateContextMenu()的回调方法,在方法中声明需要包含的菜单项目,就可以在界面中出现菜单界面。菜单会自行处理它们的事件,不必再为菜单项注册事件监听器,只要重写onOptionsItemSelected()、onContextItemSelected()方法,就会触发相应的菜单项事件处理。
部件Widgets
部件是为用户交互界面提供服务的视图对象。Android提供的一套完整部件实现,如按钮Button、文本TextView、日历DatePicker等。