Android面试题目 - RecycleView如何优a化?如何自定义View?
1、recycleview如何优化?recycleview中要加载多种不同样式的item该怎么实现?
答:1、使用 viewholder复用布局
2、bitmap 优化
3、避免内存泄漏,可以使用 android profiler 或者 leakcanary来监测。
4、避免主线程中计算。如果有复杂计算,需要新创建进程。
2、android下解决滑动冲突的常见思路是什么?
答:相关的滑动,重写onintercepttouchevent,然后判断根据xy值,来决定是否要拦截当前操作。
3、如何自定义view
答:1、创建你的自定义类,让它继承view类,并重写构造方法。
2、重写ondraw()方法。
3、布局文件引用自定义view
4、android屏幕适配常用方法有那些?
1、图片适配 2、布局适配 3、代码适配 4、权重适配 5、尺寸适配 6、百分比适配
常用适配框架:鸿洋:android 屏幕适配方案
5、如何理解context
context:包含上下文信息的一个参数。android中的context分3种,application context,activity context,service context.它描述的是一个应用程序环境的信息,通过它我们可以获取应用程序的资源和类,也包括一些应用级别操作,例如:启动一个activity,发送广播,接收intent信息等。
6、如何实现一个平移动画?
用到的方法是animation translateanimation = new translateanimation(float begin_x,float end_x,float begin_y,float end_y);参数分别代表开始时x的坐标,结束时x的坐标,开始时y的坐标,结束时y的坐标。
translateanimation.setduration(1500);//动画持续的时间为1.5s
translateanimation.startnow();//动画执行
7、fragment的概念是什么?fragment的生命周期是什么?
fragment是android honeycomb 3.0新增的概念,你可以将fragment类比为activity的一部分,它拥有自己的生命周期,接收自己的输入,你可以在activity运行的时加入或者移除fragment.
fragment的生命周期是:
1、onattach()、oncreate()、oncreateview()、onactivitycreated()
2、onstart()
3、onresume()
4、onpause()
5、onstop()
6、ondestroyview()、ondestroy()、ondetach()
8、activity有几种启动模式?分别是什么?
答:有四种启动模式,首先默认的启动模式是standard,就是每创建一个activity就会将其压入任务栈栈顶,不管是否存在;一种是singletop,就是如果任务栈栈顶刚好是要显示的activity,它就不会创建一个新的activity,如果不是,就会创建一个新的activity;一种是singletask,如果activity已经存在,不管是栈顶还是栈中,它就会把要创建的activity移到栈顶;一种是singleinstance,就是如果应用1创建了activity,这个应用2也想调用该activity,这个时候就不需要重新调用了。
9、android存储数据有哪几种方式?
1、sqlite方式存储
2、sharedpreference存储
3、文件file存储
4、contentprovice存储
5、网络存储,将数据放到网络云里面,然后通过网络进行访问。
10、android中线程操作实现有哪几种方式?
答:1、thread & asynctask 2、thread可以与loop和handler共同建立消息处理队列 3、asynctask可以作为线程池并行处理任务。