这次是个新开的公司,不得不说其实深圳的公司招人都挺奇怪的,流程乱七八糟的,没有上海那边那么好
1.Android id 是什么
2.现在有个传感器,你应该怎么适配
3.模拟teamview ,你觉得应该怎么实现
Android ID 是 SettingsProvider 提供的一个安全设置项,本质是一个64位十六进制标识。在 Android 8.0 以后,它不再是简单的设备唯一ID,而是基于设备、用户以及应用签名进行隔离生成,用于避免跨应用跟踪。Framework中由 SettingsProvider 管理,应用通过 Settings.Secure.ANDROID_ID 获取
Android 8.0以后 Android ID 使用 SSAID 机制,不再是简单设备随机值,而是在 SettingsProvider 中根据设备、用户以及应用签名信息生成一个作用域ID。应用第一次访问 Settings.Secure.ANDROID_ID 时,如果不存在对应记录,系统会生成并保存到 settings_ssaid.xml,后续读取直接返回。这样可以避免不同应用之间通过 Android ID 进行用户追踪。
我会先确认这个传感器的硬件接口和上层使用方式,因为“传感器”不一定意味着必须接 Android Sensor Framework。比如如果是串口设备,我首先确认 UART 驱动和 /dev/ttySx 节点,然后按照厂家协议完成串口收发和数据解析;如果只是单一业务使用,可以由业务层或 JNI 访问。如果属于系统级能力,我会封装成独立的系统服务,通过 Binder 向上提供接口。只有当它需要以 Android 标准 Sensor 的形式被 SensorManager 使用时,我才会继续接入 Sensors HAL 和 SensorService。
普通 APK 可以通过 MediaProjection 实现屏幕采集,通过 AccessibilityService 做有限输入控制;但要实现类似 TeamViewer 的完整远程控制,尤其是静默控制系统界面,需要系统权限或者 Framework 定制。我会把它设计成 System App,通过 SurfaceFlinger/MediaCodec 实现屏幕流,通过 InputManager 注入事件,再通过 Binder 暴露系统能力。
其实我仔细想了想,这样去写面试经历不是特别有效果,因为我其实还是不是特别理解里面的内容,很多函数和逻辑,其实自己都开始不怎么看代码了,可能最近一段时间打算开始看看生成式ai的内容,换个赛道说不定,其实更靠谱呢