原题目在这里,这里是对大部分题目的个人理解,如有不同意见,请留言交流。
仕兰微Android社招
1. 四大组件是什么
Activity,Service,BroadcastReceiver,ContentProvider
2. 四大组件的生命周期和简单用法
- Activity
- Service
- bind模式下:
- BroadcastReceiver
- 静态注册
- ContentProvider
等方法
- 在Manifest文件中注册自定义ContentProvider类
- 在需要调用数据的地方,自定义ContentResolver类
3. Activity之间的通信方式
4. Activity各种情况下的生命周期
- 按HOME键:
- 横竖屏切换:
- 横竖屏切换(配置configChanges):
在Activity标签下配置:android:configChanges="orientation|keyboardHidden|screenSize"
5. 横竖屏切换时,Activity各种情况下的生命周期
6. Activity与Fragment之间生命周期比较
7. Android动画框架实现原理
Android动画实现原理
8. Android各个版本API的区别
9. requestLayout,onLayout,onDraw,drawChild区别与联系
10. invalidate与postInvalidate的区别及使用
11. Activity-Window-View三者的差别
原文
Window
View
12. 谈谈对Volley的理解
- 对于post方式的网络请求:
RequestQueue queue = Volley.newRequestQueue(this);
String url = "";
StringRequest strRequest = new StringRequest(Request.Method.POST,
url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
}
}, new Response.ErrorListener() {
@Override
public void onErrorListener(VolleyError error) {
}
}){
@Override
protected Map<String, String> getParams() throws AuthFailureError {
return super.getParams();
}
};
queue.add(strRequest);
queue.start();
getParams方法获取的数据是用于向服务器提交的参数。
13. Handler机制与底层实现
14. Handler、Thread和HandlerThread的差别
15. Handler发消息给子线程,Looper怎么启动
16. 关于Handler,在任何地方new Handler都是什么线程下
17. ThreadLocal原理,实现及如何保证Local属性
18. 在单线程模型中Message、Handler、Message Queue、Looper之间的关系
19. View事件传递分发机制
20. ListView中图片错位的问题是如何产生的
21. 服务器只提供数据接收接口,在多线程或多进程条件下,如何保证数据的有序到达
22. 性能优化,如何检测一段代码的执行时间,界面卡顿如何修复
检测一段代码执行时间:
界面卡顿如何修复:
布局视图树扁平化
减少透明色,即alpha属性的使用
主线程耗时操作
主线程挂起
23. 滑动不流畅怎么处理
25. 内存泄露怎么检测
- Handler造成的内存泄漏
- 单例模式造成的内存泄漏
- 非静态内部类创建静态实例造成的内存泄漏
- 线程造成的内存泄漏
- 资源没有关闭造成的内存泄漏
- 监听器没有注销造成的内存泄漏
- 集合中的内存泄漏
26. 线程和线程池
27. wait()和sleep()的区别
28. 线程池的参数详解
- maximumPoolSize
- keepAliveTime
- unit
- workQueue
- threadFactory
ThreadPoolExecutor执行任务时遵循如下规则: