Android面试过程所需要掌握的技术

1. 基本知识点 
比如四大组件如何使用、如何创建Service、如何进行布局等。这类知识是需要熟练掌握的,并且也没什么难度。 
2. 稍微深入的知识点 
比如AIDL、Binder、多进程、View的绘制流程、事件分发、消息队列等。这类知识对于高级开发者来说也是必须掌握的,然而相信很多候选者在面试之前并不能对这些问题了如指掌。这些问题基本都是面试过程中很常见的问题,也是高级岗位所必须掌握的问题,不搞定这些问题无法达到百度的高级工程师的标准,因此也不可能通过面试。 
3. 基本知识点的细节 
比如Activity的启动模式和标记位、Service同时处于start和bind状态时的停止问题、AsyncTask的同步异步问题以及使用时的限制等,这种问题还有很多。这类知识点,大家在开发过程中可以并不会去注意,这会导致一个问题,那就是开发应用没问题,但是在面试时面试官只要稍微问下细节或者特殊情况,就hold不住了。 这类问题也是高级开发者所需要掌握的,有些面试官喜欢问一些看似刁钻的问题,但是候选者如果回答不了也是不好的。 
4. 系统核心机制 
比如主线程的消息循环、主线程如何和AMS如何跨进程交互、SystemServer进程中的各种Service的工作方式、AsyncTask的工作原理等。这类知识对于高级开发者也是建议掌握的,因为它们可以让开发者理解Android的运行体系。 这类问题并不是所有的Android面试都会涉及到,但是技术含量高的大公司有可能涉及此类问题。 
5. 琐碎的知识点 
此类知识点我把它们定义为一些重要但是没有什么技术难度的问题,比如如何打开一个网页、如何打电话、如何发短信、如何定位、多点触控等,这类问题往往不好记忆,但是需要的时候去查一下就能立马搞定。这类问题基本上不会出现在面试过程中。

如何学习Android面试中所需的技术

这里主要是指上面2、3和4这三个类别中的技术,说实话,这并不是一件很简单的事。那么到底如何学习呢,这里先大概说下,随后会有一系列博客来详细地介绍这些技术的学习过程。首先要阅读源码,因为面试中的很多问题需要从源码中找答案,其次要主动学习平时工作中遇不到的一些技术,由于项目的原因,我们不可能通过公司的项目来解除到Android中所有的重要技术,尤其是一些规模不大的项目来说,这个时候要主动去学习。也许有人要问:”我怎么知道哪些东西是需要主动学习的呢?“这的确是个问题,但是我在前面的分类中做了一些举例,大家可以先尝试学习下那些技术,它们都是很重要且时常在面试中出现的技术问题。另外学习的过程中要注意积累,比如写博客、记笔记都是可以的,同时在Github上做开源也是不错的选择。

另外,为了更好更快地学习Android面试中所需的技术,大家可以阅读我的一本书《Android开发艺术探索》,书中对前面的2、3和4类别中的技术细节做了详细深入的讲解,通过这本书可以达到立竿见影的效果。说到《Android开发艺术探索》,我不得不说,我写这本书的初衷是帮助Android程序员更好地成长为高级工程师,直到有一天一些读者和我反馈,说这本书的内容很适合面试,我这才突然发现,原来这本书的内容真的适合面试,这也算是无心插柳吧。至于书的内容我就不做过多介绍了,大家可以看目录、样章以及读者评价,如果觉得不适合自己的话就不要购买了。

知识分类

知识的分类和开发者级别:

Android知识体系

鸣谢:

给Android程序员的一些面试建议

转载于:https://www.cnblogs.com/jooy/articles/8628651.html

