搜档网
当前位置:搜档网 › Android面试题

Android面试题

Android面试题
Android面试题

11.横竖屏切换时候 Activity 的生命周期?

1、不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次

2、设置Activity的android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次

3、设置Activity的android:configChanges="orientation|keyboardHidden"时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法

12.Activity 的生命周期

onCreate :当第一次调用一个Activity就会执行onCreate方法

onDestroy :当Activity被销毁时会调用onDestory方法

onStart :当Activity处于可见状态的时候就会调用onStart方法

onStop :当Activity处于不可见状态的时候就会调用onStop方法

onResume :当Activity可以得到用户焦点的时候就会调用onResume方法

onPause :当Activity被遮挡住的时候就会调用onPause方法

onRestart :当Activity没有被销毁的时候重新调用这个Activity就会调用onRestart 方法

一个 Activity 正常启动过程中执行 onCreate onStart onResume

当这个 Activity 被干被干掉时执行 onPause onStop onDestroy

13.Fragment 的生命周期

onAttach :

onCreate :

onCreateView :

onActivityCreated:

onStart :

onResume :

fragment 正在使用

a: user navigates backward or fragment is removed/replaced

用户导航落后或片段删除/替换

b: the fragment is added to the back stack,then removed/replaced 该片段被添加到堆栈中,然后删除/替换

onPause :

onStop :

onDestroyView :

b: the fragment returns to the layout from the back stack

片段返回到堆栈的布局. 跳到 onCreateView

onDestroy :

onDetach :

1. 当一个fragment被创建的时候,它会经历以下状态.

onAttach()

onCreate()

onCreateView()

onActivityCreated()

2. 当这个fragment对用户可见的时候,它会经历以下状态。

onStart()

onResume()

3. 当这个fragment进入“后台模式”的时候,它会经历以下状态。

onPause()

onStop()

4. 当这个fragment被销毁了(或者持有它的activity被销毁了),它会经历以下状态。 onPause()

onStop()

onDestroyView()

onDestroy()

onDetach()

5. 就像activitie一样,在以下的状态中,可以使用Bundle对象保存一个fragment的对象。

onCreate()

onCreateView()

onActivityCreated()

6. fragments的大部分状态都和activitie很相似,但fragment有一些新的状态。

onAttached() ——当fragment被加入到activity时调用(在这个方法中可以获得所在的activity)。

onCreateView() ——当activity要得到fragment的layout时,调用此方法,fragment 在其中创建自己的layout(界面)。

onActivityCreated() ——当activity的onCreated()方法返回后调用此方法

onDestroyView() ——当fragment中的视图被移除的时候,调用这个方法。

onDetach() ——当fragment和activity分离的时候,调用这个方法。

一旦activity进入resumed状态(也就是running状态),你就可以自由地添加和删除fragment了。因此,只有当activity在resumed状态时,fragment的生命周期才能独立的

运转,其它时候是依赖于activity的生命周期变化的。

14.在一个应用程序中,已知按顺序启动 6 个 activity,编号控顺序分别为 1,2,3,4,5,6. 如何从第 6 个 activity 跳转到第 2 个 activity ,并清除中间的activity

21.说出 Service 的生命周期,并说出 Service 和 CGI 的区别

startService启动 bindSerice启动

onCreate() onCreate()

onStartCommand() onBind()

service running运行服务 clients are bound to service客户绑定服务

a: the service is stopped by itseif or a client 服务本身或客户停止

b: all clients unbind by calling unbindService 所有客户端通过调用unbindService 解除绑定

onDestroy() onUnbind()

onDestroy()

service shut down 服务关闭

22.介绍一下 service, service 作为一个后台程序,能否执行耗时操作

23.如何启用 Service, 如何停用 Service

可以通过在activity中设置事件。当事件触发时利用intent

Intent intent=new Intent(MainActivity.this, ServiceDemo.class);

