基础不过关,别说大厂小厂都难!万丈高楼平地起,10年老码农总结Android基础面试题!

A、onDestroy()

B、onClear()

C、onFinish()

D、onStop()

4、以下关于Handler机制原理的说法,错误的是( )

A、Android提供了Handler和Looper来满足线程间的通信。

B、Handler机制是遵循先进后出的原则。

C、Looper类用来管理待定线程内对象之间的消息交换(Message Exchange),而通过Handler对象可以与Looper进行沟通,以便push新消息到Message Queue里面,或者接收Looper从Meaages Queue取出的消息。

D、UI Thread通常就是Main Thread,而Android启动程序的时候就会替它建立一个Message Queue。

5、以下选项中是AbsoluteLayout中特有属性的是( )

A、android:layout_height

B、android:layout_x

C、android:layout_above

D、android:layout_toRightOf

6、使用Toast提示时,关于提示时长,以下说法正确的是( )

A、显示时长只有2种设置

B、可以自定义显示时长

C、传入30,提示会显示30秒钟

D、当自定义显示时长时,比如传入30,程序会抛出异常

7、关于AlertDialog的说法不正确的是( )

A、要想使用对话框首先要使用new关键字创建AlertDialog的实例

B、对话框的显示需要调用show方法

C、setPositiveButton方法是用来加确定按钮的

D、setNegativeButton方法是用来加取消按钮的

8、以下关于如何使用Notification的说法,错误的是( )

A、Notification需要NotificatinManager来管理

B、使用NotificationManager的notify方法显示Notification消息C、在显示Notification时可以设置通知时的默认发声、震动等D、Notification中有方法可以清除消息

9、在Activity中,获取service对象的方法有( )

A、通过直接实例化得到

B、通过绑定得到

C、通过startService()获取

D、通过getService()获取

10、以下关于Adapter的描述有误的是( )

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布局文件中通过标签将其放入界面布局中。

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是由其他的组件启动的,但停止过程可以通过其他组件或自身完成。

36、以下关于绑定式Service的描述不正确的是( )

A. 服务链接能够获取到Service对象,因此绑定Service的组件可以调用在Service中实现的函数。

B. 使用Service的组件通过Context.bindService()建立服务链接,通过Context.stopService()或Service.stopSefl()停止服务链接。

C. 如果在绑定过程中Service没有启动,Context.bindService()会自动启动Service。

D. 同一个Service可以绑定多个服务链接,这样可以同时为多个不同的组件提供服务。

37、以下关于Service的描述不正确的是( )

A. 启动式的Service和绑定式的Service并不是完全独立的,在某些情况下可以混合使用。

B. 以绑定方式使用Service,能够获取到Service对象,不仅能够正常启动Service,而且能够调用正在运行中的Service实现的私有方法和属性。

C. 需要在AndroidManifest.xml文件中注册,否则,Service根本无法启动。

D. Android中,Service有两种不同的使用方式:一种是以启动方式使用Service(Started Service),另一种是以绑定方式使用Service(Bound Service)。

38、以下关于Android中的广播机制的描述有误的是( )

A. 在Android中使用广播这种异步机制来处理组件之间的消息传递,所以组件会接收所有的广播。

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)

最后

总之啊,家里没矿的同学们,如果你们想以后的日子过得好一些,多想想你们的业余时间怎么安排吧;

技术方面的提升肯定是重中之重,但是技术外的一些“软实力”也不能完全忽视,很多时候升职确实是因为你的技术足够强,但也与你的“软实力”密切相关

在这我也分享一份大佬自己收录整理的 Android学习PDF+架构视频+面试文档+源码笔记 ,还有高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料这些都是我闲暇还会反复翻阅并给下属员工学习的精品资料。在脑图中,每个知识点专题都配有相对应的实战项目,可以有效的帮助大家掌握知识点。

总之也是在这里帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习

相信自己,没有做不到的,只有想不到的

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

在这我也分享一份大佬自己收录整理的 Android学习PDF+架构视频+面试文档+源码笔记 ,还有高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料这些都是我闲暇还会反复翻阅并给下属员工学习的精品资料。在脑图中,每个知识点专题都配有相对应的实战项目,可以有效的帮助大家掌握知识点。

总之也是在这里帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习

[外链图片转存中…(img-U1rX8X1I-1713538872732)]

[外链图片转存中…(img-8sPfSZX3-1713538872733)]

相信自己,没有做不到的,只有想不到的

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值