Android复习材料.docx
- 文档编号:3741656
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:44
- 大小:180.60KB
Android复习材料.docx
《Android复习材料.docx》由会员分享,可在线阅读,更多相关《Android复习材料.docx(44页珍藏版)》请在冰豆网上搜索。
Android复习材料
第1章Android简介
手机操作系统:
AndroidiPhoneOSWindowsMobileWindowsPhone7Symbian黑莓PalmOLinux
简述Android平台的特征:
1)在内存和进程管理方面,Android具有自己的运行时和虚拟机。
2)在界面设计上,提供了丰富的界面控件
3)Android提供轻量级的进程间通讯机制Intent,使用跨进程组件通信和发送系统级广播成为可能
4)Android提供了Service作为无用户界面、长时间后台运行的组件
5)Android支持高效、快速的数据存储方式
6)Android提供了通用的共享数据接口ContentProvider
7)Android支持位置服务和地图应用
8)Android支持Widget插件
9)AndroidNDK支持使用本地代码(C或C++)开发应用程序的部分核心模块
描述Android平台体系结构的层次划分,并说明各个层次的作用:
体系分为四层:
1、Linux内核2、中间件层3、程序框架层4、应用程序层
1)Linux内核:
提供安全机制、内存管理、进程管理、网络协议堆栈、和驱动程序等
2)中间件层:
由函数库和Android运行时构成
1 函数库,主要提供一组基于C/C++的函数库
2 Android运行时
a.核心库,提供Android系统的特有函数功能和Java语言函数功能
b.Dalvik虚拟机,是经过优化的多实例虚拟机
3)应用程序框架:
提供Android平台基本的管理功能和组件重用机制
4)应用程序:
提供一系列的核心应用程序
第2章Android开发环境
Android开发环境的安装配置方法:
1)安装JDK和Eclipse
2)安装AndroidSDK
3)安装ADT插件
AndroidSDK的目录结构:
(+)add-ons
(+)addon_google_apis_google_inc_-14
(+)docs
(+)extras
(+)usb_driver
(+)platforms
(+)android-14
(+)platforms-tools
(+)samples
(+)android-14
(+)temp
(+)tools
(-)SDKManager.exe
(-)AVDManager.exe
(-)SDKReadme.txt
1)add-one目录下的是Google提供地图开发的库函数,支持基于GoogleMap的地图开发
2)docs目录下的是AndroidSDK的帮助文档,通过目录下的offline.html文件启动
3)platforms目录用来存放SDK和AVD管理器下载的各种版本的SDK。
4)platforms-tools目录中保存了与平台调试相关的工具
5)tools目录保存了通用的Android开发调试工具和Android手机模拟器
6)SDKManager.exe和AVDManager.exe分别是SDK和AVD的管理器,SDKReadme.txt是AndroidSDK的说明文档
Android开发工具的用途:
1)Android模拟器(AVD):
模拟Android手机,并管理
2)Android调试桥(AndroidDebugBridge,ADB):
用于连接Android设备或模拟器的工具,负责将应用程序安装到模拟器和设备中,或从模拟器或设备中传输文件。
3)DDMS
1 Android系统中内置的调试工具
2 监视Android系统中进程、堆栈信息,查看logcat日志,实现端口转发服务和屏幕截图功能,模拟器电话呼叫和SMS短信,以及浏览Android模拟器文件系统等
3 常用工具:
设备管理器,模拟器控制器,文件浏览器,日志浏览器
第3章Android应用程序
R.java文件的用途和生成方法:
R.java文件是ADT自动生成的文件,包含对drawable、layout和values目录内的资源的引用指针,Android程序能够直接通过R类引用目录中的资源。
AndroidManifest.xml文件的用途:
XML格式的Android程序声明文件,包含了Android系统运行Android程序前所必须掌握的重要信息,这些信息包括应用程序名称、图标、包名称、模块组成、授权和SDK最低版本等。
manifest元素仅能包含一个application元素,application元素中能够声明Android程序中最重要的四个组成部分,包括Activity、Service、BroadcastReceiver和ContentProvider,所定义的属性将影响所有组成部分。
activity元素是对Activity子类的声明,不在AndroidManifest.xml文件中声明的Activity将不能够在用户界面中显示。
intent-filter中声明了两个子元素action和category。
Android的程序结构:
1)
src目录是源代码目录,所有允许用户修改的java文件和用户自己添加的java文件都保存在这个目录中
2)gen目录用来保存ADT自动生成的java文件
3)assets目录用来存放原始格式的文件,此目录中的资源不能够被R.java文件索引
4)bin目录保存了编译过程中的所产生的文件,以及最终生产的apk文件。
5)res目录是资源目录,Android程序所有的图像、颜色、风格、主题、界面布局和字符串等资源都保存在其下的几个子目录中。
a.layout目录用来保存与用户界面相关的布局文件
b.values目录保存颜色、风格、主题和字符串等资源。
6)android.jar文件是Android程序所能引用的函数库文件
7)proguard.cfg文件是供ProGuard工具进行代码优化和代码混淆使用的配置文件。
8)project.properties文件记录了Android工程的相关设置
9)AndroidManifest.xml是XML格式的Android程序声明文件,包含了Android系统运行Android程序前所必须掌握的重要信息,这些信息包括应用程序名称、图标、包名称、模块组成、授权和SDK最低版本等
第4章Android生命周期
Android系统的四大基本组件:
Activity是Android程序的呈现层,显示可视化的用户界面,并接收与用户交互所产生的界面事件,Android应用程序可以包含一个或多个Activity,一般需要指定一个程序启动时显示的Activity。
Service一般用于没有用户界面,但需要长时间在后台运行的应用,可公开Service的程序接口,供其他进程调用。
BroadcaseReceiver用来接收广播消息的组件,不包含任何用户界面,可以启动Activity或者Notification通知用户接收到重要信息,能够通过多种方法提示用户,包括闪动背景灯、震动设备、发出声音或在状态栏上放置一个图标。
ContentProvider是Android系统提供的一种标准的共享数据的机制,其他程序通过ContentProvider访问程序的私有数据。
Android系统的进程优先级的变化方式:
Android系统的进程优先级从高到低分别为:
前台进程是Android系统中最重要的进程
可见进程指部分程序界面能够被用户看见,却不在前台与用户交互,不响应界面事件的进程
服务进程包含已启动服务的进程
后台进程指不包含任何已经启动的服务,而且没有任何用户可见的Activity的进程
空进程是不包含任何活跃组件的进程
优先级决定与变化规则
进程的优先级取决于所有组件中的优先级最高的部分
进程的优先级会根据与其他进程的依赖关系而变化
Activity的生命周期中各状态的变化关系:
Activity生命周期指Activity从启动到销毁的过程
Activity表现为四种状态:
活动状态,Activity在用户界面中处于最上层,完全能不用户看到,能够与用户进行交互
暂停状态,Activity在界面上被部分遮挡,该Activity不再处于用户界面的最上层,且不能够与用户进行交互
停止状态,Activity在界面上完全不能被用户看到,也就是说这个Activity被其他Activity全部遮挡
非活动状态,不在以上三种状态中的Activity则处于非活动状态
Activity事件回调函数的作用和调用顺序:
全生命周期:
函数的调用顺序:
(1)onCreate→
(2)onStart→(4)onResume→(7)onPause→(8)onStop→(9)onDestroy。
可视生命周期:
函数的调用顺序:
(1)onCreate→
(2)onStart→(4)onResume→(7)onPause→(5)onSaveInstanceState
→(8)onStop→(6)onRestart→
(2)onStart→(4)onResume
Android应用程序的调试方法和工具:
LogCat
1 LogCat的右上方的五个字母表示五种不同类型的日志信息,级别依次增高
[V]:
详细(Verbose)信息[D]:
调试(Debug)信息
[I]:
通告(Info)信息[W]:
警告(Warn)信息
[E]:
错误(Error)信息
2 提供了“过滤”功能
DevTools是用于调试和测试的工具
第5章Android用户界面
Android用户界面框架采用MVC(Model-View-Controller)模型
1 控制器(Controller)处理用户输入
2 视图(View)显示用户界面和图像
3 模型(Model)保存数据和代码
Android用户界面框架采用视图树(ViewTree)模型
各种界面控件的使用方法
常见的系统控件:
TextViewEditTextButtonImageButtonCheckboxRadioButton
SpinnerListViewTabHost
用法:
TextView是一种用于显示字符串的控件
EditText则是用来输入和编辑字符串的控件,EditText是一个具有编辑功能的TextView
TextViewtextView=(TextView)findViewById(R.id.TextView01);
EditTexteditText=(EditText)findViewById(R.id.EditText01);
textView.setText("用户名:
");
editText.setText("Rajan");
Button是一种按钮控件,用户能够在该控件上点击,并后引发相应的事件处理函数
ImageButton用以实现能够显示图像功能的控件按钮
Buttonbutton=(Button)findViewById(R.id.Button01);
ImageButtonimageButton=(ImageButton)findViewById(R.id.ImageButton01);
button.setText("Button按钮");
imageButton.setImageResource(R.drawable.download);
finalTextViewtextView=(TextView)findViewById(R.id.TextView01);
button.setOnClickListener(newView.OnClickListener(){
publicvoidonClick(Viewview){
textView.setText("Button按钮");
}
});
imageButton.setOnClickListener(newView.OnClickListener(){
publicvoidonClick(Viewview){
textView.setText("ImageButton按钮");
}
});
多个按钮注册到同一个点击事件的监听器上
Button.OnClickListenerbuttonListener=newButton.OnClickListener(){
@Override
publicvoidonClick(Viewv){
switch(v.getId()){
caseR.id.Button01:
textView.setText("Button按钮");
return;
caseR.id.ImageButton01:
textView.setText("ImageButton按钮");
return;
}
}};
button.setOnClickListener(buttonListener);
imageButton.setOnClickListener(buttonListener);
CheckBox同时可以选择多个选项的控件
RadioButton则是仅可以选择一个选项的控件
RadioGroup是RadioButton的承载体,程序运行时不可见。
应用程序中可能包含一个或多个RadioGroup,一个RadioGroup包含多个RadioButton,在每个RadioGroup中,用户仅能够选择其中一个RadioButton
id="@+id/RadioGroup01" android: layout_width="wrap_content" android: layout_height="wrap_content"> id="@+id/RadioButton01" android: layout_width="wrap_content" android: layout_height="wrap_content" android: text="RadioButton01"> id="@+id/RadioButton02" android: layout_width="wrap_content" android: layout_height="wrap_content" android: text="RadioButton02"> CheckBoxcheckBox1=(CheckBox)findViewById(R.id.CheckBox01); RadioButtonradioButton1=(RadioButton)findViewById(R.id.RadioButton01); CheckBox.OnClickListenercheckboxListener=newCheckBox.OnClickListener(){ @Override publicvoidonClick(Viewv){ //过程代码 }}; checkBox1.setOnClickListener(checkboxListener); checkBox2.setOnClickListener(checkboxListener); RadioButton.OnClickListenerradioButtonListener=newRadioButton.OnClickListener(){ @Override publicvoidonClick(Viewv){ //过程代码 }}; radioButton1.setOnClickListener(radioButtonListener); radioButton2.setOnClickListener(radioButtonListener); Spinner一种能够从多个选项中选一选项的控件,使用浮动菜单为用户提供选择 类似于桌面程序的组合框(ComboBox) Spinner的浮动菜单的显示方式: android.R.layout.simple_spinner_dropdown_item android.R.layout.simple_spinner_item id="@+id/Spinner01" android: layout_width="300dip" android: layout_height="wrap_content"> Spinnerspinner=(Spinner)findViewById(R.id.Spinner01); List list.add("Spinner子项1"); list.add("Spinner子项2"); list.add("Spinner子项3"); ArrayAdapter android.R.layout.simple_spinner_item,list); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner.setAdapter(adapter); ListView是一种用于垂直显示的列表控件,如果显示内容过多,则会出现垂直滚动条 ListView能够通过适配器将数据和自身绑定,在有限的屏幕上提供大量内容供用户选择,所以是经常使用的用户界面控件 ListView支持点击事件处理,用户可以用少量的代码实现复杂的选择功能 finalTextViewtextView=(TextView)findViewById(R.id.TextView01); ListViewlistView=(ListView)findViewById(R.id.ListView01); List list.add("ListView子项1"); list.add("ListView子项2"); list.add("ListView子项3"); ArrayAdapter android.R.layout.simple_list_item_1,list); listView.setAdapter(adapter); AdapterView.OnItemClickListenerlistViewListener=new AdapterView.OnItemClickListener(){ @Override publicvoidonItemClick(AdapterView >arg0,Viewarg1,intarg2,longarg3){ }}; listView.setOnItemClickListener(listViewListener); Tab标签页是界面设计时经常使用的界面控件,可以实现多个分页之间的快速切换,每个分页可以显示不同的内容 在AndroidSDK3.0中,随着新的UI设计思想的引入,android.app.Fragment成为一种新的界面设计模式 AndroidSDK4.0继承了3.0版本的设计思路,因此不建议开发者使用android.app.TabActivity,而用使用新出现的Fragment实现Tab标签页 TabHost Tab标签页的使用: 首先要设计所有的分页的界面布局,在分页设计完成后,使用代码建立Tab标签页(TabActivity),并给每个分页添加标识和标题,每个分页建立一个XML文件,用以编辑和保存分页的界面布局,使用的方法与设计普通用户界面没有什么区别。 packageedu.hrbeu.TabDemo; importandroid.app.TabActivity; importandroid.os.Bundle; importandroid.widget.TabHost; importandroid.view.LayoutInflater; @SuppressWarnings("deprecation") publicclassTabDemoActivityextendsTabActivity{ @Override publicvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); TabHosttabHost=getTabHost(); LayoutInflater.from(this).inflate(R.layout.tab1, tabHost.getTabContentView(),true); LayoutInflater.from(this).inflate(R.layout.tab2, tabHost.getTabContentView(),true); LayoutInflater.from(this).inflate(R.layout.tab3, tabHost.getTabContentView(),true); tabHost.addTab(tabHost.newTabSpec("TAB1") .setIndicator("线性布局").setContent(R.id.layout01)); tabHost.addTab(tabHost.newTabSpec("TAB2") .setIndicator("绝对布局").setContent(R.id.layout02)); tabHost.addTab(tabHost.newTabSpec("TAB3") .setIndicator("相对布局").setContent(R.id.layout03)); }} 各种界面布局的特点和使用方法 界面布局(Layout)是用户界面结构的描述,定义了界面中所有的元素、结构和相互关系 ,声明Android程序的界面布局有两种方法,使用XML文件描述界面布局(推荐使用), 在程序运行时动态添加或修改界面布局,既可以独立使用任何一种声明界面布局的方式,也可以同时使用两种
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Android 复习 材料