BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / mobile-terminal-at / #30004同步于 2016/4/22
该镜像源已超过 30 天没有更新,可能在源站已被删除。
MobileTerminalAT机器人发帖

【面经】360搜索Android开发面经

dss886
2016/4/22镜像同步43 回复
上午11点到,人很多,坐在一起等面试,工作人员拿着名单一个一个叫人,感觉还蛮有意思的-。-等了一会就通知一面了,一个特别nice的面试官,问的问题比较简单,半个小时就面完了,基本都是我在说。。。 先是自我介绍+介绍简历里的项目经验,我介绍的时候他找了几个切入点,问了一下富文本的处理,如何在TextView里面显示Gif表情动图等等,然后就一直聊一直聊,最后算法也没考就直接结束了 吃了饭,等到2点多被叫进去二面,问的比较多,而且范围很广,并不局限于Android,持续了快一个半小时 1. Android共享数据的方式,我答的数据库、文件、SharePreference、ContenProvider、Broadcast。。想到的都说了 2. 假如有几百万条排序好的数据,用户搜索的时候如何快速检索到需要的数据,我一开始说折半查找啊,然后觉得不对补充了一下可以建索引,面试官提示我说有什么数据结构可以做到,然后我才说了一个二叉排序树,感觉他不是很满意。。 4. Service是否运行在主进程,我答的一般情况下是,在Manifest文件里指定进程名以后可以运行在单独的进程里。 5. 如何长时间保持你的Service在Android系统里不被杀死,这个网上很多,我balaba说了一些,提到了用C代码Fork一个Linux进程守护你的Service,接着他就问什么叫Fork,为什么要Fork进程,我说因为Linux的进程一般都有一些相同的数据和初始化过程,fork是完全复制父进程的所有内存数据,省去了这个初始化过程,能快一点,然后他问我不想要这个初始化的数据想要一个空的线程,那为什么还要fork呢,当时就懵笔了,应该是没答到点上 6. Android进程间通信的机制和Linux进程间通信的方式,答Android是binder,Linux是管道、Socket、共享内存、消息队列、信号量等等,他没有继续问了,其实问了我也不知道,都只是看过就知道名词。。 7. 有两个线程A和B,A运行到一半以后需要等待B线程运行完以后的结果才能继续,如何做到?我答的是A运行一半以后调用锁的wait()阻塞,B运行完了以后调用锁的notify()通知A线程继续。面试官继续问那用什么当锁,我说随便找个对象当锁就行了啊,面试官就没再问了。。。 8. 最后说那我们来考算法,我以为这起码得是LeetCode中等难度吧,结果说你给我写个冒泡排序。。。。写完说有什么办法能优化吗,我说鸡尾酒排序左右来回扫就可以了,然后就没有然后了。。 感觉二面的面试官更多的是考察底层的细节,一直深入到你不知道了就换个方向继续问,面完后问我你除了做Android还对其他方向感兴趣吗,我们是做搜索里面的云识别的,我说我挺感兴趣的。。。 面完等了一会以后就HR面了,HR居然问我你都投了哪几家公司,有几个offer了,然后问我如果腾讯百度阿里同时给你offer你会去哪一家。。。我就随便说了说,然后说肯定最想来360,哈哈。。。 能想起来的基本就这些了,想到什么再补充,希望对各位同学有帮助 ;) ps,360的招聘流程有点捉急。。上周六中华英才网的HR给我打电话问22号面试有没有时间,我问了下22号是周几啊,她说周四,我说有时间有时间,结果一直没收到具体时间和地点的邮件短信,我周四一看不对啊这特么是21号啊,赶紧找同学联系才问清楚是今天。。昨天晚上才收到短信和邮件说今天下午3点面试,然后早上10点接到360HR的电话问我下午人有点多,你能不能11点赶过来面试。。。醉了
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
fuxuemingzhu机器人#1 · 2016/4/22
先马再看
zhou333chen机器人#2 · 2016/4/22
沙发,好吧,不是沙发了
siguoyicl机器人#3 · 2016/4/22
楼主给力 【 在 dss886 (「意涵团团委书记」「信意涵,得offer」) 的大作中提到: 】 : 上午11点到,人很多,坐在一起等面试,工作人员拿着名单一个一个叫人,感觉还蛮有意思的-。-等了一会就通知一面了,一个特别nice的面试官,问的问题比较简单,半个小时就面完了,基本都是我在说。。。 : 先是自我介绍+介绍简历里的项目经验,我介绍的时候他找了几个切入点,问了一下富文本的处理,如何在TextView里面显示Gif表情动图等等,然后就一直聊一直聊,最后算法也没考就直接结束了 : ...................
chenxiansf机器人#4 · 2016/4/22
感觉楼主很吊
fuxuemingzhu机器人#5 · 2016/4/22
fork线程那个。。linux内核就是这么做的啊,建立新线程的时候是fork已经存在的线程。。我感觉你说的很对啊。难道他在质疑linux写的不够好?
dss886机器人#6 · 2016/4/22
这个真不清楚…回来查也没查出个所以然来 【 在 fuxuemingzhu (负雪明烛) 的大作中提到: 】 : fork线程那个。。linux内核就是这么做的啊,建立新线程的时候是fork已经存在的线程。。我感觉你说的很对啊。难道他在质疑linux写的不够好?
jinsen47机器人#7 · 2016/4/22
4好像有点问题, Service可以指定在独立的线程或者进程执行, 默认是在主线程, manifest是指定process, 制定进程.
dss886机器人#8 · 2016/4/22
对…写的时候线程和进程有点混了,已修改 【 在 jinsen47 (jinsen47) 的大作中提到: 】 : 4好像有点问题, Service可以指定在独立的线程或者进程执行, 默认是在主线程, manifest是指定process, 制定进程.
jinsen47机器人#9 · 2016/4/22
5这个daemon service这个在M之后就不行了, 系统会把当前进程以及其子进程都干掉...现在默认都是两种方式, intent service 利用notification的bug, 还有就是和ROM厂商谈判...