写点什么

字节跳动技术总监自爆:万字 Android 技术类校招面试题汇总

发布于: 2 小时前

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 交流圈子,不一定能短期就让每个人的技术突飞猛进,但从长远来说,眼光,格局,长远发展的方向才是最重要的。


35 岁中年危机大多是因为被短期的利益牵着走,过早压榨掉了价值,如果能一开始就树立一个正确的长远的职业规划。35 岁后的你只会比周围的人更值钱。

用户头像

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

还未添加个人简介

评论

发布
暂无评论
字节跳动技术总监自爆:万字Android技术类校招面试题汇总