Android面试题集合(含答案)

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之间的关系。错误!

未定义书签。错误!未定义书签。

48. AIDL的全称是什么?如何工作?能处理哪些类型的数据?错误!未定义书签。错误!未定义书签。

49. 请解释下Android程序运行时权限与文件系统权限的区别。错误!未定义书签。错误!未定义书签。

50. 系统上安装了多种浏览器,能否指定某浏览器访问指定页面?请说明原由。错误!未定义书签。错误!未定义书签。

51. 你如何评价Android系统优缺点。....... 错误!未定义书签。错误!未定义书签。

52. 什么是ANR 如何避免它? ...................... 错误!未定义书签。错误!未定义书签。

53. 什么情况会导致Force Close ?如何避免?能否捕获导致其的异常?错误!未定义书签。错误!未定义书签。

54.Android本身的api并未声明会抛出异常,则其在运行时有无可能抛出runtime异常,你遇到过吗?若有的话会导致什么问题?如何解决? .... 错误!未定义书签。错误!未定义书签。

55. 简要解释一下activity、intent 、intent filter、service、Broadcase、BroadcaseReceiver 错误!未定义书签。错误!未定义书签。

56. IntentService有何优点? ............................ 错误!未定义书签。错误!未定义书签。

57. 请描述横竖屏切换时候activity的生命周期?错误!未定义书签。错误!未定义书签。

58. 如何将打开res aw目录中的数据库文件?错误!未定义书签。错误!未定义书签。

如何将SQLite 数据库(dictionary.db 文件)与apk 文件一起发布?错误!未定义书签。错误!未定义书签。

59. Android引入广播机制的用意? ................ 错误!未定义书签。错误!未定义书签。

60.Android dvm的进程和Linux的进程, 应用程序的进程是否为同一个概念错误!未定义书签。错误!未定义书签。

61. sim卡的EF 文件有何作用....................... 错误!未定义书签。错误!未定义书签。

62. 嵌入式操作系统内存管理有哪几种,各有何特性错误!未定义书签。错误!未定义书签。

63. 什么是嵌入式实时操作系统,Android操作系统属于实时操作系统吗?错误!未定义书签。错误!未定义书签。

64. 一条最长的短信息约占多少byte? ........ 错误!未定义书签。错误!未定义书签。

65. android中的动画有哪几类,它们的特点和区别是什么?错误!未定义书签。错误!未定义书签。

66. 请说明handler机制的原理 .................... 错误!未定义书签。错误!未定义书签。

67. 说说mvc模式的原理,它在android中的运用?错误!未定义书签。错误!未定义书签。

68. DDMS和TraceView的区别? .................... 错误!未定义书签。错误!未定义书签。

69. java中如何引用本地语言 ........................ 错误!未定义书签。错误!未定义书签。

70. 谈谈Android的IPC(进程间通信)机制错误!未定义书签。错误!未定义书签。

71. NDK是什么................................................ 错误!未定义书签。错误!未定义书签。

第二章Android面试题总结加强版(一).................. 错误!未定义书签。错误!未定义书签。

1.android中线程与线程,进程与进程之间如何通信错误!未定义书签。错误!未定义书签。

2.请描述一下你所掌握的Android 常用控件的信息错误!未定义书签。错误!未定义书签。

3 ListtView 的数据加载优化方案 .................. 错误!未定义书签。错误!未定义书签。

4请描述广播接收者生命周期....................... 错误!未定义书签。错误!未定义书签。

5.设计模式和IoC(Inversion of Control 控制反转)错误!未定义书签。错误!未定义书签。

6.请说明Android 中的长度单位................... 错误!未定义书签。错误!未定义书签。

7. 请解释4种activity的启动模式 .............. 错误!未定义书签。错误!未定义书签。

8.如果后台的Activity 由于某原因被系统回收了,如何在被系统回收之前保存当前状态?错误!

未定义书签。错误!未定义书签。