switch (v.getId()){

case R.id.startBtn:

startService(intent); 启动

break;

case R.id.stopBtn:

stopService(intent); 停用

break;

default:

break;

24.如何保证 service 不被后台系统杀死, service 被系统杀死后如何重启

Android开发的过程中,每次调用startService(Intent)的时候,都会调用该Service 对象的onStartCommand(Intent,int,int)方法,然后在onStartCommand方法中做一些处理。然后我们注意到这个函数有一个int的返回值

从Android官方文档中,我们知道onStartCommand有4种返回值:

START_STICKY:

如果service进程被kill掉,保留service的状态为开始状态,但不保留递送的intent对象。随后系统会尝试重新创建service,由于服务状态为开始状态,所以创建服务后一定会

调用onStartCommand(Intent,int,int)方法。如果在此期间没有任何启动命令被传递到service,那么参数Intent将为null。

START_NOT_STICKY:

“非粘性的”。使用这个返回值时,如果在执行完onStartCommand后,服务被异常kill掉,系统不会自动重启该服务。

START_REDELIVER_INTENT:

重传Intent。使用这个返回值时,如果在执行完onStartCommand后,服务被异常kill掉,系统会自动重启该服务,并将Intent的值传入。

START_STICKY_COMPATIBILITY:

START_STICKY的兼容版本,但不保证服务被kill后一定能重启。

现在的安卓手机,只要一长按home键,通常都会列出近期任务,这里可以干掉所有进程所以一直不断的在后台运行是不行的,但是你可以通常广播来激活你的service

25.简要解释一下activity, intent, intent filter, service, Broadcase, BroadcaseReceiver

Activity是所有程序的根本,所有程序的流程都运行在Activity之中,Activity具有自己的生命周期,Activity的使用需要在Manifest文件中添加相应的,并设置其属性和intent-filter。

Intent起着一个媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦。

service是没有界面的长生命周期的代码。一个很好的例子是媒体播放器从列表中播放歌曲。

Broadcast是一种广泛运用的在应用程序之间传输信息的机制。

BroadcastReceiver是对发送出来的 Broadcast 进行过滤接受并响应的一类组件。

IntentFilter就是用于描述intent的各种属性,比如action, category等

26.对 Intent, Activity, 广播, Service 等的理解

同25

31.Android 的四大组件介绍

activity : 所有程序的根本,所有程序的流程都运行在Activity之中

service : 是没有界面的长生命周期的代码。

broadcast receiver : 对发送出来的 Broadcast 进行过滤接受并响应的一类组件。

content provider : 如果需要在进程间传递数据,则可以使用AIDL/Binder或创建一个ContentProvider,但是不能跨越进程/包边界直接来使用数据库

32.View的刷新

在需要刷新的地方使用 handler.sendMessage 发送信息,然后在 handler 的 getMessage

里执行 invaliate 或者 postInvaliate.

33.GC 内存泄露

出现情况:

2.1 数据库的 cursor 没有关闭

2.2 构造 adapter 时,没有使用缓存 contentView 衍生 listView 的优化问题 --减少创建 view 的对象,充分使用 contentView,可以使用一静态类来优化处理 getView的过程.

2.3 Bitmap 对象不使用时采用 recycle() 释放内存.

2.4 ......

34.在 android 中,请简述 jni 的调用过程

1. 安装和下载cygwin,下载Android NDK;

2. 在ndk项目中JNI接口的设计;

3. 使用C/C++实现本地方法;

4. JNI生成动态链接库.so文件;

5. 将动态链接库复制到java工程,在Java工程中调用,运行Java工程即可

35.如果后台的 Activity 由于某原因被系统回收了,如何在被系统回收之前保存当前状态? Activity中提供了一个方法:onSavedInstanceState(Bundle obj).当系统销毁一个Activity时,会将Activity的状态信息已键值对形式存放在bundle对象中.

onCreate方法的定义是"protected void onCreate (Bundle savedInstanceState)

Activity还有个onRestoreInstanceState(Bundle outState)方法.这个方法的描述中也写到在Activity回复先前保存的状态时会被调用.

36.请介绍下 Android 的数据存储方式.

1 使用SharedPreferences存储数据;

它是Android提供的用来存储一些简单配置信息的一种机制

2 文件存储数据;

文件存储方式是一种较常用的方法,在Android中读取/写入文件的方法,与 Java中实现I/O的程序是完全一样的,提供了openFileInput()和openFileOutput()方法来读取设备上的文件

3 SQLite数据库存储数据;

4 使用ContentProvider存储数据;

当应用继承ContentProvider类,并重写该类用于提供数据和存储数据的方法,就可以向其他应用共享其数据

5 网络存储数据;

需要与Android 网络数据包打交道,关于Android 网络数据包的详细说明,请阅读Android SDK引用了Java SDK的哪些package

37.如何退出 Activity? 如何安全退出已调用多个 Activity 的 Application?

对于单一Activity的应用来说,退出很简单,直接finish()即可。当然,也可以用

killProcess()和System.exit()这样的方法

38.已知一个应用程序开启多个 activity, 如何安全退出这个应用程序?

定义一个Application类来存储Activity对象的引用

然后在每个Activity的onCreate()方法中添加下面代码:

ExitApplication.getInstance().addActivity(this);

要退出哪个可以直接 finish

39.如何将一个Activity 设置成窗口的样式,当在一个 activity 中启动这个窗口activity 的时候执行哪些生命周期方法

在AndroidManifext.xml中Activity定义处添加

android:theme="@android:style/Theme.Dialog" 或

android:theme="@android:style/Theme.Translucent"。

40.请介绍下 Android 中常用的五种布局,android 布局适配多机型有哪些方法?

Linearlayout 线性布局

Relativelayout 相对布局

FrameLayout 框架布局

TableLayout 表格布局

AbsoluteLayout 绝对布局(不建议使用,最常用的还是以上四种)

参考 41

41.谈谈 android 屏幕多分辨率下开发

在res目录下创建不同的layout文件夹

drawable-mdpi、drawable-ldpi、drawable-hdpi 这三个主要是为了支持多分辨率

(1)drawable-hdpi里面存放高分辨率的图片,如WVGA (480x800),FWVGA (480x854)

(2)drawable-mdpi里面存放中等分辨率的图片,如HVGA (320x480)

(3)drawable-ldpi里面存放低分辨率的图片,如QVGA (240x320)

42.Android 动画有哪几种?描述一下

Tween动画,这种实现方式可以使视图组件移动、放大、缩小以及产生透明度的变化;

另一种Frame动画,传统的动画方法,通过顺序的播放排列好的图片来实现,类似电影。

43.列举 activity 启动模式有哪些,并且说明下区别

启动模式有4种,分别为standard、singleTop、singleTask、singleInstance;

(1)standard:每次激活Activity时(startActivity),都创建Activity实例,并放入任务栈;

(2)singleTop:如果某个Activity自己激活自己,即任务栈栈顶就是该Activity,则不需要创建,其余情况都要创建Activity实例;

(3)singleTask:如果要激活的那个Activity在任务栈中存在该实例,则不需要创建,只需要把此Activity放入栈顶,并把该Activity以上的Activity实例都pop;

(4)singleInstance:如果应用1的任务栈中创建了MainActivity实例,如果应用2也要

激活MainActivity,则不需要创建,两应用共享该Activity实例;

44.android 中线程与线程,进程与进程之间如何通信,线程间通讯方式有哪几种

1.runOnUiThread(Runnable) 在子线程中直接使用该方法,可以更新UI

2.View.postDelay(Runnable , long)/new Handler().postDelayed(Runnable)

在需要更新UI的地方调用该方法,Runnable对象的方法里,直接操作UI;long是指延迟多少秒

3.使用Handler

4.使用AsyncTask

51.请介绍下 ContentProvider 是如何实现数据共享的

继承ContentProvider类,并重写该类用于提供数据和存储数据的方法,就可以向其他应用共享其数据

52.请介绍下在单线程模型中 Message,Handler,MessageQueue,Looper 之间的关系

Handler获取当前线程中的looper对象,looper用来从存放Message的MessageQueue中取出Message,再有Handler进行Message的分发和处理.

Message Queue(消息队列):用来存放通过Handler发布的消息,通常附属于某一个创建它的线程,可以通过Looper.myQueue()得到当前线程的消息队列

Handler:可以发布或者处理一个消息或者操作一个Runnable,通过Handler发布消息,消息将只会发送到与它关联的消息队列,然也只能处理该消息队列中的消息

Looper:是Handler和消息队列之间通讯桥梁,程序组件首先通过Handler把消息传递给Looper,Looper把消息放入队列。Looper也把消息队列里的消息广播给所有的

Handler:Handler接受到消息后调用handleMessage进行处理

Message:消息的类型,在Handler的handleMessage方法中得到单个的消息进行处理

53.在 ScrollView 中怎么样使用 ListView 和 GridView

重写ListView与GridView,让其失去滑动特性

https://www.sodocs.net/doc/0b4816953.html,yout_gravity, gravity, padding, layout_margin 之间的区别

gravity 属性是对该view 内容的限定

layout_gravity 是用来设置该view相对与起父view 的位置

padding 填充的意思,指的是view中的content与view边缘的距离

margin表示的是view的左边缘与parent view的左边缘的距离

margin一般用来描述控件间位置关系,而padding一般描述控件内容和控件的位置关系。

55.Intent 的使用,能传递哪些数据类型,怎么传对象,Bitmap 怎么传递

1.简单或基本数据类型

2.传递一个Bundle

3.传递Serializable对象

4.Parcelable对象

5.Intent

Android中Intent传递类对象提供了两种方式

一种是通过实现Serializable接口传递对象,一种是通过实现Parcelable接口传递对象。

要求被传递的对象必须实现上述2种接口中的一种才能通过Intent直接传递。

使用intent传递bitmap对象

存: i.putExtra("0", bitmap);

取: i = getIntent(); bitmap= i.getParcelableExtra("0");

56.注册广播有几种方式,这些方式有何优缺点?请谈谈 Android 引入广播机制的用意

2种方式

1.在androidmainfest.xml中注册

缺点:常驻型,占资源比较大

registerReceiver(receiver,filter);

BroadcastReceiver更新UI一般用这种方法

57.写出你所知道的设计模式

1、单例模式:控制对象个数

2、装饰者模式:java的IO系统中使用了较多的装饰模式,主要用于给一个对象添加更多更好的功能,比如说给输入输出流添加缓冲

3、工厂模式:需要使用对象的时候使用工厂来创建对象

4、抽象工厂模式:可以创建多个系统的对象

5、适配器模式:在不同的系统之间做耦合的作用

6、建造者模式:将创建过程封装起来

7、观察者模式:当相应的事件发生的时候,通知注册了的对象,比如说ide的双击事件等

8、...

58.当 ListView 带有网络图片时怎样避免 oom 异常

读取位图Bitmap时,分给虚拟机中的图片的堆栈大小只有8M,如果超出了,就会出现OutOfMemory异常

1. 要及时回收Bitmap的内存 Bitmap类有一个方法recycle() System.gc();

2. 捕获异常

3. 缓存通用的Bitmap对象

4. 压缩图片

59.Hashtable 与 HashMap 的区别?

1.HashTable的方法是同步的,HashMap未经同步,所以在多线程场合要手动同步HashMap 这个区别就像Vector和ArrayList一样。

2.HashTable不允许null值(key和value都不可以),HashMap允许null值(key和value

都可以)。

3.HashTable有一个contains(Object value),功能和containsValue(Object value)功能一样。

4.HashTable使用Enumeration,HashMap使用Iterator。以上只是表面的不同,它们的实现也有很大的不同。

5.HashTable中hash数组默认大小是11,增加的方式是 old*2+1。HashMap中hash数组的默认大小是16,而且一定是2的指数。

6.哈希值的使用不同,

60.在 Android 中是如何实现判断区分通话记录中的电话状态,去电,来电, 未接来电

实现手机电话状态的监听,主要依靠两个类:TelephoneManger和PhoneStateListener。

61.AIDL 的全称是什么?如何工作?能处理哪些类型的数据?

Android Interface Definition Language Android接口定义语言

1. 不需要import声明的简单Java编程语言类型(int,boolean等)

2. String, CharSequence不需要特殊声明https://www.sodocs.net/doc/0b4816953.html,

3. List, Map和Parcelables类型, 这些类型内所包含的数据成员也只能是简单数据类型, String等其他比支持的类型.

62.应用程序在启动时需要用户登录,如何记住用户的登录信息,如果有保存用户用户名密码的功能,该如何操作,有哪些方式实现

SharedPreferences

63.android 中如何内存优化,为什么需要内存优化

64.谈一下自定义控件的步骤和注意点,及怎么使用

1. 写一个自定义控件类,这个类就是你的自定义控件的实现.

2. 在res/values目录下建立一个attrs.xml的文件,在这个文件中增加对控件的自定义属性的定义.

3. 使用带AttributeSet参数的类的构造函数,并在构造函数中将自定义控件类中变量与attrs.xml中的属性连接起来.

4. 在自定义控件类中使用这些已经连接的属性变量.

5. 将自定义的控件类定义到布局用的xml文件中去.

6. 在界面中生成此自定义控件类对象,就完成了自定义控件的创建和使用了.

65.请说明 synchronized 关键字的用法

方法前加上synchronized,这个方法即是同步的,

而使用synchronized(obj)和一对大括号包围住的代码块,则是同步块。

38.如何打开 res aw 目录中的数据库文件?

在Android中不能直接打开res raw目录中的数据库文件,而需要在程序第一次启动时将该文件复制到手机内存或SD卡的某个目录中,然后再打开该数据库文件。复制的基本方法是使用getResources().openRawResource方法获得res raw目录中资源的 InputStream对象,然后将该InputStream对象中的数据写入其他的目录中相应文件中。在Android SDK中可以

使用SQLiteDatabase.openOrCreateDatabase方法来打开任意目录中的SQLite数据库文件。

71.如何判断是否有 SD 卡?

public static boolean existSDcard()

{

if (android.os.Environment.MEDIA_MOUNTED.equals

(android.os.Environment.getExternalStorageState()))

{

return true;

}

else

return false;

}

72.什么情况下会产生 Force Close?写出你遇到的几个导致其产生的异常

导致出现Force Close的原因有很多,常见的有比如空指针啦,类没有找到啦,资源没找到,就连Android API使用的顺序错误也可能导致(比如setContentView()之前进行了findViewById()操作)

73.什么是 ANR,如何避免它?

在Android上,如果你的应用程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作应用程序无响应(ANR:Application Not Responding)对话框。

运行在主线程里的任何方法都尽可能少做事情,多用工作线程,耗时操作一定要在工作线程。

81.java 基本数据类型有哪些?并标识出大小

数据类型大小范围默认值

byte(字节) 8 -2^7 - 2^7-1 0

shot(短整型) 16 -2^15 - 2^15-1 0

int(整型) 32 -2^31 - 2^31-1 0

long(长整型) 64 -2^63 - 2^63-1 0

float(浮点型) 32 0.0f

double(双精度) 64 0.0d

char(字符型) 16 '\u0000 - u\ffff' ‘\u0000 ’

boolean(布尔型) 1 true/false false

82.如何判断一个单链表是有环的?并用你的算法实现

83.用最有效率的方法算出 2 乘以 16 等于几

2*16就相当于 2*2*2*2*2

System.out.println(2<<5);

84.输入一个整数,输出该数二进制表示中 1 的个数,其中负数用补码表示

85.请用自己的理解介绍下 Java 的堆和栈的区别? String a = "abc" ,a 和 "abc" 分别存储在哪里?

String a="abc";

String b="abc";

String a = new string("abc");

String b = new string("abc");

a属于变量,是放在栈,“abc”是在常量池的,对象是在堆里面

86.abstract class 和 interface 有什么区别

含有abstract修饰符的class即为抽象类,abstract 类不能创建的实例对象。含有abstract方法的类必须定义为abstract class,abstract class类中的方法不必是抽象的。abstract class类中定义抽象方法必须在具体(Concrete)子类中实现,所以,不能有抽象构造方法或抽象静态方法。如果的子类没有实现抽象父类中的所有抽象方法,那么子类也必须定义为abstract类型。

接口(interface)可以说成是抽象类的一种特例,接口中的所有方法都必须是抽象的。接口中的方法定义默认为public abstract类型,接口中的成员变量类型默认为public static final。

87."==" 和 equals 方法究竟有什么区别?

==操作符专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同

equals方法是用于比较两个独立对象的内容是否相同,就好比去比较两个人的长相是否相同,它比较的两个对象是独立的

88.写出你常用的一些设计模式,单例模式为什么通常用 sychronized, 会使程序变慢吗?怎么解决?同步关键词加载代码块和方法上有什么区别

单例模式

工厂模式

//饿汉式单例类.在类初始化时,已经自行实例化

public class Singleton1{

private Singleton1(){}

private static final Singleton1 single=new Singleton1();

public static Singleton1 getInstance(){

return single;

}

}

//懒汉式单例类.在第一次调用的时候实例化

public class Singleton2{

private Singleton2(){}

private static Singleton2 single;

static{

single=new Singleton2();

}

public synchronized static Singleton2get Instance(){

if(single==null){

single=new Singleton2();

}

return single;

}

}

饿汉式是线程安全的,在类创建的同时就已经创建好一个静态的对象供系统使用,以后不在改变

懒汉式如果在创建实例对象时不加上synchronized则会导致对对象的访问不是线程安全的推荐使用第一种

91.如何实现多态?写一段实现多态的代码,并说明一下

public class Animal {

public void bite() {}

public static void main(String... args) {

Animal A = new Cat();

Animal B = new Dog();

A.bite();

B.bite();

}

}

class Cat extends Animal {

public void bite() {

System.out.println("MiaoMiao is bitting");

}

}

class Dog extends Animal {

public void bite() {

System.out.println("WangWang is bitting");

}

}

运行结果为:

MiaoMiao is bitting 因为 A 指向的子类为 Cat

WangWang is bitting 因为 A 指向的子类为 Dog

92.写出遍历 hashmap 的两种方式

第一种:

Map map = new HashMap();

Iterator iter = map.entrySet().iterator();

while (iter.hasNext()) {

Map.Entry entry = (Map.Entry) iter.next();

Object key = entry.getKey();

Object val = entry.getValue();

}

效率高,以后一定要使用此种方式!

第二种:

Map map = new HashMap();

Iterator iter = map.keySet().iterator();

while (iter.hasNext()) {

Object key = iter.next();

Object val = map.get(key);

}

效率低,以后尽量少使用!

93.请用代码来计算字符串 "I'm go to swimming" 中每个字母的个数,并打印 public static void main(String[] args) {

String sr = "sdjwiwdnwiedaaaasieesieassewe";

Map m = new HashMap();

for(int i=0;i

char c = sr.charAt(i);

int sum = search(sr,c);

m.put(c,sum);

}

System.out.println(m);

}

public static int search(String sr,char ar){

int count = 0;

int num = 0;

int temp = 0;

while((sr.length()-temp) >= 1){

num = sr.indexOf(ar,temp);

if(num == -1){

temp = sr.length();

}else{

temp = num + 1;

count++;

}

}

return count;

}

94.请写一个简单工厂模式的例子(代码)

/** 客户类 */

public class Text {

public static void main(String[] args) { Factory factory = new Factory();

BMW bmw320 = factory.createBMW(320);

BMW bmw523 = factory.createBMW(523);

}

}

/** 产品类 */

abstract class BMW { public BMW(){ } }

class BMW320 extends BMW {

public BMW320() {

System.out.println("制造-->BMW320");

}

}

class BMW523 extends BMW{

public BMW523(){

System.out.println("制造-->BMW523");

}

}

/** 工厂类 */

class Factory {

public BMW createBMW(int type) {

switch (type) {

case 320:

return new BMW320();

case 523:

return new BMW523();

default:

break;

}

return null;

}

}

95.用最简单的方法判断一个 long 整形的数 a 是 2^n

Android工程师笔试题及答案(汇编)

Android工程师面试题 一、基础(79分) 1. String s = new String("xyz");创建了几个String Object? ( )3分 A、1个 B、2个 C、3个 D、4个 2. Math.round(11.5)和Math.round(-11.5)分别等于多少?()2分 A、11和-11 B、12和-11 C、11和-12 D、12和-12 3.以下错误的说法有:( )2分 A、只要设计合理,当出现error这样的情况时,程序完全可以自动处理 B、exception 表示一种设计或实现问题 C、Set和Map都继承自Collection接口 D、接口可以继承接口 E、抽象类可以继承没有构造函数的实体类 4. 以下哪种类型不能作为switch(expr1)表达式的expr1?( )3分 A、int B、long C、char D、byte 5. 有关ArrayList和Vector的说法,那些是错误的?( )3分 A、Vector是线程安全的 B、ArrayList是线程序不安全的 C、当需要增长时,Vector默认增长为原来一培 D、当需要增长时, ArrayList默认增长为原来一培 6. 以下说法那些是错误的?()3分 A、一个char型变量可以存储一个中文汉字 B、String是最基本的数据类型 C、Integer的缺省值是0 D、String类提供了数值不可改变的字符串 7.请指出以下代码的执行结果()5分 class A{ static{ System.out.print("X"); } public A(){ System.out.print("2"); } } class B extends A{ static{ System.out.print("a"); } public B(){ System.out.print("b"); } } public class Hello{ public static void main(String[] ars){

android笔试题及答案

单选题 中可以用来处理中警示,确认等对话框地是() .假设目录下有文件结构,用()方法将该网页加载至 时,需传入地参数是() . . . . .下列不属于补间动画相关类地是() 中网络互连中需要获取状态码,根据状态码来判断请求是否已经完成,下列状态码表示请求完成地是() .关于说法错误地是:() 里可以通过设定转换时候地透明位 .在使用一个之前,不一定要调用方法 是设置资源被读入到这个地时候动画效果 是资源文件从这个里消失地时候要实现地动画效果 .建立蓝牙连接时通过方法来获取对象 () (); (); . () .关于地说法不正确地是( ) .它实现不同进程间通信地一种机制 .它避免了在新线程中刷新地操作 .它采用队列地方式来存储 .它实现不同线程间通信地一种机制

8.和地主要区别是(): . 内部基于链表,而是基于数组地 . 地大部分方法做了同步,而没有同步 . 是可串行化地,而不是 . 实现了,而没有 .下列属于解析文件地优点地是() .将整个文档输在内存中,便于操作,支持删除,修改,重新排列等多种功能 .不用事先调入整个文档,占用资源少 .整个文档调入内存,浪费时间和空间 .不是长久驻留在内存,数据不是持久地,事件过后,若没有保存数据,数据就会消失""; ""; ""; 总共创建( )个对象. 多选题 .在添加第一个窗口小部件时,会执行地方法是() .下列属于优点地是() 与编程语言无关. 可以使用任何语言来完成是完全和厂商无关. 与平台无关 是简单地,可扩展地 3.下列属于解析需要用到地类和接口是() A. .在使用蓝牙必须获取地权限是() .< ""> .< "" > .< ""> .< ""> 5.类地重要方法()

Android面试题附答案

Android面试题附答案 一、选择题(30题,每题1.5分,共45分) 1.java.io包中定义了多个流类型来实现输入和输出功能,可以从不同的角度对其进行分类,按功能分为:(c),如果为读取的内容进行处理后再输出,需要使用下列哪种流?(g) A、输入流和输出流 B、字节流和字符流 C、节点流和处理流 D、File stream E、Pipe stream F、Random stream G、Filter stream 2.下列代码的执行结果是:(b) public class Test3{ public static void main(String args[]){ System.out.print(100%3); System.out.print(“,”); System.out.println(100%3.0); } } A、1,1 B、1,1.0 C、1.0,1 D、1.0,1.0

3.在继承中,关于构造方法的说明,下列说法错误的是(d) A、子类无条件的继承父类的无参构造方法, B、子类可以引用父类中的有参构造方法,使用super关键字, C、如果子类没有构造方法,则父类无参构造方法作为自已的构造方法, D、如果子类有无参构造方法,而父类的无参构造方法则被覆盖。 4.以下程序的运行结果为(b) public class IfTest{ public static void main(String args[]){ int x=3; int y=1; if(x==y) System.out.println(“Not equal”); else System.out.println(“Equal”); } } A、Not equal B、Equal C、无输出 D、编译出错 5.Java语言中字符串“学Java”所占的内存空间是(a) A. 6个字节 B. 7个字节

Android编程基础笔试题及答案2.0

《Android 编程基础》试卷A 注意事项: 1. 本试卷共8页,满分100分; 2. 请把学院、姓名、班级写到密封线内,考试时间90分钟; 3. 请不要把答案写在密封线内 一、单选题(共35题,共61分) 1、 D03MA057(2分)退出 activity 对一些资源以及状态的操作保存,可以在生命周期的哪个函数中进行 a A 、onPause() B 、onCreate() C 、onResume() D 、onStart() 2、 D02MA058 (2分) Android 项目工程下面的 assets 目录的作用是什么 b A 、放置应用到的图片资源。 Res/drawable B 、主要放置一些文件资源,这些文件会被原封不动打包到 apk 里面 C 、放置字符串,颜色,数组等常量数据 res/values D 、放置一些与 UI 相应的布局文件,都是 xml 文件 res/layout 3、 D04MA059 (2分)下列不属于android 布局的是(c) A 、F r a m e L a y o u t B 、L i n e a r L a y o u t C 、BorderLayout D 、T a b l e L a y o u t E 、R e l a t i v e L a y o u t 4、 D08MA2060 (2分)Intent 的作用的是 a A 、intent 是连接四大组件的纽带,可以实现界面间切换,可以包含动作和动作数据, B 、是一段长的生命周期,没有用户界面的程序,可以保持应用在后台运行,而不会 因为切 换页面而消失 service C 、实现应用程序间的数据共享 contentprovider D 、处理一个应用程序整体性的工作 5、 D04EA1061(1分) 下列哪个是AbsoluteLayout 中特有的属性 b A,android:layout_height B,android:layout_x C,android:layout_above D,android:layout_toRightOf 6、 D07EA1062(1分)RatingBar 组件中不能用属性直接设置的是d A,五角星个数 B,当前分数C,分数的增量D,五角星的色彩 7、 D 10EA1063(1分) 在手机开发中常用的数据库是_a__ A,sqlLite B,Oracle C,Sql Server D,Db23 8、 D14MA2064(2分) 关于BroadcastReceiver 的说法不正确的是_b_ A, 是用来接收广播Intent 的 密封线内不要答 题 学院班级姓名

android java笔试题(带大部分答案)

请将试题答在答题卡上,不要在试卷中做任何标记 一、基础题: 1.请写出输出结果 public class Test1 { public static void changeStr(String str){ str="welcome"; } public static void main(String[] args) { String str="1234"; changeStr(str); System.out.println(str); } } ___"1234"____________________________________________________ 2.请写出输出结果 public class Test2 { static boolean foo(char c) { System.out.print(c); return true; } public static void main(String[] argv) { int i = 0; for (foo('A'); foo('B') && (i < 2); foo('C')) { i++; foo('D'); } } } _____ABDCBDCB___________________________________________________ 3.class A { protected int method1(int a, int b) { return 0; } } 以下A扩展类中的方法哪两个是正确的:(选择两个) A.public int method1(int a, int b) { return 0;} B.private int method1(int a, int b) { return 0;} C.private int method1(int a, long b) { return 0;} D.public short method1(int a, int b) { return 0;} E.static protected int method1(int a, int b) { return 0;} ____AD___________________________________________________ 4.public class Outer{ public void someOuterMethod() { // Line 3

android笔试题及答案

单选题 中可以用来处理js中警示,确认等对话框的是(C) 2.假设assets目录下有文件结构html/,用loadUrl()方法将该网页加载至 webView 时,需传入的参数是(B) A. B. C. D. 3.下列不属于补间动画相关类的是(B) 中网络互连中需要获取状态码,根据状态码来判断请求是否已经完成,下列状 态码表示请求完成的是(D) 5.关于ImageSwitcher 说法错误的是:( B ) 里可以通过Alpha设定转换时候的透明位 B.在使用一个ImageSwitcher之前,不一定要调用setFactory方法 是设置资源被读入到这个ImageSwitcher的时候动画效果 是资源文件从这个ImageSwitcher里消失的时候要实现的动画效果 6.建立蓝牙连接时通过_D_方法来获取BluetoothAdapter对象 D. () 7.关于Handler的说法不正确的是( A ) A.它实现不同进程间通信的一种机制 B.它避免了在新线程中刷新UI的操作 C.它采用队列的方式来存储Message D.它实现不同线程间通信的一种机制 8.Vector和ArrayList的主要区别是(B): A. ArrayList内部基于链表,而Vector是基于数组的

B. Vector的大部分方法做了同步,而ArrayList没有同步 C. Vector是可串行化的,而ArrayList不是 D. Vector实现了RandomAccess,而ArrayList没有 9.下列属于SAX解析xml文件的优点的是(B ) A.将整个文档输在内存中,便于操作,支持删除,修改,重新排列等多种功能 B.不用事先调入整个文档,占用资源少 C.整个文档调入内存,浪费时间和空间 D.不是长久驻留在内存,数据不是持久的,事件过后,若没有保存数据,数据就会消失 a1="abc"; String a2="abc"; String a3="abcd"; 总共创建( A )个String对象。 多选题 1.在添加第一个appwidget窗口小部件时,会执行的方法是(ABD) 2.下列属于SOAP优点的是(ABCD) A,SOAP 与编程语言无关。SOAP 可以使用任何语言来完成 B,SOAP 是完全和厂商无关。 C,SOAP 与平台无关D,SOAP 是简单的,可扩展的 3.下列属于SAX解析XML需要用到的类和接口是(BCD) A.DocumentBuilder 4.在使用蓝牙必须获取的权限是(AD) 5.Chronometer类的重要方法(ABC) 简答题 1.oom是什么如何避免 当程序需要申请一段“大”内存,但是虚拟机没有办法及时的给到,即使做了GC操作以后这就会抛出OutOfMemoryException 也就是OOM 避免:

Android面试题整理

Android常用面试简答题 1、android 中得动画有哪几类,它们得特点与区别就是什 么? 参考答案: 有两种,一种就是 Tween(补间)动画、还有一种就是 Frame(帧)动画。Tween 动画,这种实现方式可以使视图组件移动、放大、缩小以及产 生透明度得变化;另一种 Frame 动画,传统得动画方法,通过顺序得播放排列好得图片来实现,类似电影。 2、请简述Handler得机制原理 参考答案: andriod 提供了 Handler 与 Looper 来满足线程间得通信。Handler 先进先出原则。 Looper类用来管理特定线程内对象之间得消息交换(Message Exchange)。 1)Looper: 一个线程可以产生一个 Looper 对象,由它来管理此线程里 得 Message Queue(消息队列)。 2)Handler: 您可以构造 Handler 对象来与 Looper 沟通,以便 push 新消息到 Message Queue 里;或者接收 Looper从 Message Queue 取出)所送来得消息。 3) Message Queue(消息队列):用来存放线程放入得消息。 4)线程:UI thread 通常就就是 main thread,而 Android 启动程序时会替它建立一个Message Queue。 3、说说mvc模式得原理,它在android中得运用 参考答案: MVC 就是 Model,View,Controller 得缩写,从上图可以瞧出 MVC 包含三个部分: 模型( Model )对象:就是应用程序得主体部分,所有得业务逻辑都应该写在该层。 视图( View )对象:就是应用程序中负责生成用户界面得部分。也就是在整个MVC 架构中用户唯一可以瞧到得一层,接收用户得输入,显 示处理结果。 控制器( Control )对象:就是根据用户得输入,控制用户界面数据显示及更新Model 对象状态得部分,控制器更重要得一种导航功能,想 用用户触发得相关事件,交给 Model处理。 Android 鼓励弱耦合与组件得重用,在 Android 中 MVC 得具体体现如下 1) 视图层( view ):一般采用 xml 文件进行界面得描述,使用得时 候可以非常方便得引入,当然,如何您对 android 了解得比较得多了话,就一定可以想到在 android 中也可以使用javascript+html 等得方式作为 view 层,当然这里需要进行 java 与 javascript 之间得通信,幸运得就是, android 提供了它们之间非常方便得通信实现。

