博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android面试官:这份354页笔记的Android进阶知识+大厂高频面试题,算法太TM重要了
阅读量:2058 次
发布时间:2019-04-29

本文共 2835 字,大约阅读时间需要 9 分钟。

前言

前几天去参加了一场面试。面试的题目大多很基础,有一道关于埋点的问题,面试官问我如果不用第三方SDK进行埋点,自己埋点的话,如何减少埋点对业务代码的入侵。

当时没想太多,就说创建一个 BaseView 类,在这个类中进行埋点的操作,然后使需要进行埋点操作的 View 继承这个 Base 类。后来想想,这个方案其实存在很多问题,因为让每个需要埋点的 View 去继承 BaseView 类,说明 View 需要自定义,会耗费很多的时间和精力,对于自带的 Button 等控件的埋点,这种方法又无法实现。所以说,其实在这个问题上,我答的不是很好,但可能之前的几个问题答得不错,面试官也没说什么,就说行,然后继续问下面的问题。

对于埋点,减少业务代码入侵这个问题,我回来想了想,或许用代理模式来实现,会是一个很好的选择。

面试总结

面试大厂一定要做好充分的准备,没有准备就去面试完全是去当炮灰的,更是对自己的不负责。再就是基础真的很重要,基础,基础,基础,重要的事说3遍。

下面给大家分享下我在面试美团之前复习整理的一些面试题及解析,主要是字节跳动、阿里、腾讯、美团、拼多多等大厂常问的面试题,可以对照这查漏补缺,当然了,这里所列的肯定不可能覆盖所有,不过也希望能对即将找工作的朋友起到一些帮助!

一、Handler 相关知识

1 、Handler Looper Message 关系是什么?

2 、Messagequeue 的数据结构是什么?为什么要用这个数据结构?
3 、建 如何在子线程中创建 Handler?
4 、Handler post 方法原理?
5 、Android 消息机制的原理及源码解析
6、Android 消息机制

二、Activity 相关

1、Activity 四种启动模式常见使用场景

2、onNewIntent()和 和 onConfigurationChanged()
3、onSaveInstanceState()和 和 onRestoreInstanceState()
4、Activity到底是如何启动的?
5、zygote是什么?有什么作用?
6、SystemServer是什么?有什么作用?它与zygote的关系是什么?
7、ActivityManagerService 是什么?什么时候初始化的?有什么作用?

###由于文章篇幅限制,不可能将所有面试题以文字形式展示出来,文中为大家精选了一些面试题,有需要的朋友们可以直接到文末领取哦。

三、Fragment

1 、Fragment 和 生命周期和 Activity 对比

2 、Fragment 之间如何进行通信
3 、Fragment 的 的 startActivityForResult
4 、Fragment 重叠问题
5、Fragment回退栈管理
6、Fragment与Activity通信
7、Fragment与ActionBar和MenuItem
8、没有布局的Fragment—保存大量数据
9、DialogFragment的使用
10、Fragment的startActivityForResult

四、Service 相关

1 、 进程保活

2 、Service 的运行线程(生命周期方法全部在主线程)
3 、Service 启动方式以及如何停止
4 、ServiceConnection 里面的回调方法运行在哪个线程?

###五、Android 布局优化之 ViewStub、include、merge

1、用 什么情况下使用 ViewStub 、include 、merge ?

2、他们的原理是什么?
3、布局优化神器 include 、merge 、ViewStub标签详解

六、Kotlin 相关

1、从原理分析 Kotlin 的延迟初始化: lateinit var 和 by lazy

2、From Java To Kotlin
3、怎么用 Kotlin 去提高生产力:Kotlin Tips
4、使用 Kotlin Reified 让泛型更简单安全
5、Kotlin 里的 Extension Functions 实现原理分析
6、Kotlin 系列之顶层函数和属性
7、Kotlin 兼容 Java 遇到的最大的 “坑”
8、Kotlin 的协程
9、Kotlin 协程「挂起」的本质
###由于文章篇幅限制,不可能将所有面试题以文字形式展示出来,文中为大家精选了一些面试题,有需要的朋友们可以直接到文末领取哦。

七、Flutter 相关

1、Dart 当中的 「…」表示什么意思?

2、Dart 的作用域
3、Dart 是不是单线程模型?是如何运行的
4、Dart 是如何实现多任务并行的?
5、说一下 Dart 异步编程中的 Future 关键字?
6、说一下 Dart 异步编程中的 Stream 数据流?
7、Stream 有哪两种订阅模式?分别是怎么调用的?
8、await for 如何使用?
9、说一下 mixin 机制?
10、请简单介绍下 Flutter 框架,以及它的优缺点?
11、介绍下 Flutter 的理念架构
12、介绍下 FFlutter 的 FrameWork 层和 Engine 层,以及它们的作用
13、介绍下 Widget、State、Context 概念
14、简述 Widget 的 StatelessWidget 和 StatefulWidget 两种状态组件类 .

八、Java 相关

1、HashMap

2、 ArrayList
3、LinkedList
4、Hashset 源码分析
5、内存模型
6、垃圾回收算法(JVM)
7、垃圾回收机制和调用 System.gc()的区别?
8、类加载过程
9、反射
10、多线程和线程池
11、HTTP、HTTPS、TCP/IP、Socket 通信、三次握手四次挥手过程
12、设计模式(六大基本原则、项目中常用的设计模式、手写单例等)
13、断点续传
14、Java 四大引用
15、Java 的泛型
16、final、finally、finalize 的区别
17、接口、抽象类的区别 …

最后

由于文章篇幅原因,我只把面试题列了出来,详细的答案,我整理成了一份PDF文档,这份文档还包括了还有 高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料 ,帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习。

由于文章篇幅原因,我只把面试题列了出来,详细的答案,我整理成了一份PDF文档,这份文档还包括了还有 高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料 ,帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习。

需要的朋友可以私信我【答案】或者免费领取

转载地址:http://vzplf.baihongyu.com/

你可能感兴趣的文章
简单封装FMDB操作sqlite的模板
查看>>
iOS开发中Instruments的用法
查看>>
iOS常用宏定义
查看>>
被废弃的dispatch_get_current_queue
查看>>
什么是ActiveRecord
查看>>
有道词典for mac在Mac OS X 10.9不能取词
查看>>
关于“团队建设”的反思
查看>>
利用jekyll在github中搭建博客
查看>>
Windows7中IIS简单安装与配置(详细图解)
查看>>
linux基本命令
查看>>
BlockQueue 生产消费 不需要判断阻塞唤醒条件
查看>>
ExecutorService 线程池 newFixedThreadPool newSingleThreadExecutor newCachedThreadPool
查看>>
强引用 软引用 弱引用 虚引用
查看>>
数据类型 java转换
查看>>
"NetworkError: 400 Bad Request - http://172.16.47.117:8088/rhip/**/####t/approval?date=976
查看>>
mybatis 根据 数据库表 自动生成 实体
查看>>
win10将IE11兼容ie10
查看>>
checkbox设置字体颜色
查看>>
第一篇 HelloWorld.java重新学起
查看>>
ORACLE表空间扩张
查看>>