android考试复习资料

android考试复习资料
android考试复习资料

Unit 4. Android 生命周期

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

前台进程

高优先级

中优先级

低优先级

可见进程

服务进程

后台进程

空进程

Android 组件

组件是可以调用的基本功能模块,Android 应用程序就是由组件组成的

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

Activity 是

Android 程序的呈现层,显示可视化的用户界面,Android 应用程序可以包含一个或多个Activity ,一般在程序启动后会呈现一个Activity 。

Service 用于没有用户界面,但需要长时间在后台运行的应用 BroadcaseReceiver 是用来接受并响应广播消息的组件

ContentProvider 是Android 系统提供的一种标准的共享数据的机制,应用程序可以通过ContentProvider 访问其他应用程序的私有数据,私有数据可以是存储在文件系统中的文件,也可以是SQLite 中的数据库

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

Activity 事件的回调函数: protected void onStart(); protected void onRestart(); protected void onResume(); protected void onPause(); protected void onStop();

protected void onDestroy(); Activity:

onCreate

onDestroy

onStart

onStop

onResume

onPause

onRestore InstanceState

onSave InstanceState

onRestart

活动生命周期可视生命周期全生命周期

1

2

3

45

6

7

89

Android 系统提供了两种调试工具LogCat 和DevTools ,用于定位、分析及修复程序中出现的错误

LogCat 程序调试原理

1.引入android.util.Log 包

2.使用Log.v(),Log.d(),Log.i(),Log.w() 和 Log.e()五个函数在程序中设置“日志点”

3.当程序运行到“日志点”时,应用程序的日志信息便被发送到LogCat 中

4.判断“日志点”信息与预期的内容是否一致

E.g. final static String TAG = "LOGCA T"; Log.v(TAG ,"Verbose");

DevTools 是用于调试和测试的工具,包括了一系列用户各种用途的小工具

Unit 5. Android 用户界面

? 常见的系统控件包括TextView 、EditText 、Button 、ImageButton 、Checkbox 、RadioButton 、

Spinner 、ListView 和TabHost

TextView :显示字符串,EditText 是一个具有编辑功能的TextView 相应的XML 文件:

android:layout_width="wrap_content" //wrap_content 表示TextView 的宽度只要能够包含所显示的字符串即可,若为fill_content 表示则表示控件宽度将等于父控件的宽度

android:layout_height="wrap_content" android:text="TextView01" >

Test.java:

TextView txv=(TextView)findViewByID(R.id.TextView01);

txv.setText("User:");

ImageButton:

将img1拷贝到/res/drawable文件夹下(R.java中自动更新)

imageButton.setImageResource(R.drawable.img1);

按钮响应点击事件:添加点击事件的监听器

imageButton.setOnClickListener(new View.OnClickListener()

{

public void onClick(View view)点击事件的回调函数

{

txv.setText("ImageButton按钮");

}

})

每个View仅可以注册一个点击事件的监听器,如果使用setOnClickListener()函数注册第二个点击事件的监听器,之前注册的监听器将被自动注销.

多个按钮注册到同一个点击事件的监听器上,代码如下:

Button.OnClickListener buttonListener = new Button.OnClickListener(){

@Override

public void onClick(View v) {

switch(v.getId()){

case R.id.Button01:

textView.setText("Button按钮");

return;

case R.id.ImageButton01:

textView.setText("ImageButton按钮");

return;

}

}};

button.setOnClickListener(buttonListener);

imageButton.setOnClickListener(buttonListener);

CheckBox和RadioButton:

怎样定义同组中的RadioButton?

XML中:

android:layout_width="wrap_content"

android:layout_height="wrap_content">

android:layout_width="wrap_content"

android:layout_height="wrap_content“

android:text="RadioButton01" >

android:layout_width="wrap_content"

android:layout_height="wrap_content“

android:text="RadioButton02" >

Test.java中:

RadioButton radioButton1 =(RadioButton)findViewById(R.id.RadioButton01); RadioButton.OnClickListener rblistener=new RadioButton.OnClickListener()

{

public void OnClick(View v)

{

//process;

}

};

radioButton1.setOnClickListener(rblistener);

Spinner:(similar to ComboBox)

Test.java:

Spinner spinner=(Spinner)findViewById(R.id.Spinner01);

Listlist=new ArrayList( );

list.add("item1");

list.add("item2");