android面试题及答案

一选择题(可多选,30分) 1、关于BroadcastReceiver说法正确的是(AB) A、BroadcastReceiver有两种注册方式,静态注册和动态注册 B、Broadcast分正常广播和有序广播,其中有序广播可以被停止掉,不传给下一个接受者 C、Broadcast Receiver 提供了可视化的界面来显示广播信息 D、BroadcastReceiver的onReceive函数里可以使用线程来执行耗时的操作 2、关于Android dvm的进程和Linux的进程,应用程序的进程说法正确的是(D) A、DVM指dalivk的虚拟机.每一个Android应用程序都在它自己的进程中运行,不一定拥有一个独立的Dalvik虚拟机实例.而每一个DVM都是在Linux中的一个进程,所以说可以认为是同一个概念. B、DVM指dalivk的虚拟机.每一个Android应用程序都在它自己的进程中运行,不一定拥有一个独立的Dalvik虚拟机实例.而每一个DVM不一定都是在Linux 中的一个进程,所以说不是一个概念. C、DVM指dalivk的虚拟机.每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例.而每一个DVM不一定都是在Linux 中的一个进程,所以说不是一个概念. D、DVM指dalivk的虚拟机.每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例.而每一个DVM都是在Linux 中的一个进程,所以说可以认为是同一个概念. 3 android 中下列关于Intent说法正确的是(C) A、实现应用程序间的数据共享 B、是一段长的生命周期,没有用户界面的程序,可以保持应用在后台运行,而不会因为切换页面而消失 C、可以实现界面间的切换,可以包含动作和动作数据,连接四大组件的纽带 D、处理一个应用程序整体性的工作 4 android 关于service生命周期的onCreate()和onStart()说法正确的是(AD) A、当第一次启动的时候先后调用onCreate()和onStart()方法 B、当第一次启动的时候只会调用onCreate()方法 C、如果service已经启动,将先后调用onCreate()和onStart()方法 D、如果service已经启动,只会执行onStart()方法,不在执行onCreate()方法 5.在异常处理中,如释放资源、关闭文件、关闭数据库等由( C)来完成。 A.try子句 B.catch子句 C.finally子句 D.throw子句 6.关于Collections说法正确的是(AC) A.Collections 包含有各种有关集合操作的静态多态方法 B.Collections是集合类的一个顶级接口, C.Collections 是一个包装类,此类不能实例化 D.List是Collections的子接口 7.关于java抽象类说法正确时是(AC)

