android 复习知识.docx

上传人:b****6 文档编号:5812455 上传时间:2023-01-01 格式:DOCX 页数:15 大小:226.59KB
下载 相关 举报
android 复习知识.docx_第1页
第1页 / 共15页
android 复习知识.docx_第2页
第2页 / 共15页
android 复习知识.docx_第3页
第3页 / 共15页
android 复习知识.docx_第4页
第4页 / 共15页
android 复习知识.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

android 复习知识.docx

《android 复习知识.docx》由会员分享,可在线阅读,更多相关《android 复习知识.docx(15页珍藏版)》请在冰豆网上搜索。

android 复习知识.docx

android复习知识

《android移动开发》复习大纲

Part1移动开发简介

1.移动终端:

了解常见的移动终端及系统

UMPC,PDA,手机,PMP,车载信息娱乐系统IVI,ConnectedTV,IPAD

2.Android系统:

了解android系统的简单发展历史

Android是典型的WebOS。

WebOS是一个运行在浏览器中的虚拟的操作系统。

Android技术路线:

Linux内核+apache

WebOS的功能:

网络资源寻址;全球名称空间;远程执行程序(在客户端执行服务器程序);资源管理;认证与安全

Part2Android开发环境

开放手机联盟:

了解开放手机联盟OHA的历史、组成、性质、OHA与android的关系

开放手机联盟包括手机制造商、手机芯片厂商和移动运营商几类。

由OHA开发的Android™,是第一个完整的、开放的、免费的智能移动开发平台。

Android平台包括操作系统、中间件和一些关键应用。

Android系统架构:

了解其分层架构,包括内核层、系统库、运行时库、JAVA应用程序框架

第一层:

Linux内核层,由C语言实现,内核提供系统核心服务,如进程、内存、电源管理,网络连接,驱动与安全等。

Linux内核位于硬件和软件堆之间的抽象层。

第二层:

系统运行库层。

由C和/C++实现,C/C++库:

被各种Android组件使用通过应用程序框架开发者可以使用其功能包括:

媒体库:

MPEG4H.264MP3JPGPNG...。

WebKit/LibWebCore:

Web浏览引擎。

SQLite关系数据库引擎。

2D,3D图形库、引擎。

AndoidRuntime的应用开发语言:

Java。

第三层:

应用框架层。

主要由Java代码实现,管理运行应用程序,在各应用之间共享数据,管理非代码资源,显示用户提示和状态栏,可扩展显示,可构建UI简化组件的重用。

简化组件的重用,充分访问所有核心应用框架API

第四层:

应用层。

JAVA编写的应用程序

3.Android开发环境

了解开发的三个层次;理解Dalvik虚拟机及其与JVM的区别;理解Dalvik特点及编译处理过程。

 三个层次:

1系统级开发:

改造Android底层核心,改善底层基础库和构造块

2Android移植:

将Android系统移植到特定的硬件平台,修改某些驱动层和原生应用程序

3Android应用开发:

基于标准的Android运行时库和标准的应用开发SDK完成的应用程序。

 模拟器和真机的不同之处:

不支持呼叫和接听实际来电,但可以通过控制台模拟电话呼叫(呼入和呼出)。

不支持USB连接。

不支持相机/视频捕捉。

不支持音频输入(捕捉),但支持输出(重放)。

不支持扩展耳机。

不能确定连接状态。

不能确定电池电量水平和交流充电状态。

不能确定SD卡的插入/弹出。

不支持蓝牙。

  重点:

Dalvik和标准Java虚拟机(JVM)首要差别:

Dalvik基于寄存器,而JVM基于栈。

基于寄存器的虚拟机对于更大的程序来说,在它们编译的时候,花费的时间更短。

  Dalvik和Java运行环境的区别:

Dalvik经过优化,允许在有限的内存中同时运行多个虚拟机的实例。

每一个Dalvik应用作为一个独立的Linux进程执行。

独立进程可防止在虚拟机崩溃的时候所有程序都被关闭。

Dalvik提供一个拥有较少限制许可证的平台。

Dex文件----Android平台上的可执行文件。

Apk文件----Android上的安装文件。

一个工程只能打进一个.apk文件。

apk文件的本质是一个zip包。

Part3Android应用程序

基于Eclipse的android开发:

掌握使用Eclipse开发Android应用程序的方法;掌握Android虚拟设备的创建方法。

Android应用程序结构:

理解R.java文件的用途和生成方法;了解AndroidManifest.xml文件的用途;了解Android的程序结构

