字节跳动面试官:我用这 10 个问题,淘汰了 80% 的 Android 面试者 ------
java 中的内部类(匿名内部类),会持有宿主类的强引用 this。
所以如果是 new Thread 这种,后台线程的操作,当线程没有执行结束时,activity 不会被回收。
Context 的引用,当 TextView 等等都会持有上下文的引用。如果有 static drawable,就会导致该内存无法释放。
VI.单例
单例 是一个全局的静态对象,当持有某个复制的类 A 是,A 无法被释放,内存 leak。
4.Android 中如何捕获未捕获的异常
CrashHandler
关键是实现 Thread.UncaughtExceptionHandler
然后是在 application 的 oncreate 里面注册。
5.Android 线程间通信有哪几种方式
1)共享变量(内存)
2)管道
3)handle 机制
runOnUiThread(Runnable)
view.post(Runnable)
6.Devik 进程,linux 进程,线程的区别
Dalvik 进程。
每一个 android app 都会独立占用一个 dvm 虚拟机,运行在 linux 系统中。
所以 dalvik 进程和 linux 进程是可以理解为一个概念。
7.描述一下 android 的系统架构
从小到上就是:
linux kernel,lib dalvik vm ,application framework, app
8.android 应用对内存是如何限制的?我们应该如何合理使用内存?
activitymanager.getMemoryClass() ?获取内存限制。
关于合理使用内存,其实就是避免 OOM & 内存泄露中已经说明。
9.?简述 android 应用程序结构是哪些
1)main code
unit test
3)mianifest
4)res->drawable,drawable-xxhdpi,layout,value,mipmap
mipmap 是一种很早就有的技术了,翻译过来就是纹理映射技术.
google 建议只把启动图片放入。
5)lib
6)color
10.请解释下 Android 程序运行时权限与文件系统权限的区别
文件的系统权限是由 linux 系统规定的,只读,读写等。
运行时权限,是对于某个系统上的 app 的访问权限,允许,拒绝,询问。该功能可以防止非法的程序访问敏感的信息。
学习分享
在当下这个信息共享的时代,很多资源都可以在网络上找到,只取决于你愿不愿意找或是找的方法对不对了
很多朋友不是没有资料,大多都是有几十上百个 G,但是杂乱无章,不知道怎么看从哪看起,甚至是看后就忘
如果大家觉得自己在网上找的资料非常杂乱、不成体系的话,我也分享一套给大家,比较系统,我平常自己也会经常研读。
2020 最新上万页的大厂面试真题
七大模块学习资料:如 NDK 模块开发、Android 框架体系架构…
只有系统,有方向的学习,才能在段时间内迅速提高自己的技术。
这份体系学习笔记,适应人群:**第一,**学习知识比较碎片化,没有合理的学习路线与进阶方向。**第二,**开发几年,不知道如
何进阶更进一步,比较迷茫。
**第三,**到了合适的年纪,后续不知道该如何发展,转型管理,还是加强技术研究。如果你有需要,我这里恰好有为什么,不来领取!说不定能改变你现在的状态呢!
由于文章内容比较多,篇幅不允许,部分未展示内容以截图方式展示 。如有需要获取完整的资料文档的朋友点击我的【GitHub】免费获取。
如果需要 PDF 版本可以在群文件夹里,自行领取!
评论