




已阅读5页,还剩55页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
主讲内容 Android应用开发环境搭建 Android应用程序框架介绍 Android应用开发及调试 Android应用开发环境搭建 一相关下载 1 javaJDK下载 说明 AndroidSDK两种下载版本 一种是包含具体版本的SDK的 一种是只有升级工具 而不包含具体的SDK版本 后一种大概20多M 前一种70多M 建议使用这个 本例子就是使用这个这里面不包含具体版本 想要什么版本在Eclipse里面升级就行 二软件安装 1 安装jdk6u22安装完成即可 无需配置环境变量 2 解压eclipseeclipse无需安装 解压后 直接打开就行 3 解压androidsdk这个也无需安装 解压后供后面使用 4 最终有三个文件夹 如下图 三Eclipse配置1安装android开发插件 1 打开Eclipse 在菜单栏上选择help InstallNewSoftWare出现如下界面 如下图 点击Add按钮 出现如下界面输入网址 名称 Android 这里可以自定义 点击OK 将出现如下界面 点击Next按钮 出现如下界面 点击Next按钮 选择Iacceptthetermsofthelicenseagreements点击Next 进入安装插件界面 安装完成后 出现如下界面 点击Next按钮 出现如下界面 点击Next按钮 出现如下界面 点击Yes按钮 重启Eclipse 二 配置androidsdk 1 点击菜单window preferences 进入如下界面 选择你的androidSDK录 选错了就会报错 这个是升级工具 目前还没有一个版本 2 升级SDK版本 选择菜单window Androidsdkandavdmanager出现如下界面 选择updateall按钮 点击accept表示安装 点击reject表示不安装 我这里只选了SDK2 1和samplesforapi7 安装完成 点击Yes按钮 重启Eclipse 3 新建AVD androidvituraldevice 和上面一样 进入androidsdkandavdmanager 选中VituralDevices在点击New按钮点击New按钮后 进入如下界面 名称可以随便取 target选择你需要的SDK版本 SD卡大小自定义 点击CreateAVD 三 新建Android项目 1 选择菜单file new other进入如下界面 选择新建AndroidProject项目 点击Next按钮 进入如下界面 名称自定义 选择使用的SDK版本 名称自定义 Activity的名字 包名必须包含一个点以上 点击Next 创建完成出现如下界面 所有包及源文件 Java 所有的资源 如程序图标drawable 布局文件 常量等 包含了文件中所有使用的Activity service receiver 项目目录结构 HelloAndroid java Java程序 packagecom android helloAndroid importandroid app Activity importandroid os Bundle publicclassHelloAndroidextendsActivity Calledwhentheactivityisfirstcreated OverridepublicvoidonCreate BundlesavedInstanceState super onCreate savedInstanceState setContentView R layout main R Java 只读不能更改 定义该项目所有资源的索引文件 Java程序 AUTO GENERATEDFILE DONOTMODIFY packagecom android helloAndroid publicfinalclassR publicstaticfinalclassattr publicstaticfinalclassdrawable publicstaticfinalinticon 0 x7f020000 publicstaticfinalclasslayout publicstaticfinalintmain 0 x7f030000 publicstaticfinalclassstring publicstaticfinalintapp name 0 x7f040001 publicstaticfinalinthello 0 x7f040000 Xml文件 main xml 显示图像 增加ImageView Xml文件 strings xml HelloAndroid 2010 HelloAndroid 将要显示内容 HelloAndroid 2010 RUN RUN 模拟运行 显示内容 HelloAndroid 2010 模拟器屏幕 HVGA L 480 x320横屏HVGA P 320 x480竖屏 默认 QVGA L 320 x240横屏QVGA P 240 x320竖屏WVGA L 800 x480横屏 Android应用解析 ActivityIntentContentProviderservice Android应用程序有4个模块构造而成 Activity IntentContentProvider Service 当然 也不是每个Android应用程序都必须有这四个模块组成 可以根据开发者得需求进行组合 比如我们上面的例子HelloAndroid就只使用了Activity这一个模块 但是 任何一个应用程序都必须在AndroidManifest xml文件中声明使用到这些模块 Activity Activity是最基本的模块 一般称之为 活动 在应用程序中 一个Activity通常就是一个单独的屏幕 简单理解 Activity代表一个用户所能看到的屏幕 主要用于处理应用程序的整体性工作 例如监听系统事件 为用户显示指定的View 启动其他Activity等 所有应用的Activity都继承于android app Activity类 该类是Android提供的基层类 其他的Activity继承该父类后 通过父类的方法来实现各种功能 Intent Android使用了Intent这个特殊类 实现在屏幕与屏幕之间的切换 Intent类用于描述一个应用将会做什么事 在Intent的描述结构中 有两个最重要的部分 动作和动作对应的数据 典型的动作类型有 MAIN activity的门户 VIEW PICK EDIT等 而动作对应的数据则以URI的形式进行表示 例如 要查看一个人的联系方式 你需要创建一个动作类型为VIEW的intent 以及一个表示这个人的URI Uriuri Uri parse Intentit newIntent Intent ACTION VIEW uri startActivity it Intent简单示例 下面我们举例说明连个Activity之间的切换 运行效果 下面分析下代码的具体实现 button setOnClickListener newButton OnClickListener publicvoidonClick Viewv 新建一个Intent对象 Intentintent newIntent 指定intent要启动的类 intent setClass Activity01 this Activity02 class 启动一个新的Activity startActivity intent 关闭当前的Activity Activity01 this finish AndroidManifest xml ContentProvider Android应用能够将它们的数据保存到文件和SQLite数据库中 甚至是任何有效的设备中 当你想将你的应用数据与其他的应用共享时 ContentProvider就可以发挥作用了 因为ContentProvider类实现了一组标准的方法 能够让其他的应用保存或读取此内容提供器处理的各种数据类型 数据是应用的核心 在Android中 默认使用鼎鼎大名的SQLite作为系统数据库 但是在Android中 使用方法有点小小的不一样 在Android中 每一个应用都运行在各自的进程中 当一个应用需要访问其他应用的数据时 也就是数据需要在不同的虚拟机之间传递 这样的情况操作起来可能有些困难 正常情况下 你不能读取其他应用的db文件 ContentProvider正是用来解决在不同的应用包之间共享数据的工具 在Android中 contentprovider是一个特殊的存储数据的类型 它提供了一套标准的接口用来获取和操作数据 并且 Android自身也提供了现成的contentprovider Contacts Browser CallLog Settings MediaStore 应用可以通过唯一的ContentResolverinterface来使用具体的某个contentprovider 然后你就可以用ContentResolver提供的方法来使用你需要的contentprovider了 其中 contentResolver提供的方法包括query insert update 等 要使用这些方法 还会涉及URI 你可以将它理解成string形式的contentProvider的完全路径 下面我们通过一个例子来学习ContentProvider的使用 该例子主要实现通过ContentProvider获得电话本中的数据 然后显示到一个TextView中 在运行程序之前我们先看看电话本中存储的电话号码 然后再运行程序看看我们获得的数据 如下图所示 来看看我们通过ContentProvider获得的数据是否正确 publicclassActivity01extendsActivity publicvoidonCreate BundlesavedInstanceState TextViewtv newTextView this Stringstring super onCreate savedInstanceState 得到ContentResolver对象ContentResolvercr getContentResolver 取得电话本中开始一项的光标Cursorcursor cr query ContactsContract Contacts CONTENT URI null null null null 向下移动一下光标while cursor moveToNext 取得联系人名字intnameFieldColumnIndex cursor getColumnIndex PhoneLookup DISPLAY NAME Stringcontact cursor getString nameFieldColumnIndex 取得电话号码intnumberFieldColumnIndex cursor getColumnIndex PhoneLookup NUMBER Stringnumber cursor getString numberFieldColumnIndex string contact number n cursor close 设置TextView显示的内容tv setText string 显示到屏幕setContentView tv Service Service是android系统中的一种组件 它跟Activity的级别差不多 但是他不能自己运行 只能后台运行 并且可以和其他组件进行交互 Service的启动有两种方式 context startService context bindService service可以在和多场合的应用中使用 比如播放多媒体的时候用户启动了其他Activity 这个时候程序要在后台继续播放 比如检测SD卡上文件的变化 再或者在后台记录你地理信息位置的改变等等 总之服务嘛 总是藏在后头的 Android的生命周期 在Android中 多数情况下每个程序都是在各自独立的Linux进程中运行的 当一个程序或其某些部分被请求时 它的进程就 出生 了 当这个程序没有必要再运行下去且系统需要回收这个进程的内存用于其他程序时 这个进程就 死亡 了 可以看出 Android程序的生命周期是由系统控制而非程序自身直接控制 这和我们编写平时应用程序时的思维有一些不同 一个平时应用程序的进程也是在其他进程或用户请求时被创建 但是往往是在程序自身收到关闭请求后执行一个特定的动作 比如从main函数中return 而导致进程结束的 在前面几个例子中 我们发现所有继承自Activity的类都重写了onCreate方法 程序运行就会自动进入这个方法 其实Activity类中还有很多类似onCreate的方法 比如onStart onResume onPause onDestroy等 而这些方法都是系统自动调用 从名字上大概可以看出这是一些关于生命周期的方法 那么这些方法被调用的先后顺序是怎样的呢 Android的生命周期又如何 下面通过一个例子具体分析 当应用程序启动时 进入如下图所示的界面 此时点击 Activity02 进入activity02界如下图 我们在这些类似onCreate的方法中都加入了log函数 输出不同的信息 以便我们更好的跟踪运行的进程 当程序第一次启动时 打印的Log信息如图 我们看到程序的运行顺序为 Activity01onCreateActivity01onStartActivity01onResume 这里我们看到 当一个Activity启动时 不是 创建 之后 开始 就完了 而是要经过 创建 然后 开始 最后 重绘 当我们进入Activity02界面时 打印出的log信息如下图所示 我们看到程序的运行顺序为 Activity01onPauseActivity02onCreateActivity02onStartActivity02onResumeActivity01onStop Activity01onDestroy这里我们看到 当程序从Activity01界面进入Activity02界面时 并不是马上销毁Activity01 而是待Activity02启动之后将Act
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论