9 View, surfaceView,GLSurfaceView有什么区别。错误!未定义书签。错误!未定义书签。

10 AndroidManifest.xml 文件中主要包括哪些信息?错误!未定义书签。错误!未定义书签。

11 根据自己的理解描述下Android数字签名。错误!未定义书签。错误!未定义书签。

12 AIDL的全称是什么?如何工作?能处理哪些类型的数据?错误!未定义书签。错误!未定义书签。

13 android:gravity与android:layout_gravity 的区别错误!未定义书签。错误!未定义书签。

14 android中有哪几种解析xml的类,官方推荐哪种?以及它们的原理和区别.错误!未定义书签。错

误!未定义书签。

15 Android 系统中GC什么情况下会出现内存泄露呢?错误!未定义书签。错误!未定义书签。

16双缓冲技术原理以及优缺点:................. 错误!未定义书签。错误!未定义书签。

17 AsyncTask简介 ........................................... 错误!未定义书签。错误!未定义书签。

18,Socket通信编程的基本实现步骤 .......... 错误!未定义书签。错误!未定义书签。

19 如果有个100M大的文件,需要上传至服务器中,而服务器form表单最大只能上传2M,可以

用什么方法。.................................................. 错误!未定义书签。错误!未定义书签。

20内存溢出和内存泄漏有什么区别?何时会产生内存泄漏?内存优化有哪些方法?错误!未定义

书签。错误!未定义书签。

21 AsyncTask使用在哪些场景?它的缺陷是什么?如何解决?错误!未定义书签。错误!未定义书签。

22 assest文件夹里放文件,对于文件的大小有没有限制?22错误!未定义书签。错误!未定义书签。

23 启动一个程序,可以主界面点击图标进入,也可以从一个程序中跳转过去,二者有什么区别?

.......................................................................... 错误!未定义书签。错误!未定义书签。

24、同一个程序,但不同的Activity是否可以放在不同的Task任务栈中?错误!未定义书签。错误!

未定义书签。

第一章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 ).

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、0

