网络编程
我项目中Socket是怎么实现IM通讯的;
Socket通讯,怎么实现图片,大文件传输;
http报文结构;
https中哪里用了对称加密,哪里用了非对称加密,对加密算法(如RSA)等是否有了解?
http,https有什么不同,如何进行加密,各种加密算法的性能;
你知道的几种网络请求方式,get和post有什么区别,性能比较;
三次握手,四次挥手;浏览器请求一个网址的过程;
IO
10G Text文本,怎么读取到页面上;
封装一个网络框架,考虑哪些问题,使用多线程,下载一个大文件,如何得知文件下载完成。
设计模式
单例模式几种,双层检测单例为啥要进行第二次判断,它一定安全么?内部类为什么只会被加载一次。。。。。。。一个问题的延伸。
代理模式,装饰者模式。
数据结构+算法
Java中你了解几种数据结构;
那你用过hashtable么,他是怎么实现唯一性的;
那你说下LinkeMap吧;
怎么监测链表有没有产生死循环;
你熟悉哪些算法,他们得时间复杂度是怎么样的;
arrayMap的实现原理
1~100的int数组,循环打印输出index的为8的倍数的value并删除,要求,效率要高
设计一个算法,实现输出展示Android系统的所有文件路径;
序列化
Android中Serializable和Parcelable原理,效率等;
intent传递大小限制;怎么传输一直10M的图片;
并发编程
线程池有几种,锁有几种,线程的原子性等等。。;
多线程操作;
虚拟机
虚拟机内存模型,垃圾回收算法,JVM老年代和新生代的比例;
java虚拟机和Dalvik虚拟机的区别
屏幕适配
怎么实现屏幕适配,dp,px转换关系;
dp适配准确么,为什么不会。
四大组件原理
provider原理;
广播的通讯原理;
handler
handle原理,在哪初始化loop,循环为啥不阻塞主线程
handle中怎么实现消息延时发送的;
View
view的绘制流程,从哪开始绘制的,事件分发机制;
自定义VIew,把一行String字体绘制到画板中间,怎么计算中间位置,怎么计算String字符串长度,高度等;
事件分发机制,view的事件中onCancle是怎么触发的
性能优化(Bitmap)
项目中怎么做性能,内存优化的,怎么监测性能,内存抖动的原因;
从网络加载一个10M的图片;
怎么读取一张100m的图片;
LruCache原理;
跨进程通信
跨进程通讯几种方式,怎么实现一次性拷贝;
你项目中用到跨进程通讯的场景;
binder通讯原理;
MVVM
mvvm原理
databinding的实现原理;mvvm中是怎么实现数据双向绑定的,原理是什么,liveData的原理
组件化
项目中组件化通讯是怎么实现的,事件总线怎么通讯;
aRouter源码看过么,内部怎么实现的;
搭建一个组件化框架,思想,考虑哪些问题;
插件化与热修复
插件化如何加载插件;
classLoade加载机制;
热修复资源文件的方案,插件化activity的hook点;
类的生命周期,加载流程;
热修复一个xml文件;
Android类加载器有几种,分别应用什么场景;
开源框架原理
RxJava的原理;
RxJava会产生内存泄漏么,RxJava怎么实现背压,map和flatmap的区别;
glide原理,生命周期的监听实现;
eventbus原理,线程切换;
eventbus是怎么样实现线程切换的;
Retrofit原理,动态代理实现,动态代理的优缺点;
Framework
说下系统的启动流程,从电源键按下开始;
MVVM架构了解吗
360加固是如何防二次打包的
你项目中有没有遇到一些印象比较深的问题
内存泄漏是怎么回事
热修复是怎么做的,热修复能够修复哪些问题,清单文件里面注册的能不能修复,能不能新增类、新增方法
加固是怎么做的
加固和热修复能不能共存,如果要共存需要怎么做
网友评论