Android面试题-带答案

1.介绍一下Android系统的体系结构 答:应用层:android的应用程序通常涉及用户界面和交互。 应用框架层:UI组件、各种管理器等。 函数库层:系统C库、媒体库、webkit、SQLite等。 linux核心库:linux系统运行的组件。 2.Android的四大组件是哪些,它们的作用? 答:Activity:Activity是Android程序与用户交互的窗口,是Android构造块中最基本的一种,它需要为保持各界面的状态,做很多持久化的事情,妥善管理生命周期及一些跳转逻辑 service:后台服务于Activity,封装有一个完整的功能逻辑实现,接受上层指令,完成相关的事物,定义好需要接受的Intent提供同步和异步的接口 Content Provider:是Android提供的第三方应用数据的访问方案,可以派生Content Provider类,对外提供数据,可以像数据库一样进行选择排序,屏蔽内部数据的存储细节,向外提供统一的借口模型,大大简化上层应用,对数据的整合提供了更方便的途径 BroadCast Receiver:接受一种或者多种Intent作触发事件,接受相关消息,做一些简单处理,转换成一条Notification,统一了Android的事件广播模型 3.请介绍下Android的数据存储方式。 答:一.SharedPreferences方式 二.文件存储方式 三.SQLite数据库方式 四.内容提供器(Content provider)方式 五. 网络存储方式 4.说说mvc模式的原理 答:mvc是model,view,controller的缩写,mvc包含三个部分: 模型(model)对象:是应用程序的主体部分,所有的业务逻辑都应该写在该层。 视图(view)对象:是应用程序中负责生成用户界面的部分。也是在整个mvc架构中用户唯一可以看到的一层,接收用户的输入,显示处理结果。 控制器(control)对象:是根据用户的输入,控制用户界面数据显示及更新model对象状态的部分,控制器更重要的一种导航功能,响应用户出发的相关事件,交给m层处理。 5.如果后台的Activity由于某原因被系统回收了,如何在被系统回收之前保存当前状态? 答:重写onSaveInstanceState()方法,在此方法中保存需要保存的数据,该方法将会在activity被回收之前调用。通过重写onRestoreInstanceState()方法可以从中提取保存好的数据