根目录包含四个子目录:

src、assets、res和gen,一个库文件android.jar,以及两个工程文件Androidmanifest.xml和default.properties

R.java文件是ADT自动生成的文件,包含对drawable、layout和values目录内的资源的引用指针,Android程序能够直接通过R类引用目录中的资源

AndroidManifest.xml是XML格式的Android程序声明文件。

资源引用有两种情况:

一种是在代码中引用资源;另一种是在资源中引用资源。

代码中引用资源,需要使用资源的ID,可以通过[R.resource_type.resource_name]或[android.R.resource_type.resource_name]获取资源ID;资源中引用资源,引用格式:

@[package:

]type:

name

Part4Android生命周期

优先组长组件:

了解Android系统的进程优先级的变化方式;了解Android系统的四大基本组件

Android系统中的进程优先级由高到低:

前台进程(高优先级),可见进程(中优先级),服务进程(中优先级),后台进程(低优先级),空进程(低优先级)

Android系统有四个重要的组件,分别是Activity、Service、BroadcastReceiver和ContentProvider。

Activity是Android程序的呈现层,显示可视化的用户界面,并接收与用户交互所产生的界面事件。

Android应用程序可以包含一个或多个Activity,一般在程序启动后会呈现一个Activity,用于提示用户程序已经正常启动。

Activity在界面上的表现形式:

全屏窗体,非全屏悬浮窗体,对话框。

Service用于没有用户界面,但需要长时间在后台运行的应用。

BroadcastReceiver是用来接受并响应广播消息的组件。

不包含任何用户界面。

可以通过启动Activity或者Notification通知用户接收到重要信息

ContentProvider是Android系统提供的一种标准的共享数据的机制,应用程序可以通过ContentProvider访问其他应用程序的私有数据

2.生命周期

了解Activity的生命周期中各状态的变化关系;掌握Activity事件回调函数的作用和调用顺序

Activity生命周期指Activity从启动到销毁的过程。

Activity表现为四种状态,分别是活动状态、暂停状态、停止状态和非活动状态。

Activity的四种状态的变换关系图:

 

Activity状态保存/恢复的事件回调函数

Activity生命周期的事件回调函数

 

Activity事件回调函数的调用顺序

Activity生命周期分类:

Activity的生命周期可分为全生命周期、可视生命周期和活动生命周期。

Part5Android用户界面组件

1.常见界面组件:

了解界面开发框架、视图树、界面线程;掌握各种用户界面的控件的使用方法,包括TextView、EditText、Button、ImageButton、Checkbox、RadioButton、Spinner,重点掌握并理解ListView和TabHost用法及原理。

Android用户界面框架采用MVC(Model-View-Controller)模型,采用视图树(ViewTree)模型,单线程用户界面。

Android系统的界面控件分为定制控件和系统控件。

常见的系统控件包括TextView、EditText、Button、ImageButton、Checkbox、RadioButton、Spinner、ListView和TabHost。

EditText则是用来输入和编辑字符串的控件。

ListView是一种用于垂直显示的列表控件,如果显示内容过多,则会出现垂直滚动条。

用法:

ListView能够通过适配器将数据和自身绑定,在有限的屏幕上提供大量内容供用户选择,所以是经常使用的用户界面控件。

ListView支持点击事件处理,用户可以用少量的代码实现复杂的选择功能。

TabHost:

Tab标签页是界面设计时经常使用的界面控件,可以实现多个分页之间的快速切换,每个分页可以显示不同的内容。

Tab标签页的使用:

首先要设计所有的分页的界面布局;在分页设计完成后,使用代码建立Tab标签页,并给每个分页添加标识和标题;最后确定每个分页所显示的界面布局。

子页与界面布局直接的关联关系

界面布局:

了解界面布局的实现方法,理解界面布局的特点;掌握常用界面布局的特点和使用方法,重点掌握线性布局和表格布局。

在线性布局中,所有的子元素都按照垂直或水平的顺序在界面上排列。

如果垂直排列,则每行仅包含一个界面元素。

如果水平排列,则每列仅包含一个界面元素

xmlversion="1.0"encoding="utf-8"?

>

android="

android:

layout_width="fill_parent" android:

layout_height="wrap_content"

android:

orientation="vertical">

id="@+id/label" android:

layout_width="wrap_content"

android:

layout_height="wrap_content" android:

text="用户名:

">

id="@+id/ok"

android:

layout_width="wrap_content"android:

