美文网首页Android面经
Android 面试复习资料

Android 面试复习资料

作者: __素颜__ | 来源:发表于2020-01-22 15:08 被阅读0次

    Android面试题总结

    1.handler

    1.handelr机制
    2.子线程创建handler需要注意启动looper
    3.handlerThread的原理:在run方法中创建了一个looper
    4.handler导致内存泄漏的原因
    5.handler.postDelay的实现原理
    6.messagequeue阻塞与唤醒的实现原理
    7.messagequeue数据结构是什么
    8.一个线程为什么只有一个looper
    9.looper怎么区分message的目标handler是哪个
    10.looper为什么没有阻塞主线程
    11. ThreadLocal原理

    参考文章:

    2.intentService

    1.intentService为什么能够执行耗时操作?

    答:IntentService中的onCreat方法中创建了handlerThread,
    利用handlerTread中的looper创建了ServiceHandler,
    而ServiceHandler中的handleMessage中调用的是IntentService中的onHandlerIntent方法,所以可以在handleIntent中进行耗时操作

    2.IntentService为什么只能用StartService来开启服务?

    答:因为传递的intent最后都会封装成message最后由serviceHandler发送到子线程的消息队列,而serviceHandler发送的过程是在onStartCommand中完成的,所以要想走到onStartCommand生命周期只能使用startService

    3.service

    1.startService的生命周期?

    答:onCreate->onStartCommand->ondestry

    2.重复调用startService会走哪些方法?

    答:会重复走onStartCommand方法

    3.binderService的生命周期?

    答:onCreat->onBind->onUnbind->ondestry

    4.重复调用unbindService会走那些方法?

    答:服务绑定后不会重复绑定

    5.混合绑定先startService再bindService的生命周期?

    答:onCreat->onStartCommand->onBind->onUnbind->onDestry
    注意先解绑unbindService在stopService

    4.广播

    1.广播有几种,区别是什么?

    答:有序广播:可以被拦截和修改
    无序广播:不可以被拦截

    2.广播注册有几种区别是什么?

    答:动态注册:代码注册,组件结束广播就结束,组件移除前先移除广播,避免发生内存泄漏
    静态注册:清单文件注册,常驻系统,不受组件的生命周期影响,但是耗电占内存

    3.广播的原理?

    答:集成BroadCast重写onRecive方法,通过bindler向AMS注册广播,通过bindler向AMS来发送广播,AMS通过intentFelter找到合适的BroadCastReciver,把消息发送到对应的BroadCastReciver的消息队列中,回调onRecive方法

    5.contentProvider,ContentReciver,ContentObserve

    1.广播发送原理

    6.fragment

    1.fragement的理解?
    2.fragement和activity的数据交互?
    3.fragement的生命周期?
    4.fragement重复添加?

    6.Activity

    1.Activity的生命周期
    2.Acitivty的启动过程

    Activity启动流程源码分析
    Activity启动流程

    3.Activity的启动模式,A跳转B,B返回A

    android的启动模式

    4.主线程为什么不用创建looper

    ActivityThread的main方法究竟做了什么?

    7.intent

    1.intent传递数据有大小限制吗,为什么是1M?

    答: 探究intent传递大小限制

    9.事件等的传递机制

    1.事件冲突解决?

    Android面试题(三)——View的事件体系和工作原理

    10.view的绘制

    1.view的绘制流程?

    Android 绘制原理浅析「干货」

    2.requestLayout的原理?
    3.invalidat和postInvalidat的区别?
    4.measureSpeace是什么,有几种模式,由什么组成的?

    MeasureSpec 到底是个啥!

    4.自定义view?

    答:1.自定义组合view
    2.自定义继承view
    3.自定义绘制view

    5.RelativeLayout和LinearLayout性能分析

    Android中RelativeLayout和LinearLayout性能分析

    6.动画的分类

    Android 属性动画:这是一篇全面 & 详细的 属性动画 总结&攻略

    11.Apk的打包流程?

    12.Apk的安装流程?

    13.activity的启动流程?

    14.Binder的原理?

    15.内存泄漏?

    1.handler导致内存泄漏
    2.线程内部类导致
    3.资源未释放
    4.静态变量和单例模式导致内存泄漏,主要是持有content引用
    5.leakCanary的原理

    16.Android几种进程

    前台进程
    可见进程
    服务进程
    后台进程
    空进程

    17.SharedPreference

    1.SharedPreference的原理?
    2.SharedPreference使用注意事项?

    18.进程包活的思路

    19.序列化

    Serializable和Parceable的区别?
    Serializable和Parceable的原理?

    20.Bitmap

    Bitmap的大小如何计算?
    Bitmap压缩处理?
    列表图片三级缓存?

    21.内存缓存,磁盘缓存,

    LruCache的原理?

    22.PatchClassLoad和DexClassLoad

    23.js互掉

    24.热修复原理?

    25.性能优化

    26.64K问题

    27.MVP和MVC和MVVM

    28.person p=new Person();

    29.jvm的结构

    30.GC

    31.计算机五层模型

    32.http和https区别

    32.http请求流程

    32.DNS流程

    33.集合

    34.线程

    35.源码分析

    36.优秀面试题

    37.java

    38.Android

    38.Android 各个版本的区别

    主要记住一些大版本变化:

    • android3.0 代号Honeycomb, 引入Fragments, ActionBar,属性动画,硬件加速
    • android4.0 代号Ice Cream,API14:截图功能,人脸识别,虚拟按键,3D优化驱动
    • android5.0 代号Lollipop API21:调整桌面图标及部件透明度等
    • android6.0 代号M Marshmallow API23,软件权限管理,安卓支付,指纹支持,App关联,
    • android7.0 代号N Preview API24,多窗口支持(不影响Activity生命周期),增加了JIT编译器,引入了新的应用签名方案APK Signature Scheme v2(缩短应用安装时间和更多未授权APK文件更改保护),严格了权限访问
    • android8.0 代号O API26,取消静态广播注册,限制后台进程调用手机资源,桌面图标自适应
    • android9.0 代号P API27,加强电池管理,系统界面添加了Home虚拟键,提供人工智能API,支持免打扰模式

    相关文章

      网友评论

        本文标题:Android 面试复习资料

        本文链接:https://www.haomeiwen.com/subject/owkfuctx.html