Android面试题

flutter音视频开发,Android面试题集锦,终局之战
https://zhuanlan.zhihu.com/p/370111248

android音视频开发面试!成功入职网易月薪35K,2021最新版!
http://www.manongjc.com/detail/25-vrvxlgqqdszvrkg.html

Android音视频开发面试
https://www.kanzhun.com/interview/451588/

android音视频开发面试,一篇文章教你搞定计算机网络面试,已开源
https://blog.csdn.net/m0_56004877/article/details/115999653

备战2022,Android中高级面试必知必会
http://px.sxjnk.cn/enjoy/advertorial/article_7

裸辞-疫情-闭关-复习-大厂offer
https://mp.weixin.qq.com/s/ss05aqukZbRYgXl20KOmQw

  1. arrayList底层原理 滴滴 字节跳动
    4.如何得到单链表的长度?360
    https://blog.csdn.net/weixin_41924879/article/details/100065838

5.如何在不使用递归的情况下逆转单链表? 小米/美团/快手
刷题链接: https://leetcode-cn.com/problems/fan-zhuan-lian-biao-lcof/
https://blog.csdn.net/shine0312/article/details/87938865

6.如何在一次遍历中找到单个链表的中间节点的值?中国平安
刷题链接: https://leetcode-cn.com/problems/middle-of-the-linked-list/
https://blog.csdn.net/skyejy/article/details/100112481

7.如何证明给定的链表是否包含循环?如何找到循环的头节点?优酷 腾讯滴滴
https://blog.csdn.net/yangruxi/article/details/80333000

8.两个有交叉的单链表,求交叉点华为
https://blog.csdn.net/u011046509/article/details/80918952>
https://leetcode-cn.com/problems/intersection-of-two-linked-lists/

9.合并单链表字节跳动/美团
leetcodeN题链接: https://leetcode-cn.com/problems/merge-two-sorted-lists

10.如何找链表倒数第n个元素?快慢指针腾讯

https://leetcode-cn.com/problems/lian-biao-zhong-dao-shu-di-kge-jie-dian-Icof/

11.求矩阵中连续1的个数Number of Islands 三星
https://blog.csdn.net/weixin_33941350/article/details/91521633
https://leetcode-cn.com/problems/number-of-closed-islands/

12.大数相加(今日头条,美团)
https://leetcode-cn.com/problems/add-two-numbers-ii/

13.现在有m个人的身份证号码,是警察的潜在考察对象,另外从别的渠道拿到了n个坏人的身份证号码。m和n的数量都是上亿级别,请写出一段代码把m个人中的坏人找出来。并给出您代码的时间复杂度,并计算需要多少兆内存。

  1. 内存足够,直接放进hash_set contains比较

  2. 内存有限,m和n各进行hash(idcord)%1000,然后m0 vs n0…m999 vs n999,每个对应文件利用hash_set进行判断

3.建个trie树 身份证每位都是0-9 最后一位0-9+x 这样18层深度的树去检查另外一个字符串集合

  1. 大数据 处理

招聘网站:
智联
51job
拉钩
猎聘
海投网
https://sxh.haitou.cc/xzrl

面试相关问题:
音视频相关:

1.OpenGL渲染流程

2.在MPEG标准中图像类型有哪些?

3.视频或者音频传输,你会选择TCP协议还是UDP协议?为什么?

4.视频直播如何做音视频同步

5.播放器暂停、快进快退、seek、逐帧、变速怎么实现?

6.如何降低延迟?如何保证流畅性?如何解决卡顿?解决网络抖动?

7.OpenGL的坐标和手机物理坐标有什么不同

8.如何秒开视频?什么是秒开视频?

9.预测编码的基本原理是什么?

10.为什么要有YUV这种数据出来?(谈一谈YUV优点,对比RGB)

Android相关:

1.谈一谈Handler,你对其内部实现和原理的了解。子线程中能不能 new handler?会报错吗?Handler会内存泄露吗,详细讲解一下?

2.Camera、Camera2有什么区别,如何使用

3.Android事件分发的了解

4.从A页跳转到B页,生命周期是怎样的。从B返回A页,生命周期又是怎样的。

5.如何处理按钮连点问题,对这方面怎么优化。(实际是想问你对这方面的最优解, AOP,注解,插桩)

6、谈一谈Okhttp的原理,retrofit的原理,Glide的原理。

7、谈一谈android Activity的启动模式

8、谈一谈你对app启动的流程以及认知。

Java相关:

1.HashMap的了解。

2.ArrayList的了解。

3.输入输出流的了解。

Kotlin:

1.谈一谈你对kotlin语法 !! 和 ? 的了解,他们有什么不同。

2.说说 Kotlin中 的 Any 与Java中的 Object 有何异同?

3.什么是协程?为什么协程比线程要轻量?

高途:

1:网络协议,(个人简历的亮点)
2:handler的原理,post和send的区别,bindler的原理
3:activity的创建过程
4:换肤方案的原理和框架设计
5:aidl通信,api使用过程,创建的类细节,stub proxy transXXX方法
6:webview和js通信设计
7:数据结构和算法,二叉树的s形遍历,采用队列,大体和中缀表达式转后缀表达式比较像

斗鱼面经分享:
最近在做什么呀?有 Flutter 开发教训么?混合开发还是原生开发?Flutter 我的项目采纳的是什么架构类型?Flutter 状态治理怎么做的?如何实现通过状态更新达到事件触发?Flutter 中 Weight 有状态和无状态的区别是什么?

Kotlin 用了多久了?

Apk 瘦身你次要做了哪儿些操作?

用到过插件化或者组件化吗?