Android Java面试笔试题

Android Java笔试题(带大部分答案) 请将试题答在答题卡上,不要在试卷中做任何标记 一、基础题: 1. 1. 请写出输出结果 public class Test1 { public static void changeStr(String str){ str=”welcome”; } public static void main(String[] args) { String str=”1234″; changeStr(str); System.out.println(str); } } ___”1234″____________________________________________________ 1. 2. 请写出输出结果 public class Test2 { static boolean foo(char c) { System.out.print(c); return true; } public static void main(String[] argv) { int i = 0; for (foo(…A?); foo(…B?) && (i < 2); foo(…C?)) { i++; foo(…D?); } } } _____ABDCBDCB___________________________________________________ 1.class A {

protected int method1(int a, int b) { return 0; } } 以下A扩展类中的方法哪两个是正确的:(选择两个) A.public int method1(int a, int b) { return 0;} B.private int method1(int a, int b) { return 0;} C.private int method1(int a, long b) { return 0;} D.public short method1(int a, int b) { return 0;} E.static protected int method1(int a, int b) { return 0;} ____AD___________________________________________________ 1.public class Outer{ public void someOuterMethod() { // Line 3 } public class Inner{} public static void main(String[] args) { Outer o = new Outer(); // Line 8 } } 下列哪一个对Inner类实例化的描述是正确的?D A.new Inner(); // At line 3 B.new Inner(); // At line 8 C.new o.Inner(); // At line 8 D.new Outer.Inner(); // At line 8//new Outer().new Inner() 1. 5. 下面这个程序正确吗? 如果不正确请说出哪里错误。 public class Something { public static void main(String[] args) { Other o = new Other(); new Something().addOne(o); } public void addOne(final Other o) { o.i++;

Android开发笔试题.docx

Android 应用开发笔试 姓名 :_____________联系电话:_____________得分:_____________ 共100分,考试时间40 分钟 一、选择题(30题,每题 1.5 分,共45分 ) A 、输入流和输出流B、字节流和字符流C、节点流和处理流 D 、File stream E、 Pipe stream F、Random stream 2. 下列代码的执行结果是:() public class Test3{ public static void main(String args[]){ } G、 Filter stream } B、 A 、1,1B、 1,1.0 C、 1.0,1 D 、1.0,1.0盖。 3.在继承中,关于构造方法的说明,下列说法错误的是() C、子类无条件的继承父类的无参构造方法, D、子类可以引用父类中的有参构造方法,使用super 关键字, E、如果子类没有构造方法,则父类无参构造方法作为自已的构造方法, F、如果子类有无参构造方法,而父类的无参构造方法则被覆盖。 4.以下程序的运行结果为 ( ) public class IfTest{ public static void main(String args[]){ int x=3; int y=1; if(x==y) else } } A 、 Not equal B、Equal C、无输出 D 、编译出错 5.Java语言中字符串“学Java ”所占的内存空间是() A. 6个字节 B. 7个字节 C. 10个字节 D. 11个字节 6.Java语言中 A. 1,2,4,4,4,8byte 、short、int、float、double、long B.1,2,48,8,8 C.1,1,4,4,8,8 D.1,2,4,4,8,8 分别是几个字节() 7. 关于下列程序段的输出结果,说法正确的是:() public class MyClass{ static int i; public static void main(Stringargv[]){ } } A 、有错误,变量i 没有初始化。B、null C 、 1 D 、 0 8.下列哪些语句关于内存回收的说明是正确的? () A 、程序员必须创建一个线程来释放内存

android面试题关于ui四大主键

笔试一般都是java基础 Java知识点包括:接口与抽象的使用及区别,多线程,socket基础,集合类,也有个别公司考察定义,很无语。 这里具体说一下android面试题目: 南京WSCX: 1、 Activity的生命周期,两个Activity之间跳转时必然会执行的是那几个方法? 生命周期:oncreate onStart onStop onPause onResume onDestory OnPause onCreate onStart onstop onResume 2、 不用service,B页面为音乐播放,从A跳转到B,再返回,如何使音乐继续播放? B的Mediaplay.get(播放歌曲,播放时间)保存到intent A if(播放歌曲&&播放时间有值) { MediaPaly(ss,dd); } 3、 Service有哪些启动方法?有什么区别? Service的启动方法有onstartServivr onbindService Start方法是先调用oncreate onstart 但是如果最后不调用onstop方法那么就算是activity 呗回收了也还是会运行 但是bind 是先后调用oncreate onbind 如果不调用onstop放法那么在activity被回收的时候就会被关闭 4、 (音乐播放器)如何加载的音乐信息,如何改善其效率。 构造SimpleAdapter - ListView 5、 电话状态的监听,改变打电话界面(听说我改动的Phone源码就不再问了)。 6、 ListView如何提高其效率? 7、 还有一些都是在上面的基础上扩展的,跟具体项目有关,就不说了。 总结:他们只是问一问这些基础的知识,都是给外包公司招人,自己做不了主,也就是检验一下应聘人员懂不懂android。 南京SL: 1、 启动一个程序,可以主界面点击图标进入,也可以从一个程序中跳转过去,二者有什么区别?2、 启动一个Activity有哪几种方法? Intent intent = new Intent(this,FirstActivity.class)

Android面试题带标准答案

Android面试题 下列哪些语句关于内存回收的说明是正确的? (b ) A、程序员必须创建一个线程来释放内存 B、内存回收程序负责释放无用内存 C、内存回收程序允许程序员直接释放内存 D、内存回收程序可以在指定的时间释放内存对象 下面异常是属于Runtime Exception的是(abcd)(多选) A、ArithmeticException B、IllegalArgumentException C、NullPointerException D、BufferUnderflowException Math.round(11.5)等于多少(). Math.round(-11.5)等于多少(c). c A、11 ,-11 B、11 ,-12 C、12 ,-11 D、12 ,-12 下列程序段的输出结果是:(b)?void complicatedexpression_r(){int x=20, y=30; boolean b; b=x>50&&y>60||x>50&&y<-60||x<-50&&y>60||x<-50&&y<-60; System.out.println(b);? } A、true B、false C、1 D、011.activity 对一些资源以及状态的操作保存,最好是保存在生命周期的哪个函数中进行(d) A、onPause() B、onCreate() C、 onResume() D、onStart() Intent传递数据时,下列的数据类型哪些可以被传递(abcd)(多选) A、Serializable B、charsequence C、Parcelable D、Bundle android 中下列属于Intent的作用的是(c) A、实现应用程序间的数据共享 B、是一段长的生命周期,没有用户界面的程序,可以保持应用在后台运行,而不会因为切换页面而消失 C、可以实现界面间的切换,可以包含动作和动作数据,连接四大组件的纽带 D、处理一个应用程序整体性的工作 下列属于SAX解析xml文件的优点的是(b) A、将整个文档树在内存中,便于操作,支持删除,修改,重新排列等多种功能 B、不用事先调入整个文档,占用资源少 C、整个文档调入内存,浪费时间和空间 D、不是长久驻留在内存,数据不是持久的,事件过后,若没有保存数据,数据就会 消失 下面的对自定style的方式正确的是(a) A、 <resources> ?<stylename="myStyle"> ? ?</style> B、<style name="myStyle"> ?<item name="android:layout_width">fill_parent</item>

Android面试题

Android面试题 1. 下列哪些语句关于内存回收的说明是正确的? (b ) A、程序员必须创建一个线程来释放内存 B、内存回收程序负责释放无用内存 C、内存回收程序允许程序员直接释放内存 D、内存回收程序可以在指定的时间释放内存对象 2. 下面异常是属于Runtime Exception 的是(abcd)(多选) A、ArithmeticException B、IllegalArgumentException C、NullPointerException D、BufferUnderflowException 3. Math.round(11.5)等于多少(). Math.round(-11.5)等于多少(c). c A、11 ,-11 B、11 ,-12 C、12 ,-11 D、12 ,-12 4. 下列程序段的输出结果是:(b ) void complicatedexpression_r(){ int x=20, y=30; boolean b; b=x>50&&y>60||x>50&&y<-60||x<-50&&y>60||x<-50&&y<-60; System.out.println(b); } A、true B、false C、1 D、011.activity5. 对一些资源以及状态的操作保存,最好是保存在生命周期的哪个函数中进行(d) A、onPause() B、onCreate() C、 onResume() D、onStart() 6. Intent传递数据时,下列的数据类型哪些可以被传递(abcd)(多选) A、Serializable B、charsequence C、Parcelable D、Bundle 7. android中下列属于Intent的作用的是(c) A、实现应用程序间的数据共享 B、是一段长的生命周期,没有用户界面的程序,可以保持应用在后台运行,而不会因为切换页面而消失 C、可以实现界面间的切换,可以包含动作和动作数据,连接四大组件的纽带 D、处理一个应用程序整体性的工作 8. 下列属于SAX解析xml文件的优点的是(b) A、将整个文档树在内存中,便于操作,支持删除,修改,重新排列等多种功能 B、不用事先调入整个文档,占用资源少 C、整个文档调入内存,浪费时间和空间 D、不是长久驻留在内存,数据不是持久的,事件过后,若没有保存数据,数据就会 消失 9. 下面的对自定style的方式正确的是(a) A、

android笔试题及答案

单选题 1.WebView中可以用来处理js中警示,确认等对话框的是(C) A.WebSettings B.WebViewClient C.WebChromeClient D.WebViewChrome 2.假设assets目录下有文件结构html/hello.html,用loadUrl()方法将该网页加载至webView 时,需传入的参数是(B) A. file:///asset/html/hello.html B.file:///android_asset/html/hello.html C.file:///androidasset/hello.html D.file:///assets/html/hello.html 3.下列不属于补间动画相关类的是(B) A.TranslateAnimation B.FrameAnimation C.RotateAnimation D.AlphaAnimation 4.Android中网络互连中需要获取状态码,根据状态码来判断请求是否已经完成,下列状态码表示请求完成的是(D) A.100 B.202 C.404 D.200 5.关于ImageSwitcher 说法错误的是:(B ) A.ImageSwitcher里可以通过Alpha设定转换时候的透明位 B.在使用一个ImageSwitcher之前,不一定要调用setFactory方法 C.setInAnimation是设置资源被读入到这个ImageSwitcher的时候动画效果 D.setOutAnimation是资源文件从这个ImageSwitcher里消失的时候要实现的动画效果 6.建立蓝牙连接时通过_D_方法来获取BluetoothAdapter对象 A.BluetoothAdapter.getBluetoothAdapterAdapter() B.BluetoothAdapter adapter=new BluetoothAdapter(); C.BluetoothAdapter.BluetoothAdapterAdapter(); D. BluetoothAdapter.getDefaultAdapter() 7.关于Handler的说法不正确的是( A ) A.它实现不同进程间通信的一种机制 B.它避免了在新线程中刷新UI的操作 C.它采用队列的方式来存储Message D.它实现不同线程间通信的一种机制 8.Vector和ArrayList的主要区别是(B): A. ArrayList内部基于链表,而Vector是基于数组的

2016最新Android常见面试题

1.横竖屏切换时候activity 的生命周期 1). 不设置Activity 的android:configChanges 时, 切屏会重新调用各个生命周期, 切横屏时会执行一次, 切竖屏时会执行两次. 2). 设置Activity 的Android:configChanges=‖orientation‖ 时, 切屏还是会重新调用各个生命周期, 切横、竖屏时只会执行一次. 3). 设置Activity 的Android:configChanges=‖orientation|keyboardHidden‖ 时, 切屏不会重新调用各个生命周期, 只会执行onConfigurationChanged 方法 . 2.android 中的动画有哪几类,它们的特点和区别是什么? 两种,一种是Tween 动画、还有一种是Frame 动画。Tween 动画,这种实现方式可以使视图组件移动、放大、缩小以及产生透明度的变化; 另一种Frame 动画,传统的动画方法,通过顺序的播放排列好的图片来实现,类似电影。 3. 一条最长的短信息约占多少byte? 中文70( 包括标点) ,英文160 ,160 个字节。 4.handler 机制的原理 andriod 提供了Handler 和Looper 来满足线程间的通信。Handler 先进先出原则。Looper 类用来管理特定线程内对象之间的消息交换(Message Exchange) 。 1)Looper: 一个线程可以产生一个Looper 对象,由它来管理此线程里的Message Queue( 消息队列) 。 2)Handler: 你可以构造Handler 对象来与Looper 沟通,以便push 新消息到Message Queue 里; 或者接收Looper 从Message Queue 取出) 所送来的消息。 3) Message Queue( 消息队列): 用来存放线程放入的消息。 4) 线程:UI thread 通常就是main thread ,而Android 启动程序时会替它建立一个Message Queue 。 5. 什么是嵌入式实时操作系统, Android 操作系统属于实时操作系统吗?

