Android面试必考基础题

来源:互联网 发布:node导出excel 编辑:程序博客网 时间:2024/04/29 11:50

(1)必考题请写出Android系统架构有几层,分别是哪几层?

考点:Android系统架构

        答案:有四层。分别是Linux内核、本地库和Java运行时环境、应用程序框架、应用程序。

(2)必考题请简要介绍Android的四大组件?

考点:Android四大组件

        答案:Android系统有四种组件,这四种组件构成了Android应用的框架,然后由Intent联系这四种组件。Activity用来显示Android的程序界面,一个应用往往有多个界面,所以一个应用中会有多个Activity。Service没有界面的后台服务,会一直运行在后台。常被用来做数据处理,也可以做一些定时的任务。Broadcast Receiver是Android的广播接收器,在广播机制中充当广播的接受者的作用,Android中充满了各种广播,所有需要有选择地接收一些有用的广播,然后处理这些广播。ContentProvider可直译为内容提供者,它是用在不同的应用程序之间共享数据时,可以把一个应用的数据提供给其他的应用使用。

(3)必考题Activity或Fragment的生命周期?

        答案:以前的文章介绍过了,这里就不详细说了。

(4)必考题Activity的四种基本状态分别是哪些?

        答案:运行态(Running)、暂停态(Paused)、停止态(Stopped)、终止态(Destroyed)

(5)必考题activity的启动模式?

        答案:standard: 标准模式,一调用startActivity()方法就会产生一个新的实例。 singleTop: 如果已经有一个实例位于Activity栈的顶部时,就不产生新的实例,而只是调用Activity中的newInstance()方法。如果不位于栈顶,会产生一个新的实例。 singleTask: 会在一个新的task中产生这个实例,以后每次调用都会使用这个,不会去产生新的实例了。 singleInstance: 这个跟singleTask基本上是一样,只有一个区别:在这个模式下的Activity实例所处的task中,只能有这个activity实例,不能有其他的实例。

(6)必考题Android中的五大布局?

        答案:LinearLayout线性布局、RelativeLayout相对布局、TableLayout表格布局、FrameLayout帧布局和AbsoluteLayout绝对布局。

(7)必考题ListView的缓存原理?

考点:请简单介绍一下ListView的缓存机制。

        答案:①如果有几千、几万甚至更多的项时,其中只有可见的项存在于内存中,其它的都在Recycler中,Recycler是Android中专门用来处理缓存的组件。②ListView先通过getView()方法请求一个View,然后请求其它可见的View。convertView在getView中是空的(null)。③当列表第一项滚出屏幕,并且一个新的项从屏幕低端上来时,ListView会再请求一个View,这时,convertView已经不是空值了,它的值是滚出屏幕的第一项,之后只需设定新的数据,然后返回convertView即可,而不必重新创建一个View。

(8)必考题谈谈android数据存储方式?

        答案:Android提供了5种方式存储数据:
1.使用SharedPreferences存储数据;它是Android提供的用来存储一些简单配置信息的一种机制,采用了XML格式将数据存储到设备中。只能在同一个包内使用,不能在不同的包之间使用。
2.文件存储数据;文件存储方式是一种较常用的方法,在Android中读取/写入文件的方法,与Java中实现I/O的程序是完全一样的,提供了openFileInput()和openFileOutput()方法来读取设备上的文件。
3.SQLite数据库存储数据;SQLite是Android所带的一个标准的数据库,它支持SQL语句,它是一个轻量级的嵌入式数据库。
4.使用ContentProvider存储数据;主要用于应用程序之间进行数据交换,从而能够让其他的应用保存或读取此Content Provider的各种数据类型。
5.网络存储数据;通过网络上提供给我们的存储空间来上传(存储)和下载(获取)我们存储在网络空间中的数据信息。

(9)必考题Service与广播机制?

考点:生命周期,使用方式。

(10)必考题handler机制的原理?

考点:Android线程间通信,Message,MessageQueue

        答案: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。

(11)必考题请简析TCP和UDP的区别

(12)必考题GET和POST方法主要的三点区别?

答案:①POST请求可以向服务器传送数据,而且数据放在HTMLHEADER内一起传送到服务端URL地址,数据对用户不可见。而GET是把参数数据队列加到提交的URL中,值和表单内各个字段一一对应,例如(http://www.baidu.com/s?w=%C4&inputT=2710)。②GET传送的数据量较小,不能大于2KB。POST传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。③GET安全性非常低,POST安全性较高。


转载 http://blog.csdn.net/nefuyang/article/details/51485555

0 0