2018年Android最新面试题(一)

最近在忙着找工作,所以趁热打铁写一份Android最新的面试题,希望可以帮助到大家。一直被问的问题Glide的源码(重点),最好和Picasso比较着说。
Glide原理(自己看):https://www.jianshu.com/p/3d699bf007c7

1.什么是接口?Android中有哪些机制是基于接口编程?
接口就是一些方法特征的集合,用interface修饰。
面向接口编程:http://blog.csdn.net/wangjinyu501/article/details/74355351

2.说明Activity和Service的生命周期?
2018年Android最新面试题(一)_第1张图片
2018年Android最新面试题(一)_第2张图片

3.Intent flag有哪些?作用是什么?
自己看(25种) :https://www.jianshu.com/p/08177910b0a2

4.Android的多线程模型有哪几种?
Android提供了四种常用的操作多线程的方式,分别是:
1. Handler+Thread
2. AsyncTask
3. ThreadPoolExecutor
4. IntentService
详细介绍:https://www.jianshu.com/p/2b634a7c49ec

5.如何规避oom?
1.使用更加轻量的数据结构
2.避免在Android里面使用Enum
3.减小Bitmap对象的内存占用
4.使用更小的图片
5.复用系统自带的资源
6.注意在ListView/GridView等出现大量重复子组件的视图里面对ConvertView的复用
7.Bitmap对象的复用
8.避免在onDraw方法里面执行对象的创建
9.避免对象的内存泄露(重点)
10.考虑使用Application Context而不是Activity Context
11.注意WebView的泄漏(重点)
12.资源文件需要选择合适的文件夹进行存放
13.谨慎使用static对象(重点)
14.特别留意单例对象中不合理的持有
15.珍惜Services资源
16.谨慎使用“抽象”编程
17.谨慎使用依赖注入框架
18..谨慎使用多进程
19.Handler的使用(重点)
20.强软弱虚引用的应用(重点)
22.主线程操作UI,子线程操作数据(必填)
原因地址:http://blog.csdn.net/ljx19900116/article/details/50037627

6.数据存储有哪些方式?
1.sharedpreferences 2.file 3.Sqlite 4.ContentProvide 5.网络存储

7.如何做多设备支持?
个人理解为屏幕适配,不知道出题者的意图

8.Android的布局方式有哪些?分别是如何实现OnDraw的?
LinearLayout,RelativeLayout,TableLayout,FrameLayout,AbsoluteLayout,GridLayout

9.ScrollView是否可以和listView混合使用?如何可以,说明混合使用的方式,如果不行,说明原因。
可以,计算整个ListView的高度,填充数据后重新设置ListView高度,重写onMeasure和onInterceptTouchEvent方法

10.在创建fragment时如何传递初始化参数?
Fragment初始化一定要提供默认构造函数。不能用构造函数传递参数!不要写带参数的构造函数。在Fragment里添加获取Fragment的newInstance函数,以后获取Fragment就使用这个函数,不要使用构造函数新建Fragment!使用setArgument和getArgument传递参数
详细地址和注意事项:http://blog.csdn.net/xiaofei_it/article/details/45675497

每篇文章10篇,答案仅做参考,非标准答案,如有疑问,可评论提出。

你可能感兴趣的:(Android)