Android开发Android开发经验谈Android技术知识

面试题分享,准备一个月拿下腾讯、华为等9个大厂offer(附答案

2020-03-04  本文已影响0人  程序员的Vere

前言

又到了金三银四的面试季,自己也不得不参与到这场战役中来,其实是从去年底就开始看,android的好机会确实不太多,但也还好,3年+的android开发经历还是有一些面试机会的,

不过确实不像几年前门槛那么低了,总的体会就是小的创业公司比较注重你的项目经历是否和自己的贴合,直接能过来独当一面。

大厂除了看中项目经历外,还比较注重你知识面的广度,是广度、深度和解决方案等多方面的考察,平时够工作要好好积累,刷题要够多,只聊点皮毛估计是过不了关的。

几点建议

1.简历要如实写,相关的知识点一定要烂熟于心。

2.提前总结,你还擅长什么其他技术?这种开放问题要看知识面了。

3.学会提问,你有什么问题要问我吗?这种礼貌性问题也是一个了解对方的好机会。

4.良好的心里素质,无论遇到什么情况,面试官迟到、面试官态度冰冷说话不客气、质疑你的回答等等各种问题都不要慌也不要排斥,一定要沉住气,耐心积极的思考并回答对方的提问

面试真题

Activity

1、说下Activity 生命周期 ?

2、Activity A 启动另一个Activity B 会调用哪些方法?如果B 是透明主题的

又或者是个DialogActivity 呢 ?

3、说下onSaveInstanceState()方法的作用 ? 何时会被调用?

4、说下 Activity 的四种启动模式、应用场景 ?

5、了解哪些Activity 常用的标记位Flags?

6、说下 Activity 跟window,view 之间的关系?

7、横竖屏切换的Activity 生命周期变化?

8、如何启动其他应用的Activity?

9、Activity 的启动过程?(重点)

Bitmap

1、Bitmap 使用需要注意哪些问题 ?

2、Bitmap.recycle()会立即回收么?什么时候会回收?如果没有地方使用这

个Bitmap,为什么垃圾回收不会直接回收?

3、一张Bitmap 所占内存以及内存占用的计算

4、Android 中缓存更新策略 ?

5、LRU 的原理 ?

Fragment

1、谈一谈Fragment 的生命周期?

2、谈谈Activity 和Fragment 的区别?

3、Fragment 中add 与replace 的区别(Fragment 重叠)

4、getFragmentManager、getSupportFragmentManager 、

getChildFragmentManager 之间的区别?

5、FragmentPagerAdapter 与FragmentStatePagerAdapter 的区别与使用场景

由于篇幅限制,细节内容实在太多啦,所以只把部分答案截图出来粗略的介绍,剩余内容已经编辑成PDF文档!有需要的程序猿(媛)可以帮忙转发+关注简信(社招)哦

Handler

1、谈谈消息机制Handler 作用 ?有哪些要素 ?流程是怎样的 ?

2、一个线程能否创建多个Handler,Handler 跟Looper 之间的对应关

系 ?

3、软引用跟弱引用的区别

4、Handler 引起的内存泄露原因以及最佳解决方案

5、为什么系统不建议在子线程访问UI?

6、Looper 死循环为什么不会导致应用卡死?

7、使用Handler 的postDealy 后消息队列会有什么变化?

8、可以在子线程直接new 一个Handler 吗?怎么做?

9、Message 可以如何创建?哪种效果更好,为什么?

JNI

1、对JNI 是否了解

2、如何加载NDK 库 ?如何在JNI 中注册Native 函数,有几种注册方法 ?

Service

1.谈一谈Service 的生命周期?

2、Service 的两种启动方式?区别在哪?

设计模式

1、你所知道的设计模式有哪些?

2、谈谈MVC、MVP 和MVVM,好在哪里,不好在哪里 ?

3、封装p 层之后.如果p 层数据过大,如何解决?

4、是否能从Android 中举几个例子说说用到了什么设计模式 ?

5、装饰模式和代理模式有哪些区别 ?

6、实现单例模式有几种方法 ?懒汉式中双层锁的目的是什么 ?两次判空的

目的又是什么 ?

7、用到的一些开源框架,介绍一个看过源码的,内部实现过程。

8、Fragment 如果在Adapter 中使用应该如何解耦?

由于篇幅限制,细节内容实在太多啦,所以只把部分答案截图出来粗略的介绍,剩余内容已经编辑成PDF文档!有需要的程序猿(媛)可以帮忙转发+关注简信(社招)获取哦

数据存储

1、描述一下Android 数据持久存储方式?

2、SharedPreferences 的应用场景?注意事项?

3、SharedPrefrences 的apply 和commit 有什么区别?

4、了解SQLite 中的事务操作吗?是如何做的

5、使用SQLite 做批量操作有什么好的方法吗?

6、如何删除SQLite 中表的个别字段

7、使用SQLite 时会有哪些优化操作?

IPC

1、Android 中进程和线程的关系? 区别?

2、如何开启多进程 ? 应用是否可以开启N 个进程 ?

3、为何需要IPC?多进程通信可能会出现的问题?

4、Android 中IPC 方式、各种方式优缺点,为什么选择Binder?

5、Binder 机制的作用和原理?

6、Binder 框架中ServiceManager 的作用?

7、Bundle 传递对象为什么需要序列化?Serialzable 和Parcelable 的区别?

8、讲讲AIDL?原理是什么?如何优化多模块都使用AIDL 的情况?

View

1、讲下View 的绘制流程?

2、MotionEvent 是什么?包含几种事件?什么条件下会产生?

3、描述一下View 事件传递分发机制?

4、如何解决View 的事件冲突 ? 举个开发中遇到的例子 ?

5、scrollTo()和scollBy()的区别?

6、Scroller 是怎么实现View 的弹性滑动?

7、 invalidate()和postInvalidate()的区别 ?

8、SurfaceView 和View 的区别?

9、自定义View 如何考虑机型适配 ?

由于篇幅限制,细节内容实在太多啦,所以只把部分答案截图出来粗略的介绍,剩余内容已经编辑成PDF文档!有需要的程序猿(媛)可以帮忙转发+关注简信(社招)获取哦

线程

1、线程池的好处? 四种线程池的使用场景,线程池的几个参数的理解?

2、Android 中还了解哪些方便线程切换的类?

3、讲讲AsyncTask 的原理

4、IntentService 有什么用 ?

5、直接在Activity 中创建一个thread 跟在service 中创建一个thread 之间

的区别?

6、ThreadPoolExecutor 的工作策略 ?

7、Handler、Thread 和HandlerThread 的差别?

8、ThreadLocal 的原理

9、多线程是否一定会高效(优缺点)

10、多线程中,让你做一个单例,你会怎么做

11、除了notify 还有什么方式可以唤醒线程

12、什么是ANR ? 什么情况会出现ANR ?如何避免 ? 在不看代码的情况

下如何快速定位出现ANR 问题所在 ?

性能优化

1、图片的三级缓存中,图片加载到内存中,如果内存快爆了,会发生什么?怎么处

理?

2、内存中如果加载一张500*500 的png 高清图片.应该是占用多少的内存?

3、WebView 的性能优化 ?

4、Bitmap 如何处理大图,如一张30M的大图,如何预防OOM?

5、内存回收机制与GC 算法(各种算法的优缺点以及应用场景);GC 原理时机

以及GC 对象

6、内存泄露和内存溢出的区别 ?AS 有什么工具可以检测内存泄露

7、性能优化,怎么保证应用启动不卡顿? 黑白屏怎么处理?

8、强引用置为null,会不会被回收?

9、ListView 跟RecyclerView 的区别

10、ListView 的adapter 是什么adapter

11、LinearLayout、FrameLayout、RelativeLayout 性能对比,为什么?

Android 进阶延伸点

1、如何进行单元测试,如何保证App 稳定 ?

2、Android 中如何查看一个对象的回收情况 ?

3、Apk 的大小如何压缩 ?

4、如何通过Gradle 配置多渠道包?

5、插件化原理分析

6、组件化原理

7、跨组件通信

8、组件化中路由、埋点的实现

9、Hook 以及插桩技术

10、Android 的签名机制?

11、v3 签名key 和v2 还有v1 有什么区别

12、Android5.0~10.0 之间大的变化

13、说下Measurepec 这个类

14、请例举Android 中常用布局类型,并简述其用法以及排版效率

15、区别Animation 和Animator 的用法,概述其原理

16、使用过什么图片加载库?Glide 的源码设计哪里很微妙?

17、如何绕过9.0 限制?

18、用过哪些网络加载库?OkHttp、Retrofit 实现原理?

19、对于应用更新这块是如何做的? (灰度,强制更新、分区域更新)

20、会用Kotlin、Fultter 吗? 谈谈你的理解

由于篇幅限制,细节内容实在太多啦,所以只把部分答案截图出来粗略的介绍,剩余内容已经编辑成PDF文档!有需要的程序猿(媛)可以帮忙转发+关注简信(社招)获取哦

以上是社招的精华面试题,除此之外,我还有学习内容可以全部免费分享给大家

Android学习PDF大全

这份Android学习PDF大全真的包含了方方面面了,内含Java基础知识点、Android基础、Android进阶延伸、算法合集等等

Android进阶之光

1Android新特性

.第2Material Design

3View体系与自定义View

4章 多线程编程

5章 网络编程与网络框架

6章 设计模式

7章 事件总线

8章 函数响应式编程

9章 注解与依赖注入框架

10章 应用架构设计

11章 系统架构与MediaPlayer框架

image

注意:需要Android学习PDF大全、Android进阶之光、高级Android开发强化实战、深入探索Android热修复技术原理,还有算法题的朋友,可以直接点击我

这些都是我闲暇还会反复翻阅的精品资料!

高级Android开发强化实战

1.进阶基础

2高阶控件

3.项目架构

4.晌应式编程

5.炫酷功能

6.精美动画

7.Katlin SVG

8.测试与优化

深入探索Android热修复技术原理

介绍了 Android 热修复的核 技术原理 结合 ophix 热修复开发实践过程,

从代码修复、资源修复、 so 库修复 大方向进行了详细的技术剖析与解读,业内少有的深度讲解 Android 系统热修复技术的书籍,对于原理、代码讲解得非常清晰和深入,值得我们 AAndroid工程师研读。

我的这份学习合集,可以有效的帮助大家掌握知识点。

总之也是在这里帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习!

分享不易,一定要关注+点赞,支持一波!

上一篇下一篇

猜你喜欢

热点阅读