layout_height="wrap_content"

android:

text="确认">

表格布局:

将屏幕划分网格,通过指定行和列可以将界面元素添加的网格中。

网格的边界对用户是不可见的。

表格布局还支持嵌套,可以将另一个表格布局放置在前一个表格布局的网格中,也可以在表格布局中添加其他界面布局,例如线性布局、相对布局等等。

id="@+id/TableLayout01"

android:

layout_width="fill_parent"android:

layout_height="fill_parent"

xmlns:

android="

id="@+id/TableRow01"

android:

layout_width="wrap_content"android:

layout_height="wrap_content">

id="@+id/label"android:

layout_height="wrap_content"

android:

layout_width="160dip" android:

gravity="right"

  android:

text="用户名:

" android:

padding="3dip">

id="@+id/entry"android:

layout_height="wrap_content"

android:

layout_width="160dip" android:

padding="3dip">

id="@+id/TableRow02"

android:

layout_width="wrap_content"android:

layout_height="wrap_content">

id="@+id/ok"android:

layout_height="wrap_content"

android:

padding="3dip" android:

text="确认">

id="@+id/Button02"

android:

layout_width="wrap_content"android:

layout_height="wrap_content"

android:

padding="3dip" android:

text="取消">

菜单了解菜单的分类;掌握选项菜单、子菜单和快捷菜单的添加和使用方法

Android系统支持三种菜单:

选项菜单,子菜单,快捷菜单。

选项菜单重载onPrepareOptionsMenu()函数,能够动态的添加、删除菜单子项,或修改菜单的标题、图标和可见性等内容。

子菜单的添加是使用addSubMenu()函数实现,快捷菜单:

onCreateContextMenu()函数主要用来添加快捷菜单所显示的标题、图标和菜单子项等内容

