Android面试题

1. 请介绍下Android中常用的五种布局?

Linearlayout    RelativeLayout
Tablelayout Gridlayout
Framelayout

2. 启用Service有几种方式,分别对应于何种停用Service方式?

开启方式:
    startService
    bindService

3. AIDL的全称是什么? ANR的全称是什么?

AIDL---android InterfaceDefinition Languagex(android接口描述语言)
ANR---Appcation  Not  Response(应用程序无响应)

4. AIDL是用于什么通信?

远程服务通信

5. android 的核心组件是?

- activity
- service
- broadcast
- contentprovider

6. 关于res/raw/assets的文件?

- res/raw :这里的文件是原封不动的存储到设备上不会转换为二进制的格式
- assets :主要放置多媒体等数据文件

7. Intent意图传递数据时, 能不能传递实体类? 传递实体类需不需要序列化?

能,需要

8. 当手机界面横竖屏切换的时候,可以通过哪个属性控制?

android:configChanges

9. Activity, Service的的生命周期有哪些?

- Activity
    - onCreate
    - onStart
    - onResume
    - onPasue
    - onStop
    - onDestory
    - onRestart
- Service
    - onCreate
    - onStartCommand
    - onbind
    - onUnbind
    - onDestory

10. 关于Button控件的点击事件,请问有多少种方式可以实现Button控件的点击事件?分别是哪几种?

- Onclick属性实现
- 匿名内部类
- 内部类
- 外部类
- activity本身实现

11. simplerAdapter的父类是什么,它的父类是接口还是抽象类?

BaseAdapter,抽象类

12. 在TabHost组件中,有几种方式实现TabHost选项卡功能?而其MainActivity分别可以继承至什么类

3种,分别继承至Activity,Tabactivity和Activitygroup;

12. 在Broadcastreceiver(广播接收者)中,请问有几种注册方式?

两种,分别为静态注册和动态注册

14. 在Broadcastreceiver(广播接收者)使用中,必须要重写的方法是哪个方法?

onReceiver()

15. 请说出convertView的作用?

用于listView列表缓存

16. 请说出layoutInfalte的作用?

用于加载布局文件

17. Android中常见的解析方式有哪几种,各有什么优点

- json
- pull
- Sax
    -   不需事先加载整个文档,解析速度快
- dom
    - 以树状结构方式解析xml文件,便于理解,解析大数据速度缓慢,需事先加载整个文档

18. 在android中使用选项菜单需要重写哪个方法?

onCreateOptionsMenu() 
onOptionsItemSelected()

19. 在android中使用SQLiteOpenHelper这个辅助类时,需要重写哪两个方法?

- oncreate(第一次创建数据库时执行)
- onUpgrade(版本更新时,执行)

20. Java.io包中主要用于对对象(Object)的读写的流是哪两个?

- objectOutputStream
- ObjectInputStream

21. Android中常见的数据存储方式有哪几种?

- SharedPreferences
- file
- SQLiteDatabase
- ContentPrivoder
- 网络存储

22. 从一个activityA启动新的activityB时,需要使用什么方法启动新的activity?从一个activityA启动新的activityB,并且需要activityB回调数据给activityA时,需要使用什么方法启动新的activity?

- StartActivity();
- StartActivityForResult();

23. 请问Android系统结构分为哪几个部分?

- LinuxKernel(Linux内核)
- Libraries(系统运行库或者是c/c++核心库)
- Application  Framework(开发框架包)
- Applications  (核心应用程序)

24. 如何安全退出已调用多个Activity的应用程序?有几种常见方式?

广播退出,appcation退出

25. 在Android中,设置文本字体大小的单位是什么?设置控件大小的单位是什么?

sp  dp

26. 在手机开发中常用的数据库是 SQLite

27. android 是如何组织 Activity 的?

以栈的方式组织Activity 

28. 删除记录的数据库语句是什么?修改记录的数据库语句是什么?在数据库中,创建表的语句是什么?查询记录的数据库语句是什么?

Create table 表名 (字段名……)
Delete  from 表名 where 删除条件
Update 表名 set 修改的属性值 where 修改的属性条件
Select * from 表名 where 查询条件

29. android 中下列属于Intent的作用的是?

可以实现界面间的切换,可以包含动作和动作数据,连接四大组件的纽带 

30. ScrollView 中,可以直接包含多少个组件?

only 1

31. 结构化程序设计所规定的三种基本控制结构是:

顺序、选择、循环

32. 下列哪一个关键字用于实现接口来定义类?

implements

33. 编译Java程序的命令是:javac

34. 编译Java源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为 .class

35. 在Java中用什么关键字修饰的方法可以直接通过类名来调用?

static

36. Activity在内存中是以哪种方式存储?其的存取顺序是怎样的?

栈的方式存储,先进后出,后进先出

37. Android中设置启动模式的属性是?启动模式有哪几种?简单叙述一下。

- Android:lauchmode

- standrad
- singletop
- singletask
- singleinstance

38. JAVA最基本元素

接口 方法 包 对象(java是面向对象编程)

39. java面向对象的特征有哪些方面

1.继承2.多态 3.封装

40. Java的基本数据类型有哪些

基本数据类型包括:byte、int、char、long、float、double、boolean和short。

