7-11日Android试题整理

1.What is the difference between parcelable and serializable()?

  • Parcels are light wight seralzable.It is perfred to use parcels for marshaling objects into byte streams
  • Sreializable objects are faster to transfer when compared to parcelable
  • Android app heavliy depends on Serialization concept tomarshal objects
  • Android uses Linux IPC driver to transfer data between two processes.

解析:
Parcelablle和Serializeble区别:

  1. Serializable在序列化的时候会产生大量临时变量,从而引起频繁的GC
  2. 在使用内存的时候,Parcelable比Serializable性能高,所以推荐使用Parecelable
  3. Parcelable不能使用在要将数据库存储在磁盘的情况上,因为Parcelable不能很好的保证数据的持续性在外界有变化的情况下,尽管Serializable效率低,但此时还是建议使用Serializable

2.在android中使用RadioButton时,要想实现互斥的选择需要用的组件是

  • ButtonGroup
  • RadioButtons
  • CheckBox
  • RadioGroup

解析:
RadioButton和CheckBox的区别:

  1. 单个RadioButton在选中后,通过点击无法变为未选中;单个CheckBox在选中后,通过点击可以变为未选中
  2. 一组RadioButton,只能同时选中一个;一组CheckBox能同时选中多个
  3. RadioButton在大部分UI框架中默认都以圆形表示;CheckBox则都以矩形表示

RadioButton和RadioGroup的关系:

  1. RadioButton表示单个圆形单选框,而RadioGroup是可以容纳多个Radio Button的容器。
  2. 每个RadioGroup中的RadioButton同时只能有一个被选中
  3. 不同的RadioGroup中的RadioButton互不相干,即如果组A中有一个选中了,组B中依然可以有一个被选中
  4. 大部分场合下,一个RadioGroup中至少有2个RadioButton
  5. 大部分场合下,一个RadioGroup中的RadioButton默认会有一个被选中,并建议你将他放在RadioGroup中的起始位置

3.下列关于Android数字签名描述错误的是

  • 所有的应用程序都必须有数字证书,Android系统不会安装一个没有数字证书的应用程序
  • Android程序包使用的数字证书可以是自签的,不需要一个权威的数字证书机构签名认证
  • 如果要正式发布一个Android程序,可以使用集成开发工具生成的调试证书来发布
  • 数字证书都是有有效期的,Android只是在应用程序安装的时候才会检查证书的有效期,如果程序已经安装在系统中,即使证书过期也不会影响程序的正常功能

4.在多个应用中读取共享存储数据时,需要用到的query方法,是哪个对象的方法

  • ContentResolver
  • ContentProvider
  • Cursor
  • SQLiteHelper

解析:
ContentResolver和ContentProvider是一对,一个运行在提供数据端(Provider),一个运行在调用端(Resolver)。使用的时候利用Resolver来调用Provider的方法(query,insert,update等),然后provider再进行数据查询
Cursor是游标,返回结果集的,provider的query可以返回这种类型的结果

无论ContentProvider还是ContentResolver都有各自的insert(),delete(),update(),query()四个方法。
使用ContentResolver是用来操作数据的,即是通过ContentResolver操作ContentProvider所暴露的数据,即使我们还没有开发自己的ContentProvider,但Android系统的应用已经提供了大量ContentProvider,允许开发者来操作这些ContentProvider所暴露的数据
使用ContentResolver操作数据的步骤很简单:

  1. 调用Activity的getContentResolver()获取ContentResolver对象
  2. 根据需要调用ContentResolver的insert(0,dalete(),update(),query()方法操作数据就行

而为了操作系统提供的ContentResolver,只需要了解该ContentProvider的Uri就行。


5. 下列选项那个不是Activity启动的方法

  • startActivity()
  • startActivityFromChild
  • goToActivity
  • startActivityForResult

6.RemoteView在哪些功能中使用

  • Toast
  • AppWidget
  • ListView
  • Notification

解析:
RemoteView会用在两个地方:AppWidget和Notification
官方对他的定义是:RemoteView描述一个view,而这个view是在另一个进程显示的,它inflate与layout资源文件,并且提供了可以修改view内容的一些简单基础的操作
从这个定义可以知道RemoteView是用来描述一个跨进程显示的view


猜你喜欢

转载自blog.csdn.net/adonis044/article/details/80997807