Android基础面试题(一)

Activity方面:

  • 说下Activity生命周期 ?

  • Activity A 启动另一个Activity B 会调用哪些方法?如果B是透明主题的又或则是个DialogActivity呢 ?

  • 说下onSaveInstanceState()方法的作用 ? 何时会被调用?

  • 说下 Activity的四种启动模式、应用场景 ?

  • 了解哪些Activity常用的标记位Flags?

  • 说下 Activity跟window,view之间的关系?

  • 横竖屏切换的Activity生命周期变化?

  • 如何启动其他应用的Activity?

  • Activity的启动过程?(重点)

Service方面:

  • startService和bindService的生命周期?
  • servics如何进行耗时操作?

  • 了解ActivityManagerService的流程吗?

  • Android9.0以后如何保证service不被杀死

  • 先startService再bindService生命周期有何变化

BroadcastReceiver方面:

  • 广播的几种注册形式?有何不同
  • 动态广播和静态广播哪个接收速度快

ContentProvider方面:

  • 如何实现?
  • 权限管理

  • 说说ContentProvider、ContentResolver、ContentObserver 之间的关系?

IPC通信(重点):

  • Android间线程和进程的区别?
  • 如何开启多进程

  • Binder机制的原理

  • Bundle传递对象为什么需要序列化?Serialzable和Parcelable的区别?

  • 讲讲AIDL?原理是什么?如何优化多模块都使用AIDL的情况?

数据储存方面:

  • 描述一下Android数据持久存储方式?

  • SharedPreferences的应用场景?注意事项?

  • SharedPrefrences的apply和commit有什么区别?

  • 了解SQLite中的事务操作吗?是如何做的

  • 使用SQLite做批量操作有什么好的方法吗?

  • 如何删除SQLite中表的个别字段?

  • 使用SQLite时会有哪些优化操作?

View方面:

  • 讲下View的绘制流程?

  • MotionEvent是什么?包含几种事件?什么条件下会产生?

  • 描述一下View事件传递分发机制?

  • 如何解决View的事件冲突 ?举个开发中遇到的例子 ?

  • scrollTo()和scollBy()的区别?

  • Scroller是怎么实现View的弹性滑动?

  • invalidate()和postInvalidate()的区别 ?

  • SurfaceView和View的区别?

  • 自定义View如何考虑机型适配 ?

Handler相关:

  • 谈谈消息机制Handler ? 作用 ?有哪些要素 ?流程是怎样的 ?

  • 一个线程能否创建多个Handler,Handler跟Looper之间的对应关系 ?

  • 软引用跟弱引用的区别

  • Handler 引起的内存泄露原因以及最佳解决方案

  • 为什么系统不建议在子线程访问UI

  • Looper死循环为什么不会导致应用卡死

  • 使用Handler的postDealy后消息队列会有什么变化 ?

  • 可以在子线程直接new一个Handler吗 ?怎么做 ?

  • Message可以如何创建 ?哪种效果更好 ?为什么 ?

线程方面:

  • 线程池的好处?线程池的几个参数的理解,四种线程池的使用场景

  • Android中还了解哪些方便线程切换的类?

  • 讲讲AsyncTask的原理

  • IntentService有什么用 ?

  • 直接在Activity中创建一个thread跟在service中创建一个thread之间的区别

  • ThreadPoolExecutor的工作策略 ?

  • Handler、Thread和HandlerThread的差别?

  • ThreadLocal的原理

  • 多线程是否一定会高效(优缺点)

  • 多线程中,让你做一个单例,你会怎么做

  • 除了notify还有什么方式可以唤醒线程

  • 什么是ANR ? 什么情况会出现ANR ?如何避免 ?在不看代码的情况下如何快速定位出现ANR问题所在 ?

性能优化(重点)

  • 图片的三级缓存中,图片加载到内存中,如果内存快爆了,会发生什么?怎么处理?

  • 内存中如果加载一张500*500的png高清图片.应该是占用多少的内存?

  • WebView的性能优化 ?

  • Bitmap如何处理大图,如一张30M的大图,如何预防OOM

  • 内存回收机制与GC算法(各种算法的优缺点以及应用场景);GC原理时机以及GC对象

  • 内存泄露和内存溢出的区别 ?AS有什么工具可以检测内存泄露

  • 性能优化,怎么保证应用启动不卡顿? 黑白屏怎么处理?

  • 强引用置为null,会不会被回收?

  • ListView跟RecyclerView的区别

  • ListView的adapter是什么adapter ?

  • LinearLayout、FrameLayout、RelativeLayout性能对比,为什么?

图片方面:

  • Bitmap使用需要注意哪些问题 ?

  • 大图片压缩怎么计算?

  • Bitmap.recycle()会立即回收么?什么时候会回收?如果没有地方使用这个Bitmap,为什么垃圾回收不会直接回收?

  • 一张Bitmap所占内存以及内存占用的计算

  • Android中缓存更新策略 ?

  • LRUCatch的原理 ?

  • 三级缓存原理?

  • 如何自己设计一个图片加载框架?

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值