A、Android系统提供了几个默认的Adapter类,可供开发者使用,同时,开发者也可以继承Adapter类来自定义Adapter 。
B、Adapter对象在Adapter控件和数据源之间扮演桥梁的角色,它提供了访问数据源的入口,并把从数据源拿到的数据逐项加载到Adapter控件中。
C、Android有以下四种Adapter对象可供开发者使用,分别是ArrayAdapter、SimpleAdapter、SimpleCursorAdapter和自定义的Adapter。
D、Android使用了一个抽象类——BaseAdapter作为各个Adapter实体类的基类,并使用两个接口——ListAdapter和SpinnerAdapter分别作为两种类型的AdapterView——AbsListView(包含ListView和GridView)和AbsSpinner(包含Spinner和Gallery)的适配接口。
11、以下关于ListView的XML属性的描述错误的是( )
A、ListView与其他的UI控件相同,在XML布局文件中通过<ListView>标签将其放入界面布局中。
B、直接让Activity继承自ListAdapter,可以将ListView填充满整个Activity。
C、在XML布局代码中将ListView的位置设为占满整个Activity,可以将ListView填充满整个Activity。
D、把ListView放在布局控件中,让其只占界面的某一部分。
12、 以下说法中错误的是( )
A. ListView通常显示比较大的数据量,例如通讯录应用程序中使用的ListView包含所有的联系人
B. ViewHolder这种设计模式省去了经常性findVIewById的调用,每次getView/BindView执行,需引用childView一次存储的标签(setTag)查看和使用那些重新引用的getView/BindView的方法代码
C. itemView起到状态缓存的作用
D. ExpandableListView是可以扩展的ListView,作用就是将ListView进行分组。与ListView一样,都需要一个Adapter作为桥梁来取得数据,并且需要重载相应的方法,例如getChildView方法就是取得给定分组中给定子视图的ID,该组的ID必须在组中是唯一的。
13、以下关于Adapter的说法错误的是( )
A. Adapter可以直接保存数据
B. Android提供的三种Adapter主要有ArrayAdapter、SimplerAdapter、SimplerCursorAdapter
C. 在Android的API中,List和Adapter都被放在android.widget包内
D. 在实际应用中,将数据加入到Adapter,以接口形式呈现的Adapter无法保存数据
14、关于Handler的说法不正确的是( )
A. 它实现不同进程间通信的一种机制
B. 它避免了在新线程中刷新UI的操作
C. 它采用队列的方式来存储Message
D. 它实现不同线程间通信的一种机制
15、关于菜单Menu的说法错误的是( )
A. 菜单(Menu)是应用程序界面中重要的组成部分,Android系统同样提供了功能强大的菜单组件。
B. 菜单虽然是一种资源,但是不可以通过代码动态生成,只能通过XML文件声明。
C. Android菜单可以分为三种,分别是选项菜单、上下文菜单、子菜单。
D. 选项菜单是Activity范围的对象,上下文菜单是View组件范围的菜单,而子菜单嵌套在它们之中。
16、 上下文菜单需要重载onCreateContextMenu方法,该方法用于( )
A. 添加快捷菜单所显示的标题、图标和菜单子项等内容。
B. 处理菜单选择事件。
C. 将快捷菜单注册到界面控件上。
D. 动态地添加、删除菜单子项。
17、关于菜单的说法错误的是( )
A. 菜单可以像界面布局一样在 XML 文件中进行定义。
B. 使用 XML 文件定义界面菜单,将代码与界面设计分类,有助于简化代码的复杂程度,并且更有利于界面的可视化。
C. 菜单是应用程序中非常重要的组成部分,能够在不占用界面空间的前提下,为应用程序提供统一的功能和设置界面,并为程序开发人员提供了易于使用的编程接口。
D. Android系统支持2种菜单:选项菜单( Option Menu)、子菜单( Submenu)。
18、将数据库保存在SD上,需要在创建SQLiteDatabse的时候调用SQLiteDatabase的静态方法( )
A. onCreate
B. onOpen
C. openOrCreateDatabase
D. close
19、在执行长时间的数据库操作的时候,需要数据库的事务支持来确保信息的完整性,下面关于事务的说法,不正确的是( )
A. 使用SQLiteDatabese的beginTransaction()方法可以开启一个事务
B. 当程序执行到endTransaction()方法的时候,会检查事务的标志是否为成功
C. 当应用需要提交事务,必须在程序执行到endTransaction()方法之前使用setTransactionSuccessful()方法设置事务的标志为成功,如果不调用该方法,就会默认回滚事务
D. SQLite允许嵌套事务
20、下列属于SAX解析xml的优点的是( )
A. 将整个文档存于内存中,这样便于操作
B. 不用事先将整个文档拷入内存
C. 整个文档放入内容,浪费时间和空间
D. 不是长久驻留内存,数据不是持久的,事件过后,若没有保存数据,数据就会消失
21、以下关于访问其他应用程序的SharedPreferences的说法不正确的是( )
A、Preferences 能在不同包之间使用。
B、共享者需要将SharedPreferences的访问模式设置为全局读或全局写。
C、访问者需要知道共享者的包名称和SharedPreferences的名称,以通过Context获得SharedPreferences对象。
D、访问者需要确切知道每个数据的名称和数据类型,用以正确读取数据。
22、XmlPullParser的XML事件类型中END_TAG的说明为( )
A、读取到标签开始标志
B、读取文本内容
C、读取到标签结束标志
D、文档末尾
第二部分(Part2)Android核心组件测试 共18题(全部单选,每题2分,总分36分 )
23、以下Activity生命周期中的各个方法在不同状态下的调用顺序,错误的是( )
A、一个Activity从被创建到进入运行态,需要依次调用onCreate() -> onStart() -> onResume()。
B、点击Home按钮后,系统回到桌面,然后我们再找到这个应用并打开,它的执行过程为:onRestart() -> onStart() -> onResume()。
C、当Activity启动后,点击“返回”按钮,这时Activity会被终止而重新回到系统桌面,它的执行顺序为:onPause() -> onStop() -> onDestroy()。
D、重新启动一个应用,在它被启动后,先点击“拨打电话”按钮,之后再点击“返回”按钮,这时Activity的执行顺序是:onPause() -> onStop() -> onRestart() -> onResume()。
24、当Activity被销毁时,保存它原来状态的方法是( )
A、实现Activity的onSaveInstanceState()方法
B、实现Activity的onSaveInstance()方法
C、实现Activity的onInstanceState()方法
D、实现Activity的onSaveState()方法
25、Intent传递数据时,以下不可以被传递的类型数据是( )
A、Serializable
B、JSON对象
C、Bundle
D、charsequence
26、以下关于使用Intent Filter描述有误的一项是( )
A、Intent Filter有两种使用方式。
B、不可以在代码中使用IntentFilter对象。
C、允许在配置文件AndroidManifest.xml中的相应组件标签中加入<intent-filter>
标签并在其中进行设置。
D、Intent Filter的几种方式都可以使用系统内置或自定义的属性值,开发者可以使用Action、Category和Data三个属性的设置和获取方法完成匹配。
27、多个应用中读取共享存储数据时用到的query方法,是( )对象的方法。
A、ContentResolver
B、ContentProvider
C、CursorD、SQLiteHelper
28、以下关于ContentProvider的说法不正确的是( )
A、ContentProvider在Android中的作用是对外共享数据,也就是说可以通过ContentProvider把应用中的数据共享给其他应用访问,但是缺点是其他应用不可以通过ContentProvider对本应用中的数据进行增删改查。
B、通过指定文件的操作模式为Context.MODE_WORLD_READABLE或Context.MODE_WORLD_WRITEABLE也可以对外共享数据。C、如果采用文件操作模式对外共享数据,数据的访问方式会因数据存储的方式而不同,导致数据的访问方式无法统一。D、使用ContentProvider对外共享数据的好处是统一了数据的访问方式。
29、以下关于ContentResolver的说法错误的是( )
A、当外部应用需要对ContentProvider中的数据进行添加、删除、修改和查询操作时,可以使用ContentResolver 类来完成。
B、 ContentResolver 类提供了与ContentProvider类相同签名的insert、delete、update方法,但是没有提供query方法。C、通过ContentResolver对ContentProvider中的数据进行操作的时候,当需要将id为1时记录的name字段值更改为csg的时候,使用ContentValues的put方法,put("name", "csg")。
D、要获取ContentResolver 对象,可以使用Activity提供的getContentResolver()方法。
30、以下关于线程异步问题的说法不正确的是( )
A、线程在应用程序开发过程中负责分担进程的耗时计算工作。
B、一个进程中如果需要多个线程共同协作才能完成业务计算的话,往往会涉及到线程之间的数据通讯。
C、线程依靠CPU调度分配时间片获得运行机会,当CPU时间片耗尽,线程将会停止运行等待CPU的再次分配。
D、由于线程的运行与停止是可控的,所以当多个线程之间需要同时对一块进程中的"共享内存"进程操作的时候,就有可能发生线程异步交互错误。
31、关于同步关键字的说法错误的是( )
A、如果一个线程在执行同步方法时没有执行完毕代码就耗尽了时间片,其他线程在获得了运行权之后就可以运行了。
B、为防止时间片耗尽导致的代码没有完全执行完毕的情况发生,可以考虑利用同步关键字。
C、利用同步关键保证只有当一个线程彻底执行完方法后,其他线程才能运行该方法。
D、等待失去时间片的线程执行完毕代码后,才能访问该方法。
32、以下关于Service的说法错误的是( )
A. Android中,Service有两种不同的使用方式:一种是以启动方式使用Service(Started Service),另一种是以绑定方式使用Service(Bound Service)。
B. 需要在AndroidManifest.xml文件中注册,否则,Service根本无法启动。
C. 以绑定方式使用Service,能够获取到Service对象,不仅能够正常启动Service,而且能够调用正在运行中的Service实现的私有方法和属性。
D. 为了使Service支持绑定,需要在Service类中重写onBind()方法,并在onBind()方法中返回Service对象。
33、以下关于Service绑定的说法有误的是( )
A. 如果绑定成功,则会通过getService()获取Service对象,这样便可以调用Service中的方法和属性。
B. 如果绑定意外失败,会将Service对象设置为null,表示绑定意外失效,Service实例不再可用。
C. 绑定一个Service就可以开启并使一个Service处于运行状态。
D. 以绑定方式使用Service时,调用者需要声明一个ServiceConnnection对象,但可以不用重写它的onServiceConnected()和onServiceDisconnected()方法。
34、以下关于Service的两种选择描述错误的是( )
A. 以绑定方式使用Service时,使用bindService()方法的目的是回调onBind()方法,它的作用是在Service和调用者之间建立一个桥梁。
B. 当调用者结束时,Service也会结束,而不负责更多的工作,例如连接服务器的操作。
C. 一般会把在应用程序被关闭后仍然需要执行的操作实现为一个绑定式的Service,而将一些执行特定功能、执行周期短或在应用程序关闭后将要停止的操作实现为启动式的Service。
D. 在实际开发中,常会将这两种方式的Service混用,一般的做法是在一个长期执行的、启动式的Service中多次绑定并解绑多个绑定式的Service,在每个绑定式的Service中都会执行短期的、特定的工作。
35、以下关于启动式Service的描述错误的是( )
A. 通过服务链接(Connection)或直接获取Service中状态和数据信息。
B. 如果仅以启动方式使用Service,这个Service需要具备自管理的能力,且不需要通过函数调用向外部组件提供数据或功能。
C. 通过调用Context.startService()启动Service,通过调用Context.stopService()或Service.stopSefl()停止Service。
D. Service是由其他的组件启动的,但停止过程可以通过其他组件或自身完成。
最后
下面是有几位Android行业大佬对应上方技术点整理的一些进阶资料。希望能够帮助到大家提升技术
CodeChina开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》
高级UI,自定义View
UI这块知识是现今使用者最多的。当年火爆一时的Android入门培训,学会这小块知识就能随便找到不错的工作了。
不过很显然现在远远不够了,拒绝无休止的CV,亲自去项目实战,读源码,研究原理吧!
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/166530.html