5. 对一些资源以及状态的操作保存,最好是保存在Activity生命周期的哪个函数中进行( 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、将整个文档树在内存中,便于操作,支持删除,修改,重新排列等多种功能(dom

解析优点)

B、不用事先调入整个文档,占用资源少(sax 解析优点)

C、整个文档调入内存,浪费时间和空间(dom 解析缺点)

D、不是长久驻留在内存,数据不是持久的,事件过后,若没有保存数据,数据就会

说明:不需要像dom 解析那样在内存中建立一个dom 对象,占用内存,sax 解析是逐行解析的,每次读入内存的只是一行xml,所以速度快,效率高点。不过sax 一般是处理固定格式的xml。

9. 下面的对自定义 style的方式正确的是( a )

A、

B、

C、

fill_parent(没有)

D、

(应为)

10. 在 android中使用Menu时可能需要重写的方法有( ac )。(多选)

A、onCreateOptionsMenu()

B、onCreateMenu()

C、onOptionsItemSelected()

D、onItemSelected()

说明:

//当客户点击MENU 按钮的时候,调用该方法

public boolean onCreateOptionsMenu(Menu menu)

//当客户点击菜单当中的某一个选项时,会调用该方法

public boolean onOptionsItemSelected(MenuItem item)

11. 在SQLServer Management Studio 中运行下列T-SQL语句,其输出值( c )。SELECT @@IDENTITY

A、可能为0.1

B、可能为3

C、不可能为-100

D、肯定为0

@@identity 是表示的是最近一次向具有identity 属性(即自增列)的表插入数据时对应的自增

列的值,是系统定义的全局变量。一般系统定义的全局变量都是以@@开头,用户自定义变

量以@开头。比如有个表A,它的自增列是id ,当向A 表插入一行数据后,如果插入数据

后自增列的值自动增加至101,则通过select @@identity 得到的值就是101。使用@@identity的前提是在进行insert 操作后,执行select @@identity 的时候连接没有关闭,否则得到的将是NULL 值。

12. 在SQLServer 2005中运行如下T-SQL语句,假定SALES表中有多行数据,执行查询之后的结果是(d)。BEGIN TRANSACTION A

Update SALES Set qty=30 WHERE qty<30

BEGIN TRANSACTION B

Update SALES Set qty=40 WHERE qty<40

Update SALES Set qty=50 WHERE qty<50

Update SALES Set qty=60 WHERE qty<60

COMMITTRANSACTION B

COMMIT TRANSACTION A

A、SALES 表中qty 列最小值大于等于30

B、SALES 表中qty 列最小值大于等于40

C、SALES 表中qty 列的数据全部为50

D、SALES 表中qty 列最小值大于等于60

Update SALES Set qty=60 WHERE qty<60(关键在最后一句,执行完数据就都是大于等于60了)

13. 在android中使用SQLiteOpenHelper这个辅助类时,可以生成一个数据库,并可以对数据库版本进行管理的方法可以是( ab )

A、getWriteableDatabase()

B、getReadableDatabase()

C、getDatabase()

D、getAbleDatabase()

14. android 关于service生命周期的onCreate()和onStart()说法正确的是( ad )(多选题)

A、当第一次启动的时候先后调用onCreate()和onStart()方法

B、当第一次启动的时候只会调用onCreate()方法

C、如果service 已经启动,将先后调用onCreate()和onStart()方法

D、如果service 已经启动,只会执行onStart()方法,不在执行onCreate()方法

15. 下面是属于GLSurFaceView特性的是( abc )(多选)

A、管理一个surface,这个surface 就是一块特殊的内存,能直接排版到android 的视图

view 上。

B、管理一个EGL display,它能让opengl 把内容渲染到上述的surface 上。

C、让渲染器在独立的线程里运作,和UI 线程分离。

D、可以直接从内存或者DMA 等硬件接口取得图像数据

说明:

GLSurfaceView 是一个视图,继承至SurfaceView,它内嵌的surface 专门负责OpenGL渲染。GLSurfaceView 提供了下列特性:

1> 管理一个surface,这个surface 就是一块特殊的内存,能直接排版到android 的视图view 上。

2> 管理一个EGL display,它能让opengl 把内容渲染到上述的surface上。

3> 用户自定义渲染器(render)。

4> 让渲染器在独立的线程里运作,和UI 线程分离。

5> 支持按需渲染(on-demand)和连续渲染(continuous)。

6> 一些可选工具,如调试。

16. 下面在AndroidManifest.xml 文件中注册BroadcastReceiver方式正确的( a )

A、

android:name="android.provider.action.NewBroad"/>

B、

android:name="android.provider.action.NewBroad"/>

C、

android:name="android.provider.action.NewBroad"/>

D、

android:name="android.provider.action.NewBroad"/>

17. 关于ContenValues类说法正确的是( a )

A、他和Hashtable 比较类似,也是负责存储一些名值对,但是他存储的名值对当中的名是String 类型,而值都是基本类型。

B、他和Hashtable 比较类似,也是负责存储一些名值对,但是他存储的名值对当中的名是任意类型,而值都是基本类型。

C、他和Hashtable 比较类似,也是负责存储一些名值对,但是他存储的名值对当中的名,可以为空,而值都是String 类型。

D、他和Hashtable 比较类似,也是负责存储一些名值对,但是他存储的名值对当中的名是String 类型,而值也是String 类型。

18. 我们都知道Hanlder是线程与Activity通信的桥梁,如果线程处理不当,你的机器就会变得越慢,那么线程销毁时调用的方法是( a )

A、destroy()

B、clear()

C、onFinish()

D、onStop()

19. 下面退出Activity 错误的方法是(c )

A、finish()

B、抛异常强制退出

C、System.exit() System.exit(0) 0是正常退出,其他数字是表示不正常退出

D、onStop()

20. 下面属于android的动画分类的有( ab )(多项)

A、Tween

B、Frame

C、Draw

D、Animation

21. 下面关于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 中的一个进程,所以说可以认为是同一个概念。

22. Android项目工程下面的assets目录的作用是什么(b )

A、放置应用到的图片资源。

B、主要放置多媒体等数据文件

C、放置字符串,颜色,数组等常量数据

D、放置一些与UI 相应的布局文件,都是xml 文件

23. 关于res/raw目录说法正确的是( a )

A、这里的文件是原封不动的存储到设备上不会转换为二进制的格式

B、这里的文件是原封不动的存储到设备上,会转换为二进制的格式

C、这里的文件最终以二进制的格式存储到指定的包中

D、这里的文件最终不会以二进制的格式存储到指定的包中

24. 下列对android NDK的理解正确的是( abcd )

A、NDK 是一系列工具的集合

B、NDK 提供了一份稳定、功能有限的API 头文件声明。

C、使“Java+C”的开发方式终于转正,成为官方支持的开发方式

D、NDK 将是Android 平台支持C 开发的开端

二.填空和问答

25. android中常用的五个布局是_______________________。

LinearLayout(线性布局)、FrameLayout(单帧布局)、RelativeLayout(相对布局)、TableLayout(表格布局)和AbsoluteLayout(绝对布局)

26. android 的四大组件是________________________________。

Activity,Service,BroadcastReceiver和ContentProvider。

27. java.io包中的_________和__________类主要用于对对象(Object)的读写。ObjectInputStream、ObjectOutputStream

28. android 中service的启动方法有:______________________

startservice和bindservice。

29. activity一般会重载7个方法用来维护其生命周期,分别是:

onCreate(),onStart(),onResult()、onPause()、onStop()、onDestory()、onRestart()

30. android的数据存储的方式有:

Android 提供了5种方式存储数据:

(1)使用SharedPreferences 存储数据;它是Android 提供的用来存储一些简单配置信息的一种机制,采用了XML 格式将数据存储到设备中。只能在同一个包内使用,不能在不同的包之间使用。

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

(3)SQLite 数据库存储数据;SQLite 是Android 所带的一个标准的数据库,它支持SQL语句,它是一个轻量级的嵌入式数据库。

(4)使用ContentProvider 存储数据;主要用于应用程序之间进行数据交换,从而能够让其他的应用保存或读取此Content Provider 的各种数据类型。

(5)网络存储数据;通过网络上提供给我们的存储空间来上传(存储)和下载(获取)我们存储在网络空间中的数据信息。

31 当启动一个Activity 并且新的Activity 执行完后需要返回到启动它的Activity 数据,启动新Activity的方法是___________,用来处理返回数据的Activity回调函数是____________。

startActivityForResult(Intent,requestCode)//启动一个activity包含参数请求码和具体的intent数据,其中请求码可以用来识别子活动。

void onActivityResult(int requestCode, int resultCode, Intent data)回调函数用来处理返回的数据。

32使用Intent在Activity之间传递数据时,能传递什么类型的数据?如何传递?对象数据的传递有什么限制?

1.一般的基本数据类型 Intent .putextra() intent.getextra();

2.数据的uri, intent.setData() intent.getData();

33.下面程序运行的结果是:______________。

public class Example{

String str=new String("good");

char[]ch={'a','b','c'};

public static void main(String args[]){

Example ex=new Example();

ex.change(ex.str,ex.ch);

System.out.print(ex.str+" and ");

Sytem.out.print(ex.ch);

}

public void change(String str,char ch[]){

str="test ok";

ch[0]='g';

}

}

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

1)安装和下载Cygwin,下载Android NDK

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

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

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

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

