资源预览内容
第1页 / 共36页
第2页 / 共36页
第3页 / 共36页
第4页 / 共36页
第5页 / 共36页
第6页 / 共36页
第7页 / 共36页
第8页 / 共36页
第9页 / 共36页
第10页 / 共36页
亲,该文档总共36页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
Android平台开发简介 平台介绍及开发基本流程 2011 4月 什么是Android Android是Google在2007年11月5日推出的开源手机操作系统 目前Android在中国的发展是非常火的 为了节省研发费用 国内很多的手机厂商和移动运营商纷纷加入到了android阵营 其中包括中国移动 中国联通 中国电信 华为 联想等大企业 在中国不管是知名的手机生产厂商还是山寨手机厂商 都已经开始生产Android操作系统的手机 另外android应用的范围不仅仅在手机 还被应用在汽车 平板电脑 和智能上网设备上 听说国外已经有了安装有Android系统 并且能够上网的智能电饭煲 用户在千里之外就可以操作电饭煲进行煮饭 由于大家大多使用的手机都属傻瓜手机 也就是打打电话 发发短信 从今天开始 大家就应该改变这个观念了 你们需要把智能手机看作是一台电脑 它能完成电脑所能完成的一切 所以你可以像在电脑一样 在智能手机上安装软件 以满足你工作和生活的需要 如何安装AndroidSDK和Eclipse插件 所需开发环境 JDK5或以上版本 仅有JRE不够 Eclipse3 4或以上版本 推荐使用 伽利略 版 下载用于在Eclipse开发android应用的ADT插件在企业开发中 很多程序员使用EclipseIDE作为应用的开发环境 为了使得Android应用的创建 运行和调试更加方便快捷 Android的开发团队专门针对EclipseIDE定制了一个插件 AndroidDevelopmentTools ADT 下载地址 开发第一个Android应用 打开Eclipse 新建项目 点击File New Project 在项目列表中展开Android目录 选择AndroidProject 如下图 开发第一个Android应用 开发第一个Android应用 点击 finish 即可完成项目的创建 创建后的项目已经是一个可运行的Android应用 我们可以通过下面方式运行此应用 点击工具栏上机器人形状的虚拟设备管理器 简称 AVD 如下 开发第一个Android应用 尚未注册网络 错误信息的解决办法 打开Android模拟器时 出现无信号 拔打电话或发短信时 提示 尚未注册网络 错误信息的解决方案如下 场景一 你的电脑没有连接上互联网 同时也没有在局域网 解决办法 右键点击网上邻居 选择 属性 在网络连接窗口中右键点击 本地连接 选择 属性 设置TCP IP属性如下 IP地址 192 168 1 100子网掩码 255 255 255 0默认网关 192 168 1 100首选DNS服务器 192 168 1 100场景二 你的电脑没有连接上互联网 但在局域网 解决办法 右键点击网上邻居 选择 属性 在网络连接窗口中右键点击 本地连接 选择 属性 设置TCP IP属性如下 IP地址 设置成你所在局域网的IP 如 192 168 1 100子网掩码 设置成你所在局域网的掩码 如 255 255 255 0默认网关 设置成你所在局域网的网关 一般网关的IP格式为 1 如 192 168 1 1首选DNS服务器 设置成你所在局域网的路由器IP 一般路由器的IP格式为 1 如 192 168 1 1最后一种解决方案是 让你的电脑连接上互联网 开发第一个Android应用 在项目上右键点击runas Androidapplication 如下图 Android应用程序架构 src java原代码存放目录gen 自动生成目录gen目录中存放所有由Android开发工具自动生成的文件 目录中最重要的就是R java文件 这个文件由Android开发工具自动产生的 Android开发工具会自动根据你放入res目录的xml界面文件 图标与常量 同步更新修改R java文件 正因为R java文件是由开发工具自动生成的 所以我们应避免手工修改R java R java在应用中起到了字典的作用 它包含了界面 图标 常量等各种资源的id 通过R java 应用可以很方便地找到对应资源 另外编绎器也会检查R java列表中的资源是否被使用到 没有被使用到的资源不会编绎进软件中 这样可以减少应用在手机占用的空间 res 资源 Resource 目录在这个目录中我们可以存放应用使用到的各种资源 如xml界面文件 图片或数据 assets资源目录Android除了提供 res目录存放资源文件外 在 assets目录也可以存放资源文件 而且 assets目录下的资源文件不会在R java自动生成ID 所以读取 assets目录下的文件必须指定文件的路径 如 file android asset xxx 3gpAndroidManifest xml项目清单文件这个文件列出了应用程序所提供的功能 以后你开发好的各种组件需要在该文件中进行配置 如果应用使用到了系统内置的应用 如电话服务 互联网服务 短信服务 GPS服务等等 你还需在该文件中声明使用权限 default properties项目环境信息 一般是不需要修改此文件 Android中的显示单位 px pixels 像素一般HVGA代表320 x480像素 这个用的比较多 dip或dp deviceindependentpixels 设备独立像素这个和设备硬件有关 一般为了支持WVGA HVGA和QVGA推荐使用这个 不依赖像素 sp scaledpixels bestfortextsize 比例像素主要处理字体的大小 可以根据系统的字体自适应 除了上面三个显示单位 下面还有几个不太常用 in inches 英寸mm millimeters 毫米pt points 点 1 72英寸为了适应不同分辨率 不同的像素密度 推荐使用dip 文字使用sp Android开发平台是开放的平台 而位于四层框架顶端的应用开发 必然涉及到Android组件 本文将为大家详细介绍Android组件 组件 Component 在谈及所谓架构和重用的时候 是一个重要的事情 很多时候都会说基于组件的软件架构 指的是期望把程序做乐高似的 有一堆接口标准封装完整的组件放在哪里 想用的时候取上几个一搭配 整个程序就构建完成了 在开篇的时候就在说 Android是一个为组件化而搭建的平台 它引入所谓Mash Up的概念 这使得你在应用的最上层 想做的不组件化都是很困难的一件事 具体说来 Android有四大组件 Activity Service BroadcastReceiver ContentProvider Android四大组建 Activity是为用户操作而展示的可视化用户界面 比如说 一个activity可以展示一个菜单项列表供用户选择 或者显示一些包含说明的照片 一个短消息应用程序可以包括一个用于显示做为发送对象的联系人的列表的activity 一个给选定的联系人写短信的activity以及翻阅以前的短信和改变设置的activity 尽管它们一起组成了一个内聚的用户界面 但其中每个activity都与其它的保持独立 每个都是以Activity类为基类的子类实现 一个应用程序可以只有一个activity 或者 如刚才提到的短信应用程序那样 包含很多个 每个activity的作用 以及其数目 自然取决于应用程序及其设计 一般情况下 总有一个应用程序被标记为用户在应用程序启动的时候第一个看到的 从一个activity转向另一个的方式是靠当前的activity启动下一个 每个activity都被给予一个默认的窗口以进行绘制 一般情况下 这个窗口是满屏的 但它也可以是一个小的位于其它窗口之上的浮动窗口 一个activity也可以使用超过一个的窗口 比如 在activity运行过程中弹出的一个供用户反应的小对话框 或是当用户选择了屏幕上特定项目后显示的必要信息 窗口显示的可视内容是由一系列视图构成的 这些视图均继承自View基类 每个视图均控制着窗口中一块特定的矩形空间 父级视图包含并组织它子视图的布局 叶节点视图 位于视图层次最底端 在它们控制的矩形中进行绘制 并对用户对其直接操作做出响应 所以 视图是activity与用户进行交互的界面 比如说 视图可以显示一个小图片 并在用户指点它的时候产生动作 Android有很多既定的视图供用户直接使用 包括按钮 文本域 卷轴 菜单项 复选框等等 Activity活动 服务没有可视化的用户界面 而是在一段时间内在后台运行 比如说 一个服务可以在用户做其它事情的时候在后台播放背景音乐 从网络上获取一些数据或者计算一些东西并提供给需要这个运算结果的activity使用 每个服务都继承自Service基类 一个媒体播放器播放播放列表中的曲目是一个不错的例子 播放器应用程序可能有一个或多个activity来给用户选择歌曲并进行播放 然而 音乐播放这个任务本身不应该为任何activity所处理 因为用户期望在他们离开播放器应用程序而开始做别的事情时 音乐仍在继续播放 为达到这个目的 媒体播放器activity应该启用一个运行于后台的服务 而系统将在这个activity不再显示于屏幕之后 仍维持音乐播放服务的运行 你可以连接至 绑定 一个正在运行的服务 如果服务没有运行 则启动之 连接之后 你可以通过那个服务暴露出来的接口与服务进行通讯 对于音乐服务来说 这个接口可以允许用户暂停 回退 停止以及重新开始播放 如同activity和其它组件一样 服务运行于应用程序进程的主线程内 所以它不会对其它组件或用户界面有任何干扰 它们一般会派生一个新线程来进行一些耗时任务 比如音乐回放 Service服务和接收器 广播接收器是一个专注于接收广播通知信息 并做出对应处理的组件 很多广播是源自于系统代码的 比如 通知时区改变 电池电量低 拍摄了一张照片或者用户改变了语言选项 应用程序也可以进行广播 比如说 通知其它应用程序一些数据下载完成并处于可用状态 应用程序可以拥有任意数量的广播接收器以对所有它感兴趣的通知信息予以响应 所有的接收器均继承自BroadcastReceiver基类 广播接收器没有用户界面 然而 它们可以启动一个activity来响应它们收到的信息 或者用NotificationManager来通知用户 通知可以用很多种方式来吸引用户的注意力 闪动背灯 震动 播放声音等等 一般来说是在状态栏上放一个持久的图标 用户可以打开它并获取消息 BroadcastReceiver接收器 内容提供者将一些特定的应用程序数据供给其它应用程序使用 数据可以存储于文件系统 SQLite数据库或其它方式 内容提供者继承于ContentProvider基类 为其它应用程序取用和存储它管理的数据实现了一套标准方法 然而 应用程序并不直接调用这些方法 而是使用一个ContentResolver对象 调用它的方法作为替代 ContentResolver可以与任意内容提供者进行会话 与其合作来对所有相关交互通讯进行管理 参阅独立的内容提供者章节获得更多关于使用内容提供者的内容 每当出现一个需要被特定组件处理的请求时 Android会确保那个组件的应用程序进程处于运行状态 或在必要的时候启动它 并确保那个相应组件的实例的存在 必要时会创建那个实例 ContentProvider 当接收到ContentResolver发出的请求后 内容提供者被激活 而其它三种组件 activity 服务和广播接收器被一种叫做intent的异步消息所激活 intent是一个保存着消息内容的Intent对象 对于activity和服务来说 它指明了请求的操作名称以及作为操作对象的数据的URI和其它一些信息 比如说 它可以承载对一个activity的请求 让它为用户显示一张图片 或者让用户编辑一些文本 而对于广播接收器而言 Intent对象指明了声明的行为 比如 它可以对所有感兴趣的对象声明照相按钮被按下 对于每种组件来说 激活的方法是不同的 通过传递一个Int
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号