41. 构造器Constructor是否可被override

构造器Constructor不能被继承,因此不能重写Overriding,
但可以被重载Overloading

42. string类是否能被继承

String类是final类故不可以继承

43. service是否在mainthread中执行, service里面是否能执行耗时的操作?

默认情况,如果没有显示的指定service所运行的进程,Service和activity是运行在当前app所在进程的mainthread(UI主线程)里面  

44. 拥有service的进程是否具有高优先级?

45. 我们常见的http通信有哪几种?

Httpurlconnection和httpclient(已被取消)
OkHttp3  

46. Get请求与post的请求有什么区别?

Get请求向后台传输数据是拼接在url地址上,因为url地址长度有限,所以只能携带少量的数据信息,而且不安全,对用户明文显示。

47. http协议是基于TCP协议

48. 广播有哪几种?有序广播和无序广播

49. UI线程能不能执行耗时操作?

不能

50. fragment碎片是否需要注册?

不需要

51. &和&&的区别。

& 是位运算符,表示按位与运算
&& 是逻辑运算符

52. Java有没有goto?

java中的保留字,现在没有在java中使用。

53. 接口是否可继承接口?

可以

54. 抽象类是否可实现(implements)接口?

可以,但是前提是实体类必须有构造函数

55. 抽象类是否可继承实体类(concrete class)?

可以,但是前提是实体类必须有构造函数

56. UML是什么?

标准建模语言UML。用例图,静态图(包括类图、对象图和包图),行为图,交互图(顺序图,合作图),实现图。

57. 在数据结构中,有哪些常见的结构?

链表结构,树状结构,网状结构

58. 完全二叉树也是二叉树

59. 说出至少三种java设计模式?

工厂模式
单例模式
建造模式
原型模式
迭代器模式
命令模式 等等

60. 什么叫C/S?

应用程序与服务端通讯结构框架

61. 什么叫B/s?

网页程序与服务端通讯结构框架

62. 进行模糊查询,所要用到的关键字是什么?

Like

63. 配置jdk环境变量,需要配置哪几个变量?

JAVA_HOME, CALSSPATH, PATH

64. Android:layout_gravity是控件相对于容器的位置还是内容相对于控件的位置?

控件相对于容器的位置

65. Android:padding是控件与控件的间距大小还是内容相对于控件的间距大小?

内容相对于控件的间距大小

66. 单选按钮实现单选功能,需要使用哪个控件包含?

RadioGroup

67. 补间动画中有几种动画效果?

透明(Aphale)
缩放(Scale)
平移()
旋转()

68. Sharedpreference是以何种方式存储数据的?

键值对的形式

69. 获得操作文件存储的文件输入输出流时,可以申明为哪几种操作模式?

Mode_private,
mode_append,
mode_world_readable,
mode_world_writeable

70. android动画分类有几种?区别是?

Tween 补间动画   Frame 帧动画

71. 内存回收程序负责释放无用内存

72. 属于Runtime Exception异常的有

ArithmeticException 
IllegalArgumentException
NullPointerException 
BufferUnderflowException

73. 对一些资源以及状态的操作保存,最好是保存在生命周期的哪个函数中进行

onStart()

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

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

75. 请解释下在单线程模型中Message、Handler、Message Queue、Looper之间的关系

andriod提供了 Handler 和 Looper 来满足线程间的通信。Handler先进先出原则。Looper类用来管理特定线程内对象之间的消息交换。

76. 请解释下Android程序运行时权限与文件系统权限的区别

运行时权限Dalvik( android授权)

77. IntentService有何优点?

1、 Acitivity的进程,当处理Intent的时候,会产生一个对应的Service

2、Android的进程处理器现在会尽可能的不kill掉你

3、非常容易使用

78. 如何将SQLite数据库(dictionary.db文件)与apk文件一起发布?

可以将dictionary.db文件复制到EclipseAndroid工程中的res aw目录中。所有在res aw目录中的文件不会被压缩,这样可以直接提取该目录中的文件。

79. 如何将打开res raw目录中的数据库文件

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

80. Android引入广播机制的用意?

a:从MVC的角度考虑(应用程序内),其实回答这个问题的时候还可以这样问,android为什么要有那4大组件,现在的移动开发模型基本上也是照搬的web那一套MVC架构,只不过是改了点嫁妆而已。android的四大组件本质上就是为了实现移动或者说嵌入式设备上的MVC架构,它们之间有时候是一种相互依存的关系,有时候又是一种补充关系,引入广播机制可以方便几大组件的信息和数据交互。

b:程序间互通消息(例如在自己的应用程序内监听系统来电)

c:效率上(参考UDP的广播协议在局域网的方便性)

d:设计模式上(反转控制的一种应用,类似监听者模式)

81. Android dvm的进程和Linux的进程, 应用程序的进程是否为同一个概念

DVM指dalivk的虚拟机。每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。而每一个DVM都是在Linux 中的一个进程,所以说可以认为是同一个概念。

82. sim卡的EF 文件有何作用

sim卡的文件系统有自己规范,主要是为了和手机通讯,sim本身可以有自己的操作系统,EF就是作存储并和手机通讯用的

83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.

你可能感兴趣的:(Android面试题)