0
点赞
收藏
分享

微信扫一扫

2018年Android最新面试题


1.什么是接口?Android中有哪些机制是基于接口编程? 
接口就是一些方法特征的集合,用interface修饰。  面向接口编程

2.说明Activity和Service的生命周期? 
 

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,子线程操作数据(必填)

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传递参数 
 

举报

相关推荐

0 条评论