Android 之 复习大纲

一、第一章使用Android平台基础开发

1.简介:

1)Android本义:机器人;

2)Android意义:Google与2007年11月5日宣布的基于Linux平台的开源手机操作系统名称;

3)Linux平台组成操作系统、中间件、用户界面和应用软件;

4)Android的标志:绿色、机器人;

2.Android架构:

1)和其它操作系统一样,Android的系统采用的是分层的架构;

2)架构组成:(从高层到底层)(

a)应用程序层;

b)应用程序框架层:隐藏在每个应用后面的是一系列的服务和系统;

c)系统运行库层;

d)Linux核心层;

3.Android应用程序:

1)简称:AndroidApp,是一种运行在Android平台的应用软件;

2)SDK:softwaredevelopmentkit;

3)ADB:AndroidDebugBridge,调试桥的作用;是一个客户端-服务器端程序;

4)AAPT:AndroidAssetPackagingTool,在SDKplatform-tools目录,用于打包apk文件,构成一个Androi应用程序;

5)AVD:AndroidVirtualDevice:android虚拟设备;

4.Android的环境搭建:

1)JDK安装;

2)Eclipse安装;

3)AndroidSDK安装;

4)ADT安装;

5)创建AVD;

二、第二章使用Activity打造Android窗体

1.Activity简介:

1)一个Activity是一个应用程序组件,提供一个屏幕,供用户进行交互;

2)一个应用程序由多个Activites组成,关系:松耦合关系;

3)在系统中的Activity被一个Activity栈所管理;特点:先进后出;

4)Activity是单独的,用于处理用户操作;几乎所有的Activity都和用户打交道;

2.Android的生命周期:

1)Activity四种本质区别的状态:

a)活动状态:在屏幕前台;

b)暂停状态:被透明或非全屏遮盖;

c)停止状态:完全被另一个Activity抹杀;

d)重置状态;

3.Android中资源的访问:

1)代码中使用资源:android.R.资源文件种类.资源ID;

2)XML文件中引用:@android:资源种类/资源ID;

3)提示:raw资源文件中存放任意类型的资源,目录中的资源不会被编译,可以通过调用Resource.openRawResource(intid)获取资源二进制流;

4.Android中的菜单:

1)选项菜单optionsmenu:点击设备上的Menu弹出的菜单;

2)上下文菜单:contextmenu:长按视图控件出现的菜单;

3)子菜单submenu:点击子菜单将弹出子菜单选项;子菜单不支持嵌套;

4)提示:任何视图组件的创建方式都由两种:代码创建和布局文件创建;

5.Android简单用户界面设计:

1)Android中借用了java的UI设计思想,包括事件响应机制和布局管理;

2)View和ViewGroup采用了组合设计模式,可以使得”部分-整体”同等对待;

3)对话框种类:Builder

a)警告对话框;

b)进度对话框;

c)日期选择对话框:

d)事件选择对话框:

4)提示信息:Toast.make().show();

5)事件处理:

a)事件处理机制:事件、事件源、事件监听器;

6)事件处理步骤:

a)创建监听器:

b)给要响应事件的组件注册事件监听器:

c)在事件处理方法中编写实现代码;

6.对话框详解:

1)带编辑框的对话框:

2)将布局文件放到对话框中:getLayoutInflater.inflater(R.layout.ID,null);

3)注册:builder.setView(布局组件对象);

4)列表对话框;setItems();

5)带单选按钮对话框:

a)builder.setSingleChoiceItems();

6)带复选框的对话框:

a)Newbuilder().setMultichoiceItems();

b)事件:OnMultichoiceListener;

7.菜单详解:

1)选项菜单:

a)实现方法:onCreateOptionMenu();

b)动作实现:onOptionsItemSelected();

2)子菜单:

a)实现方法:onCreateOptionMenu();

b)动作实现:onOptionItemSelected();

3)上下文菜单:

a)实现方法:onCreateContexteMenu();

b)动作实现:onContextItemSelected();

c)组件注册:registerContextMenu(Viewv);

三、第三章使用Intent让窗体之间对话

1.窗体之间的跳转

1)Intentintent=newIntent();

2)intent.setClass();

3)startActivity();

2.窗体之间传递数据

1)Bundle对象的实现:用于封装数据

2)将Bundle绑定到Intent的对象;

3)提示:Intent对象可以携带任意数据类型,包括对象;

3.实现数据双向交互:

1)启动方式:startActivityForResult();

2)重写方法:onActivityResult();

3)被请求Activity实现:setResult();封装数据,并指明回去的路,同一个Intent对象;finish();标志完成任务;

4.Android高级组件设计:布局管理

1)View类

a)View为所有可视化类的基类,主要提供了控件绘制和事件处理;