35. 简述Android的体系结构包括哪些?

Android 应用程序结构是:

Linux Kernel(Linux 内核)、Libraries(系统运行库或者是c/c++核心库)、Application

Framework(开发框架包)、Applications(核心应用程序)

36. 请继承SQLiteOpenHelper实现下述功能

1).创建一个版本为1的“diaryOpenHelper.db”的数据库,

2).同时创建一个“diary”表(包含一个_id 主键并自增长,topic 字符型100

长度, content 字符型1000长度)

3).在数据库版本变化时请删除diary 表,并重新创建出diary 表。

参考 :

public class DBHelper extends SQLiteOpenHelper {

public final static String DATABASENAME = "diaryOpenHelper.db";

public final static int DATABASEVERSION = 1;

//创建数据库

public DBHelper(Context context,String name,CursorFactory factory,int version) {

super(context, name, factory, version);

}

//创建表等机构性文件

22

public void onCreate(SQLiteDatabase db)

{

String sql ="create table diary"+

"("+

"_id integer primary key autoincrement,"+

"topic varchar(100),"+

"content varchar(1000)"+

")";

db.execSQL(sql);

}

//若数据库版本有更新,则调用此方法

public void onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion)

{

String sql = "drop table if exists diary";

db.execSQL(sql);

this.onCreate(db);

}

}

