自己用的Android面试笔试题汇总(持续更新)

看上去Android开发只是一个app或者sdk的工作内容,但想要做到优秀的话其实要懂的东西还是非常多的。知识体系从底层的操作系统、jvm虚拟机到上层的各种复杂的界面制作,设计模式,架构设计等等,语言要懂java,C,C++,后面可能还要懂kotlin。当然术业有专攻,不同的岗位不同的项目需求应该还是有所区别。本文力求总结这样一份较为全面且有区分度的面试题集合,当然主要还是自己招人用,也欢迎大家提供好的思路和题目。

一、Java基础

1. JVM

1)JVM原理架构介绍
2)GC介绍

  1. 数据结构

  2. 线程

二、Android Java相关

先上一张知识图谱,碉堡了,感谢http://blog.csdn.net/huangqili1314/article/details/72792682
这里写图片描述

1. 四大组件

1)Activity的生命周期,触发时机;
2)Activity之间传值,去和回,为什么要使用intent,不使用的话可以怎么做;
3)Activity的四种启动模式;
4)Window是什么,Window和Activity以及View的关系是什么;
5)源码角度分析一个app的第一个Activity是怎么启动的;
6)Service的生命周期,触发时机;
7)如何创建一个跨进程的Service,有没有使用过,使用的时候有什么注意事项;
8)广播的分类、注册方法,广播存在的意义;
9)自己实现一个广播要怎么做?(app模块内 -> app之间)
9)ContentProvider的作用,使用方法,之前有没有用过,怎么用的;
10)不使用ContentProvider的话如何提供对外访问的数据接口;
11)Context是什么,如何理解Context整个app的生命周期中的重要地位和作用,Context和四大组件的关系是什么;
12)Fragment和Activity的关系,为什么要使用Fragment,生命周期,如何通信,遇到过的坑;

2. View

1)View的绘制流程;
2)Touch事件的传递流程;
3)做过哪些自定义View,详细介绍一下思路和遇到过的坑;
4)各种手机的UI适配和遇到过的坑;
5)动画分类和原理

3. 通信相关

1)跨进程通信的方式和优缺点
2)AIDL的理解,系统生成的aidl文件源码分析
3)Binder的理解,跨进程要传递很多内容的时候要怎么做
4)handler原理,为什么要使用handler,主线程的Looper是在哪里启动的,自己也要做一个相似的handler要怎么设计
5)

4. 优化相关

1)什么是内存泄漏,Android有哪些内存泄漏的场景和解决方案;
2)布局优化
3)http优化
4)图片优化
5)数据库优化
6)gc优化
7)ANR

5. 高级技术

1)http
a、 http,tcp,udp的原理和区别;
b、http和https的区别;
c、项目中使用的http框架,为什么使用,原理是什么;
2)热修复和插件化
3)图片异步加载
4)混合开发

三、Android JNI相关

四、设计模式和架构设计

五、算法

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值