android高级工程师如何面对内卷

92 篇文章 69 订阅
42 篇文章 21 订阅

昨天面试了一个工作9年的安卓工程师,我这边大概说说过程吧。
1.面试前,我拿到他长长简历看了大概有4页,各种项目经验,精通技能也包括了什么比较高级的应用端性能优化,内存优化,卡顿优化等,同时也具有什么了解Android framework 的ams,pms,binder等,从简历看确实觉得很不错,我这边都在想要问他具体哪些框架部分的原理和各种深入的问题,看看是否可以达到我们高级系统工程师水平
2.面试中,基本开始对他写的性能优化内存优化开始问,他的回答基本停留在哪些情况会引起内存泄漏,和卡顿,把平时常见的引发的情况不断的说,但是这些当然不是好的答案啊,如果仅仅这样做,那就是解决这类问题完全就靠去看代码然后挨个代码怀疑会不会有什么卡顿,内存等问题吗?问他有没有什么工具或者google等工具辅助,如systrace,mat,traceview等工具,他回答是听过没有深入用过。大概就可以判断出对性能等工作停留在非常初级阶段,后面就进入下一个framework相关知识考察,结果也是对binder原理一知半解,对应用启动流程也是说的云里雾里,最后又问他anr原理相关,也基本没有答上来,大概就是整个面试过程
3.面试总结:
这个9年Android开发经验确实没有和他的能力相匹配,基本只可以和我们面试2年经验同学相匹配,他的最大问题在于对所有安卓深入知识知道太少,完全不够深入。可以看出这个人平时基本也就属于一个程序“组装员”,即网上拿一堆开源库拼凑出一个app,然后画画ui写写逻辑。没有认真思考各个开源库及系统相关原理,没有多问自己为什么,反正功能实现就好,其实基本面试了很多同学都是这样一个情况。但这其实非常危险,你想想你做这些是不是一个一两年经验人也完全可以做而且还比你能加班……你的竞争力在哪?
好了不多说最后希望大家多多学习,多多思考。
最后附一个个大家入门学习framework的链接:
课程答疑和新课信息:QQ交流群:422901085进行课程讨论
FrameWork入门课视频链接:https://edu.csdn.net/course/detail/30298
FrameWork实战课1视频链接:https://edu.csdn.net/course/detail/30275
后续会推出更加深入教程,助力大家安卓水平提高

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
1. 你对 Android 操作系统的架构有什么了解? Android 操作系统采用了 Linux 内核,并在其上构建了一个应用程序框架。应用程序框架提供了一套 API,使开发者可以创建应用程序,并与操作系统进行交互。Android 操作系统的架构包括四个层次:应用程序层、应用程序框架层、系统运行时层和 Linux 内核层。 2. 你对 Android 应用程序框架有什么了解? Android 应用程序框架提供了一套 API,使开发者可以创建应用程序,并与操作系统进行交互。应用程序框架主要包括以下模块:活动管理器、资源管理器、视图系统、通知管理器、内容提供者、位置管理器、文本到语音、蓝牙和 Wi-Fi。 3. 你熟悉哪些 Android 开发框架? 我熟悉的 Android 开发框架包括:Android Jetpack、Retrofit、OkHttp、Glide、Dagger、Butter Knife、RxJava、Room、LiveData、Navigation 等。 4. 你了解 Android 的多线程编程吗? 是的。Android 的多线程编程可以通过 Java 的多线程机制来实现。常见的多线程编程方式包括使用 AsyncTask、Handler 和 Thread 等。此外,还可以使用线程池来管理线程,以避免因线程数量过多而导致的性能问题。 5. 你熟悉哪些 Android 数据存储技术? 我熟悉的 Android 数据存储技术包括:SharedPreferences、SQLite、ContentProvider、File、Room 等。SharedPreferences 用于存储应用程序的简单键值对数据;SQLite 用于存储结构化数据;ContentProvider 用于在应用程序之间共享数据;File 用于存储应用程序的文件数据;Room 是 Google 推出的 ORM 框架,用于简化 SQLite 数据库的操作。 6. 你了解 Android 的网络编程吗? 是的。Android 的网络编程可以使用 Java 的网络编程 API 来实现。常见的网络编程方式包括使用 HttpURLConnection 和 OkHttp 等。此外,还可以使用 Retrofit 来简化网络请求的代码。 7. 你了解 Android 的推送技术吗? 是的。Android 的推送技术可以使用 Google 推出的 Firebase Cloud Messaging(FCM)来实现。FCM 可以向设备发送推送通知、数据消息和通知消息。开发者可以使用 FCM 控制台或 API 来向设备发送消息。 8. 你熟悉哪些 Android UI 组件? 我熟悉的 Android UI 组件包括:TextView、Button、EditText、ImageView、ListView、RecyclerView、TabLayout、ViewPager、Toolbar 等。此外,还可以使用自定义 View 和自定义布局来实现更复杂的 UI 组件。 9. 你了解 Android 的性能优化技术吗? 是的。Android 的性能优化技术包括:布局优化、UI 绘制优化、内存优化、网络优化、数据库优化、电量优化等。常见的性能优化方式包括使用 ViewHolder、使用 Lint 工具、使用性能分析器、使用缓存策略、使用数据库索引、使用 JobScheduler 等。 10. 你有哪些 Android 项目经验? 我参与过多个 Android 项目的开发,其中包括基于 Retrofit 和 OkHttp 的网络请求库开发、基于 MVP 架构的天气应用开发、基于 Jetpack 组件的音乐播放器开发等。这些项目涉及了网络编程、多线程编程、数据存储、UI 组件和性能优化等方面的知识和技能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

千里马学框架

帮助你了,就请我喝杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值