Android 精品资源(一) 2018年3月23日 星期五相关推荐

  1. 智通财经:2018年6月23日37个问答了解舜宇光学最新近况

    一,公司业务介绍及指引 回顾30多年历程,公司一直专注光学领域,不断深耕,目前公司多项产品已位于世界前列,车载镜头市场占有率连续6年世界第一,手机镜头及模组居世界第二.目前万物互联,创新应用层出不穷, ...

  2. 2018年7月23日安全快讯

    安全动态 黑客利用Huawei HG532 路由器的 CVE-2017-17215一天内植入18000个僵尸程序 https://www.bleepingcomputer.com/news/secur ...

  3. 2018年6月8日 星期五 天气晴

    列表中嵌套字典 执行结果: 晚安~

  4. 笔记本台式黑苹果安装教程 傻瓜式安装苹果10.12.6 以神舟战神k650D为例(2018年12月23日更新 免费放出文件)

    一.前言 对于苹果系统,不仅每个人态度不一,就连这个系统也褒贬不一.虽然我一开始并不喜欢apple它的产品,但是使用过才能发现它独特的优势--优化好&设计美.虽然我学过编程.设计,但是看到ma ...

  5. 2018年11月23日存储过程实验

    一.实验目的 熟练掌握存储过程的定义和使用,理解存储过程在数据库的使用中能发挥出什么样的作用. 二.实验环境 硬件环境:PC 软件环境:Windows 10 .SQL Server 2008 --1. ...

  6. 2018年1月23日训练日记

    昨晚去补了EOJ月赛的三道题,第一题石头剪刀布不给样例比较难受,不过理清楚思路或者列举一下情况就很容易做了.第二题求妙,刚开始没注意最大数字出现多次的情况,一直WA,后来知道改一下就过了...还是细节 ...

  7. 2018年12月23日,考研,我终于考完了!

    先写出来,保留我的墨迹,心情以后再补,虽然考的很烂!!! But now, I feel relaxed! 压抑了很久很久,从来没有感到这么轻松! 但是,有一些无所是从的感觉,不知道自己要干什么! 很 ...

  8. 2019年8月23日 星期五(韩天峰的swoole)

    Swoole:面向生产环境的 PHP 异步网络通信引擎 使 PHP 开发人员可以编写高性能的异步并发 TCP.UDP.Unix Socket.HTTP,WebSocket 服务. Swoole 可以广 ...

  9. 2018年1月23日腾讯SNG-IMWeb前端工程师 电话远程面试记录

    前言 2018年1月18日,突然接到一个来自深圳的电话,对方说从拉勾网上看到我投递腾讯SNG部门的IMWEB团队前端,简单询问了一下我的具体情况,包括前端的就职年限,过去的工作经历.其中有一点比较有意 ...

最新文章

  1. cnn 反向传播推导_深度学习中的参数梯度推导(三)下篇
  2. 游戏框架设计的一些心得
  3. leetcode1253. 重构 2 行二进制矩阵(贪心算法)
  4. extractCSS – 帮助你从 HTML 中快速分离出 CSS
  5. LeetCode 51. N皇后 / 52. N皇后 II(回溯)
  6. 四二拍用音符怎么表示_每个音符都是赞美歌拍子分析 0基础识简谱每日必看
  7. PRML-系列一之1.5
  8. 124. PHP 性能分析
  9. .net 面试题 (1)
  10. 我的blog终于开通了!
  11. django 项目中使用项目环境制作脚本 通过终端命令运行脚本文件(management/commands)...
  12. 「程序猿 DD」星球活动第一期,将在 7 月 9 日晚 20:00 整开放!
  13. 爱的能力(徐博客写的-收藏下)
  14. 为何电脑上不显示手机连接服务器,为什么我电脑都能连接上vpn手机却连不上
  15. java的if 、if else、while、do while、switch、for执行语句
  16. IOT语义互操作性之本体论 1
  17. 听书项目开发过程及重难点总结(用户管理)
  18. 虎年开工第一天,你实现下班自由了吗?
  19. 服务器个别目录下不能新建文件夹,域服务器不能创建sysvol和netlogon共享文件夹...
  20. Quartus II IP生成报错

热门文章

  1. 每天一道LeetCode-----找到所有被某个字符包围的另一个字符
  2. 每天一道LeetCode-----计算字符串s中有多少个子序列和字符串t相等
  3. php mysql 安装错误_Apache+php配置 Mysql安装出错解决办法
  4. 并查集 - 交换字符串中的元素
  5. Gossip协议详解
  6. centOS6.5下openfoam-2.4.0安装及并行实现
  7. 坑 之 使用numpy的tofile和fromfile读取数据
  8. non-member function ‘size_t capacity()’ cannot have cv-qualifier
  9. (转到C区)[献给想深入学习网络编程的朋友] C,C++网络编程学习简明指南
  10. 4.3 欠拟合与过拟合