37. 页面上现有ProgressBar 控件progressBar,请用书写线程以10秒的的时间完成其进度显示工作。

说明:

public class ProgressBarStu extends Activity {

private ProgressBar progressBar = null;

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

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

//从这到下是关键

progressBar = (ProgressBar)findViewById(R.id.progressBar);

progressbar.setMax(10);

progressbar.setProgress(0);

Thread thread = new Thread(new Runnable() {

@Override

public void run() {

int progressBarMax = progressBar.getMax();

try {

while(progressBarMax!=progressBar.getProgress())

{

int stepProgress = progressBarMax/10;

int currentprogress = progressBar.getProgress();

progressBar.setProgress(currentprogress+stepProgress);

Thread.sleep(1000);

}

} catch (InterruptedException e) {

e.printStackTrace();

}

}

});

thread.start();

//关键结束

}

}

38. 请描述Activity 的生命周期。

必调用的三个方法:onCreate() --> onStart() --> onResume(),用AAA 表示

(1)父Activity 启动子Activity,子Actvity 退出,父Activity 调用顺序如下

AAA --> onFreeze()--> onPause() --> onStop() --> onRestart() -->

onStart(),onResume() …

(2)用户点击Home,Actvity 调用顺序如下

AAA --> onFreeze() --> onPause() --> onStop() -- Maybe --> onDestroy()

(3)调用finish(), Activity 调用顺序如下

AAA --> onPause() --> onStop() --> onDestroy()

(4)在父Activity 上显示透明的或非全屏的activity,Activity 调用顺序如下

AAA --> onFreeze() --> onPause()

(5)设备进入睡眠状态,Activity 调用顺序如下

AAA --> onFreeze() --> onPause()

onFreeze()不是Activity的生命周期方法,它目前被明名为onSaveInstanceState()方法。

39. 如果后台的Activity由于某原因被系统回收了,如何在被系统回收之前保存当前状态?

当你的程序中某一个Activity A 在运行时中,主动或被动地运行另一个新的Activity B,这个时候A 会执行

public void onSaveInstanceState(Bundle outState)

B 完成以后又会来找A, 这个时候就有两种情况,一种是 A 被回收,一种是没有被回收,被回收的 A 就要重新调用onCreate()方法,不同于直接启动的是这回onCreate()里是带上参数savedInstanceState,没被收回的就还是onResume 就好了。

savedInstanceState 是一个Bundle 对象,你基本上可以把他理解为系统帮你维护的一个Map 对象。在onCreate()里你可能会用到它,如果正常启动onCreate 就不会有它,所以用的时候要判断一下是否为空。

if(savedInstanceState != null){

long id = savedInstanceState.getLong("id");

}

