九月份参加OPPO和腾讯Android面试:技术一面+二面+三面+HR四面,我的面经总结!

2023-11-03

之前很多时候我是拒绝说我的面试经验的,因为我们简历经历不一样问的问题也会不一样,且大厂面试光靠背几个面试题就想过还是比较难的。因此在这里提醒一下大家不要临时抱佛脚,你花几天能背下的东西,别人花几天一定能超过你的,但我们花几年沉淀的东西,人家花几个月就未必能赶上,希望大家不飞则已,一飞冲天。

OPPO 面试过程

boss 直聘 HR 推了简历给有关部门,简历通过后电话约的面试机会。当时约的是 10:30 的面试时间,所以只请了半天假。

第一轮是两个面试官轮流问问题,第一面大约面了一个小时,大约等了十几分钟第二面的面试官把我叫到了 另外一个办公室,也是两个面试官轮流问了大概一个小时,面完二面后就差不多到了下午一点,面试官说我带你去食堂吃个饭,吃完饭面试官帮我约了下午两点的 HR 面。感觉整个流程下来非常爽,总共三轮面试,两轮技术面(每轮2个面试官),一轮 HR 面。

技术一面

1. mmap + native 日志优化?

讲了传统日志打印的两个性能问题,一个是反复操作文件描述符表,一个是反复进入内核态,然后讲了 mmap 的原理机制。

2. 讲讲 Android 开机启动的流程

讲了一大堆,其中说到 ServiceManager 进程是用来管理系统服务的,面试官说你确定?不是 SystemServer 进程来管理系统服务的吗?讨论了一番面试官懵逼了,提到了 SystemUI 服务,提到了桌面进程,问到了怎么替换开机启动的动画?

3. 系统是怎么帮我们启动找到桌面应用的

我说通过意图,他说怎么找到是哪个意图? 我说 PMS 会解析所有 apk 的 AndroidManifest.xml ,如果解析过会存到 package.xml 中不会反复解析,PMS 有了它就能找到了。

4. 讲讲动态状态页的加载,为什么要这么弄?

我说为了减少 xml 解析和反射创建对象的时间,避免同时创建多个用不上的对象,我就写了个框架用代码动态添加的。这时面试官误解了我的意思,以为所有的界面都是用代码写的,那得多麻烦呀,后来解释清楚了。

5. 讲讲页面的刷新机制,GPU 调试工具几个颜色值分别代表什么?

讲到了 Surface 底层管理的其实是 IBPQ , 讲了异步信号的由来是 SurfaceFlinger 由硬件和软件机制发出来的,讲了我们 app 界面绘制的内容是怎么提交传递到 SurfaceFlinger 的。GPU 调试工具几种颜色的意思也大概讲了下。

6. 说说 ConcurrentHashMap 的实现原理说下

是线程安全的,实现原理采用的是分段锁。

7. 你知道 okhttp 是怎么复用连接的吗?

这是个网络优化的问题,同一个 ip 同一个端口能复用一个连接,后面问道了 http 2.0 的多路复用,我说

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