b)ViewGroup也是View的子类,但是可以充当其它控件的容器;

2)线性布局:LinearLayout

a)最简单的布局,水平或垂直布局方式;

b)通过设置weight控制各个控件在容器中的相对大小;

3)表格布局:TableLayout

a)行和列的形式管理;

b)Shrinkable:列收缩

c)Stretchable:列拉伸;

d)Collapsed:列隐藏;

4)相对布局:RelativeLayout

a)子控件的位置相对兄弟控件或父控件决定;

b)避免出现循环依赖;

5)帧布局FrameLayout:

a)帧布局大小由子控件最大的控件决定;

6)绝对布局:AbuoluteLayout

a)根据坐标大小定位;

b)Android:layout_x

c)Android:layout_y

d)控件容器不再负责管理其子控件的位置;

5.组件设计:

1)TextView

2)EidtView

3)AutoCompleteTextView:自动输入内容组件;

a)使用数组适配器绑定数据;

4)按钮组件:

a)Button

b)ImageButton

c)RadioButton:一个组中只能选择一个单选;

d)ToggleButton:textOn/textOff

e)CheckBox

5)按钮组件事件:

a)onTouch触摸事件

b)onFocusChange焦点变化事件;

c)onKey键盘事件;

6)日期和时间组件:

a)DatePicker:用于输入日期的控件,包括年月日;

b)TimePicker:用于输入时间的控件,包括时钟分钟;

c)AnalogClock:用于显示时钟的组件,表盘方式;

d)DigitalClock:用于显示时钟的组件,数字方式,时分秒;

7)ImageView

8)ListView

9)Spinner:示一个下拉列表,通过设置adapter数据适配器显示;

10)ScrollView:动视图组件,只能包含一个组件,可以定义一个布局;

11)HorizontalScrollView:水平滚动视图组件,支持水平滚动;

12)GridView:图控件,用于显示一个表格,采用二维方式来显示列表项,每个单元格是一个View对象;

13)Gallery:像列表,与GidView的区别是只能显示一行,支持滚动效果;

14)ImageSwitcher:以以动画方式切换图像;

15)TabHost:件;对屏幕进行分页显示控件;

四、第四章使用Service进行后台服务

1.简介:四大组件之一;

2.特点:

1)生命周期长;

2)没有可视化界面,无法与用户直接交互;

3)后台运行;

4)数据交互;

3.何时用:希望该应用在后台运行;

4.Service分类:

1)本地service

a)概念:和当前应用在同一个进程中的service,彼此之间拥有共同的内存区域,则对某些数据的共享特别的方便和简单;

2)远程service

a)主要用于不同进程之间的service访问;

b)共享数据方式:使用AIDL工具,androidinterfacedescriptionlanguage,接口描述语言;;

c)RPC简介:RemoteProcedureCall,远程进程调用是指在一个进程里,调用另外一个进程里面的服务;

5.使用service步骤:

1)继承service类,实现自己的service;

2)在androidManifet.xml中注册;

a)<service>

3)在activity中进行启动、绑定、解绑或者停止service;

五、第五章使用BroadcastReceiver进行广播

1.自定义BroadcastReceiver

1)简介:BroadcastReceiver是指广播接收器,处理的是系统级别的;

2)使用方法:

a)构建Intent对象;Intentintent=newIntent();

b)intent.setAction();参数:广播动作名称

c)sendBroadcast(intent);

3)总结:

a)既然要使用广播,就要一个发出广播的类(可以有多个),构建Intent对象,然后sendBraocast(intent对象);

b)需要一个接收广播的类,这个类是继承了BroadcastRecevier,首先要接收intent中的信息;

c)再者必须进行注册后才能使用;(四大组件之一)<receiver><intent-filter>

4)提示:可以使用代码的方式来注册或注销一个广播接收器;

a)IntentFilterfilter=newIntentFilter();

b)实例化:继承了BroadcastReceiver的类;

c)注册:registerReceiver(r,filter);

d)注销:unregisterReceiver(r);

2.通知与通知管理器

1)Notifaction和NotificationManager的使用:通知和通知管理器;

2)作用:实现可视化信息的显示,通过它们可以显示广播信息的内容以及图标和震动等信息(在状态栏上);

六、第六章存储数据

1.SharedPreferences:

1)概念:一种轻型的数据存储方式;key-value

2)作用:存储一些简单的配置信息;

3)存储位置:/data/data/包/shared_prefs

4)特点:SharedPreferences对象本身只能存储,不能修改;

5)提示:存储修改是通过Eidtor对象实现;

6)缺陷:只能存储boolean.int.float.long.String五种简单的数据类型;

7)优势:方便、简洁;

2.File:文件存储

