武汉精臣客户端一面:Compose 选型与 HR 问题混面
- 轮次
- 一面
- 时间
- 2026-09
- 来源
- 牛客网
《面试题目》
- 自我介绍。
- 你是哪里人?为什么去现在这个实习?秋招投递的岗位方向、进展、投递的城市?
- 求职公司的倾向是什么?大厂吗?
- 有没有对公司做过了解?
- Android Compose 与 XML 和 View 的区别是什么?怎么做选型?
- Android 不同机型有兼容问题吗?如何定位解决?举个例子说一下。
- 志愿投递的顺序有什么倾向性?
- 打算在 Android 深入,还是想看后端或者 AI 开发?
- 三到五年的职业规划是什么?
- 这个岗位为什么吸引你?你的优势是什么?
- 有接触过直播业务吗?
- 如何学习新技术的?
- 期望薪资是多少?
- 反问。
《参考解析》
Compose 与 XML/View 的区别,以及怎么选型
XML/View 是命令式的:布局写在 XML 里,代码通过 findViewById 拿到控件引用,再调用 setText 之类的命令去改状态,状态和界面是两套东西,容易不同步。Compose 是声明式的:界面是状态的函数 UI = f(state),状态一变就触发重组(recomposition),框架负责算出最小更新集;没有 XML 布局文件,也不需要 findViewById,布局用 Kotlin 函数组合出来。代价是 Compose 需要额外的运行时、首帧编译开销和一套新的心智模型(remember、derivedStateOf、LaunchedEffect、稳定性注解 @Stable/@Immutable)。
选型的实际口径:新页面、新项目直接上 Compose;存量页面渐进迁移,通过 ComposeView 在 View 体系里嵌 Compose,或反向用 AndroidView 嵌老控件,两边可以互操作。列表等性能敏感场景要注意参数稳定性,不稳定类型会导致无谓重组,可以用 @Immutable、ImmutableList 或 key 优化。如果只有一两个简单页面、团队没有 Compose 经验,继续用 View 也不是错。
Android 机型兼容问题怎么定位
先把问题分类再谈工具。常见几类:系统版本差异(Android 12 起 PendingIntent 必须显式指定可变性 flag,Android 13 引入 POST_NOTIFICATIONS 运行时通知权限,Android 14 要求前台服务声明类型);厂商 ROM 差异(华为、小米、OPPO 的后台省电策略会杀前台服务、限制自启和精确闹钟,需要引导用户加白名单);屏幕与形态差异(刘海屏、折叠屏、超大字体、深色模式);硬件差异(ABI、摄像头、蓝牙);权限与隐私合规差异。
定位手段:先拿到崩溃堆栈(线上用 Crashlytics/Bugly,本地 adb logcat 按包名和 AndroidRuntime 过滤),确认设备型号与系统版本(adb shell getprop ro.build.version.release、ro.product.model),再用云真机平台批量复现同版本机型,最后二分定位到具体 API 调用。举例可以说:某厂商 ROM 上后台任务不执行,最后定位到需要把任务改到 WorkManager 并引导用户关闭省电优化。
HR 类问题怎么答才不出错
关键词是一致和简洁。城市意愿、岗位方向、投递顺序要和你的投递记录对得上,前后矛盾最容易被追问死。被问「Android 深入还是转后端/AI」时,给一个明确的当下选择加一个长期的合理延伸,不要含糊其辞。职业规划落到这个岗位上:一两年能独立负责模块、三到五年能带一小块业务或成为某方向的技术负责人。期望薪资给区间并给出依据(同岗位同城市的水平、自己的实习与项目匹配度),不要报一个自己都不信的数字。
反问环节问什么
问业务与团队(客户端团队多少人、负责哪条业务线、和直播/物联网有没有关系)、技术栈与迭代节奏(是否已经在用 Compose、发版周期)、新人培养与转正标准。不要在首轮就问薪资结构和加班时长。