面试过后才能知道自己哪方面需要补充。
2016.7.22
1.fragment的生命周期
答的稀烂。抽自己一巴掌。
onAttach :fragment和activity 关联
onCreate: fragment对象创建
onCreateView:fragment对象的View的创建
onActivityCreated:activity的onCreate完成
onStart: fragment显示
onResume :
onPause :fragment不再最上面显示;
onStop:fragment被隐藏
onDestroyView :fragment被移除
onDestroy :fragment被清理完
onDetach :无关联
- 你在做项目的时候,所碰到的难题,怎么解决的?
我答的是,在做图片处理相关的业务时,从开始不熟悉,到后来解决问题的过程,巴拉巴拉。
引申出了一个东西:Picasso。问,你看过Picasso源码吗?知道Picasso是怎么处理图片的吗?
答:Picasso处理图片就和LruCache处理图片同理。巴拉巴拉···
Ok,LruCache是怎么处理的?
答:LruCache会向系统申请一块缓存空间,比如访问相册,当前看到的图片会被加载到LruCache里,看过的,很早之前缓存的图片,LruCache会在空间不足的时候将那些图片清理掉,继续保留空间缓存当前浏览的图片,(我很想说出他的一个专用名词:lru算法,近期最少使用算法,但是当时真是没想起来)。巴拉巴拉···
你知道LruCache,那他全名是什么?
瞬间懵逼······事实上我不知道面试官问的是什么。
面试官是问LRU全名吗?
查资料:LRU,全称Least Rencetly Used,即最近最少使用,是一种非常常用的置换算法,也即淘汰最长时间未使用的对象。 LRU在操作系统中的页面置换算法中广泛使用,我们的内存或缓存空间是有限的,当新加入一个对象时,造成我们的缓存空间不足了,此时就需要根据某种算法对缓存中原有数据进行淘汰货删除,而LRU选择的是将最长时间未使用的对象进行淘汰。
3.继续图片。怎么将一张图片压缩到100KB?
我又默默抽了自己一巴掌。
答:是把图片转化成流,再用Bitmap的一个图片转化方法,设置其中的一个参数为100,90,80,70,等,循环压缩,直至图片被压缩至100KB以内。
不多抽了,上我自己记录过的代码:
/**
* 压缩质量
* @param image Bitmap
* @param size 指定大小
* @return Bitmap
*/
public static Bitmap compressImage(Bitmap image,int size) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
image.compress(Bitmap.CompressFormat.JPEG, 100, baos);// 质量压缩方法,这里100表示不压缩,把压缩后的数据存放到baos中
int options = 90;
while (baos.toByteArray().length / 1024 > size) { // 循环判断如果压缩后图片是否大于size,大于继续压缩
baos.reset();// 重置baos即清空baos
image.compress(Bitmap.CompressFormat.JPEG, options, baos);// 这里压缩options%,把压缩后的数据存放到baos中
options -= 10;
}
ByteArrayInputStream isBm = new ByteArrayInputStream(baos.toByteArray());// 把压缩后的数据baos存放到ByteArrayInputStream中
return BitmapFactory.decodeStream(isBm, null, null);
}
4.关于OkHttp,怎么保存cookie的?
答:我们的做法是用SharedPreferences保存的,使用时将他添加到OkHttp。
答的不好,待补充;
5.如果用户手机在打开相机的时候崩溃,但是我在测试同款手机的时候没问题,那该怎么解决这个问题?
想了一会,答了实在是测不出问题,只有百度谷歌去问了,要不就问牛人,事实上就是:我不会。
记一下,搜索资料,待续。
6.关于推送,怎么将推送内容推送给指定的人?
答,设置用户的关键标识,具体我当时记不清了。
面试官告诉我:有个东西叫做UUID,推荐我去了解下。
我学习的时候看到过,但是没用过。待我学习。
有一个需求,当用户将APP的后台都关掉,怎么才能让他接收到我的推送?
想了一会,不知道。
面试官告诉我,好多大公司的APP都有一个做法,虽然不太推荐,但大家都这么干。具体怎么做,如果我进公司了,就教我。
好吧,又多了个要补充的知识。
大概就这些把,想起更多的,再补充。