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区别:
- Serializable在序列化的时候会产生大量临时变量,从而引起频繁的GC
- 在使用内存的时候,Parcelable比Serializable性能高,所以推荐使用Parecelable
- Parcelable不能使用在要将数据库存储在磁盘的情况上,因为Parcelable不能很好的保证数据的持续性在外界有变化的情况下,尽管Serializable效率低,但此时还是建议使用Serializable
2.在android中使用RadioButton时,要想实现互斥的选择需要用的组件是
- ButtonGroup
- RadioButtons
- CheckBox
- RadioGroup
解析:
RadioButton和CheckBox的区别:
- 单个RadioButton在选中后,通过点击无法变为未选中;单个CheckBox在选中后,通过点击可以变为未选中
- 一组RadioButton,只能同时选中一个;一组CheckBox能同时选中多个
- RadioButton在大部分UI框架中默认都以圆形表示;CheckBox则都以矩形表示
RadioButton和RadioGroup的关系:
- RadioButton表示单个圆形单选框,而RadioGroup是可以容纳多个Radio Button的容器。
- 每个RadioGroup中的RadioButton同时只能有一个被选中
- 不同的RadioGroup中的RadioButton互不相干,即如果组A中有一个选中了,组B中依然可以有一个被选中
- 大部分场合下,一个RadioGroup中至少有2个RadioButton
- 大部分场合下,一个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操作数据的步骤很简单:
- 调用Activity的getContentResolver()获取ContentResolver对象
- 根据需要调用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