1publicbooleanonPrepareOptionsMenu(Menumenu){

MenuItemuploadItem=menu.findItem(MENU_UPLOAD);

uploadItem.setTitle("上传设置:

"+String.valueOf(MenuUploadCounter));

returntrue;}

2SubMenuuploadMenu=(SubMenu)menu.addSubMenu(0,MENU_UPLOAD,1,"上传设置").setIcon(R.drawable.upload);

uploadMenu.setHeaderIcon(R.drawable.upload);

uploadMenu.setHeaderTitle("上传参数设置");

uploadMenu.add(0,SUB_MENU_UPLOAD_A,0,"上传参数A");

uploadMenu.add(0,SUB_MENU_UPLOAD_B,0,"上传参数B");

3publicvoidonCreateContextMenu(ContextMenumenu,Viewv,

ContextMenuInfomenuInfo){

menu.setHeaderTitle("快捷菜单标题");

menu.add(0,CONTEXT_MENU_1,0,"菜单子项1");

menu.add(0,CONTEXT_MENU_2,1,"菜单子项2");

menu.add(0,CONTEXT_MENU_3,2,"菜单子项3");}

事件:

了解界面事件的分类;理解界面事件的处理原则;掌握按键事件和触摸事件的处理方法,理解触摸事件的原理

界面事件分为:

按键事件和触摸事件

按键事件的处理原则:

如果界面控件设置了事件监听器,则事件将先传递给事件监听器;如果界面控件没有设置事件监听器,界面事件则会直接传递给界面控件的其他事件处理函数;即使界面控件设置了事件监听器,界面事件也可以再次传递给其他事件处理函数;是否继续传递事件给其他处理函数是由事件监听器处理函数的返回值决定的;如果监听器处理函数的返回值为true,表示该事件已经完成处理过程,不需要其他处理函数参与处理过程,这样事件就不会再继续进行传递;如果监听器处理函数的返回值为false,则表示该事件没有完成处理过程,或需要其他处理函数捕获到该事件,事件会被传递给其他的事件处理函数

按键事件的处理:

为了处理控件的按键事件,先需要设置按键事件的监听器,并重载onKey()函数

触摸事件的处理方法:

设置触摸事件的监听器,并重载onTouch()函数

触摸事件的原理:

当手指接触到触摸屏、在触摸屏上移动或离开触摸屏时,分别会引发ACTION_DOWN、ACTION_UP和ACTION_MOVE触摸事件,而无论是哪种触摸事件,都会调用onTouch()函数进行处理;事件类型包含在onTouch()函数的MotionEvent参数中,可以通过getAction()函数获取到触摸事件的类型,然后根据触摸事件的不同类型进行不同的处理;为了能够使屏幕最上方的TextView处理触摸事件,需要使用setOnTouchListener()函数在代码中设置触摸事件监听器,并在onTouch()函数添加触摸事件的处理过程

Part6通信与广播消息

Intent通信:

了解使用Intent进行组件通信的原理、Intent两种启动方式;理解隐式启动的原理和支持的启动动作;掌握使用Intent启动Activity的方法;掌握获取Activity返回值的方法

Intent也可称为一个在不同组件之间传递的消息,这个消息在到达接收组件后,接收组件会执行相关的动作。

Intent为Activity、Service和BroadcastReceiver等组件提供交互能力。

Intent有显示启动和隐式启动两种方式。

隐式启动:

Android系统根据Intent的动作和数据来决定启动哪一个Activity。

也就是说在隐式启动时,Intent中只包含需要执行的动作和所包含的数据,而无需指明具体启动哪一个Activity,选择权有Android系统和最终用户来决定。

以Sub-Activity的方式启动子Activity。

显式启动:

使用Intent显式启动Activity;创建一个Intent;指定当前的应用程序上下文以及要启动的Activity;把创建好的这个Intent作为参数传递给startActivity()方法

隐式启动:

当用户在文本框中输入要访问网址后,通过点击“浏览此URL”按钮,程序根据用户输入的网址生成一个Intent,并以隐式启动的方式调用Android内置的Web浏览器,并打开指定的Web页面。

获取子Activity的返回值,一般可以分为以下三个步骤

1以Sub-Activity的方式启动子Activity;2设置子Activity的返回值

3在父Activity中获取返回值

Intent过滤器:

了解Intent过滤器的概念;掌握intent-filter相关的标记和配置方式;理解Intent的解析过程。

Intent过滤器是一种根据Intent中的动作(Action)、类别(Categorie)和数据(Data)等内容,对适合接收该Intent的组件进行匹配和筛选的机制。

intent-filter相关的标记:

Intent到Intent过滤器的映射过程称为“Intent解析”

Intent解析的匹配规则

Android系统把所有应用程序包中的Intent过滤器集合在一起,形成一个完整的Intent过滤器列表;在Intent与Intent过滤器进行匹配时,Android系统会将列表中所有Intent过滤器的“动作”和“类别”与Intent进行匹配,任何不匹配的Intent过滤器都将被过滤掉。

没有指定“动作”的Intent过滤器可以匹配任何的Intent,但是没有指定“类别”的Intent过滤器只能匹配没有“类别”的Intent。

过程:

把Intent数据Uri的每个子部与Intent过滤器的标签中的属性进行匹配,如果标签指定了协议、主机名、路径名或MIME类型,那么这些属性都要与Intent的Uri数据部分进行匹配,任何不匹配的Intent过滤器均被过滤掉;如果Intent过滤器的匹配结果多于一个,则可以根据在标签中定义的优先级标签来对Intent过滤器进行排序,优先级最高的Intent过滤器将被选择

过滤器的例子:

xmlversion="1.0"encoding="utf-8"?

>

android="

package="cn.pdsu.IntentResolutionDemo" android:

versionCode="1" android:

versionName="1.0">

icon="@drawable/icon"android:

label="@string/app_name">

name=".IntentResolutionDemo"android:

label="@string/app_name">

name="android.intent.action.MAIN"/>

name="android.intent.category.LAUNCHER"/>

name=".ActivityToStart"android:

label="@string/app_name">

name="android.intent.action.VIEW"/>

name="android.intent.category.DEFAULT"/>

scheme="schemodemo"android:

host="cn.pdsu"/>

minSdkVersion="3"/>

1.广播消息:

了解广播消息的处理原理;掌握发送和接收广播消息的方法

Intent的另一种用途是发送广播消息。

不能超过5秒是广播的特点。

利用Intent发送广播消息,并添加了额外的数据,然后调用sendBroadcast()发生了广播消息的代码

StringUNIQUE_STRING="cn.pdsu.BroadcastReceiverDemo";

Intentintent=newIntent(UNIQUE_STRING);

intent.putExtra("key1","value1");

sendBroadcast(intent);

为了能够使应用程序中的BroadcastReceiver接收指定的广播消息,首先要在AndroidManifest.xml文件中添加Intent过滤器,声明BroadcastReceiver可以接收的广播消息

icon="@drawable/icon"android:

label="@string/app_name">

name=".BroadcastReceiverDemo"

android:

label="@string/app_name">

name="android.in

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1