美文网首页Android开发Android开发经验谈Android技术知识
2020寒冬之下,作为一个Android码农,我是如何进入腾讯的

2020寒冬之下,作为一个Android码农,我是如何进入腾讯的

作者: 今日Android | 来源:发表于2020-10-12 21:29 被阅读0次

    When the snows fall and the white winds blow, the lone wolf dies but
    the pack survives ----- Ned Stark

    由于众所周知的原因,原生Android开发如今已经日渐凋敝,作为一个Android程序员,不仅要会Java,Kotlin,JavaScript,Css,Html,还要会Flutter,C++,FFmpeg,Linux等相关知识。

    笔者从7月份开始面试,到8月中旬截止(因为腾讯已经面试通过,自己面试面的也累了,就决定去腾讯了) 接下来就说说各家的面试题,一共面试了快二十家公司,既有外包,也有中小型企业,也有准备D轮甚至上市的C轮企业,更有BAT等知名企业。接下来就主要说一下OPPO和腾讯公司的面试题。 也建议各位面试的时候不要上来就直奔BAT等,大厂面试官的技术广度与深度也不是刚出来面试的你,能搞定的。最好先去一些小公司看看他们问的哪些东西,自己回去在查漏补缺一下,最后去大厂。 最后祝各位能进入自己心仪的公司。

    按照面试的时间顺序来一一罗列各家公
    司的面试题。(记忆可能出现纰漏,哈哈,各位看看就好,有些公司的面试可能比较常规,就没有什么特别的印象)

    OPPO面试

    第一面

    1、手写算法题。猫扑素数;1到n,求1的个数;单词反转;

    2、Activity的加载模式。

    standard,singleTop,singleTask,singleInstance。

    3、什么时候会用到singleTask?

    在MainActivity的时候用到

    4、Handler机制?

    5、一个线程是否只有一个Looper?

    6、如何保证一个线程只有一个Looper?

    7、多线程的方式有哪些?

    8、ANR异常发生条件

    (1)5s内没有响应用户输入事件

    (2)10s内广播接收器没有处理完毕

    (3)20s内服务没有处理完毕

    9、如何分析ANR?

    10、自定义View和ViewGroup

    11、事件处理:分发,拦截,处理。

    12、GC算法

    13、View动画,属性动画,帧动画。再说下View和属性动画区别。

    第二面

    1、OkHttp原理?

    2、Retrofit原理?为何用代理?代理的作用是什么?

    3、ButterKnife原理?用到反射吗?为什么?

    4、ANR异常如何查找并分析?

    5、JVM内存模型?性能调优?

    6、垃圾搜集算法有哪些?G1算法

    7、Http和Https的区别?

    (1)Https是ssl加密传输,Http是明文传输

    (2)Https是使用端口443,而Http使用80

    (3)HttpsSSL+HTTP协议构建的可进行加密传输、身份认证的网络协议要比Http协议安全

    (4)Https协议需要到CA申请证书

    8、加密算法有哪些?对称加密和非对称加密的区别?

    (1)MD5,SHA1,Base64,RSA,AES,DES

    (2)对称:使用相同密钥,需要在网络传输,安全性不高。

    (3)非对称:使用一对密钥,公钥和私钥,私钥不在网络传输,因此安全性高。

    9、TCP的三次握手?两次行不行?为什么?TCP攻击知道吗?如何进行攻击?

    10、内存优化如何做?

    11、看过那些源码

    12、会对代码进行review吗?何时review?怎么review?

    13、项目中遇到的让你棘手的问题?多久解决,怎么解决?

    14、平时如何学习?何时学习?怎么学习?学习渠道?

    第三面

    1、前几次面试感觉如何?

    2、你现在的APP日活是多少?

    3、你现在如何处理崩溃日志?

    4、你觉得小团队好还是大团队好? 5 你的优点和缺点说下?

    6、你的发展方向说下?是先讲究宽度还是讲究深度,为什么?

    7、为什么离职?

    8、其他小问题,如哪里人啊?现在工资怎样?要求如何,何时到岗啊?有什么问题要问我的吗?

    腾讯

    三轮面试 一面

    1、算法题 通电小球

    2、Android 沉浸式状态栏 怎么实现的

    3、事件处理函数有哪几个,父View 子View 监听同一个事件,重写哪些方法。在哪个View重写?

    4、ViewRootImpl接受事件吗?

    5、apk编译打包流程 V1,V2 签名区别

    6、利用logging监听方法耗时,会不会让app增大延迟。

    7、插件化怎么加载资源的?

    8、JVM怎么保证gc效率跟线程运行效率的 ?

    9、如果android没用对应的view,flutter能运行吗? 手写单例模式,volatile 跟 synchronized区别?

    10、接口暴露,但是不让别人调用,有哪些办法?

    二面

    1、为什么采用flatbuffer? 比Json好在哪里?

    2、如何处理Crash,NativeCrash呢?Google是怎么做到的?如果上报过程中再次产生Crash能不能捕捉到?

    3、uncaughtException是被谁调用的,如果再次崩溃能不能捕获到?

    4、Linux是怎么知道app崩溃的,如果想要在被kill前 做一些耗时操作,该怎么做?

    5、考虑设计一个crash捕捉模块。

    6、100万个数字求100个最大值。

    7、手写快速排序算法。

    三面 (GM面)

    1、kotlin比Java好在哪里,是函数式编程吗?

    2、如何防止DNS劫持?

    3、如果让你实现一个调试器,你会怎么设计?静态调试?动态调试呢?

    写在最后

    乔布斯曾经说过“一流的人只愿跟一流的人在一起,如果有二流的人进来,就会有三流、四流、不入流的人进来”。找到一流的人才会给公司带来更多一流的人才。所以作为公司的面试官,一定要为公司把好关。

    ①「Android面试真题解析大全」PDF完整高清版+②「Android面试知识体系」学习思维导图压缩包——————可以我的【Github】阅读下载,最后觉得有帮助、有需要的朋友可以点个赞

    相关文章

      网友评论

        本文标题:2020寒冬之下,作为一个Android码农,我是如何进入腾讯的

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