启动优化做了哪儿些?有思考过线程池的计划吗?

假如我当初须要在空闲时进行初始化,你有哪儿些计划?

UI 布局如何优化的?

比方我当初须要监控 UI 卡顿,你有哪儿些计划?那如果我想监控具体的列表卡顿呢?

宽带优化怎么做的?

LeakCanary 底层源码怎么实现的有理解过吗?

为什么会呈现内存透露状况?举个具体例子。

Handler 外部的一些关系。

Handler 中的 Message 如何保障发送的和拿到的是统一的?

大略理解哪儿些设计模式?具体利用哪儿些场景?

手绘责任链的类图。

实现多线程的形式。

OkHttp 应用的线程池是什么类型的?

如何在 Theard 中进行这个线程?

AsyncTask 底层如何实现的多线程?

MVVM 官网框架图是什么?哪儿几层?他们之前的关系是怎么,如何交互,如何实现的 MVVM,MVVM 的外围是什么。ViewHolder 如何获取到的数据?

Activity 和 Fragment 如何共享 ViewHodler 数据?ViewModel 层如何实现数据共享?

组件化如何应用的?如何划分的?

module 之间如何进行通信的?

直播怎么做的?有用过 Flutter 开发直播我的项目么?

你对 GC 理解多少?

HashMap 底层实现原理是什么?HashMap 和 HashTable 有什么区别?

IntentService 次要做什么操作?

Handler、Thread、HandlerThread 三者之间区别?

Handler: 次要是在 Android 中负责音讯解决,通过它能够实现线程之间的音讯通信;

Thread: Java 过程中执行运算的最小单位,也就是执行处理机调度的根本单位;

HandlerThread: 一个继承自 Thread 的 HandlerThread,Android 中没有对 Java 中的 Thread 进行任何封装,而是提供了一个继承自 Thread 的 HandlerThread 类。因为它自身继承自 Thread,所以实质就是个 Thread。与一般的 Thread 的区别在于,其外部间接实现了 Looper 的实现,有了 Looper 就能够让咱们在线程中进行音讯解决,如果不应用 HandlerThread 的话,须要手动调用 Looper.prepare() 和 Looper.loop()。

Handler、Thread和HandlerThread的差异

Android 过程间通信形式。

文件共享

AIDL

Bundle

ContentProvider

Socket

Messenger

Android过程间通信、记一次阿里面试题:都有哪些过程间通信形式?麻烦你不要再背了

音讯信使理解多少?

什么是线程平安?什么样不是线程平安?如何实现线程平安?

volatile 价值是什么?

禁止重排序还有什么形式能够实现?

Flutter 工作治理怎么封装的?

对于加班怎么了解的?冀望薪资。

360的面试
1:启动优化,实现方式和框架设计思想,重点问道了startup
2:进程间通信的方式,项目中实际操作过的和知道的
3:UI层级优化,结合setcontentview的源码分析
4:组件化通信方案
5:广播的分类和特点
6:socket协议原理和框架设计
7:反码,补码和原码
8:wakelock的作用
9:32位和64位的int存储有什么区别
10:wakelock的优化方向

其他问题
1:你以后的发展规划,想往哪方面走,为什么


启动速度由8s 降到了2.5s,公司直接让我转正了
鸿洋 2022-11-28 08:35 发表于北京
App开发过程中,需要非常重视App的性能,部分大厂里面有这样的要求,转正答辩内容除了业务开发外,需要有app 性能优化部分,后来它成为一个新人是否可以转正的要求之一。

试想一下,如果用户费了很多时间和流量下载了我们的App,当人家安装好启动App时,却发现我们的App点了之后,很长时间没反应。

如果我是用户,二话不说直接卸载掉,因此App的性能优化还是很重要。

接下来以大厂面试题的方式给大家总结一下启动优化:
1、说说什么是冷启动(腾讯架构岗一面)

冷启动,就是在系统中不存在当前App进程的情况下,点击App图标启动App。比如初次安装完App启动App或者清除App数据后启动App,这样App的启动需要经过两个步骤:

(1)application的创建

(2)activity生命周期。

在当前系统中不存在任何该app的进程实例,不存在任何的activity实例,所以说,当前的系统环境是“冷”的,这样的app启动速度也是最慢的。

2、你听说过温启动吗,说说温启动的定义(阿里 手淘二面)

温启动,其启动速度是介于冷启动和热启动之间的。

温启动,就是在application存在的情况下去启动app,这样只会走activity的生命周期,也就是冷启动的第二阶段。

例如:某些手机系统的app,点击系统返回键退出app,再重新启动app。这种时候,app的进程还是存在的,只执行activity的生命周期。

所以说,当前的系统环境是“温”的,因为进程还在。

3、热启动为什么是最快的,你能解释下吗(腾讯架构师二面)

热启动,这是启动最快的了就是在application和activity都存在的情况下启动app,这样只会走activity生命周期的一部分。

例如,最常见的就是点击系统home键或者recent键后再次进入app,其实就是前后台的切换。所以说呢,当前的系统环境是热的,因为我的进程和activity都在。

启动优化详细步骤,学会这一步,惊呆面试官下巴
MainActivity 的界面打造异步inflate布局

Application减少binder调用

启动时MainActivity 中的ViewPager+Fragment加载的优化

Application 中 SharedPreference替换为mmkv实现

Android系统确保系统已经完成dex2oat的优化

设置闪屏图片页,其中放一张背景图片,更顺滑无缝衔接我们主MainActivity

智能线程 对application启动线程进行优先级处理

无环图方式对启动任务整理


异步+按需初始化+资源文件压缩

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值