就像官方的Notepad 教程里的情况,你正在编辑某一个note,突然被中断,那么就把这个note 的id 记住,再起来的时候就可以根据这个id 去把那个note 取出来,程序就完整一些。

这也是看你的应用需不需要保存什么,比如你的界面就是读取一个列表,那就不需要特殊记住什么。.

40. 如何将一个Activity 设置成对话框窗口的样式。

在AndroidManifest.xml 中定义Activity 的地方一句话

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

android:theme="@android:style/Theme.Translucent"就变成半透明的

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

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

当然,也可以用killProcess()和System.exit()这样的方法。

但是,对于多Activity 的应用来说,在打开多个Activity 后,如果想在最后打开的Activity直接退出,上边的方法都是没有用的,因为上边的方法都是结束一个Activity 而已。

就好像有人问,在应用里如何捕获Home 键,有人就会说用keyCode 比较KEYCODE_HOME即可,而事实上如果不修改framework,根本不可能做到这一点一样。

所以,最好还是自己亲自试一下。

那么,有没有办法直接退出整个应用呢?

在2.1之前,可以使用ActivityManager 的restartPackage 方法。它可以直接结束整个应用。在使用时需要权限android.permission.RESTART_PACKAGES。

注意不要被它的名字迷惑。

可是,在2.2,这个方法失效了。

在2.2添加了一个新的方法,killBackgroundProcesses(),需要权限

android.permission.KILL_BACKGROUND_PROCESSES。

可惜的是,它和2.2的restartPackage 一样,根本起不到应有的效果。

另外还有一个方法,就是系统自带的应用程序管理里,强制结束程序的方法,forceStopPackage()。

它需要权限android.permission.FORCE_STOP_PACKAGES。

并且需要添加android:sharedUserId="android.uid.system"属性

同样可惜的是,该方法是非公开的,他只能运行在系统进程,第三方程序无法调用。

因为需要在Android.mk 中添加LOCAL_CERTIFICATE := platform。

而Android.mk 是用于在Android 源码下编译程序用的。

从以上可以看出,在2.2,没有办法直接结束一个应用,而只能用自己的办法间接办到。

现提供几个方法,供参考:

1、抛异常强制退出:

该方法通过抛异常,使程序Force Close。

验证可以,但是,需要解决的问题是,如何使程序结束掉,而不弹出Force Close 的窗口。

2、记录打开的Activity:

每打开一个Activity,就记录下来。在需要退出时,关闭每一个Activity 即可。

3、发送特定广播:

在需要结束应用时,发送一个特定的广播,每个Activity 收到广播后,关闭即可。

4、递归退出

在打开新的Activity 时使用startActivityForResult,然后自己加标志,在onActivityResult 中处理,递归关闭。

除了第一个,都是想办法把每一个Activity 都结束掉,间接达到目的。

但是这样做同样不完美。

你会发现,如果自己的应用程序对每一个Activity 都设置了nosensor,在两个Activity 结束的间隙,sensor 可能有效了。

但至少,我们的目的达到了,而且没有影响用户使用。

为了编程方便,最好定义一个Activity 基类,处理这些共通问题。

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

一.SharedPreferences 方式

二.文件存储方式

三.SQLite 数据库方式

四.内容提供器(Content provider)方式

五. 网络存储方式

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

创建一个属于你自己的ContentProvider 或者将你的数据添加到一个已经存在的ContentProvider 中,前提是有相同数据类型并且有写入Content provider 的权限。

把自己的数据通过uri的形式共享出去.

android 系统下不同程序数据默认是不能共享访问

需要去实现一个类去继承ContentProvider

public class PersonContentProvider extends ContentProvider{

public boolean onCreate(){

//..

}

query(Uri, String[], String, String[], String)

insert(Uri, ContentValues)

update(Uri, ContentValues, String, String[])

delete(Uri, String, String[])

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之间的关系。错误!

相关文档
最新文档