android GUI程序设计复习

Android基础知识:

1、Andy Rubin 被称为“Android之父”

2、Android是由Google公司来维护和持续开发的(2005年Google 公司收购了Android公司)

3、Android开发环境的搭建过程由下载安装JDK、安装Eclipse、下载Android SDK和在Eclipse安装并配置ADT四步组成。

4、Android系统架构分为4层,从高到低分别是应用层、应用框架层、系统运行库层、Linux内核层。

5、Android应用的源程序使用Android SDK编译后,生成的应用程序安装和执行程序文件的后缀是apk。

6、Android采用了Google公司开发的基于寄存器的Java虚拟机,该虚拟机的名字是Dalvik。

7、XML布局文件是Android系统中定义视图的常用方法,所有的XML布局文件必须保存在res/layout目录中。

8、Android中常用的四个布局是Framelayout(框架布局)、Linearlayout(线性布局)、Relativelayout(相对布局)、和Tablelayout (表格布局)、(还有一个AbsoluteLayout(绝对布局))。

9、Android的四大组件是Activity、Service、Broadcast Receiver和Content Provider。

10、定义LinearLayout水平方向布局时至少设置的三个属性分别为Android:orientation 、android:layout_width 和android:layout_height 11、Android SDK主要是Java语言为基础。

12、Android创建工程时需要填写的信息名称有:工程名、包的名字、应用的名字、还有Activity的名字。

Activity

1、一个Activity从被创建到进入运行状态需要依次调用Activity生命周期中的onCreate()、onStart()和onResume()方法。

2、当启动一个Activity并且新的Activity执行完后需要返回到启动它的Activity来执行的回调方法是:startActivityForResult()。

3、为了使Android适应不同分辨率的机型,布局时像素单位应使用sp或dip,字体单位应使用sp。

4、在Activity中创建选项菜单的方法是onCreateOptionsMenu()。

5、创建子菜单的方法是addSubMenu()。

6、在布局文件中使用属性android:onClick给某个按钮绑定事件处理函数。

7、每一个Android应用通常都有一个入口Activity,它们名字可以是任意的,不是必须是“MainActivity”

8、如果使用LinearLayout实现组件垂直排列,那么在xml中应该添加android:orientation=”vertical”属性进行设置。

9、在Activity中需要找到一个id为bookName的TextView组件的语句为TextView tv=(TextView)this.findViewById(R.id.bookName); 10、Android中的菜单类型有:OptionMenu、ContextMenu和SubMenu。

11、在Android中使用上下文Menu时可能需要重写的方法有onCreateContextMenu().

12、在Android程序中,LogCat的右上方的五个字母表示不同类型的日志信息,他们的级别依次增高:

[V]:详细(Verbose)信息、[D]调试(Debug)信息、[I]通告(Info)信息、[W]:警告(Warn)信息、[E]:错误(Error)信息

Log.w()用于输出警告级别的日志信息。

13、Activity生命周期中,第一个需要执行的方法是OnCreate().

14、Activity生命周期中onPause()方法当界面被隐藏时被调用。

15、如果将一个TextView的android:layout_height属性设置为wrap_content,那么该组件该文本域的高度仅占据该组件的实际高度。

16、Activity生命周期图:

17、Activity生命周期:给一个TextView设置红色字体,应该使用:setTextColor(0xffff0000)

18、Android适配器主要用来把数据绑定到组件上的。

19、对于一个Activity,在AndroidManifest.xml中对其进行如下定义:

android:name=”https://www.360docs.net/doc/ac16681939.html,UNCHER”/>

代表该Activity将作为程序主Activity,并且在LANCHER菜单中启动。

Intent

1、想要启动一个Activity,需要使用Intent对象,它指定了启动源和启动目标。

2、Intent对象具有6种属性,分别为:组件名称Component Name、动作属性Action、类别属性Category、数据属性Data、附加信息Extras 和标题属性Flags。

3、在不同的Activity之间传送数据时,可以使用Intent来传递数据,通常将需要传递的数据保存在Intent的Extras。

Android的常用控件

1、Android中输入日期的组件是DatePicker。

2、Android可以在状态栏中出现提醒机制的组件式Notification。

3、Android中可以编辑文本的组件式EditText。

4、能够自动完成输入内容的组件式:AutoCompleteTextView。

广播接收器

1、Android中可供接收的三类广播分别是:正常广播、有序广播Ordered Broadcast和粘滞广播(Sticky Broadcast)

2、在Android程序中注册广播接收器的方法是registerReceiver()。

3、很多时候,广播用在Service向Activity传递数据,一般都会在Service中开启线程来做一些耗时的工作,并不时地将结果更新到UI 上。

4、Service中开启的线程是不能更新UI的,所以常用的方法就是通过广播将结果发送给Activity,Activity在接收到广播后,取出数据,更新UI。

5、Android中,不能在主线程做耗时操作,否则会阻塞UI的显示,也不能在非主线程中更新UI,否则会直接报错。

Service

1、android和service的启动方法是:startService()和bindService()。

2、服务Service是Android系统中四大组件之一。服务主要用于两个目的:后台运行和跨进程访问,通过AIDL服务可以实现不同进程之间的通信。

3、可以运行于后台的,可以无界面的程序,在Android系统中,可以使用Service技术来实现.

ContentProvider

1、数据库是Android存储方案的核心,在Android系统中使用SQLite 数据库。

2、在使用SQLiteOpenHelper这个类时它的onUpgrade()方法是用来实现版本升级用的。

