面试的记录

面试过后才能知道自己哪方面需要补充。
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 :无关联

  1. 你在做项目的时候,所碰到的难题,怎么解决的?
    我答的是,在做图片处理相关的业务时,从开始不熟悉,到后来解决问题的过程,巴拉巴拉。

引申出了一个东西: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都有一个做法,虽然不太推荐,但大家都这么干。具体怎么做,如果我进公司了,就教我。

好吧,又多了个要补充的知识。

大概就这些把,想起更多的,再补充。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值