Android开发测试题
共20道单选题,每题5分,总分100分。
Q1:Android 原生与 Flutter 混合开发,说法错误的是?
使用 MethodChannel 实现两端通信
Flutter 无法直接调用 Android 系统原生 API,需要编写 Platform Channel 插件
Flutter 页面和 Activity 切换无需关注生命周期
混合开发需要处理内存泄漏、路由栈管理
Q2:Android MVVM 架构理解正确的是?
ViewModel 持有 View 引用,直接操作控件
ViewModel 生命周期独立于 View,适合承载业务逻辑
使用 ViewModel 可以完全避免内存泄漏
不需要 LiveData/Flow 就能实现数据自动更新 UI
Q3:Android 项目代码臃肿、模块耦合,最优处理方式?
暂停业务,整体大重构
领域划分、抽离基础组件,渐进式重构,保障线上稳定
所有页面迁移 Flutter
废弃原有项目重新开发
Q4:Android 实现二维码生成,主流方案是?
ZXing 库实现,生成后可增加中间 Logo、调整容错率
Android 系统 Framework 提供开箱即用的高清二维码 API
二维码生成只能在主线程运行
ZXing 只支持扫码,不支持生成二维码
Q5:面向海外市场,Android 应用上架 Google Play,说法正确的是?
国内代码无需改造,直接打包上架海外
需要适配海外隐私政策、权限规范、网络环境
Google Play 上架后不能迭代升级
iOS 安装包可以上传 Google Play
Q6:Android 日常性能优化,属于渲染优化范畴的是?
使用 Glide 异步加载图片,避免主线程图片解码
增加接口缓存,减少网络请求
数据库优化,提升本地查询速度
使用协程优化异步任务调度
Q7:关于 Android Compose 与传统 View 体系,描述错误的是?
Compose 声明式 UI,通过状态驱动界面刷新
Compose 和 View 体系可以互相嵌套混合开发
Compose 不存在重组过多导致的性能问题
传统 View 体系基于 XML 布局,命令式操作 UI
Q8:Android WebView 承载 H5,后端 JSP 迁移 Vue,合理方案?
立刻全部切换 Vue 页面,下线 JSP
新旧页面共存,统一 JS 交互协议,保证登录、原生调用兼容
Vue H5 无法和 Android 原生 WebView 通信
迁移不用考虑 Cookie、缓存、签名鉴权
Q9:移动端行情 K 线图表在 Android 端落地,正确认知是?
开源图表一定比自研性能更好
自研方案自由度高,方便定制特殊指标、行情手势
上万条分时数据渲染不会产生卡顿
简单业务优先从零开发 K 线组件
Q10:下列关于 Kotlin 协程描述错误的是?
协程依托 Dispatchers 调度线程,可指定主线程 / 子线程执行
suspend 挂起函数只能在协程或其他 suspend 函数中调用
协程运行完全不受 Activity 生命周期管控,无需手动取消
CoroutineScope 可绑定页面生命周期,页面销毁自动终止任务
Q11:Android 四大组件不包括以下哪个?
Activity
Service
BroadcastReceiver
Fragment
Q12:以下哪个方法在 Activity 第一次创建时调用?
onStart ()
onResume ()
onCreate ()
onPause ()
Q13:Kotlin 中用来声明只读不可变变量的关键字是?
var
val
const
fun
Q14:以下哪个是 Android 标准线程通信机制?
Handler
AsyncTask
Thread
Runnable
Q15:Kotlin 中用于简化 Android 页面空安全、避免空指针的特性是?
可空类型?、安全调用?.、非空断言!!
数据类 data class
扩展函数
Lambda 表达式
Q16:以下哪个是 Android 官方日志工具?
Logcat
Debugger
Console
Logger
Q17:以下不属于网络请求库的是?
Retrofit
OkHttp
Picasso
Volley
Q18:关于 Kotlin 扩展函数,说法正确的是?
扩展函数可以直接修改原类内部私有成员
可给系统类、第三方类新增工具方法,无需继承
扩展函数优先级高于类内同名成员方法
扩展属性能够存储持久化数据
Q19:以下哪个不属于 Jetpack 组件?
Volley
LiveData
Room
Compose
Q20:Android 项目默认构建工具,支持 Kotlin 混编的是?
Gradle
Maven
Ant
Eclipse