腾讯android社招面试题及答案大全
一、单项选择题
1. 身处Android环境里,哪一个组件是能够用来于不同屏幕之间开展导航以及完成切换操作的呢?
A. Service
B. Activity
C. BroadcastReceiver
D. ContentProvider
答案:B
2. 以下哪种布局方式可以让子视图按照水平或垂直方向排列?
A. RelativeLayout
B. FrameLayout
C. LinearLayout
D. ConstraintLayout
答案:C
3. Android 系统中,用于处理异步操作的类是?
A. Handler
B. View
C. Context
D. Bundle
答案:A
4. 当Activity处于首次创建的情况时,在Activity生命周期里,调用的是以下哪个方法呢?
A. onResume()
B. onCreate()
C. onStart()
D. onPause()
答案:B
5. 在安卓系统里,那种被用来存放少量数据的、属于轻量级的存储方法是什么呢?
A. SQLite
B. SharedPreferences
C. File
D. ContentProvider
答案:B
6. Android 中,以下哪个类用于管理活动栈?
A. ActivityManager
B. WindowManager
C. NotificationManager
D. PowerManager
答案:A
7. 一个Activity被另一个Activity完全覆盖之际,会调用以下哪个方法啊?哪一个方法会被调用呢?
A. onStop()
B. onDestroy()
C. onPause()
D. onRestart()
答案:A
8. 以下哪个属性用于设置 TextView 的文本大小?
A. android:textColor
B. android:textSize
C. android:gravity
D. android:layout_width
答案:B
9. Android 中,以下哪个类用于处理网络请求?
A. OkHttp
B. Glide
C. Picasso
D. Gson
答案:A
10. 以下哪个方法用于在 Service 启动时执行初始化操作?
A. onBind()
B. onCreate()
C. onStartCommand()
D. onDestroy()
答案:B
二、多项选择题
1. 以下属于 Android 四大组件的有( )
A. Activity
B. Service
C. BroadcastReceiver
D. ContentProvider
答案:ABCD
2. Android 中,以下哪些布局可以实现视图的嵌套( )
A. LinearLayout
B. RelativeLayout
C. FrameLayout
D. ConstraintLayout
答案:ABCD
3. 以下哪些方法是 Activity 生命周期中的方法( )
A. onCreate()
B. onStart()
C. onResume()
D. onPause()
E. onStop()
F. onDestroy()
答案:ABCDEF

