android平台上持久化存储3种手段_19年3月移动端大厂面试题分享

这几天闲来无事,整理一下有印象的面试问题,准备找工作的同学可以参考。

需要程序员面试资料的同学也可以私信小编 “学习”领取哦

3128001a0f3dafcb5a74034132b803aa.png

1. 高德:专家工程师

1.对Activity启动流程的了解:AMS和ActivityThread涉及到的源码?

2.ANR的实现原理是什么,AMS中涉及ANR的代码有哪些?

3.对MeasureSpec的理解,如何实现一个瀑布流的自定义ViewGroup?

4.内存优化做了哪些工作,LeakCannary实现细节。

5.layout_gravity和gravity的区别。

6.对Binder实现原理的理解。

7.对Flutter框架和实现原理的理解。

2. 小红书:

一面:

1.对Java多线程的理解,Sychronize修饰类和对象的区别?

2.使用过哪些多进程编程场景?AIDL的使用和原理。

3.手写一个单例算法的实现。

4.ART和Davilk虚拟机的区别是什么?

二面:

1.如何实现工程的组件化解耦?

2.handler-looper源码解读,如何保证在msg.postDelay情况下保证消息次序。

3.leakCannary原理,如何判断一个对象是否被回收?如何触发手动gc?

三面:

1.开放问题:优化一个列表页面的打开速度和流畅性。

2.开放问题:设计一个图片加载缓存框架。

3.职业规划和职业诉求。

3. 快手:业务孵化部

一面~三面:

1.过往项目介绍和提问。

2.ListView和RecyclerView区别是什么,两者如何技术选型。

3.算法:实现一个o(n)复杂度的堆和最大数。

4.ART和Davlik垃圾回收区别;

5.开放性问题:如何设计垃圾回收算法?

4. 蚂蚁金服:专家工程师

一面(电面):

1.Android/Java中的Classloader有哪些,区别是什么?

2.Android中的注解有哪几种,分别用来做什么?

3.了解或使用过哪些编译插桩方案,原理和优缺点是什么?

4.如何实现懒汉单例模式?口述代码实现。

5.插件化和热修复的主流方案有哪些?

6.分别如何对java代码和资源实现热修复?

二面:

1.项目实现细节。

2.Flutter框架和实现原理。

3.对ReactNative实现原理的了解。

4.笔试题:实现一个数组的窗口扫描算法。

三面:

1.最有成就的项目是什么?

2.该项目如何向外输出?

四面:

1.设计一个网络优化方案,针对移动端弱网环境。

2.设计一个性能优化方案。

3.对leakcannary原理的了解,c层实现。

5. 饿了么:基础架构组

一面:

1. 内存优化使用过哪些方案,取得过哪些效果,衡量指标如何确定?

2. app性能检测手段有哪些?

3. 如何实现对一个方法执行耗时无痕埋点?

4. git实现原理是什么,如何搭建git server?

5. git merge和git rebase的区别?git 哈希算法的原理。

6. RPC和RESTful 的区别,项目中用的是哪种?

7. 设计一个针对移动端弱网优化项目。

二面~三面:

1. 项目细节,有什么设计缺陷和改进方案。

2. Android工程的编译流程。

6. 字节跳动:基础架构组

一面:

1. 做过哪些性能优化项目,说说实现细节。

2. TraceView的实现原理,分析数据误差来源。

3. 是否使用过SysTrace,原理的了解。

4. TextView setText耗时的原因,对TextView绘制层源码的理解。

5. 对Flutter的原理了解,如何实现多Native页面接入。

二面:

1. 如何实现app的卡顿监控,线下和线上;比较这几种方法的优劣。

2. 了解哪些编译插桩技术,聊聊使用细节。

3. HashMap的实现原理,如何解决哈希冲突?

4. 算法题:识别一个字符串是否是ipv4地址。

三面:

1. 你最优秀的工程设计项目,是怎么设计和实现的;扩展,如何做成一个平台级产品?

2. 做过哪些性能优化项目?说下实现细节。

3. 对Glide源码的了解,如何管理bitmap cache的,cache共有几级?

4. 对inBitmap的理解。

5. 算法:o(n)复杂度实现偶数递增奇数递减单向链接排序。

6. 算法:单向链表逆序。

四面:

1. 过往经历项目。

2. 算法:实现一个数组插入。(处理异常判别,不使用Collections相关接口)。

3. 职业发展规划。

7. Bigo

一面:

1. 线程和进程的区别,什么时候使用多线程和多进程?

2. Android中有哪些IPC方式,Binder的优势和实现原理什么?

3. 描述AM-AMS binder通信流程。

4. 对文件描述符怎么理解?

5. Android中有哪些文件存储方式。

6. 技术价值观。

二面:

1. 做过哪些流量优化方案?

2. 运营项目设计思路,有什么缺陷和改造建议。

3. 这个项目的设计优势,对高内聚低耦合的理解?

三面:

1. 业务提问。

2. 职业预期。

8. 其他合集:美图,作业帮,新东方,贝壳,脉脉

1. Fragment和Activity技术选型,两者如何通信。(新东方)

2. 算法题:找到无序数组的最大连续求和。(新东方)

3. gradle中flavorDimensions的含义,在什么场景下使用过?

4. 是否使用过CordinateLayout,嵌套滚动是如何实现的?

5 .Android中有哪些跨线程通信方式,区别是什么?

6. AsyncTask有哪些使用局限性,是如何使用自定义线程池的?

7. Serivce是如何做到高优先级保活?

8. Android中使用过哪些持久化存储,各自的使用场景是什么?

9. 如何不依赖框架实现一个数据库column的数据类型改造?

10. 算法题:找到多个员工的共同繁忙时段

11. 对线程池的理解。(脉脉)

12. ReactNative实现原理,RN列表优化方案。(脉脉)

13. 如何实现进程安全写文件?

14. OKhttp针对网络层有哪些优化?

15. 对Android编译发布流程的了解。

16. 实现对现有工程的flutter迁移。

除了这些,小编还为大家准备了一些学习编程从入门到精通的学习资料,以及程序员面试,涉及到的绝大部分面试题及答案做成的文档和学习笔记文件,希望可以帮助到大家。

转发此文,关注并私信小编“学习”,即可马上领取,仅限300人哦

80ddec14a9ce38f50255247dcb89b7d8.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值