写点什么

太牛了!在字节跳动我是如何当面试官的,Android 篇

发布于: 2020 年 12 月 18 日

尴尬的35岁



不知道是哪个人提出的职场35岁就要面临被淘汰的定律,因为35岁定律本来就是个伪命题,尤其是在IT行业!



现在年八九百万的大学生毕业,他们虽然年轻活力,但是很多企业也将之“拒之门外”。



35岁的不要,二十几岁又拒绝,觉得现在很多中小型企业真的很“矫情”,出不起工资找经验丰富的人才,也不想给刚毕业大学生一份适合的岗位。



这也是造成很多中小企业寿命只有3-5年的重要因素之一,因为他们在用人方面真的是一言难尽。



1、Java se基础



1).Java基本数据类型与表达式,分支循环。2).String和StringBuffer的使用、正则表达式。3).面向对象的抽象,封装,继承,多态,类与对象,对象初始化和回收;构造函数、this关键字、方法和方法的参数传递过程、static关键字、内部类。4).对象实例化过程、方法的覆盖、final关键字、抽象类、接口、继承的优点和缺点剖析;对象的多态性:子类和父类之间的转换、抽象类和接口在多态中的应用、多态带来的好处。5).Java异常处理,异常的机制原理。6).常用的设计模式:Singleton、Template、Strategy模式。7).JavaAPI介绍:种基本数据类型包装类,System和Runtime类,Date和DateFomat类等。8).Java集合介绍:Collection、Set、List、ArrayList、LinkedList、Hashset、Map、HashMap、Iterator等常用集合类API。9).JavaI/O输入输出流:File和FileRandomAccess类,字节流InputStream和OutputStream,字符流Reader和Writer,以及相应实现类,IO性能分析,字节和字符的转化流,包装流的概念,以及常用包装类,计算机编码。10).Java高级特性:反射和泛型。11).多线程原理:如何在程序中创建多线程(Thread、Runnable),线程安全问题,线程的同步,线程之间的通讯、死锁。



2、android UI编程



1)、Android开发环境搭建:Android介绍,Android开发环境搭建,第一个Android应用程序,Android应用程序目录结构。



2)、Android初级控件的使用:



TextView控件的使用Button控件的使用方法EditText控件的使用方法ImageView的使用方法RadioButton的使用方法Checkbox的使用方法Menu的使用方法



3)、Android高级控件的使用:



ListView的使用方法GridView的使用方法Adapter的使用方法Spinner的使用方法Gallary的使用方法ScrollView的使用方法RecyclerView



4、对话框与菜单的使用:



Dialog的基本概念BlockquoteAlertDialog的使用方法DatePickerDialog的使用方法Menu的使用方法自定义Menu的实现方法



5.控件的布局方法:



线性布局的使用方法相对布局的使用方法



6.多Acitivity管理:



AndroidManifest.xml文件的作用Intent的使用方法使用Intent传递数据的方法启动Activity的方法IntentFilter的使用方法Activity Group的使用方法



7、自定义控件实现方法:



自定义ListView的实现方法可折叠ListView的使用方法自定义Adapter的实现方法自定义View的实现方法动态控件布局的上实现方法上拉刷新下拉加载更多



3、android网络编程与数据存储



1).基于Android平台的HTTP通讯:



Http协议回顾使用Get方法向服务器提交数据的方法使用POST方法向服务器提交数据的实现方法使用Http协议实现多线程下载使用Http协议实现断点续传



2).Android数据存储技术:



SQLite3数据库简介SQL语句回顾SQLite3编程接口介绍SQLite3事务管理SQLite3游标使用方法SQLite3性能分析访问SDCard的方法访问SharedPreferences的方法



初级工程师



技术要求:



  • 基本知识点比如四大组件如何使用、如何创建Service、如何进行布局、简单的自定义View、动画等常见技术

  • 书籍推荐《第一行代码 Android》、《疯狂Android》



中级工程师



技术要求:



  • 稍微深入的知识点AIDL、Messenger、Binder、多进程、动画、滑动冲突、自定义View、消息队列等

  • 书籍推荐《Android开发艺术探索》、《Android群英传》

  • AIDL:熟悉AIDL,理解其工作原理,懂transact和onTransact的区别;

  • Binder:从Java层大概理解Binder的工作原理,懂Parcel对象的使用;

  • 多进程:熟练掌握多进程的运行机制,懂Messenger、Socket等;

  • 事件分发:弹性滑动、滑动冲突等;

  • 玩转View:View的绘制原理、各种自定义View;

  • 动画系列:熟悉View动画和属性动画的不同点,懂属性动画的工作原理;

  • 懂性能优化、熟悉mat等工具

  • 懂点常见的设计模式

  • 搞懂view的滑动原理

  • 搞懂如何实现弹性滑动

  • 搞懂view的滑动冲突

  • 搞懂view的measure、layout和draw

  • 然后再学习几个已有的自定义view的例子

  • 最后就可以搞定自定义view了,所谓万变不离其宗



高级工程师



技术要求:



  • 稍微深入的知识点

  • 系统核心机制

  • 基本知识点的细节

  • 设计模式和架构

  • 书籍推荐《Android开发艺术探索》、《Android 源码设计模式解析与实战》、《Android内核剖析》

  • 继续加深理解”稍微深入的知识点“中所定义的内容

  • 了解系统核心机制:



  1. 了解SystemServer的启动过程

  2. 了解主线程的消息循环模型

  3. 了解AMS和PMS的工作原理

  4. 能够回答问题”一个应用存在多少个Window?“

  5. 了解四大组件的大概工作流程



  • 基本知识点的细节



  1. Activity的启动模式以及异常情况下不同Activity的表现

  2. Service的onBind和onReBind的关联

  3. onServiceDisconnected(ComponentName className)和binderDied()的区别

  4. AsyncTask在不同版本上的表现细节

  5. 线程池的细节和参数配置



  • 熟悉设计模式,有架构意识学习方法



以上就是整理分享的Android开发进阶的一个学习路线。



最后为了帮助大家深刻理解Android相关知识点的原理以及面试相关知识,这里放上相关的我搜集整理的24套腾讯、字节跳动、阿里、百度2020-2021面试真题解析,我把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包知识脉络 + 诸多细节



还有 高级架构技术进阶脑图、Android开发面试专题资料 帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。









点击:



Android架构视频+BAT面试专题PDF+学习笔记即可免费获取~



网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。



用户头像

VX公众号:编程进阶路 2020.11.28 加入

还未添加个人简介

评论

发布
暂无评论
太牛了!在字节跳动我是如何当面试官的,Android篇