美文网首页面试题
Android基础笔试题

Android基础笔试题

作者: majorty | 来源:发表于2017-06-29 11:06 被阅读39次

    1、Activity有哪几种启动方式?分别代表什么意思?

    (1)standard 默认模式:每次激活Activity时都会创建Activity实例,并放入回退栈中。

    (2)singleTop 如果在回退栈的栈顶正好存在该Activity的实例,就重用该实例,只要不在栈顶,都会创建实例。

    (3)singleTask 如果在栈中已经有该Activity 的实例,就重用该实例。重用时,会让该实例回到栈顶,因此在

    它上面的实例将会被移除栈。

    (4)singleInstance 在一个新栈中创建该Activity 实例,并让多个应用共享该Activity 实例。

    2、Android中常用的布局有哪些?

    (1)LinearLayout 线性布局

    (2)RelativeLayout 相对布局

    (3)FrameLayout 帧布局(框架布局)

    (4)GridLayout 网格布局

    (5)TableLayout 表格布局

    (6)AbsoluteLayout 绝对布局

    3、ListView优化方案有哪些?数据集合更新后如何更新ListView显示?

    (1)重写getView方法,对view对象的复用做的优化。

    (2)viewHolder类,调用setTag和getTag方法,将view与holder对象进行绑定。

    (3)分页加载

    4、Intent都可以传递哪些数据类型?

    (1)第一类:简单或基本数据类型 如:putExtra(String name, int[] value)

    (2)第二类:传递一个Bundle

    (3)第三类:传递Serializable对象

    (4)第四类:Parcelable对象

    (5)第五类:Intent

    5、Fragment和Activity之间是如何传值的?

    (1)方式一:拿到对方的对象。如Activity拿到Fragment的对象

    (2)方式二:Actviity传递给Fragment,可以通过fragment的setArguments(bundle);getArguments()

    (3)方式三:Fragment传递给Activity。可以在Fragment中定义一个内部接口回调,让Activity去实现。

    6、介绍下Android都有哪些数据存储方式?

    (1) 通过SharedPreferences方式存储,这类存储主要适用于存储信息量小的操作。具有操作和存储简便,

    代码简单的特点

    (2) 通过SD卡等磁盘介质存储,这类一般都是存成文件的形式。适用于存储信息量大,操作相对复杂些。

    (3) 通过数据库,一般都是sqlite的方式进行存储,适用于存储信息量适中,这类存储在查询的时候比较

    方便。而且能很好的支持SQL语句。

    (4) 通过网络方式存储到其他服务器,这类一般适用于CS方式,且存储数据需要集中存储,具有联网的性

    质。比如网游或者复杂应用。

    7、解释Message、Handler、MessageQueue、Looper之间的关系,以及如何工作的?

    Handler获取当前线程中的looper对象,looper用来从存放Message的MessageQueue中取出Message,

    再有Handler进行Message的分发和处理.

    (1)Message Queue(消息队列):用来存放通过Handler发布的消息,通常附属于某一个创建它的线程,

    可以通过Looper.myQueue()得到当前线程的消息队列

    (2)Handler:可以发布或者处理一个消息或者操作一个Runnable,通过Handler发布消息,消息将只

    会发送到与它关联的消息队列,然也只能处理该消息队列中的消息

    (3)Looper:是Handler和消息队列之间通讯桥梁,程序组件首先通过Handler把消息传递给Looper,

    Looper把消息放入队列。Looper也把消息队列里的消息广播给所有的

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

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

    8、页面上有ProgressBar控件,请写一个线程用十秒的时间来完成其从0-100的显示。

    相关文章

      网友评论

        本文标题:Android基础笔试题

        本文链接:https://www.haomeiwen.com/subject/nfhjbttx.html