写点什么

一起看看这些大厂面试真题查漏补缺吧,Android 面试题中高级

发布于: 刚刚

面试刷题

刷题我从常见 Android 基础知识面试题,刷到了 Java 面试题,继而攻坚 Android 高级面试题,以及突破学习 Flutter 相关热点技术面试题(不是很难),最后总攻今年大厂面试真题总结。

Android 基础知识

一、 Activity


1、 什么是 Activity?


2、 请描述一下 Activity 生命周期


3、 常见的 Activity 类型有 FragmentActivitiy,ListActivity,TabAcitivty 等。请描述一下 Activity 生命周期


4、 如何保存 Activity 的状态?


5、 两个 Activity 之间跳转时必然会执行的是哪几个方法?


6、 横竖屏切换时 Activity 的生命周期


7、 如何将一个 Activity 设置成窗口的样式


8、 如何退出 Activity?如何安全退出已调用多个 Activity 的 Application?


9、 Activity 的四种启动模式,singletop 和 singletask 区别是什么?一般书签的使用模式是 singletop,那为什么不使用 singletask?


10、 Android 中的 Context, Activity,Appliction 有什么区别?


11、 两个 Activity 之间传递数据,除了 intent,广播接收者,content provider 还有啥?


12、 Context 是什么?


二、 Service


1、 Service 是否在 main thread 中执行, service 里面是否能执行耗时的操作?


2、 Activity 怎么和 Service 绑定,怎么在 Activity 中启动自己对应的 Service?


3、 请描述一下 Service 的生命周期


4、 什么是 IntentService?有何优点?


5、 说说 Activity、Intent、Service 是什么关系


6、 Service 和 Activity 在同一个线程吗


7、 Service 里面可以弹吐司么


8、 什么是 Service 以及描述下它的生命周期。Service 有哪些启动方法,有什么区别,怎样停用 Service?


9、 在 service 的生命周期方法 onstartConmand()可不可以执行网络操作?如何在 service 中执行网络操作?


三、 Broadcast Receiver


1、 请描述一下 BroadcastReceiver


2、 在 manifest 和代码中如何注册和使用 BroadcastReceiver


3、 BroadCastReceiver 的生命周期


四、 ContentProvider


1、 请介绍下 ContentProvider 是如何实现数据共享的


2、 请介绍下 Android 的数据存储方式


3、 为什么要用 ContentProvider?它和 sql 的实现上有什么差别?


4、 说说 ContentProvider、ContentResolver、ContentObserver 之间的关系


五、 ListView


1、 ListView 如何提高其效率?


2、 当 ListView 数据集改变后,如何更新 ListView


3、 ListView 如何实现分页加载


4、 ListView 可以显示多种类型的条目吗


5、 ListView 如何定位到指定位置


6、 如何在 ScrollView 中如何嵌入 ListView


7、 ListView 中如何优化图片


8、 ListView 中图片错位的问题是如何产生的


9、 如何刷新 ListView 中单个 item 的数据,不刷新整个 ListView 的数据?


六、 Intent


1、 Intent 传递数据时,可以传递哪些类型数据?


2、 Serializable 和 Parcelable 的区别


3、 请描述一下 Intent 和 IntentFilter


七、 Fragment


1、 Fragment 跟 Activity 之间是如何传值的


2、 描述一下 Fragment 的生命周期


3、 Fragment 的 replace 和 add 方法的区别


4、 Fragment 如何实现类似 Activity 栈的压栈和出栈效果的?


5、 Fragment 在你们项目中的使用


6、 如何切换 fragement,不重新实例化

Java 面试题

一、 Java 基础


1、 Java 中引用类型都有哪些


2、 什么是重载,什么是重写,有什么区别? )


3、 String、StringBuffer 和 StringBuilder 的区别


4、 关键字 final 和 static 是怎么使用的


5、 TCP/IP 协议簇分哪几层?TCP、IP、XMPP、HTTP、分别属于哪一层?


二、 Java 中的设计模式


1、 你所知道的设计模式有哪些


2、 单例设计模式


3、 工厂设计模式


4、 建造者模式(Builder)


5、 适配器设计模式


6、 装饰模式(Decorator)


7、 策略模式(strategy)


8、 观察者模式(Observer)


Android 高级


一、 Android 性能优化


1、 如何对 Android 应用进行性能分析


2、 什么情况下会导致内存泄露


3、 如何避免 OOM 异常


4、 Android 中如何捕获未捕获的异常


5、 ANR 是什么?怎样避免和解决 ANR(重要)


6、 Android 线程间通信有哪几种方式(重要)


7、 Devik 进程,linux 进程,线程的区别


8、 描述一下 android 的系统架构?


9、 android 应用对内存是如何限制的?我们应该如何合理使用内存?


10、 简述 android 应用程序结构是哪些?


11、 请解释下 Android 程序运行时权限与文件系统权限的区别?


12、 Framework 工作方式及原理,Activity 是如何生成一个 view 的,机制是什么?


13、 多线程间通信和多进程之间通信有什么不同,分别怎么实现?


二、 Android 屏幕适配


1、 屏幕适配方式都有哪些


2、 屏幕适配的处理技巧都有哪些


三、 AIDL


1、 什么是 AIDL 以及如何使用


2、 AIDL 的全称是什么?如何工作?能处理哪些类型的数据?


四、 Android 中的事件处理


1、 Handler 机制


2、 事件分发机制


3、 子线程发消息到主线程进行更新 UI,除了 handler 和 AsyncTask,还有什么?


4、 子线程中能不能 new handler?为什么?


五、 Android 中的动画


1、 Android 中的动画有哪几类,它们的特点和区别是什么


2、 如何修改 Activity 进入和退出动画


3、 属性动画,例如一个 button 从 A 移动到 B 点,B 点还是可以响应点击事件,这个原理是什么?


六、 ContentObserver 内容观察者作用及特点


项目框架的使用


一、 自我介绍


二、 开发中都使用过哪些框架、平台


三、 都使用过哪些自定义控件


四、 自定义控件:绘制圆环的实现过程


五、 自定义控件:摩天轮的实现过程


六、 自定义控件:可拖拽排序的 GridLayout 的实现过程


七、 流式布局的实现过程


八、 项目的流程


九、 项目中常见的问题


十、 即时通讯是是怎么做的?


十一、 设计模式六大原则


十二、 第三方登陆


十三、 第三方支付


十四、 常见框架分析

最后

如果你看到了这里,觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言。一定会认真查询,修正不足。谢谢。



欢迎大家一起交流讨论啊~


**本文已被[CODING 开源项目:《Android 学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》](


)



收录**


最后自我介绍一下,小编 13 年上海交大毕业,曾经在小公司待过,也去过华为、OPPO 等大厂,18 年进入阿里一直到现在。

深知大多数初中级 Android 工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此也是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

用户头像

还未添加个人签名 2021.10.19 加入

还未添加个人简介

评论

发布
暂无评论
一起看看这些大厂面试真题查漏补缺吧,Android面试题中高级