【面试分享】货拉拉

说明
以下内容来自9月Android面试经验分享.md - 简书摘要。
一面
只有在一种情况下,这样做是可行的:
在try语句中声明了很大的对象,导致OOM
,并且可以确认OOM是由try语句中的对象声明导致的,那么在catch语句中,可以释放掉这些对象,解决OOM的问题,继续执行剩余语句。
公钥和私钥就是俗称的不对称加密方式。
公钥(Public Key)与私钥(Private Key)是通过一种算法得到的一个密钥对
(即一个公钥和一个私钥),公钥是密钥对中公开的部分
,私钥则是非公开的部分
。
公钥通常用于加密会话密钥、验证数字签名,或加密可以用相应的私钥解密的数据。
正常来说不建议客户端保持私钥,私钥一般放在服务器中保存,客户端保存公钥。
如果非要在客户端保存私钥内容,一般建议的做法有:
- 客户端存储一套公钥,经过服务器端私钥加密需要保存的私钥进行网络传输(可能会被截取)
- 客户端解密后立即使用生物密码(如指纹信息)进行加密保存
以上内容都可以被HOOK技术截获。
比例大小压缩
通过设置BitmapFactory.Options
中inSampleSize
的值就可以实现。
比如我们有一张20481536像素的图片,将inSampleSize的值设置为4,就可以把这张图片压缩成512384像素。原本加载这张图片需要占用13M的内存,压缩后就只需要占用0.75M了(假设图片是ARGB_8888类型,即每个像素点占用4个字节)。
质量压缩
根据传递进去的质量大小,采用系统自带的压缩算法,将图片压缩成JPEG格式
图片压缩库进行压缩
如:使用JNI使用Jpeg库
或者Curzibn/Luban库进行图片压缩,或使用bumptech/glide等三方库进行加载。
加载长图
可以使用BitmapRegionDecoder
只渲染一个图片的局部,而非全部加载一个图片
说实话我不知道这题是在问什么,是在问am start activity中间计时的原理?
还在在问从Application类被加载,开始记时间戳一直到第一个activity加载的时间?
Error错误
Error类以及他的子类的实例,代表了JVM本身的错误。错误不能被程序员通过代码处理,Error很少出现。因此,程序员应该关注Exception为父类的分支下的各种异常类。
Exception异常
Exception以及他的子类,代表程序运行时发送的各种不期望发生的事件。可以被Java异常处理机制使用,是异常处理的核心。
- 检查异常:编译时没有处理的异常会编译失败。
- 非检查异常:
Error
和RuntimeException
以及他们的子类
,在编译时不检查。
OutOfMemoryError
属于Error级别的;
|
|
这个问题可长可短,可以从链路复用讲起,目前主要问的是QUIC
协议的相关的内容。