ArrayAdapteradapter=new ArrayAdapter (

this,https://www.360docs.net/doc/0312165310.html,yout.simple_spinner_item, list ); //数组适配器能够将界面控件和底层数据绑定在一起

adapter.setDropDownViewResource(https://www.360docs.net/doc/0312165310.html,yout.simple_spinner_dropdown_item); spinner.setAdapter(adapter);

ListView:(垂直显示的列表控件)

ListView listv=(ListView)findViewById(R.id.ListView01);

Listlist=new ArrayList();

List.add("item1");

List.add("item2");

ArrayAdapter adapter=new ArrayAdapter

(this, https://www.360docs.net/doc/0312165310.html,yout.simple_list_item_1, list ); listv.setAdapter(adapter);

AdapterView.OnItemClickListener listvListener=new AdapterView.OnItemClickListener(){ public void onItemClick(AdapterView arg0, View arg1, int arg2, long arg3) { String msg =””;

textView.setText(msg);

}};

}

TabHost:实现多个分页之间的快速切换(Similar to TabControl)

有几个tabpage就建立几个xml

Test.java:

public class TabDemo extends TabActivity { //普通的都是extends Activity

// 与以往继承Activity不同,TabActivity支持内嵌多个Activity或View

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

TabHost tabHost = getTabHost(); //获得Tab标签页的容器

LayoutInflater.from(this).inflate(https://www.360docs.net/doc/0312165310.html,yout.tab1, tabHost.getTabContentView(),true);

//LayoutInflater将tab1.xml文件中的布局转换为Tab标签页可以使用的View对象LayoutInflater.from(this).inflate(https://www.360docs.net/doc/0312165310.html,yout.tab2,tabHost.getTabContentView(),true);

LayoutInflater.from(this).inflate(https://www.360docs.net/doc/0312165310.html,yout.tab3,tabHost.getTabContentView(),true);

tabHost.addTab(tabHost.newTabSpec("TAB1")

.setIndicator("线性布局").setContent(https://www.360docs.net/doc/0312165310.html,yout01));

//使用addTab()函数在tabHost上添加了第1个标识为"TAB1"的分页

tabHost.addTab(tabHost.newTabSpec("TAB2")

.setIndicator("绝对布局").setContent(https://www.360docs.net/doc/0312165310.html,yout02));

tabHost.addTab(tabHost.newTabSpec("TAB3")

.setIndicator("相对布局").setContent(https://www.360docs.net/doc/0312165310.html,yout03));

}

界面布局:

声明Android程序的界面布局有两种方法:

使用XML文件描述界面布局

在程序运行时动态添加或修改界面布局

用户既可以独立使用任何一种声明界面布局的方式,也可以同时使用两种方式

使用XML文件声明界面布局的特点:

将程序的表现层和控制层分离

在后期修改用户界面时,无需更改程序的源代码

可视化界面加快设计

线性布局LinearLayout:

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

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

框架布局FrameLayout

表格布局TableLayout:

添加行为TableRow

android:layout_width="fill_parent"

android:layout_height="fill_parent"

xmlns:android="https://www.360docs.net/doc/0312165310.html,/apk/res/android">

android:layout_width="wrap_content"

android:layout_height="wrap_content">

相对布局(RelativeLayout):

e.g.

android:layout_below="@id/label"

android:layout_alignParentRight="true"

android:layout_toLeftOf="@id/cancel"

android:layout_alignTop="@id/cancel"//声明与ID为cancel的元素在相同的水平位置

绝对布局(AbsoluteLayout)

android:layout_x="40dip"

android:layout_y="40dip"

菜单:

Android系统支持三种菜单:

选项菜单(Option Menu)

子菜单(Submenu)

快捷菜单(Context Menu)

选项菜单

分为图标菜单(Icon Menu)& 扩展菜单(Expanded Menu)。

图标菜单能同时显示文字和图标的菜单,最多支持6个子项,但不支持单选框和复选框扩展菜单是在图标菜单子项多余6个时才出现,是垂直的列表型仅有文字菜单

重载Activity的onCreateOptionMenu()函数,才能在Android应用程序中使用选项菜单public boolean onCreateOptionsMenu(Menu menu){

menu.add(0,MENU_DOWNLOAD,0,"下载设置");//MENU_DOWNLOAD=1 //MenuItem android.view.Menu.add(int groupId, int itemId, int order, CharSequence title) menu.add(0,MENU_DOWNLOAD,0,"下载设置").setIcon(R.drawable.download);

.setShortcut(’,’d’);//快捷键

return true;

}

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

E.g.

下面的代码是在用户每次打开选项菜单时,在菜单子项中显示用户打开该子项的次数public boolean onPrepareOptionsMenu(Menu menu){

MenuItem uploadItem = menu.findItem(MENU_UPLOAD);

uploadItem.setTitle("上传设置:" +String.valueOf(MenuUploadCounter));

return true;

}

onOptionsItemSelected ()函数能够处理菜单选择事件,且该函数在每次点击菜单子项时都会被调用

public boolean onOptionsItemSelected(MenuItem item){

switch(item.getItemId()){//获取到被选择菜单子项的ID

case MENU_DOWNLOAD:

MenuDownlaodCounter++;

return true;

case MENU_UPLOAD:

MenuUploadCounter++;

return true;

}

return false;

}

子菜单

子菜单不支持嵌套,添加是使用addSubMenu()函数实现

SubMenu uploadMenu = (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");

快捷菜单

选项菜单中的onCreateOptionsMenu()函数仅在选项菜单第一次启动时被调用一次

快捷菜单的onCreateContextMenu()函数每次启动时都会被调用一次

菜单选择事件的处理需要重载onContextItemSelected()函数,该函数在用户选择快捷菜单中的菜单子项后被调用,与onOptionsItemSelected ()函数的使用方法基本相同

菜单在XML中的实现:

界面事件

按键事件将传递给onKey()函数进行处理

触摸事件将传递给onTouch()函数进行处理

是否继续传递事件给其他处理函数是由事件监听器处理函数的返回值决定的,取决于监听处理函数返回值。

按键事件:

entryText.setOnKeyListener(new OnKeyListener(){

@Override

public boolean onKey(View view, int keyCode, KeyEvent keyEvent) {

int metaState = keyEvent.getMetaState();

int unicodeChar = keyEvent.getUnicodeChar();

String msg = "";

msg +="按键动作:" + String.valueOf(keyEvent.getAction())+"\n";

msg +="按键代码:" + String.valueOf(keyCode)+"\n";

msg +="按键字符:" + (char)unicodeChar+"\n";

msg +="UNICODE:" + String.valueOf(unicodeChar)+"\n";

msg +="重复次数:" + String.valueOf(keyEvent.getRepeatCount())+"\n";

msg +="功能键状态:" + String.valueOf(metaState)+"\n";

msg +="硬件编码:" + String.valueOf(keyEvent.getScanCode())+"\n";

msg +="按键标志:" + String.valueOf(keyEvent.getFlags())+"\n";

labelView.setText(msg);

if (checkBox.isChecked())

return true;

else

return false;

}

触摸事件:

重载onTouch ()函数

touchView.setOnTouchListener(new View.OnTouchListener(){

@Override

public boolean onTouch(View v, MotionEvent event) {

//过程代码……

return true/false;

})

TextView touchView = (TextView)findViewById(R.id.touch_area);

touchView.setOnTouchListener(new View.OnTouchListener(){

@Override

public boolean onTouch(View v, MotionEvent event) {

int action = event.getAction();

switch (action) {

case (MotionEvent.ACTION_DOWN):

...break;

case (MotionEvent.ACTION_UP):

...break;

case (MotionEvent.ACTION_MOVE):

...break;

}

return true;

}

});

Unit6 组建通信与广播消息

简述Intent的定义和用途。

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

Intent的用途:

1.启动Activity和Service

2.在Android系统上发布广播消息

Intent可以实现不同Activity之间的切换和数据传递

启动Activity方式:

显式启动,必须在Intent中指明启动的Activity所在的类

Intent intent = new Intent(IntentDemo.this, ActivityToStart.class);

startActivity(intent);

AndroidManifest.xml中注册这两个Activity:

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

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.360docs.net/doc/0312165310.html,"));

startActivity(intent);

如果需要将子Activity的部分信息返回给父Activity(先启动的),则可以使用Sub-Activity的方式去启动子Activity(后启动的)

E.g.

父Activity:

setContentView(https://www.360docs.net/doc/0312165310.html,yout.main);

btn1.setOnClickListener(new OnClickListener()//注册子启动Intent方式到btn1

{

Public void onClick(View v)

{

Intent intent = new Intent(ActivityComunication.this,SubActivity1.class);

//第一个参数为当前应用程序上下文

startActivityForResult(intent,Sub_index1);

}

})

Protected void onActivityResult(int requestCode, int resultCode, Intent data)

//当子Activity关闭时,启动它的父Activity的onActivityResult()函数将被调用;{

super.onActivityResult(requestCode,resultCode,data);

switch(requestCode){//检测是哪个Intent发回来的

case Sub_index1:

if(resultCode==RESULT_OK)

{

Uri uriData=data.getData();

textView.setText(uriData.toString());

}

break;

case Sub_index2:

break;

}

SubActivity1.java中:

setContentView(https://www.360docs.net/doc/0312165310.html,yout.subactivity1);

btnOK.setOnClickListener(new OnClickListener()

{

public void onClick(View view){

String uriString = editText.getText().toString();

Uri data = Uri.parse(uriString);

Intent result = new Intent(null, data);

setResult(RESULT_OK, result);

//将Intent作为返回值,RESUIT_OK作为结果码,传递给父Activity

finish(); //关闭当前的子Activity

}

SubActivity2.java中:

btnReturn.setOnClickListener(new OnClickListener(){

public void onClick(View view){

setResult(RESULT_CANCELED, null);

finish();

}

});

简述Intent过滤器的定义和功能。

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

Function: Intent过滤器可以匹配数据类型、路径和协议,还包括可以用来确定多个匹配项顺序的优先级(Priority)

应用程序的Activity组件、Service组件和BroadcastReceiver都可以注册Intent过滤器,则这些组件在特定的数据格式上就可以产生相应的动作

3.简述Intent解析的匹配规则。

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

Intent解析可以在所有的组件中,找到一个可以与请求的Intent达成最佳匹配的Intent 过滤器

Intent解析的匹配规则:

1.Android系统把所有应用程序包中的Intent过滤器集合在一起,形成一个完整的Intent过滤器列表

2.在Intent与Intent过滤器进行匹配时,Android系统会将列表中所有Intent过滤器

的“动作”和“类别”与Intent进行匹配,任何不匹配的Intent过滤器都将被过滤掉。

3.把Intent数据Uri的每个子部与Intent过滤器的标签中的属性进行匹配.

4.如果Intent过滤器的匹配结果多于一个,则可以根据在标签中定义的

优先级标签来对Intent过滤器进行排序,优先级最高的Intent过滤器将被选择.

Unit8. 数据存储与访问

简单存储

SharedPreferences是一种轻量级的数据保存方式

通过SharedPreferences可以将NVP(Name/Value Pair,名称/值对)保存在Android 的文件系统中,而且SharedPreferences完全屏蔽的对文件系统的操作过程

SharedPreferences支持三种访问模式:私有、全局读、全局写

读写都用getSharedPreferences()函数

public static final String PREFERENCE_NAME = "SaveSetting";

public static int MODE = Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE;//读&写

SharedPreferences sharedPreferences = getSharedPreferences(PREFERENCE_NAME, MODE);

//写

SharedPreferences.Editor editor = sharedPreferences.edit();

editor.putString("Name", "Tom");

editor.putInt("Age", 20);

editor.putFloat("Height", );

https://www.360docs.net/doc/0312165310.html,mit();

//读

String name = sharedPreferences.getString("Name","Default Name");

int age = sharedPreferences.getInt("Age", 20);

float height = sharedPreferences.getFloat("Height",);

//第二个值是缺省值

SharedPreferences文件就保存在/data/data//shared_prefs目录下

数据库中信息以xml格式存储

文件存储

内部存储

1.openFileOutput()

2.openFileInput()

外部存储

Android的外部存储设备指的是SD卡(Secure Digital Memory Card),是一种广泛使用于数码设备上的记忆卡

SD卡使用的是FAT(File Allocation Table)的文件系统,不支持访问模式和权限控制使用/tools目录下的mksdcard工具创建SD卡映像文件

资源文件

将原始格式文件和XML文件分别存放在/res/raw和/res/xml目录下,供应用程序在运行时进行访问

E.g. 读取/res/raw/raw_file.txt文件,并将内容显示在界面上

inputStream = resources.openRawResource(R.raw.raw_file);

byte[] reader = new byte[inputStream.available()];

while (inputStream.read(reader) != -1){

displayView.setText(new String(reader,"utf-8"));

};

E.g. 读取XML格式文件

XmlPullParser parser = resources.getXml(R.xml.people);

String msg = "";

try {

while (parser.next() != XmlPullParser.END_DOCUMENT) {

String people = parser.getName();

String name = null;

String age = null;

String height = null;

if ((people != null) && people.equals("person")) {

int count = parser.getAttributeCount();

for (int i = 0; i < count; i++) {

String attrName = parser.getAttributeName(i);

String attrValue = parser.getAttributeValue(i);

if ((attrName != null) && attrName.equals("name")) {

name = attrValue;

} else if ((attrName != null) && attrName.equals("age")) {

age = attrValue;

} else if ((attrName != null) && attrName.equals("height")) {

height = attrValue;

}

}

if ((name != null) && (age != null) && (height != null)) {

msg += "姓名:"+name+",年龄:"+age+",身高:"+height+"\n";

数据库存储---SQLiteDatabase

代码建库:

重载onCreate() & onUpgrade(), 不由程序开发人员调用,由SQLiteOpenHelper类决定何时调用。

SQLiteDatabase提供了SQLiteOpenHelper类提供对数据库的操作(就不用手写sql语句了)在Android系统中,数据库查询结果的返回值并不是数据集合的完整拷贝,而是返回数据集的指针,这个指针就是Cursor类

private People[] ConvertToPeople(Cursor cursor){

int resultCounts = cursor.getCount();

if (resultCounts == 0 || !cursor.moveToFirst()){

return null;

}

People[] peoples = new People[resultCounts];

for (int i = 0 ; i

peoples[i] = new People();

peoples[i].ID = cursor.getInt(0);

peoples[i].Name = cursor.getString(cursor.getColumnIndex(KEY_NAME));

peoples[i].Age = cursor.getInt(cursor.getColumnIndex(KEY_AGE));

peoples[i].Height = cursor.getFloat(cursor.getColumnIndex(KEY_HEIGHT));

cursor.moveToNext();

}

return peoples;

}

数据分享ContentProvider

ContentProvider(数据提供者)是在应用程序间共享数据的一种接口机制

调用者不能够直接调用ContentProvider的接口函数,而需要使用ContentResolver对象,通过URI间接调用ContentProvider。

在使用者看来,数据提供者通过ContentProvider提供了一组标准的数据操作接口,却无法得知数据提供者的数据存储方法。

URI是通用资源标志符(Uniform Resource Identifier),用来定位任何远程或本地的可用资源

程序开发人员通过继承ContentProvider类可以创建一个新的数据提供者,过程可以分为三步:

继承ContentProvider,并重载六个函数(增改删查之类的)

声明CONTENT_URI,实现UriMatcher(判断URI是单条数据or多条数据)

注册ContentProvider(在AndroidManifest.xml文件中进行注册授权名)

windowsXP下Android安卓开发环境搭建详细教程及图解

注:本教程是讲解在Windows XP下搭建安卓开发环境的。 安装目录: 步骤1 安装JDK 步骤2 安装Android SDK 步骤3 安装Tomcat 步骤4 安装Ant 步骤5 安装Eclipse 步骤6 安装Eclipse的ADT插件 步骤7 在图形界面下管理AVD 步骤8 设置Android系统语言 本教程的软件可以从我博客“绿杨芳草”下载。 方法/步骤 1、安装JDK 运行安装程序【jdk-6u22-windows-i586-p.exe】,分别点击下一步进行安装。 在安装过程中先后会出现两次选择安装目录的界面,全部改为以下路径: jdk安装目录:C:\Java\jdk1.6.0_22 jre安装目录:C:\Java\jre6\

安装好之后,配置环境变量: 打开环境变量窗口方法:右键【我的电脑】--单击【属性】--单击【高级】--单击【环境变量】。 在上方的用户变量中依次新建如下变量,并分别填入如下路径: 变量名:JAVA_HOME 变量值:C:\Java\jdk1.6.0_22 变量名:PATH 变量值:%JAVA_HOME%/bin 变量名:CLASSPATH 变量值:.;%JAVA_HOME%/lib/tools.jar;%JAVA_HOME%/lib/dt.jar 图1 配置完成之后,分别点击【开始】--【运行】--输入【cmd】--输入【javac】--按【回车键】,若看到以下信息,则代表配置成功。

图2 2、安装Android SDK 将【android-sdk_r17-windows.zip】解压到E:\Android目录下(Android目录自己新建,以后所有关于Android开发相关软件都会统一放到该目录中),得到一个android-sdk-windows 文件夹,该文件夹包含如下文件结构: add-ons:该目录下存放额外的附件软件。刚解压后,该目录为空。 platforms:该目录下存放不同版本的Android版本。刚解压后,该目录为空。 tools:该目录下存放了大量Android开发、调试的工具。 SDK Manager.exe:该程序就是Android SDK和AVD(Android虚拟设备)管理器。 通过该工具可以管理Android SDK和AVD。 运行E:\Android\android-sdk-windows目录下的【SDK Manager.exe】 然后等待更新...(该步骤必须联网,因为SDK安装包需要在线获取)。 在更新的过程中若遇到如下的提示窗口:

Android期末考试复习试卷(仅供参考)

一、选择题(20分,每小题2分) 1、下列不是手机操作系统的是( D )。 A Android B Window Mobile C Apple IPhone IOS D Windows Vista 2、下列选项哪个不是 Activity 启动的方法(B ) A startActivity B goToActivity C startActivityForResult D startActivityFromChild 3、下列哪个不是 Activity 的生命周期方法之一(B ) A onCreate B startActivity C onStart D onResume 4、下列哪个可做 Android 数据存储(A ) A SQlite B M ySql C Oracle D DB2 5、下列哪个可做EditText编辑框的提示信息( D ) A android:inputType B android:text C android:digits D android:hint 6、Math.ceil(99.1) 的结果是(B ) A 99 B 100 C 99.1 D 99.0 7、android 中下列属于Intent的作用的是(C) A实现应用程序间的数据共享 B是一段长的生命周期,没有用户界面的程序,可以保持应用在后台运行,而不会因为切换页面而消失 C可以实现界面间的切换,可以包含动作和动作数据,连接四大组件的纽带 D处理一个应用程序整体性的工作 8、关于 res/raw 目录说确的是A A这里的文件是原封不动的存储到设备上不会转换为二进制的格式 B这里的文件是原封不动的存储到设备上会转换为二进制的格式 C这里的文件最终以二进制的格式存储到指定的包中 D这里的文件最终不会以二进制的格式存储到指定的包中 9、Math.round(11.5)等于多少(). Math.round(-11.5)等于多少( C) A 11 ,-11 B 11 ,-12 C 12 ,-11 D 12 ,-12 10、我们都知道Hanlder是线程与Activity通信的桥梁,如果线程处理不当,你的机器就会变得越慢,那么线程销毁的方法是(A ) A onDestroy() B onClear() C onFinish() D onStop() 二、填空题(10 分,共10 题,每空1 分) 1、为了使 android 适应不同分辨率机型,布局时字体单位应用( sp ),像素单位应用( sp )和(dip ) 2、定义 LinearLayout 水平方向布局时至少设置的三个属性: ( android:orientation), (android:layout width)和(android:layout height)

(完整word版)AndroidAPP开发期末复习资料

1.短信的内容提供者是() A. ContactProvider B. MessageProvider C. SmsProvider D. TelephonyProvider 2.以下是Android中用于xml解析方式的是()。 A. SAX B. DOM C. XmlPullParser D. Juint 3.下列选项中,关于Bitmap类描述正确的是()。 A. Bitmap类表示画 B. Bitmap类代表画布 C. Bitmap类是最常用的绘图类 D. Bitmap类表示位图工厂 4.Dalvik虚拟机是基于()的架构。 A.栈 B.堆 C. 寄存器 D. 存储器 5.在Android UI开发中,常见的刮刮卡是通过()实现的。 A.FrameLayout B.LinearLayout C.RelativeLayout D.TableLayout 6.注册一个短信到来的广播事件需要在清单文件配置什么权限()。 A. B. C. D. 7.关于服务的创建说法错误的是()。 A. Android中创建服务需要继承Service类 B. Android 中的服务需要在清单文件配置。

Android期末测试题(附带答案)

一、选择题 1、下列哪项不是Android四大组件( C ) A.Seivice B. Activity C. Handler D. Content Provider 2、Android是如何组织Activity的( B ) A.以堆的方式组织Activity B. 以栈的方式组织Activity C. 以树形方式组织Activity D. 以链式方式组织Activity 3、关于线程说法不正确的是( B ) A. 在 android 中,我们可以在主线程中,创建一个新的线程 B. 在创建的新线程中,它可以操作 UI 组件 C. 新线程可以和 Handler 共同使用 D. 创建的 Handler 对象,它隶属于创建它的线程 4、下列关于内存回收的说明,哪个是正确的(B ) A.程序员必须创建一个线程来释放内存 B.内存回收程序负责释放无用内存 C.内存回收程序允许程序员直接释放内存 D.内存回收程序可以在指定的时间释放内存对象 5、设置xml布局文件中的字体大小一般用什么单位( c ) A.dp B. px C. sp D. pt 6、关于service生命周期的onCreate()和onStart()说法正确的是( D ) A.当第一次启动的时候先后调用onCreate()和onStart()方法 B.当第一次启动的时候只会调用onCreate()方法 C.如果service已经启动,将先后调用onCreate()和onStart()方法 D.如果service已经启动,只会执行onStart()方法,不再执行onCreate()方法 7、Android项目工程下面的assets目录,以下说法正确的是( A ) A.这里的文件是原封不动的存储到设备上不会转换为二进制的格式 B.主要放置多媒体等数据文件 C.主要放置图片文件 D.放置字符串,颜色,数组等常量数据 8、在android中使用SQLiteOpenHelper这个辅助类,生成一个可操作的数据库,调用的方法是( A )A.getReadableDatabase() B.getDatabase() C.getEnbleDatabase() D.createDateBase() 9、Activity从可见状态变为半透明遮盖状态时,生命周期中哪个方法被调用( B )

Android应用程序开发个人总结

Android应用程序开发个人总结 Android应用程序开发个人总结范文 篇一:Android应用程序开发-个人总结 一、项目简介: 送祝福App是一款逢年过节为方便发送祝福信息的软件,并且介绍各种节日的相关情况。包含节日祝福短信,支持直接发送短信给好友,也可定时发送给好友,编写模版。为生活提供了便利。 二、个人在项目中承担的任务: 我是任务是整合成员负责的模块,把各个模块整合到一起,然后把主界面的效果做出来,主界面参考的是微信的界面 三、学习本门课程收获、体会及建议: 在本门课程中,我初步认识了安卓应用开发所需基本知识,比如安装体系结构,常用的控件以及API的使用方法,知道了安卓体系存储数据的方式。这一学期,安卓相关的知识自己掌握的不多,不过也透过安卓课程看到移动端应用的火热。这一个学期里,老师讲得比较细,自己单独下来练一个知识点了,也可以,不过当几个知识点的内容整合到一起,自己就凌乱了,自己的思路就不清晰。在期末项目中,我是任务是整合成员负责的模块,把各个模块整合到一起,然后把主界面的效果做出来,主界面参考的是微信的界面,由于时间和能力的限制,只完成了部分功能,功能没有完全实现。 篇二:Android程序员-201*年度个人工作总结和计划

逝者如斯夫,不舍昼夜!转眼间,自己在XX网里参加工作已经有一年有余了。回首即将逝去的201*年,可以说是平淡而不普通的一年,发现自己在各方面都比上一年有所进步、提高。一年的结束孕育着新一年的到来,新的一年意味着新的起点、新的挑战。昂首期待未来,总结以往经验。在新一年来临之际,我现把这一年的工作总结一下以及将新一年计划列一下。 大概3月份左右,XXXXApp第一期基本开发完成比较稳定的版本。在此之前,我主要负责参考XXXXApp的Android客户端的开发工作。XXXX第一期开发的难度系数相对比较低,开发起来还是相对的容易,所学到的基础知识基本上可以开发出来。我个人认为当时的开发效率还是比较低的,这里说的是整个项目的开发效率,不是个人负责工作的完成效率,换句话来说是团队的整体开发效率不高,没有达到高效。这个也许是团队协调与沟通交流还存在不足的地方。XXXXApp实际上基本可以满足用户的使用(表面),但是项目的代码管理(本质)比较杂乱、扩展性差、健壮性也不错、兼容性也不算好。这无疑导致开发的工作量大大的增加。产生这些问题的原因有团队的项目开发经验缺乏,有自己个人的开发水平有限、技能不足。简言之,我的专业技能还不够强。 在3月份之前,公司聘请了外包团队与我们的团队一起开发问答App。公司的目的培训公司的团队,让我们学习外包团队的技能。在外包团队的参与和指导下问答App开发工作相当顺利,团队的分工清晰、交流充分、协调都比较好。问答App的工作接近尾声,意味着XXX

Android 复习题+答案

1.可以开启SD卡访问权限的设置 2.在Android项目中,哪个文件用于存放布局文件res下layout文件夹 3.如果手机内存不足,操作系统会选择杀死onstop被调用即 Activity被停止或处于后台状态下的Activity以释放更多的内存空间 4.属性android:layout_toLeftOf是哪种布局管理器所特有相对布局 5.ListView是Android中常用的列表控件,给ListView填充数据可 以采用适配器,适配器不能直接使用,需要自定义类继承的是答案? 6.TextView控件的属性android:textAppearance规定文字的显示方 式,其中用于显示大号字体的属性值是 ?android:attr/textAppearanceLarge 7.Android中的进度条有两种样式:环形和水平,如果要设置为水平 进度条需要给属性style赋值 ?android:progressBarStyleHorizontal 8.在TableLayout布局管理器的属性中,能够实现设置可伸展的列, 伸展后使得该行元素充满整行的是android:strechColumns=”0” 9.在Android常用的布局管理器中,每次只能呈现一个控件的布局 管理器是帧布局FrameLayout 10.在Android项目中,哪个文件夹用于存放位图文件assets 11.Android常用的图片资源中,不包括哪种格式的图片bmp位图 12.SharedPreferences可以将数据以xml文件的形式保存在手机

(完整版)Android应用开发期末考试题

试题 一、选择题 1 android虚拟设备的缩写是(AVD) 2 Android SDK目前支持的操作系统(DOS) 3 Android开发工具插件(ADT)没有提供的开发功能(自动更新) 4Android SDK提供一些开发工具可以把应用软件打包成Android格式文件(APK) 5 Android当中基本的所有的UI都是由(view)或者其子类实现的 6以下不是Android中调试项目的正确步骤(测试用例) 7下列不是Activity的生命周期方法之一的是(OnResume) 8以下可以做EditText编辑框的提示信息是(adroid:hint) 9以下不是Activity启动的方法是(gotoActivity) 10以下不是手机操作系统的是(windows vista) 二、填空题 1 Android平台由操作系统,中间件,用户界面和应用软件组成的。 2 Android平台提供了2D,3D的图形支持,数据库支持SQLite,并且集成了浏览器 3目前已知的可以用来搭建Android开发环境的系统有windows,Linux,Mac 等4开发中推荐使用的IDE开发组合为IDE,eclipse,ADI来开发 5 Android SDK主要以java语言为基础 6创建工程时需要填写的信息名称有工程名,包的名字,Activity的名字还有应用的名字

7 Android.jar是一个标准的压缩包,其内容包含的是编译后的class,包含了全部的API 三、简答题 1 Android SDK中API的包结构的划分?至少五个 android.util,android.os,android.content,android.view,android.graphics,android.text 2 Android软件框架结构自上而下可分为哪些层? 应用程序(Application)、应用程序框架(Application Framework)、各种库(Libraries)和Android运行环境(RunTime)、操作系统层(OS) 3 Android应用程序的4大组件是什么? Activity、Broadcast Intent Receiver、Service、Content Provider 4 Android应用工程文件结构有哪些? 源文件(包含Activity),R.java文件,Android Library,assets目录res目录,drawble目录,layout目录,values目录,AndroidManifest.xml 5 Android开发应用程序最有可能使用到的应用框架部分是哪些? 一组View(UI)组件,Content Providers,Resource Manger,Notification Manger,Activiy Manger 6 Android底层库包含哪些? 系统C库,媒体库,Surface Manager,LibWebCore,SGL 四、编程 1实现点击一个按钮,结束当前Activity并将需要返回的数据放置并关闭当前窗体请编写核心代码 Bundle bundle = new Bundle ( ); Bundle.putString(“store”,”数据来自Activity1”) ;

安卓android课程设计报告

安卓a n d r o i d课程设计 报告 Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998

湘潭大学课程设计报告课程名称______手机安卓开发_______ 课题名称______天气预报APP_______指导老师______周唯___________ 姓名____黄柳________ 班级____12计2班________ 小组______棒棒糖_______ 时间____2015年1月26 日_____ 一、需求分析 (一)引言 1.编写目的 1.1 为用户提供一个显示天气预报的软件,可以根据百度地图显示用户需求的城 市位置,以及用图标表示各城市对应的气象信息,可以简洁的表示出“晴、 雨、雪”和“气温”气象信息。 2. 项目风险 2.1 (项目风险识别是指找出影响项目目标顺利实现的主要风险因素,并识别出 这些风险究竟有哪些基本特征、可能会影响到项目的那些方面。) 2.2 联网收费视用户电话运营商的收费标准决定 2.3 手机或者无线信号不好时,可能无法连接或更新天气情况 3. 预期读者和阅读建议 3.1 预期读者:会使用已经安装安卓系统的手机或者平板电脑及其他移动设备的 用户 3.2 阅读建议:读者应通过该文档可以了解相关项目的需求分析、使用注意事项 以及可能存在的风险 4. 产品范围 2.2手机,平板电脑,MP4,导航仪,上网本,电纸书等使用安卓系统的数码领 域 (二)综合描述 1.产品的状况

1.1 Android是一种以Linux为基础的开放源代码操作系统,主要使用于便携设 备。目前未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。 Android操作系统最初由Andy Rubin开发,最初主要支持手机。2005年由 Google收购注资,并组建开放手机联盟开发改良,逐渐扩展到平板电脑及 其他数码领域上。我们开发的相关项目正是一个在安卓平台上开发的软件, 可以用这个软件来实现用户在一些简单的手持设备如手机或者平板电脑等上 面及时的了解到用户所在城市的天气预报。 2. 产品的功能 2.1 天气信息获取 2.2 天气信息显示 3. 系统配置功能 3.1 用户类和特性 安卓平台用户:安卓新用户可以使用软件来了解用户所在城市的天气预报。熟悉安卓平台用户还可以选择对相关软件的系统按自己的喜好进行配置并保留自己的个性化系统配置。 安卓软件开发者:安卓软件开发者(喜好者)可以通过相关的开源代码来了解软件运行的原理。 3.2 运行环境 软件需要在支持安卓系统的可移动设备中正确安装才能正常运行。安卓版本需在及以上,同时建议用户如果是在手机移动设备使用的话,需确保手机支持联网服务。 3.3 设计和实现上的限制 Eclipse是开发相关应用软件的首选集成开发环境,安卓开发环境首先需要安装支持java应用软件运行的java开发软件包(即JDK),然后安装集成开发环境Eclipse,最后安装Android SDK的Eclipse的ADT插件。 Android SDK和Eclipse的ADT插件是必须使用的。 软件支持高效、快速的数据存储方式,包括快速数据存储方式SharedPreferences、文件存储和轻量级关系数据块SQLite,可软件可以使用适合的方法对数据进行进程保存和访问。 3.4 假设和约束(依赖) 软件必须在安卓系统下才可以正常运行,若需要获取天气更新或者是短信服务,需确保用户的数码设备支持联网及短信服务。 (三) 外部接口需求 1 用户的手机设备可以支持联网。 2 用户界面 3 软件接口 软件提供轻量级的进程间通信机制Intent,实 现跨进程组件通信。 4 访问硬件的API库函数通讯接口 4.1 HTTP 协议:有多种接口可以调用 你可以用Java类库封装的 HttpConnection 或者用Apach的开 源项目的 HttpGet 或者HttpPost ,

android考试复习资料

Unit 4. Android 生命周期 Android 系统中的进程优先级由高到低 前台进程 高优先级 中优先级 低优先级 可见进程 服务进程 后台进程 空进程 Android 组件 组件是可以调用的基本功能模块,Android 应用程序就是由组件组成的 Android 系统有四个重要的组件,分别是Activity 、Service 、BroadcaseReceiver 和ContentProvider Activity 是 Android 程序的呈现层,显示可视化的用户界面,Android 应用程序可以包含一个或多个Activity ,一般在程序启动后会呈现一个Activity 。 Service 用于没有用户界面,但需要长时间在后台运行的应用 BroadcaseReceiver 是用来接受并响应广播消息的组件 ContentProvider 是Android 系统提供的一种标准的共享数据的机制,应用程序可以通过ContentProvider 访问其他应用程序的私有数据,私有数据可以是存储在文件系统中的文件,也可以是SQLite 中的数据库 Activity 表现为四种状态,分别是活动状态、暂停状态、停止状态和非活动状态 Activity 事件的回调函数: protected void onStart(); protected void onRestart(); protected void onResume(); protected void onPause(); protected void onStop();

protected void onDestroy(); Activity: onCreate onDestroy onStart onStop onResume onPause onRestore InstanceState onSave InstanceState onRestart 活动生命周期可视生命周期全生命周期 1 2 3 45 6 7 89 Android 系统提供了两种调试工具LogCat 和DevTools ,用于定位、分析及修复程序中出现的错误 LogCat 程序调试原理 1.引入android.util.Log 包 2.使用Log.v(),Log.d(),Log.i(),Log.w() 和 Log.e()五个函数在程序中设置“日志点” 3.当程序运行到“日志点”时,应用程序的日志信息便被发送到LogCat 中 4.判断“日志点”信息与预期的内容是否一致 E.g. final static String TAG = "LOGCA T"; Log.v(TAG ,"Verbose"); DevTools 是用于调试和测试的工具,包括了一系列用户各种用途的小工具 Unit 5. Android 用户界面 ? 常见的系统控件包括TextView 、EditText 、Button 、ImageButton 、Checkbox 、RadioButton 、 Spinner 、ListView 和TabHost TextView :显示字符串,EditText 是一个具有编辑功能的TextView 相应的XML 文件:

Android开发实战中常用安卓开发框架

Android是基于Linux平台的开源移动操作系统,主要适用于移动设备,如智能手机和平板电脑(当然现在已经适用车控应用了),由Google公司和开放手机联盟领导及开发。不完全统计,Android平台手机的全球市场份额已经达到80%,本文介绍了android开发者实战中最喜欢使用的几种Android开发框架。 1) Corona SDK Corona SDK是一个跨平台技术的工具,它利用Lua开发脚本,从一个特定的移动操作系统开发应用。应用程序可以在模拟器中测试,然后编译为Android的本机代码。同时Corona SDK 还支持与Map、Facebook、OpenFient、GameCenter的集成。然而在编译项目时,程序员需要把代码上传到Corona的服务器上去编译,不能在本地直接编译。 2) Phonegap Phonegap是一款开源的开发框架,旨在让开发者使用HTML、Java、CSS等Web APIs开发跨平台的移动应用程序。它需要特定平台提供的附加软件,例如iPhone的iPhone SDK,Android的Android SDK等,也可以和DW5.5及以上版本配套开发。使用PhoneGap比为每个平台分别建立应用程序稍好一些,因为虽然基本代码是一样的,但是程序员仍然需要为每个平台分别编译应用程序。 3) Xamarin Xamarin 始创于2011年,旨在使移动开发变得难以置信地迅捷和简单。Xamarin的产品简化了针对多种平台的应用开发,包括iOS、Android、Windows Phone和Mac App。Xamarin 由许多著名的开源社区开发者创立和参与,而且也是Mono项目的主导者——C#与?NET框架的开源、跨平台实现。 而这其中Xamarin Studio就是一个用C#语言开发跨平台应用的集成开发环境,它和iOS 以及Android SDK紧密整合。Xamarin Studio提供了很多现代开发所需功能,包括代码完成、调试器、打包和发布应用(支持通过TestFlight发布应用程序)。对于Android,Xamarin还包含了自己的UI生成器(对于iOS,则使用苹果Xcode的UI生成器),此外还集成了Git和Subversion。Android开发者可以使用Xamarin Studio在模拟器和真机上对移动应用进行测试和bug调试。 4) Sencha Touch 2 Sencha Touch是由Sencha公司开发的移动Web应用开发框架,用以提升主流移动设备在浏览器上的触碰操作,增强用户体验。该框架以久负盛名的Ext JS富客户端框架为基础,并支持最新的HTML5及CSS3标准,与流行的Apple iOS和Andriod设备兼容。一方面,它以Webkit浏览器引擎为基础,提供了出色的性能和用户体验;另一方面,它提供了基于GPL V3许可的开源版本和详尽的API文档,体现了良好的开放性和易用性。因此,该框架可帮助移动应用开发人员提升开发效率,从而创造出更多富有创意的移动应用。 5) Appcelerator Appcelerator是一个构建基于SOA的RIA应用的全集成平台,用来构建富应用、交互式的网站和应用程序。Appcelerator应用的语言——Web Expression Language,是一种对HTML 的扩展,它采用直观、声明的方法来构建动态的web应用。

安卓实训总结报告

安卓实训总结报告 安卓实训的总结与体会【1】 不知不觉中为期三周的实训已经接近尾声。 虽然时间很短,不过我确实学到了一些我觉得有用的东西,并且是平时上课学不到的东西。 三周的实训,时间很短,确实很短。 原本刚开始,乃至之前听说有为期三周的实训的时候,都觉得,这样的实训不过就是走过场罢了,只有三周的时间,能学到什么东西呢?所以一开始也没当回事。 就这样,带着这样的心态,开始了实训。 安卓实训。 因为第一天周一上午没有课,下午,才算是正式开始了三周的实训。 一开始听老师讲课的时候,感觉很舒服啊,噼里啪啦一讲一堆,不过我就喜欢这样的,听着爽啊。 平时老师上课的时候都是讲一句顿一顿,或者一句话反复琢磨半天,这样的话,虽然老师的出发点是好的,是为了让学生更容易理解,但这样的话,教学的整体进度就下来了。 而且就算是一个知识点反复讲,也不见得能就精通了这个东西,或者说对这个有多么理解。 反而容易让学生产生一种懈怠的情绪。 一、第一件事:说话做事要有真凭实据

而这样一开始,老师就给我一种耳目一新的感觉:这老师上课带劲啊!不过也就仅此而已了。 老师花了一下午的时间着重介绍了老师所在的公司,以及我们接下来三周的实训计划。 接下来一周实训之后,这个实训在老师的刻意营造下,尽量模仿公司的氛围。 而让我感受最受的就是:凭事实说话。 就是无论要下什么结论的时候,都要拿得出能够说服人的数据。 这是我在第一周中感受最深的一件事。 也是我学到的第一件事。 说话下结论要有真凭实据。 二、第二件事:专业技术的不断学习 在这一周中,老师着重讲了如何进行系统构架。 因为之前也跟老师做过项目,所以对进行系统构架的理解要稍微深入些,对其重要性的了解也要多一些。 这样,在老师的讲解下,再和我以前的理解相互验证,感觉就像武功高手,在前辈的点拨下顿悟了一样。 这就是我学到的第二件事,是在专业技能方面的收获。 三、第三件事:学会寻找动力 然后在接下来的一周中,这样的学习中老师让我们每组一个白板,然后把每天的任务完成情况着实记录。

android复习资料物联网

各位同学注意:考试总共4道题目 1.考试题有单选20道(共40分) 2.判断15道(15分) 3.简答3道(共15分) 4.编程2道(共30分) 一、单选题 1、退出 activity 对一些资源以及状态的操作保存,可以在生命周期的哪 个函数中进行 (A) A、onPause() B、onCreate() C、onResume() D、onStart() 2、下列哪个不是Activity的生命周期方法之一( B ) A、 onCreate B、 startActivity C、 onStart D、 onResume 3、下列不属于android布局的是(c) A、FrameLayout B、LinearLayout? BorderLayout D、TableLayout E、RelativeLayout 4、Intent 的作用的是 (A) A、intent是连接四大组件的纽带,可以实现界面间切换,可以包含动作和动 作数据, B、是一段长的生命周期,没有用户界面的程序,可以保持应用在后台运行, 而不会因为切换页面而消失 service C、实现应用程序间的数据共享 contentprovider D、处理一个应用程序整体性的工作 5、要在布局文件中把命令按钮的id设置为t1,下面那句代码是正确的(A ) A、android:id="@+id/t1" B、android:id="/t1" C、id="@+id/t1" D、id="t1" 6、下列哪个是AbsoluteLayout中特有的属性( B) A、android:layout_height B、android:layout_x C、android:layout_above D、android:layout_toRightOf 6、在手机开发中常用的数据库是(A ) A,sqlLite B,Oracle C,Sql Server D,Db23 7、如果要让标签(TextView居中显示,需要设置哪个属性(D) A、android:orientation B、android:layout_gravity C、android:gravity D、android:layout_weight 8、在XML布局文件中android:layout_width属性不可以设置为(D ) A、match_parent B、fill_parent C、wrap_content D、match_content 8、关于BroadcastReceiver的说法不正确的是( B) A、是用来接收广播Intent的 B、一个广播Intent只能被一个订阅了此广播的BroadcastReceiver所接收 C、对有序广播,系统会根据接收者声明的优先级别按顺序逐个执行接收者 D、接收者声明的优先级别在的android:priority属性中 声明,数值越大优先级别越高 9、使用MediaPlayer播放保存在Raw包下的mp3文件时(a) A、需要使用MediaPlayer、create方法创建MediaPlayer

《Android程序设计》期末试题B

一、判断题(每小题2分,共10分) 1、Android是J2ME的一个实现。() 2、View是ViewGroup的子类。() 3、一个Intent可以包含多个category。() 4、Android系统下的文件,可以被本系统里的所有应用程序访问。() 5、无论Service是以启动方式还是绑定方式运行,该Service类都要重写onBind 方法。() 二、单项选择题(在每小题的四个备选答案中,有且只有一个正确答案,请将正确答案的序号填在题干的括号内。每小题2分,共20分) 1、下列关于继承的哪项叙述是正确的?() A、在Java中类允许多重继承 B、在Java中一个类只能实现一个接口 C、在Java中一个类不能同时继承一个类和实现一个接口 D、在Java中接口允许继承自另一个接口 2、以下哪种方式不能退出当前活动状态的Activity?() A、调用finish()方法 B、单击(返回)按钮 C、单击(回到桌面)按钮 D、Activity运行时出现异常 3、对于TextView,使用哪个属性来设置显示的文本?() A、android:textSize B、android:text C、android:textColor D、android:string 4、要处理Button的点击事件,需要注册哪个监听器?() A、OnClickListener() B、OnButtonClickListener() C、OnButtonListener() D、OnItemClickListener() 5、浏览网页使用的Intent的Action是什么?() A、ACTION_CALL B、ACTION_EDIT C、ACTION_SEND D、ACTION_VIEW 6、Android 关于启动方式的service生命周期的onCreate()和onStartCommand()方法,说法正确的是()

搭建安卓开发环境-详细教程

搭建安卓开发环境-详细教程 注:本教程是讲解在Windows XP下搭建安卓开发环境的,不是XP系统的朋友请绕行! 在开始搭建之前,请大家先到本人的网盘中下载所需的6个文件。 下载网址为:https://www.360docs.net/doc/0312165310.html,/c0balfh535(超链接,按住Ctrl键,单击蓝色文字,即可直接跳转) 安装目录: 步骤1→安装JDK---------------------------------对应的安装文件:jdk-6u22-windows-i586.exe 步骤2→安装Android SDK--------------------对应的安装文件:android-sdk_r17-windows.zip 步骤3→安装T omcat----------------------------对应的安装文件:apache-tomcat-7.0.26-windows-x86.zip 步骤4→安装Ant---------------------------------对应的安装文件:apache-ant-1.8.3-bin.zip 步骤5→安装Eclipse-----------------------------对应的安装文件:eclipse.part1.rar和eclipse.part2.rar 步骤6→安装Eclipse的ADT插件----------对应的安装文件:ADT-17.0.0.zip 步骤7→在图形界面下管理AVD 步骤8→设置Android系统语言 ===========================================1、安装JDK 运行安装程序【jdk-6u22-windows-i586-p.exe】,分别点击下一步进行安装。 在安装过程中先后会出现两次选择安装目录的界面,全部改为以下路径: jdk安装目录:C:\Java\jdk1.6.0_22 jre安装目录:C:\Java\jre6\ 安装好之后,配置环境变量: 打开环境变量窗口方法:右键【我的电脑】--单击【属性】--单击【高级】--单击【环境变量】。 在上方的用户变量中依次新建如下变量,并分别填入如下路径: →变量名:JAVA_HOME 变量值:C:\Java\jdk1.6.0_22 →变量名:PATH 变量值:%JAVA_HOME%/bin →变量名:CLASSPATH 变量值:.;%JAVA_HOME%/lib/tools.jar;%JAVA_HOME%/lib/dt.jar

Android复习题

Android复习题及答案 一、选择题 1.下列哪些语句关于存回收的说明是正确的?( ) A、程序员必须创建一个线程来释放存 B、存回收程序负责释放无用存 C、存回收程序允许程序员直接释放存 D、存回收程序可以在指定的时间释放存对象 2.Android 中下列属于Intent的作用的是( ) A、实现应用程序间的数据共享 B、是一段长的生命周期,没有用户界面的程序,可以保持应用在后台运行,而不会因为切换页面而消失 C、可以实现界面间的切换,可以包含动作和动作数据,连接四大组件的纽带 D、处理一个应用程序整体性的工作 3.下面的对自定style的方式正确的是( ) A、 B、 C、 fill_parent D、 fill_parent 4.在Android中使用Menu时可能需要重写的方法有( )。 A、onCreateOptionsMenu() B、onCreateMenu() C、onOptionsItemSelected() D、onItemSelected() 5.在Android中使用SQLiteOpenHelper这个辅助类时,可以生成一个数据库,并可以对数据库版

android考试复习题

一、解答题 1.Android应用程序的4大组件是什么? Activity、Broadcast Receiver、Content Provider、Service 2.请介绍下Android中常用的五种布局。 相对布局(RelativeLayout):相对布局中可以设置某一个视图相对于其他视图的位置,包括上、下、左、右。 线性布局(LinearLayout):线性布局可分为水平线性布局和垂直线性布局。水平线性布局所有在这个布局中的视图都沿着水平方向线性排列。垂直线性布局则沿着垂直方向线性排列。 框架布局(FrameLayout):所有添加到框架布局中的视图都是以层叠的方式显示,这种显示方式类似堆栈。 表格布局(TableLayout):表格布局可以将视图按行、按列进行排列。 绝对布局(AbsoluteLayout):可以任意设置视图定位位置。 3. activity一般会重载7个方法用来维护其生命周期,除了 onCreate(),onStart(),onDestory() 外还有onrestart,onresume,onpause,onstop 4. 当启动一个Activity并且新的Activity执行完后需要返回到启动它的Activity来执行的回调函数是startActivityResult() 5.什么是Intent? Intent(意图)主要是解决Android应用的各项组件之间的通讯。 Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用。 启动Activity方式: 显式启动,必须在Intent中指明启动的Activity所在的类 Intent intent = new Intent(IntentDemo.this, ActivityToStart.class); startActivity(intent); 6.Broadcast有哪几种?区别? 实现广播的方法有两种。一种是在androidmanifest.xml当中去注册广播,另一种方法是在代码中动态注册广播,这两种方法虽然都能实现广播机制,但是还是有很大不同,所以运用也要分情况。如果我们在androidmanifest.xml中去定义的话,那么该广播是在activity 结束之后也不会结束的,原因在于它已经写在了manifest.xml文件当中,也就是注册到了系统当中,所以无论你的activity是否存在,对于该广播没有影响。而在java代码中动态注册广播,在该activity结束后,我们可以注销该广播,也就是它随着activity的消失而消失 7. Adapter有什么作用?常见的Adapter有哪些? 答:Adapter是连接后端数据和前端显示的适配器接口。常见的Adapter有ArrayAdapter, BaseAdapter, CursorAdapter, HeaderViewListAdapter, ListAdapte r, ResourceCursorAdapter, SimpleAdapter, SimpleCursorAdapter, SpinnerAdapte r, WrapperListAdapter等。

相关文档
最新文档