美文网首页面试Android开发Android开发经验谈
「 Android开发 」——金九银十,关于面试的一些感悟和建议

「 Android开发 」——金九银十,关于面试的一些感悟和建议

作者: 10块钱new一个对象 | 来源:发表于2020-10-15 13:41 被阅读0次

    今天突然想聊聊面试了,为什么要聊面试呢?因为最近有很多公众号和简书上的朋友跳槽让我看简历,也有很多朋友跟我吐槽说:面试又被虐了,火箭造的简直惨不忍睹,都有点怀疑自己的能力了。其实,我想说:正常,之所以这么说是很多朋友可能没有认清自己存在的一些问题。哪些问题呢?

    两点:
    一是,没有认清自己的技术实力,三天打鱼两天晒网的复习,对提升自己是没有任何一点效率的;

    二是,去面试之前,没有真正了解公司。

    其实说实话,我们作为Android程序员,最起码得有 80% 的人都想进入大公司工作,比如:BAT ,小米,滴滴,今日头条,美团,华为等这样的大公司或者移动互联网界的明星企业。

    进大公司的好处显而易见,福利好,待遇高,工作稳定,不像很多创业小公司说倒闭就倒闭,尤其是移动互联网进入下半场之后,很多创业公司都相继倒闭,而且Android开发者也越来越饱和,随着Android程序员越来越多,自然就进入了激烈竞争的恶劣环境,优胜劣汰的自然规律是不可逃避,也规避不了的。

    据 GitHub 统计,就今年一年加入 GitHub 的中国程序员就有 70 万,可以想象到,当下的竞争得有多激烈。

    即使有 20% 的程序员不想进入大公司,也无非就是要么就是认清了自己的现实,自己并不是那么天赋异禀,也并不是那么热爱编程,有自知之明的心态,在个小公司干也挺好,倒闭了大不了再换,反正 BAT ,我也进不去。要么就是人家就是 BAT 的大神想出来创业当移动互联界的创业家,想功成名就,即使创业失败,我依然可以鹤立鸡群,潇洒回到 BAT 的世界,帅气的依靠自己在业界的名声依然能够得到一份好的工作。

    说着说着,好像有点二八定律的感觉。NO,上面的 80% 和 20% 是我自己的不完全统计,不必当真,举个例子而已。

    Android程序员面试成功的因素到底在哪里?

    关于面试这件事,我想我们大家得明白这样2个面试准则:

    第一准则

    就是在移动互联网进入下半场的今天,技术能力所占的比重越来越大,如果你想在一个公司想要长期性的存在下去,那只有不断的提升你自己的技术实力,你要知道资本是不会养闲人的。作为闲人存在的每一分钟资本都得多付每一分钟的薪水,你觉得老板会答应吗?

    这已经不是一个靠会四大组件就能够获取到满意薪资的时代了。经过一波一波的淘汰与洗牌,剩下的都是技术的金子。就像大浪褪去,裸泳的也会慢慢上岸。如果你想要胜利的旗帜挂在你的白帆上,唯一的出路只能是不断的学习、进阶

    第二准则

    就是我为什么建议朋友们面试就得去大公司呢?你看,现在已经逐步进入拼技术的时代了,所以技术依然越来越重要,而这是在小公司无法体现和提升的。

    你们之所以受打击是因为平时做项目,做产品也可以独立完成,甚至很好的完成,但是面试失败的面试是基础太差。所以,你在小公司确实可以能够很好的掌握并做一个项目,但是大公司重视的是你的基础啊。

    所以要清楚这么一个准则:面试,大公司重基础和深度,而小公司重能力(这里的能力指:能不能马上上手做一个项目的能力)。

    Android程序员如何提前进行面试准备?

    我在前面说了,面试惨不忍睹的就是由两个问题导致的,一是,没有认清自己;二是,没有了解公司。总结成一句话就是准备不足。那么如何在面试前做好充分准备呢?

    今天我想分享的是美团技术专家首发的一份「Android面试宝典」,从互联网一二线企业收集的Android热门面试知识点,让人看了真的不得不推荐,太完整了!

    Android 基础知识点

    • 四大组件的生命周期
    • Activity 之间的通信方式
    • 横竖屏切换的时候,Activity 各种情况下的生命周期
    • Activity 与 Fragment 之间生命周期比较
    • Activity 上有 Dialog 的时候按 Home 键时的生命周期
    • 两个 Activity 之间跳转时必然会执行的是哪几个方法?
    • 前台切换到后台,然后再回到前台,Activity 生命周期回调方法
    • Activity 的四种启动模式对比
    • Activity 状态保存于恢复
    • fragment 各种情况下的生命周期是如何管理的
    • Service 的开启方式,原理是怎样的?
    • 请描述一下 Service 的生命周期
    • 请描述一下广播 BroadcastReceiver 的理解,广播的分类,它实现 通信的底层原理是怎样的?
    • AlertDialog,popupWindow,Activity 区别
    • Application 和 Activity 的 Context 对象的区别
    • Android 属性动画特性
    • 如何导入外部数据库?
    • LinearLayout、RelativeLayout、FrameLayout 的特性及对比,并 介绍使用场景
    • 谈谈对接口与回调的理解
    • 介绍下 SurfceView,它的应用场景是怎样的,它与普通 View 的区 别是什么?
    • 序列化的作用,以及 Android 两种序列化的区别
    • 差值器
    • 估值器
    • Android 中数据存储方式
    image image

    Android 源码相关分析

    • Android 动画框架实现原理
    • Android 各个版本 API 的区别
    • Requestlayout,onlayout,onDraw,DrawChild 区别与联系
    • invalidate 和 postInvalidate 的区别及使用
    • Activity-Window-View 三者的差别
    • 如何优化自定义 View,你进行优化的一般方向是怎样的?
    • 低版本 SDK 如何实现高版本 api?
    • 描述一次网络请求的流程
    • HttpUrlConnection 和 okhttp 关系
    • Bitmap 对象的理解
    • looper 架构
    • ActivityThread,AMS,WMS 的工作原理
    • 自定义 View 如何考虑机型适配
    • AstncTask+HttpClient 与 AsyncHttpClient 有什么区别?
    • LaunchMode 应用场景
    • AsyncTask 如何使用?
    • SpareArray 原理
    • AndroidService 与 Activity 之间通信的几种方式
    • IntentService 原理及作用是什么?
    • 说说 Activity、Intent、Service 是什么关系
    • ApplicationContext 和 ActivityContext 的区别
    • SP 是进程同步的吗?有什么方法做到同步?
    • 谈谈多线程在 Android 中的使用
    • 进程和 Application 的生命周期
    • 封装 View 的时候怎么知道 view 的大小
    • RecycleView 原理,如何避免 RecycleView 带来的内存问题
    • AndroidManifest 的作用与理解
    image image

    常见的一些原理性问题

    • Handler 机制和底层实现
    • Handler、Thread 和 HandlerThread 的差别
    • handler 发消息给子线程,looper 怎么启动?
    • 关于 Handler,在任何地方 new Handler 都是什么线程下?
    • ThreadLocal 原理,实现及如何保证 Local 属性?
    • 请解释下在单线程模型中 Message、Handler、Message Queue、Looper 之间的关系
    • 请描述一下 View 事件传递分发机制
    • Touch 事件传递流程
    • 事件分发中的 onTouch 和 onTouchEvent 有什么区别,又该如何使 用?
    • View 和 ViewGroup 分别有哪些事件分发相关的回调方法
    • View 刷新机制
    • View 绘制流程
    • 自定义控件原理
    • 自定义 View 如何提供获取 View 属性的接口?
    • Android 代码中实现 WAP 方式联网
    • AsyncTask 机制
    • AsyncTask 原理及不足
    • 如何取消 AsyncTask?
    • 为什么不能在子线程更新 UI?
    • ANR 产生的原因是什么?
    • ANR 定位和修正
    • oom 是什么?
    • 什么情况导致 oom?
    • 有什么解决方法可以避免 OOM?
    • oom 是否可以 try catch?为什么
    • 内存泄漏是什么?
    • 什么情况导致内存泄漏?
    • 如何防止线程的内存泄漏?
    • 内存泄露场的解决方法
    • 内存泄漏和内存溢出区别?
    • LruCache 默认缓存大小
    • ContentProvider 的权限管理
    • 如何通过广播拦截和 abort 一条短信?
    • 广播是否可以请求网络?
    • 广播引起 anr 的时间限制是多少?
    • 计算一个 view 的嵌套层级
    • Activity 栈
    • Android 线程有没有上限?
    • 线程池有没有上限?
    • Android 为什么引入 Parcelable?
    • 有没有尝试简化 Parcelable 的使用?
    • dex 文件的加载流程能描述下么
    image image

    「Android面试宝典」思维导图展示:

    image

    总结

    说一千道一万,不如自己去行动。要想在移动互联网的下半场让自己占有一席之地,那就得从现在开始进阶学习,从今天开始,马上严格要求自己,既重视业务实现能力,也重视基础和原理。

    基础夯实好了,高楼才能够平地而起,稳如泰山。才能在面试中从容不迫,力压面试官。下次跟面试官吹牛可以这么说:三对明星同时出轨,我的程序也不会瘫痪。

    ①「Android面试宝典」PDF完整高清版+②「Android面试宝典」学习思维导图压缩包——————(此处免费打包领取),觉得有帮助、有需要的朋友可以点个赞

    相关文章

      网友评论

        本文标题:「 Android开发 」——金九银十,关于面试的一些感悟和建议

        本文链接:https://www.haomeiwen.com/subject/eennpktx.html