习题一




一、选择题

1、CD

2、A

3、ABCD

4、A

5、A

6、C

7、B

8、A

9、C

10、AB

 

一、选择题(10*3)

1、解析XML的方式有()CD

A、字符类型

B、流方式

C、DOM

D、SAX

2、下列选项哪个不是activity的启动方法

A、goToActivity

B、startActivity

C、startActivityFromChild

D、startActivityForResult

3、下面异常是属于RuntimeException 的是()     

AArithmeticException

                   BIllegalArgumentException 

                   CNullPointerException 

                   DBufferUnderflowException 

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

               AonDestroy()

                   BonClear()

                   ConFinish() 

                   DonStop()

5、关于res/raw目录说法正确的是()

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

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

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

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

6、在android程序中,Log.w()用于输出什么级别的日志信息?( ) 

A、调试        B、信息     C、警告  D、错误

         7、对于一个Activity,在AndroidManifest.xml中对他这样进行定义      

<intent-filter>  

<action android:name="android.intent.action.MAIN"/>  

<categoryandroid:name="android.intent.category.LAUNCHER" />

 </intent-filter>,这样的描述代表什么含义?( )

A、无明确含义,每个Activity都需要这样定义 

B、代表该Activity将作为程序的主Activity,并且在LAUNCHER菜单中启动

C、代表该Activity将在桌面上建立图标并启动

D、代表该Activity的优先级高于其他的Activity

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

AgetDatabase()

B、getWriteableDatabase()

C、getReadableDatabase()

D、getAbleDatabase()

9、在android中对数据库的表进行查询操作用SQLiteDatabase类中的那两个方法进行查询: 

A.insert()和rawQuery()                                                   

B.query()和execSQL()                                                         

C.query()和rawQuery()                                                       

D.query()和update()

10、关于Handler的作用,以下正确的是:  

AsendMessage()方法可以向创建Handler的线程发送消息 

BMessage对象的what属性可以用于区分消息的类型 

C、putExtra()方法可以向创建Handler的线程传递数据   put Intent Bundle里用

 

D、使用abort()方法可以中断子线程的执行  广播里用

 

二、简答题

1、==是判断两个变量或实例是不是指向同一个内存空间 

equals是判断两个变量或实例所指向的内存空间的值是不是相同

2、DOM:消耗内存:先把xml文档都读到内存中,然后再用DOMAPI来访问树形结构,并获取数据。这个写起来很简单,但是很消耗内存。要是数据过大,手机不够牛逼,可能手机直接死机

SAX:解析效率高,占用内存少,基于事件驱动的:更加简单地说就是对文档进行顺序扫描,当扫描到文档(document)开始与结束、元素(element)开始与结束、文档(document)结束等地方时通知事件处理函数,由事件处理函数做相应动作,然后继续同样的扫描,直至文档结束。

PULL:与 SAX 类似,也是基于事件驱动,我们可以调用它的next()方法,来获取下一个解析事件(就是开始文档,结束文档,开始标签,结束标签),当处于某个元素时可以调用XmlPullParser的getAttributte()方法来获取属性的值,也可调用它的nextText()获取本节点的值。

 

3AsyncTask使用在哪些场景?它的缺陷是什么?如何解决?

 

3、AsyncTask 运用的场景就是我们需要进行一些耗时的操作,耗时操作完成后更新主线程,或者在操作过程中对主线程的UI进行更新。 

缺陷:AsyncTask中维护着一个长度为128的线程池,同时可以执行5个工作线程,还有一个缓冲队列,当线程池中已有128个线程,缓冲队列已满时,如果此时向线程提交任务,将会抛出RejectedExecutionException。 

解决:由一个控制线程来处理AsyncTask的调用判断线程池是否满了,如果满了则线程睡眠否则请求AsyncTask继续处理。

4AIDL的全称是什么?如何工作

4、全称是:Android InterfaceDefine Language  在Android中, 每个应用程序都可以有自己的进程. 在写UI应用的时候, 经常要用到Service. 在不同的进程中, 怎样传递对象呢? 显然, Java中不允许跨进程内存共享.  因此传递对象, 只能把对象拆分成操作系统能理解的简单形式, 以达到跨界对象访问的目的. 在J2EE中,采用RMI的方式, 可以通过序列化传递对象. 在Android中, 则  采用AIDL的方式. 理论上AIDL可以传递Bundle,实际上做起来却比较麻烦。AIDL(AndRoid接口描述语言)是一种借口描述语言; 编译器可以通过aidl文件生成一段代码,通过预先定义的接口达到两个进程内部通信进程的目的. 如果需要在一个Activity中, 访问另一个Service中的某个对象, 需要先将对象转化成AIDL可识别的参数(可能是多个参数), 然后使用AIDL来传递这些参数, 在消息的接收端, 使用  这些参数组装成自己需要的对象.AIDL的IPC的机制和COM或CORBA类似, 是基于接口的,但它是轻量级的。它使用代理类在客户端和实现层间传递值. 如果要使用AIDL,   需要完成2件事情: 1. 引入AIDL的相关类.; 2. 调用aidl产生的class.AIDL的创建方法:  AIDL语法很简单,可以用来声明一个带一个或多个方法的接口,也可以传递参数和返回值。由于远程调用的需要, 这些参数和返回值并不是任何类型. 下面是些AIDL支持的数据类型:  1. 不需要import声明的简单Java编程语言类型(int,boolean等) 2. String,CharSequence不需要特殊声明  3. List, Map和Parcelables类型, 这些类型内所包含的数据成员也只能是简单数据类型,String等其他比支持的类型.

 5两个Activity之间跳转时必然会执行的是哪几个方法。

5、一般情况比如说有两个activity,分别叫A,B ,当在A里面激活B组件的时候, A 会调用 onPause()方法,然后B 调用onCreate(),onStart(), OnResume() , 这个时候B覆盖了窗体, A会调用onStop()方法.  如果B呢 是个透明的,或者是对话框的样式, 就不会调用onStop()方法

 

   6、如何退出Activity?如何安全退出已调用多个ActivityApplication

 1、抛异常强制退出:    该方法通过抛异常,使程序ForceClose。    验证可以,但是,需要解决的问题是,如何使程序结束掉,而不弹出Force Close的窗口。       

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

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

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

 

7、不用serviceB页面为音乐播放,从A跳转到B,再返回,如何使音乐继续播放?

7、这个问题问的很山寨.默认不做任何处理,B里面的音乐都能播放.   

遇到问题, 可以随机应变,灵活发挥,多考虑些细节,比如说这个题就可以这样说,说说你对startActivityForResult的理解()    A开启B的时候,用startActivityForResult()方法, B返回的时候把播放的状态信息返回给A ,A继续播放音乐.

 

8、什么是IntentService?有何优点?

 

8、普通的service ,默认运行在ui main 主线程       

      Sdk给我们提供的方便的,带有异步处理的service类,   OnHandleIntent() 处理耗时的操作

 

为什么要用ContentProvider?它和sql的实现上有什么差别?

 

9、 屏蔽数据存储的细节,对用户透明,用户只需要关心操作数据的uri就可以了

    不同app之间共享,操作数据          

Sql也有增删改查的方法.          

但是contentprovider 还可以去增删改查本地文件.           


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值