九月份参加OPPO和腾讯Android面试:技术一面+二面+三面+HR四面,我的面经总结! 的相关文章

  • 通过硬件按钮启动 Android 应用程序

    我希望构建一个在单击特定硬件按钮时启动的 Android 应用程序 例如 当我按下音量增大按钮 30 秒时 应用程序必须在不增加音量的情况下启动 我想知道这可能吗 你可以定义一个BroadcastReceiver处理ACTION MEDIA
  • SpinnerAdapter 中 getView 和 getDropDownView 的区别

    当你实现 SpinnerAdapter 时 你会得到获取下拉视图 http developer android com reference android widget SpinnerAdapter html getDropDownView
  • 我可以为 Android Activity 分配“默认”OnClickListener() 吗?

    我有一个 Activity 对于布局中的每个小部件 我调用 setOnClickListener 来分配我的 OnClick 处理程序 在我的 OnClick 处理程序中 我使用 switch 语句根据 View 参数的 ID 为每个按钮执
  • 未找到 ADB screenrecord 命令

    我无法奔跑adb shell screenrecord sdcard my mp4 我尝试运行此命令的设备规格 Honor 5C 安卓6 0 每当我运行 screenrecord 命令时 它都会显示未找到命令 D adb gt adb sh
  • 411 需要内容长度

    我正在尝试使用 Android Apache HttpClient 执行 POST 但它返回错误 411 Content Length required 这是代码 HttpClient httpClient new DefaultHttpC
  • Android布局中如何实现Button的自动宽度

    我有几个垂直列出的按钮 我需要它们都具有相同的宽度 而且还要显示其中的所有文本 基本上我需要所有它们的宽度作为最大的宽度的包裹宽度 希望我解释得很好 现在 我已经有一种布局可以在我的 Samsung Galaxy S2 4 1 2 上运行
  • Android中的OpenGL用于视频显示

    是否可以使用 OpenGL 来显示视频并能够在运行时调整视图大小 是的 它的工作原理是通过 glTexSubImage2D 将每个帧作为纹理上传 我已经测试了基于 FFmpeg 的解码器的输出 效果很好
  • 这个错误从何而来?错误:com.facebook.FacebookException:无法获取应用程序名称

    我无法弄清楚这一点 我已将我的密钥哈希和所有内容添加到 Facebook 网页 但我无法找出此错误 11 12 19 51 27 744 D HelloFacebook 5188 Error com facebook FacebookExc
  • Room - LiveData 观察器在数据库更新时不会触发

    我试图在下面的代码中找出 为什么在我用新数据填充数据库后 Room 的 LiveData observable 不会给我新的转变 这是放在我的活动的 onCreate 方法中 shiftsViewModel ViewModelProvide
  • 改造添加带有令牌和 ID 的标头

    我在获取经过身份验证的用户时遇到问题 在此之前我得到了令牌和用户 ID 现在我需要使用访问令牌和 ID 从服务器获取用户 我有标题格式 https i stack imgur com OQ87Y png 现在我尝试使用拦截器添加带有用户令牌
  • 温度转换 2 字节

    我很难转换两个字节的温度 我有一个控制单元 温度传感器 我可以在其中获取两个字节的温度消息 1 示例 message 40 25 LSBYTE 40 MSBYTE 25 0 03125 C bit temperature 25C seen
  • 改变换行行为

    我可以在 TextView 中使用 Spannable 创建具有不同外观 下划线 删除线等的跨度 我怎样才能做同样的事情来改变换行行为 特别是 我不希望电子邮件地址在中间换行 我希望它像一个单词一样 I tried 包裹在一起跨度 http
  • 如何在打开导航抽屉时使背景 Activity 变小?

    我想做我的背景Activity打开时稍微小一点Navigation Drawer 模拟存在的效果Airbnb应用 我想最好的解释是截图 但重点不是让 View 变小 而是让它成为与 Drawer 打开 关闭动画同步的动画 因此 如果您开始打
  • IllegalStateException:无法更改片段的标签,以前是 android:switcher,现在是 android:switcher

    我的活动使用TabLayout ViewPager 这里的选项卡和页面的数量是动态的 具体取决于从服务器获取的数据 崩溃是通过 Crashlytics 报告的 我无法复制它 我的活动代码 Override protected void on
  • 如何在 Google 地图中创建自定义地图?

    我正在尝试创建一个包含我家地图的 Google 地图应用程序 卧室 浴室 厨房等 使用 GPS 我会找到我现在在家里的位置 并尝试获取到我卧室的方向 步行距离 您可以使用Google的API来获取方向 我需要知道的是 如何添加我家的自定义地
  • 如何创建克隆重复视图?

    在我的 Android 应用程序中 我想创建重复的ImageButton已经创建的Imagebutton 我想创造新的Imagebutton以编程方式与 XML 文件中已创建的按钮具有相同的宽度 高度 背景 图像源 边距等 简而言之 我想创
  • AAR 可以包含传递依赖吗? [复制]

    这个问题在这里已经有答案了 现在我有一个库项目 比如项目 Foo 它依赖于像 OkHttp 这样的库 现在 Foo 有一个 Maven 构建步骤 可以生成 AAR 并将其推送到公共位置 现在假设我有项目 B 我们将其称为 Bar Bar是一
  • Android JobScheduler 每天只运行一次

    我检查了 JobScheduler API 它可以从 Android API 级别 21 开始使用 我想安排一个需要互联网并且每天仅运行一次或可选每周运行一次的任务 如果成功执行 我没有找到关于这种情况的例子 有人能帮我吗 谢谢 针对您的问
  • OnSwipe 方法在 RecyclerView 中不起作用

    我正在开发一个用于播放音频文件的应用程序 创建了包含 2 个选项卡的选项卡布局 两者中都使用了片段RecyclerView两者都被使用 该片段名为LibraryFragment有这个RecycleView其物品在刷卡时必须传递给HomeFr
  • 智能手机可以通过 3G/4G 进行点对点通信吗?

    我正在尝试编写一个应用程序 将数据从一个 Android 设备传输到另一个 Android 设备 但这些设备很可能位于城市 州或国家的不同部分 直接的方法是拥有一台中央服务器 或任何类型的服务器 但我试图避免使用中央服务器 我试图传递的数据

随机推荐