3、在多个应用中读取共享存储数据时,需要用到ContentResolver的query方法。

编程题:

1、图中有三个EditText编辑框和一个按钮,功能是点击按钮后,第3个编辑框将显示前两个编辑框中的和。试编程实现该功能。package com.de.kaoshi2;

import android.os.Bundle;

import android.app.Activity;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.EditText;

import android.widget.TextView;

public class MainActivity extends Activity {

private EditText one;

private EditText two;

private Button button;

private TextView result;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

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

one = (EditText) this.findViewById(R.id.one);

two = (EditText) this.findViewById(R.id.two);

button = (Button) this.findViewById(R.id.button);

result = (TextView) this.findViewById(R.id.result);

button.setOnClickListener(new OnClickListener() {

public void onClick(View v) {

try {

int a = Integer.parseInt(one.getText().toString());

int b = Integer.parseInt(two.getText().toString());

result.setText("" + (a + b));

} catch (NumberFormatException e) {

return;

}

}

});

}

}

// Uri uri=Uri.parse("smsto:135********");

// Intent in=new Intent(Intent.ACTION_SENDTO,uri);

// in.setType("vnd.android-dir/mms/-sms");

// in.putExtra("sms_bod y", "???");

// startActivity(in);

2、图中有一个EditText编辑框和一个按钮,功能室点击按钮后,在编辑框中显示自己的名字。试编程实现该功能。

package com.de.kaoshi3;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.TextView;

import android.app.Activity;

public class MainActivity extends Activity {

private Button button;

private TextView textView;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

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

button = (Button) findViewById(R.id.btn);

textView = (TextView) findViewById(R.id.tx1);

button.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

//写出下面代码

textView.setText("吴嘉辉");

}

});

}

}

3、打电话

package com.example.tel_kaoshi;

import https://www.360docs.net/doc/ac16681939.html,.Uri;

import android.os.Bundle;

import android.app.Activity;

import android.content.Intent;

import android.view.Menu;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.EditText;

public class MainActivity extends Activity {

private EditText phoneEditText;

private Button callButton;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

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

phoneEditText = (EditText) this.findViewById(R.id.phoneEditText);

callButton = (Button) this.findViewById(R.id.callButton);

callButton.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

if (!phoneEditText.getText().toString().equals("")) {

Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + phoneEditText.getText().toString()));

startActivity(intent);

}

}

});

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.main, menu);

return true;

}

}

简答题

1、请简述Android系统构架分为哪四层?

答:Android系统架构分为4层,从高到低分别是应用层、应用框架层、系统运行库层、Linux内核层。

2、请描述Activity的生命周期?

答:1.完整生命周期:即一个activity从出现到消失,对应的周期方法是从onCreate到onDestroy

2.可见生命周期:从onStart()到onStop()方法,在这个周期中,用户可以看见Activity,但不一定能够与之交互,这两个方法可以随着状态的变化被执行多次。

3.前景生命周期:从onResume()到onPause()方法,在这个周期中,Activity处在其它Activity之前,即在Activity栈的最顶端,负责与用户进行交互,伴随着状态的变化,这两个方法可以被执行多次。

3、Android工程下面有个gen目录,该目录下有个R.Java文件,该文件的作用是什么,能不能修改,为什么?

答:用于存放由Android开发工具自动生成的文件。不能修改,因为android开发工具会根据放入res目录的界面配置文件,图片以及

一些文本等资源而同步更新修改R.java文件。

4、简述Android中Service的特点?

答:可以运行于后台的,可以无界面的程序,在Android系统中,可以使用Service技术来实现。

5、Android四大组件分别是哪四个?

答:Android的四大组件是Activiey、Service、Broadcast Receiver和Content Provider。

6、一个Intent对象包括6个对象,请写出这六个对象的属性。

答:Intent对象具有6种属性,分别为组件名称Component Name、动作属性Action、类别属性Category、数据属性Data、附加信息Extras 和标题属性Flags。

7、请简述Android的数据存储方式有哪几种?

答:(1)使用SharedPreferences存储数据;

(2)文件存储数据

(3)SQLite数据库存储数据;

(4)使用ContentProvider存储数据;

(5)网络存储数据;

8、请简述Android项目中res目录中各子目录的作用?

答:/res/anim/:存放定义补间动画的XML文件

/res/color/:存放定义不同状态下颜色列表的XML文件

/res/drawable :存放各种位图文件和各种Drawable对象的XML 文件

/res/layout:存放各种用户界面的布局文件

/res/menu :存放定义的各种菜单资源

/res/raw:存放任意类型的原生资源

/res/values/:存放简单值得的XML文件

/res/xml/:存放任意原生的XML文件

9、请写出创建一个Notification的步骤。

答:①得到NotificationManager的引用;

②初始化一个Notification对象;

③设置Notification的参数;

④使用NotificationManager的notify(int, Notification)方法发出通知。

10、请简单描述Android中常用的五种布局?

答:(1)线性布局(Linear Layout):以线性方向显示子视图元素;

(2)绝对布局(Absolute Layout):ViewGroup以绝对方式显示子视图元素

(3)相对布局(Relative Layout): ViewGroup以相对位置显示子视图元素

(4)表格布局(Table Layout): ViewGroup以表格显示子视图元素(5)单帧布局(Frame Layout): ViewGroup将子视图放在布局的左上角,并覆盖在前一子控件的上层

相关主题
相关文档
最新文档