Android面试题集合(含答案)

云时代 Android面试题集[键入文档副标题]

目录 第一章Android最全面试题71道题 (55) 一、选择题 (55) 二.填空和问答 (1212) 25. android中常用的五个布局是FrameLayout(单帧布局)、RelativeLyout(相对布局)、LinerLayout(线 性布局)、TableLayout(表格布局)、AbsoluteLayout(绝对布局) (1212) 26. android 的四大组件是__Activity Service BrodcastReceiver ContentProvier。1212 27. java.io包中的__ObjectInputStream_和_ObjectOutputStream_类主要用于对对象(Object)的读写。 (1212) 28. android 中service的启动方法有:__startService____bindService_ (1212) 29. activity一般会重载7个方法用来维护其生命周期,分别是:onCreate onStart onResume onPause onStop onDestroy onRestart (1212) 30. android的数据存储的方式有:SharedPreferences数据存储、文件存储、SQLite数据库存储数据、 Contentprovider存储数据、网络存储数据 (1212) 31. 当启动一个Activity 并且新的Activity 执行完后需要返回到启动它的Activity 数据,启动新 Activity的方法是_startActivityForResult(intent,RequestCode)_,用来处理返回数据的Activity回调函 数是void onActivityResult(int requestCode,int resultCode,intent data)_。 (1313) 33.下面程序运行的结果是:______________。 (1313) 34. 在android中,请简述jni的调用过程。 (1414) 35. 简述Android的体系结构包括哪些? (1414) 36. 请继承SQLiteOpenHelper实现下述功能 (1414) 37. 页面上现有ProgressBar 控件progressBar,请用书写线程以10秒的的时间完成其进度显示工 作。 (1515) 38. 请描述Activity 的生命周期。 (1616) 39. 如果后台的Activity由于某原因被系统回收了,如何在被系统回收之前保存当前状态?1717 40. 如何将一个Activity 设置成对话框窗口的样式。 (1717) 41. 如何退出Activity?如何安全退出已调用多个Activity 的Application? (1717) 43. 请介绍下Android的数据存储方式。 (1919) 44. 请介绍下ContentProvider是如何实现数据共享的。 (1919) 45. 如何启用Service,如何停用Service。 (2020) 46. 注册广播接收器有几种方式,这些方式有何优缺点?请谈谈Android引入广播机制的用意。 .......................................................................... 错误!未定义书签。错误!未定义书签。 47. 请解释下在单线程模型中Message、Handler、Message Queue、Looper之间的关系。错误!

相关主题