魅族面试总结

时间:2022-04-14 15:56:03

经过前期一大批互联网的高压训练(天天笔试),在Java基础和算法上已经有了明显提升,但是对于面试,还存在经验不足的问题。总的来讲,魅族面试相对互联网要简单的多,技术面没有问很深。

一面

静态广播和动态广播的主要区别

主要是动态广播优先级高于静态广播,再者就是注册方式和生命周期的区别。

Android性能优化几点建议
Android应用开机出现白屏的原因

通常android应用从启动到打开第一个Activity之间会有一定时间,在默认activity的主题下(Light or Black),这两秒屏幕就会出现白屏(Light)或者黑屏(Black)- 实际上是activity默认的主题中的Android:windowBackground为白色或者黑色导致的。可以通过以下三种方式优化:
1、在style中设置android:windowBackground属性。通过设置android:windowBackground属性,让一张图片作为窗口的背景图,使打开MainActivity第一眼看到的界面是一张图片而不是白屏或者黑屏,但记住为了屏幕适配,设置的这张背景图的格式应该是.9.png的。设置这个属性来显示一张背景图还有一个效果就是启动应用程序会感觉非常快,而且与加载MainActivity的contentView是异步的。

2、设置android:windowIsTranslucent属性。通过设置android:windowIsTranslucent属性,表明该窗口是半透明的,这样也不会出现白屏或者黑屏。但是,它和MainActivity的显示是同步,如果在MainActivity启动的时候,有过多复杂的操作,就会出现在手机中点击了应用程序的图标之后,但过两秒才会打开应用程序不好的卡顿体验效果。

3、设置android:windowDisablePreview属性。通过设置android:windowDisablePreview属性,禁用窗口的预览动画,
在MainActivity显示之前,系统永远不会使用窗口的主题来显示它的预览,这也保证了不会出现白屏或者黑屏。但是,与设置android:windowIsTranslucent属性一样,如果在MainActivity启动的时候,有过多复杂的操作,就会出现在手机中点击了应用程序的图标,但过两秒才会打开应用程序不好的卡顿体验效果。

描述AIDL
描述Handler工作原理
描述自定义控件的步骤
HTTP三次握手过程
Service保活方案
现场还出了两个题,本来以为是算法,万万没想到竟然如此简单……
1:用位运算实现2的三次方……(送分题吧)
2:给了树的前序和中序,求后序……

二面

TCP传输会受什么影响

这个问题我卡了,之间并没有了解过这一块,后来查了查资料,TCP传输会受到带宽瓶颈,发送和接收端的缓存,丢包等因素限制。

推送的原理,如何维持长连接

网上答案一堆,可以参照极光推送的原理,移动端定时发送心跳包更新NAT表维持长连接。

算法:1到100,这100个数放到一个只有96个位置的数组中,用O(n)时间复杂度找出,哪四个数不在数组中。

直接用一个100的数组,把原来数组中的数放到新数组中对应的位置,比如原来数组中的1就放到新数组中的1位置,这样,遍历完一次,就可以找到了。