4. 于安卓系统里,以下这般的类哪一些能够用来处理图片加载呢()
A. Glide
B. Picasso
C. Fresco
D. OkHttp
答案:ABC
5. 以下哪些是 Android 中的存储方式( )
A. SharedPreferences
B. SQLite
C. File
D. ContentProvider
答案:ABCD
6. Android 中,以下哪些类可以用于处理异步任务( )
A. AsyncTask
B. HandlerThread
C. IntentService
D. ExecutorService
答案:ABCD
7. 以下哪些属性可以用于设置 View 的布局参数( )
A. android:layout_width
B. android:layout_height
C. android:layout_margin
D. android:padding
答案:ABC
8. 以下哪些是 Android 系统中的广播类型( )
A. 普通广播
B. 有序广播
C. 粘性广播
D. 本地广播
答案:ABCD
9. 在Android里头,以下这般的类能够用来处理JSON数据嘞,()
A. Gson
B. Jackson
C. FastJson
D. Moshi
答案:ABCD
10. 以下哪些方法可以用于启动一个 Service( )
A. startService()
B. bindService()
C. stopService()
D. unbindService()
答案:AB
三、判断题
1. 用于在Android中显示用户界面的组件呈现为Activity ,()
答案:正确
2. 运行,Service能够在后台长时间进行,它呈现出不依赖于用户界面的特性。()
答案:正确
3. 广播接收器,仅仅能够接收系统广播,而不能够接收自定义广播,()
答案:错误
4. 专门被用于在那些各式各样不同的应用之间去进行数据共享的是ContentProvider ,没错吧。()
答案:正确
5. 与SharedPreferences相关联的存储方式能留存那些具备较高复杂度的各类数据形式,其中涵盖了类似对象的情形,()
答案:错误
6. 安卓里的布局文件,唯有采用XML格式去编写。()
答案:错误
7. 异步任务的最佳处理方式是,已被官方推荐使用的AsyncTask。()
答案:错误
8. 是不是当一个Activity被销毁之后呢,它所有的资源就都会被释放呀。()
答案:正确
9. 可以在子线程中直接更新 UI。( )
答案:错误
10. 在 Android 里,广播是面向全局的,随便哪一个应用都能够进行接收。()
答案:错误
四、简答题
1. 简述 Android 四大组件的作用。
在 Android 里,负责与用户交互的界面组件是 Activity,它能给用户提供可视化操作界面。用于在后台执行长时间运行操作的是 Service,它不提供用户界面,像音乐播放、文件下载这类就属于其范畴。BroadcastReceiver 是用来接收系统或者应用发出的广播消息,以此实现组件间通信的,比如电量变化、网络连接变化类的广播。ContentProvider 则是用于在不同应用之间共享数据的,像联系人数据、短信数据等就是共享的数据类型。
2. 简述 Activity 的生命周期。
活动生命周期涵盖多个关键方法,其中,onCreate() 在活动首次被创建之际予以调用,其用途在于开展初始化操作,onStart() 会致使活动变可见然而尚未获取到焦点,onResume() 意味着活动获取到焦点进而能够与用户进行交互,onPause() 在活动失去焦点但依旧部分呈现可见状态之时被调用,onStop() 则会让活动全然不可见。Activity 被销毁之际会调用 onDestroy() ,其作用是释放资源,Activity 停止之后再度启动之时会调用 onRestart()。
3. 简述 Android 中的存储方式及其适用场景。
适用于存储少量键值对数据的 SharedPreferences,像用户的偏好设置、简单的配置信息这类。用于存储结构化数据的 SQLite,比如应用的数据库,适合数据量较大且需进行复杂查询的场景那种。可用于存储文件的 File,例如图片、文本文件等,适用于保存较大数据或需要持久化存储数据的情况。用于不同应用之间数据共享的 ContentProvider,像共享联系人、短信等数据的那种。
4. 简述如何在 Android 中实现网络请求。
在安卓系统里实现网络请求能够采用多种方式,能够运用HttpURLConnection这个Java原生的网络请求类,借由打开连接、设置请求方法、读取响应等步骤达成请求,也能够运用第三方库OkHttp,它给出了简洁的应用程序编程接口,支持异步请求、连接池等功能,使用之际需要添加依赖,创建OkHttpClient实例,构建请求并执行。还能够与 Retrofit 相结合,Retrofit 是依托 OkHttp 的,它借助注解的形式来使网络请求的编写得以简化。
五、讨论题
1. 讨论 Android 性能优化的常见方法。
关于 Android 性能改善,能够从诸多不同方向着手。在布局优化层面,要降低布局的嵌套情况,运用 include、merge 标签,防止出现过度绘制现象。于内存优化范畴,需及时去释放那些不再被使用的资源,规避内存泄露问题,就像运用弱引用、妥善管理 Activity 和 Fragment 的生命周期这般。在进行代码优化期间,要采用高效的数据结构以及算法,削减不必要的计算操作。对于图片优化而言,可选用适宜的图片格式,针对图片施行压缩处置。网络优化时,能够运用缓存方式,还能够采用批量请求方式,以此来降低网络请求次数,并且能够减少数据传输量。
2. 讨论 Android 中的多线程处理方式及各自的优缺点。
Android里多线程处理办法有好些种,AsyncTask简便好用,适宜处理短时间的异步任务,然而有内存泄漏风险,并且在高版本Android里执行效率有所下降,HandlerThread是带有Looper的线程,可以处理异步消息,不过使用起来相对繁杂,IntentService是一种特殊的Service,在子线程处理任务,处理完自动停止,但是不适合处理大量并发任务。ExecutorService能够对线程池予以管理,能够灵活地把控线程数量以及任务执行,适用于处理数量众多的并发任务,然而却需要依靠手动去管理线程池的生命周期。
3. 讨论 Android 开发中遇到的常见问题及解决方法。
常见问题以及解决办法是这样的:对于内存泄漏状况,能够运用LeakCanary去检测,核查是不是存在未被释放的资源,像静态变量持有Activity引用这类情况,要及时地把资源释放掉。布局呈现出异常状况,查看布局文件之中是否有错误存在,借助布局工具去瞅一瞅布局层次以及属性。网络请求遭遇失败,查验网络连接是不是处于正常状态,瞧瞧服务器的状态以及接口文档,处理请求所出现的异常情况。针对ANR也就是应用无响应这个问题,剖析主线程有没有耗时操作,把耗时操作挪到子线程那里去执行。
4. 讨论 Android 开发中如何进行代码管理和版本控制。
在 Android 开发里头,常常会运用 Git 来搞代码管理以及版本控制。首先呢它得在本地进行 Git 的安装,并且把用户信息配置妥当。当创建好项目之后,要去初始化 Git 仓库,接着把相关代码添加到暂存区,随后提交至本地仓库。还要利用像 GitHub、GitLab 这类的远程仓库,将本地仓库跟远程仓库进行关联,以此方便团队之间的协作。借助分支管理手段,构造出不一样的分支来开展开发、测试、修复 bug 等各类工作,从而防止彼此之间产生影响。得定期开展代码合并以及拉取操作,以此确保代码的一致性。使用标签记录重要的版本节点,方便版本回溯。
Copyright © 2018 All Rights Reserved 版权所有 宁国人才网 苏ICP备2024139598号-6
地址:安徽省合肥市瑶海区 EMAIL:
Powered by PHPYun.