1)从resource中的raw文件夹中获取文件,并读取数据

a)注意:资源文件只能读不能写;

b)获取流的方法:InputStreamin=getResources().openRawResource(R.raw.a);

2)从asset中获取文件并读取数据:

a)流的获取:InputStreamin=getResources().getAssets().open(文件名);

3)从sdcard中读文件:

a)存储位置:/mnt/sdcard/目录下

b)流的获取:FileInputStreamin=newFileInputStream(fileName);

c)访问权限:

i.<uses-permissionandroid:name=”android.permission.MOUNT_UNMOUNT_FILESYSTEMS”>

d)写入权限:

i.<uses-permissionandroid:name=”androd.permission.WRITE_EXTERNAL_STORAGE”/>

4)内存中操作文件:

a)保存路径:\data\data\com.test\files\里面;

b)流的获取:FileOutputStreamfout=openFileOutput(filename,MODE_PRIVATE);

5)提示:openFileOutput是在raw里编译过的,FileOutputStream是任何文件都可以;

3.SQLite:

1)简洁:一个非常流行的嵌入式数据库,支持SQL语言,利用内存少,性能好;

2)特点:和其他数据库最大的不同是对数据类型的支持;

3)不支持的SQL功能:外键约束、嵌套、联表查询;

4)Android中集成了SQLite数据库;

a)获取SQLiteDataBase实例:

i.SQLiteDataBasedb=getReadableDatabase();

ii.SQLiteDataBasedb=getWriteableDatabase();

七、第七章使用ContentProvider共享数据

1.概述:Android应用继承了ContentProvider类,并重写该类用于提供数据和存储数据的方法,就可以向其他应用共享其数据;

2.URI:代表要操作的数据;

3.UriMatcher类使用介绍:

1)用于解析URI;

2)方法:match();用于匹配URI,返回指定的返回码;

3)AddURI(uri,表,返回码);添加规则;

4.ContentUris使用介绍;

1)withAppendId(uri,id);用于为路径加上ID部分;

2)parseId(uri);从该路径部分获取ID;

5.ContentResolver操作ContentProvider:

1)对ContentProvider中的数据进行添加、删除、修改和查询操作时、需要使用ContentResolver;

6.自定义ContentProvider:

1)建立数据的存储系统;

2)扩展ContentProvider类;

3)在应用程序中注册:<provider>四大组件之一;

7.提示:不管数据表中有没有其他的唯一标识一个记录的字段,都应该定义一个_id,字段来唯一标识一个记录;

8.INTEGERPRIMARYKEYAUTOINCREMENT;

9.注意:因为ContentProvider可能被不同的进程和线程调用,所以这些方法必须时线程安全的;

八、第八章多媒体应用

1.Android音频与视频的播放

1)播放的文件种类:

a)存储在应用程序中的资源;

b)本地资源;

c)ContentProvider资源;

d)网络的URL流中的资源;

2)媒体播放步骤:

a)初始化;

b)完成准备播放;

c)开始播放;

d)播放时进行暂停、停止,以及定位;

e)播放完成;

3)音频的播放:

a)方式一:newMediaPlayer().setDataSource();设置文件源;

b)方式二:MediaPlayer.create();通过uri获取地址;

c)提示:文件sd根目录一定要进行prepare();方法,为硬件准备;

4)视频的播放:

a)视图控制器:VideoView;

b)媒体控制器:MediaController:提供按钮;

5)访问网络上的Audio对应的M3U文件:

a)根据URL访问网络;

b)对网络文件进行解析;

c)显示解析结果;

d)知识点:

i.HttpClientclient=newDefaultHttpClient();

ii.HttpGetget=newHttpGet(url);

iii.HttpResponseresponse=client.execute(get);

6)Android中音频与视频的录制;

九、第九章使用互联网组件与服务器交互

1.Http网络编程:

1)Socket套接字:

a)概念:是用于描述网络上的一个设备中的一个进程或者应用程序的,Socket由IP地址和端口号两部分组成;IP地址定位设备,端口号定位应用程序或者进程;

b)提示:Server端会一直监听Socket中的端口直到由请求为止,收到请求后返回一个Socket对象,Server和Client可以通过Socket进行操作;

c)ServerSocket.accept();返回一个连接的Socket对象;

2)HttpURLConnection:

a)简洁:是继承自URLConnection的一个抽象类,在HTTP编程时,来自HttpURLConnection的类是所有操作的基础;

b)获取方式:HttpURIConnectionconn=(HttpURIConnection)newURL(“http://baicu.com”).openConnection();

3)WebView使用:

a)浏览器控件:每个开发环境都具备的;

b)添加权限:android.permission.INTERNET;

c)获取焦点:requestFocus();

相关推荐