Android复习纲要.docx
- 文档编号:882439
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:30
- 大小:802.34KB
Android复习纲要.docx
《Android复习纲要.docx》由会员分享,可在线阅读,更多相关《Android复习纲要.docx(30页珍藏版)》请在冰点文库上搜索。
Android复习纲要
第一章Android入门基础
1、教学要求
Ø了解通信技术,包括1G、2G、3G、4G技术。
Ø掌握开发环境的搭建,学会AndroidStudio搭建开发环境。
Ø掌握Android程序的开发,并能够手动开发HelloWorld程序。
2、通信技术
Ø第一代通信技术(1G):
是指最初的模拟信号、仅限语音的蜂窝电话标准。
类似于简单的无线电台,通话锁定在固定频率上,不安全。
Ø第二代通信技术(2G):
是指第2代移动通信技术,代表为GSM,以数字语音传输技术为核心。
具有接收数据的功能,信号和通话质量好,技术实现简单等特点。
Ø第三代通信技术(3G):
是指将无线通信与国际互联网等多媒体通信结合的新一代移动通信系统。
声音和数据的传输速度有了较大的提升。
Ø第四代通信技术(4G):
又称IMT-Advanced技术,它包括了TD-LTE和FDD-LTE。
速度非常快,可传输高质量视频和图像。
IMT--InternationalMobileTelecommunicationsAdvanced(高级国际移动通信)
3、什么是Android操作系统
Android操作系统最初是由安迪·罗宾(AndyRubin)开发出的,2005年被Google收购,并于2007年11月5日正式向外界展示了这款系统。
Android是一款符合环保概念的移动操作系统,轻薄短小,功能强大。
是第一个真正为手机打造的开放性系统。
2008年9月发布Android第1个版本Android1.1。
Android系统一经推出,版本升级非常快,几乎每隔半年就有一个新的版本发布。
4、Android操作系统的体系结构
6、Android的虚拟机
Dalvik是Google公司自己设计用于Android平台的虚拟机,它可以简单的完成进程隔离和线程管理,并且可以提高内存的使用效率。
Java虚拟机与Android虚拟机的区别
Java虚拟机是基于栈的架构,在连续内存空间上,读取和存入不方便。
Dalvik虚拟机是基于寄存器的架构,缓存在CPU上,存取速度要快的多。
它可以简单的完成进程隔离和线程管理,并且可以提高内存的使用效率。
说明:
Android的Dalvik虚拟机默认给每一个应用程序分配16MB的内存,如果Android加载的资源超过这个内存,会抛出OutofMemoryError异常。
6、Android的开发平台
(1)Androidstudio
(2)DDMS全称DalvikDebugMonitorService,它是Android开发环境中Dalvik虚拟机调试监控服务。
DDMS作为IDE、emultor、真机之间的桥梁,将捕捉到终端的ID通过ADB建立调试桥,从而实现发送指令到测试终端的目的。
(3)Android工程的目录结构
(4)Android程序打包过程
7、Android的程序结构
第二章AndroidUI开发
1、教学要求
Ø掌握相对布局、线性布局、帧布局的使用。
Ø了解表格布局、网格布局、绝对布局的使用。
Ø学会使用样式和主题,创建不同风格的布局。
Ø学会使用单元测试Junit测试程序。
Ø学会使用LogCat快速定位日志信息。
2、UI概述
Ø在Android应用中,UI(UserInterface)界面是人与手机之间数据传递、交互信息的重要媒介和对话接口。
Android程序开发最重要的一个环节就是界面处理,界面的美观度直接影响用户的第一印象,因此,开发一个整齐、美观的界面是至关重要的。
ØAndroid应用的界面是由View和ViewGroup对象构建而成的。
View类是Android系统平台上用户界面表示的基本单元,View的一些子类被统称为Widgets(工具),它们提供了诸如文本输入框和按钮之类的UI对象的完整实现。
ØViewGroup是View的一个扩展,它可以容纳多个View,通过ViewGroup类可以创建有联系的子View组成的复合控件。
3、Android界面的布局
Ø在Android应用程序中,界面是通过布局文件设定的。
Ø布局文件采用XML格式,每个应用程序默认包含一个主界面布局文件,该文件位于项目的“res/layout”目录中。
Ø通过android:
layout_width和android:
layout_height属性来指定Layout和空间的宽和高。
✧match_parent:
表示强制扩展视图以显示全部内容,从而填充布局单元尽可能多的空间。
✧wrap_content:
表示强制性地扩展视图以显示全部内容,以wrap_content为例,设置该属性将完整显示其内部文本。
相当于AutoSize,控件会随着内容增大或缩小。
✧orientation
✧gravity
✧layout_gravity
✧padding
Øapp的默认布局文件会在MainActivity中的OnCreate()方法中,通过代码setContentView()将Activity加载到View对象中。
当运行程序时,才能在界面上看到编写好的布局。
ØsetContentView()的参数为R.layout.布局资源名称。
Ø布局文件的添加,主要在Layout文件夹上点右键,以此选择New->AndroidXMLFile,在弹出的窗口中选择相应的布局,并填写文件名称即可。
4、Android中的布局的种类
LinearLayout
线性布局有两种方式指定控件位置,一种是水平方向,一种是竖直方向。
设置线性布局为水平或垂直显示需要设置的属性。
RelativeLayout
像素单位(px,pt,dp,sp)
TableLayout
表格布局就是让控件以表格的形式来排列组件的,只要将组件或信息放在单元格中,控件就可以整齐的排列。
在TableLayout中,行数由TableRow对象控制的,即布局中有多少TableRow对象,就有多少行。
GridLayout
网格布局是Android4.0新增的布局,它实现了控件的交错显示,能够避免因布局嵌套对设备性能的影响,更利于自由布局的开发。
网格布局用一组无限细的直线将绘图区域分成行、列和单元,并指定控件的显示区域和控件在该区域的显示方式。
FrameLayout
帧布局为每个加入其中的控件创建一个空白区域(称为一帧,每个控件占据一帧)。
采用帧布局设计界面时,只能在屏幕左上角显示一个控件,如果添加多个控件,这些控件会按照顺序在屏幕的左上角重叠显示,且会透明显示之前控件的文本。
AbsoluteLayout
绝对布局需要通过指定x、y坐标来控制每一个控件的位置,放入该布局的组件需要通过android:
layout_x和android:
layout_y两个属性指定其准确的坐标值,并显示在屏幕上。
5、样式与主题
Android系统中,包含了很多定义好的样式和主题,这些样式和主题用于定义布局显示在界面上的风格。
Ø样式:
用于定义界面元素显示风格,包含一个或多个View控件属性集合。
样式只能作用于单个View,使用样式可以指定多个控件的相同属性,减少代码书写量。
Ø主题:
也是包含一个或多个View控件属性集合。
它可以影响多个View,是全局性的。
主题通过在AndroidManifest.xml中的结点
Ø注意:
如果一个应用使用了主题,同时单个view也使用了样式,在属性冲突时,样式优先级高。
Ø尽管Android系统提供了很多样式和主题,但有时这些效果并不能满足实际需求,此时还可以自定义样式或者主题。
6、国际化
国际化是指软件开发时,应该具备支持多种语言和地区的功能,为不同国家和地区的用户,提供符合来访者阅读习惯的页面或数据。
由于国际化Internationalization这个单词的首字母“I”和尾字母“N”之间有18个字符,因此国际化被简称为I18N。
为了提供不同语言版本,开发者只需要在res目录下新建对应的values文件夹。
values文件夹的命名规则。
7、单元测试
ØJUnit是一个测试框架,它是AndroidSDK1.5加入的自动化测试功能。
在完成某个功能后对该功能进行单独测试,而不需要把程序安装到手机或模拟器中进行测试,这样会大大提高程序开发的准确性。
ØJUnit单元测试既可以嵌入到项目中,也可以作为一个单独的项目,针对某个项目进行测试。
具体步骤如下:
1)配置JUnit环境
2)创建测试类
3)运行测试
Ø配置Junit环境,在进行Junit测试时,首先需要在AndroidManifest.xml的结点
8、程序调试
LogCat用于输出Android程序中的日志信息。
它支持五种输出方式,级别由低到高分别是:
Verbose(V):
显示全部信息,黑色,可通过Log.v()等方法进行信息输出。
Debug(D):
显示调试信息,蓝色
Info(I):
显示一般信息,绿色
Warning(W):
显示警告信息,橙色
Error(E):
显示错误信息,红色
Assert(A):
Android4.0新增加的日志级别
9、Toast的使用
ØToast会显示一个小消息告诉用户一些必要信息,该消息在短时间内自动消失,不会干扰用户操作。
ØToast组件有两个方法makeText()和show(),其中makeText()方法用于设置需要显示的字符串,show()方法显示消息框。
ØToasttoast=Toast.makeText(Context,Text,Time);toast.show();简写形式如下:
Toast.makeText(context,"这是弹出消息!
",0).show();
第三章Activity
1、教学要求
Ø掌握Activity的生命周期。
Ø掌握Activity的4种启动模式。
Ø掌握隐式意图和显式意图的使用。
Ø学会使用Intent传递数据。
Ø学会Activity之间数据传递与回传
2、Activity相关定义
ØActivity是Android应用程序的四大组件之一,它负责管理Android应用程序的用户界面。
一个应用程序一般会包含若干个Activity,每一个Activity组件负责一个用户界面的展现。
ØActivity是通过调用setContentView()方法来显示指定组件的。
该方法既可以接收View对象为参数,也可以接收布局文件对应的资源id为参数。
ØActivity就像一个界面管理员,用户在界面上的操作是通过Activity来管理的,支持多种操作事件,如:
onKeyDown(intkeyCode,KeyEventevent)、onKeyUp(intkeyCode,KeyEventevent)、onTouchEvent(MotionEventevent)等。
3、Activity的创建
在Android应用中,可以创建一个或多个Activity,创建步骤如下所示:
1)定义一个类继承自android.app.Activity或者其子类;
2)在res/layout目录中创建一个xml文件,用于创建Activity的布局;
3)在AndroidManifest.xml文件中注册Activity;
4)重写Activity的onCreate()方法,并在该方法中使用setContentView()加载指定的布局文件;
4、Activity的生命周期
生命周期就是一个对象从创建到销毁的过程,每一个对象都有生命周期。
同样,Activity也具有相应的生命周期,Activity的生命周期中分为三种状态:
Ø运行状态:
当Activity在屏幕的最前端时,它是可见的、有焦点的。
Ø暂停状态:
Activity对用户来说仍然是可见的,但它不再拥有焦点。
Ø停止状态:
当Activity完全不可见时,它就处于停止状态,但仍然保留着当前状态和成员信息。
然而这些对用户来说都是不可见的。
Activity从一种状态转变到另一种状态时会触发一些事件,执行一些回调方法来通知状态的变化。
ØvoidonCreate(BundlesaveInstanceState):
创建时执行。
ØvoidonStart():
可见时执行
ØvoidonRestart():
回到前台,再次可见时执行
ØvoidonResume():
获取焦点时执行
ØvoidonPause():
失去焦点时执行
ØvoidonStop():
用户不可见,Activity进入后台时执行
ØvoidonDestroy():
被销毁时执行
记住下图给出的Activity生命周期过程中的一些回调函数执行的状态和过程。
Ø当Activity从启动到关闭时,会依次执行onCreate()->onStart()->onResume()->onPause()->onStop()->onDestroy()方法。
Ø当Activity执行到onPause()方法失去焦点时,重新调用回到前台会执行onResume()方法,如果此时进程被杀死,则Activity会重新执行onCreate()事件。
Ø当执行到onStop()方法Activity不可见时,再次回到前台会执行onStart()方法,如果此时进程被杀死,Activity会重新执行onCreate()事件。
5、View点击事件的监听
Android程序中,设置View的点击事件监听共有四种,分别:
1)在布局文件中为控件设置onClick属性指定点击方法;
2)创建一个内部类实现OnClickListener接口并重写onClick()方法,之后需要为控件设置setOnClickListener(Listenerlistener);
3)主类中实现OnclickListener接口,然后重写onClick();
4)创建匿名内部类,即在为控件设置监听时直接创建一个OnClickListener实例,并为该实例指定名称。
6、Activity的启动模式
Android采用任务栈的方式来管理Activity实例。
当启动一个应用时,操作系统就会为其创建一个任务栈。
先启动的Activity被压入栈底,后启动的Activity放在栈顶,通过启动模式可以控制Activity在任务栈的加载情况。
ØActivity的启动模式有四种,分别是standard、singleTop、singleTask和singleInstance。
Ø在AndroidManifest.xml中,可以通过
launchMode属性设置启动模式。
7、Activity之间数据传递的方式
Intent是Android程序中各个组件进行交互的一种重要方式,它不仅可以指定当前组件要执行的动作,还可以在不同组件之间进行数据传递。
Intent启动Activity的方法有:
startActivity(Intentintent)
startActivityForResult(Intentintent,intcode)
显式意图
即在通过Intent启动Activity时,需明确指定激活组件的名称。
如果需要在本应用中启动其他的Activity时,可以使用显式意图来启动Activity。
Intentintent=newIntent(this,Activity02.class);
startActivity(intent);
显式意图还可以根据目标组件的包名、全路径名来指定开启组件
intent.setClassName("cn.itcast.xx","cn.itcast.xx.xxxx");
startActivity(intent);
隐式意图
没有明确指定组件名的Intent称为隐式意图。
系统会根据隐式意图中设置的动作(action)、类别(category)、数据(Uri和数据类型)找到最合适的组件。
使用隐式意图开启Activity的示例代码如下所示:
Intentintent=newIntent();
//设置动作和清单文件一样
intent.setAction("cn.itscast.xxx");
startActivity(intent);
数据的传递
Intent不仅可以用来开启Activity,也可以在Activity之间传递数据。
在数据传递时,可以使用putExtra()方法将数据存储在Intent中。
Intentintent=newIntent(this,Activity02.class);
intent.putExtra("extra_data",data);
startActivity(intent);
数据取出
Stringdata=intent.getStringExtra("extra_data");
Bundle数据传递,putExtra()不仅可以传递基本类型数据,还可以传递Bundle对象。
Intentintent=getIntent();
Bundlebundle=intent.getExtras();
StringstuName=bundle.getString("name");
数据的回传
Andorid提供了一个startActivityForResult()方法,来实现回传数据。
startActivityForResult()方法接收两个参数,第一个参数是Intent,第二个参数用于判断数据的来源。
注意:
startActivityForResult方法启动多个Activity,每一个Activity返回的数据都会回调到onActivityResult()方法。
因此首先就是要检查requestCode,来确定数据的来源。
然后再通过resultCode来判断结果执行是否成功。
最后打开data,获取其中内容并进行输出。
ProgressBar常用的几个方法:
setMax(),setProgress(),getProgress()。
打开系统照相机清单文件的配置
第四章数据存储
1、教学要求
Ø了解5种数据存储方式的特点。
●文件存储(以I/O流的方式存入手机内存、SD卡)
●SharedPrefernces存储,常用于存储简单的参数设置,本质上是XML,通过Map
●SQLite数据库
●ContentProvider,Android四大组件之一,以数据库形式存入手机内存,可以共享自己的数据给其他应用使用,提供统一的数据方式方式,更规范。
●网络存储,把文件存储在服务器,而不是本地。
Ø学会使用文件存储,SharedPrefrences存储数据。
Ø掌握XML文件的序列化及解析。
2、文件存储
文件存储是Android中最基本的一种数据存储方式,它与Java中的文件存储类似,都是通过I/O流的形式把数据原封不动的存储到文档中。
Android中的文件存储分为内部存储和外部存储。
内部存储:
使用的是Context提供的open()和open()方法,通过这两个方法可以分别获取对象和对象,具体如下:
open(stringname,intmode);
open(stringname);
open用于打开应用程序的输出流,将数据从内存中输出到指定文件中,即写入文件。
open用于打开对应文件的输入流,将数据从文件中输入到内存中,即读取文件。
文件的操作模式
intmode表示文件操作方式,即读写方式,取值有4种:
MODE_PRIVATE:
该文件只能被当前程序读写,默认操作方式
MODE_APPEND:
该文件内容可以追加,常用的方式之一
MODE_WORLD_READABLE:
该文件可以被其他程序读取,安全性低,通常不用
MODE_WORLD_WRITEABLE:
该文件可以被其他程序写入,安全性低,通常不用
外部存储:
外部存储通常是指将外部文件存储到外部设备上,一般是指SD卡等,通常位置mnt/sdcard目录下。
外部设备不够安全:
外部存储的文件可以被其他应用程序共享,当连到计算机时,文件可被浏览,修改和删除
外部设备状态有可能被移除、丢失或处于其他装态,在使用之前要调用Enviornment.getExternalStorageState()来确认外围设备是否可用。
当外围设备具有读写权限时,可以通过,或,进行读写。
Stringstate=Environment.getExternalStorageState();//获取外设状态
if(state.equals(Environment.MEDIA_MOUNTED))//判断外设是否可用
Environment.getExternalStorageDirectory();//获取外设路径
操作SD卡数据需要在清单文件的
name=“android.permission.WRITE_EXTERNAL_STORAGE”/> name=“android.permission.READ_EXTERNAL_STORAGE”/> 3、XML序列化 (1)什么是序列化 (2)XML序列化 (3)XML解析 XMLPullParser的常用属性 (4)JSON解析 4、SharedPreferences SharedPreferences是Android平台上一个轻量级的存储类,用于存储一些应用程序的配置参数,例如用户名、密码、自定义参数的设置等。 SharedPreferences中存储的数据是以key/value键值对的形式保存在XML文件中,该文件位于“data/data/ ●SharedPreferences存储的数据是以key/value键值对的形式保存在XML文件中的。 ●SharedPreferences中value的值只能是float,int,long,boolean,String,StringSet类型数据。 ●使用SharedPreferences存储数据时,首先通过context.getSharedPreferences(Stringname,intmode)获取SharedPreferences实例对象(在Activity中可以直接使用this表示上下文),如果不在Activity中,则需要传入一个Context获取上下文 SharedPrefernces对象本身只能获取数据,并不支持数据的存储和修改,数据的存储和修改需要通过SharedPrefernces.Editor()对象实现,要获取Editor实例对象,需要调用SharedPrefernces.Editor.editor()方法。 ●存入数据和删除数据时,一定要在最后使用editor.c
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Android 复习 纲要