flutter开发,2020-2021阿里巴巴安卓面试真题解析,不可思议!

背景

首先我是个菜鸡,工资也低的一笔。

刚毕业时候在一家国企上班干 app 开发,干了快两年的时候,跳槽到了一家伪大厂干安全。投了不少简历都没有回音,只有这加伪大厂要我就来了。当时说好了会接触一些底层的东西,然而平时也就写 python 脚本,逆向,android 上写了一些风控的东西,感觉有点 low,工资也不高,当初没敢多要,hr 给的比我要的还高。刚刚 leader 谈了谈明年的规划,现在想跳槽。

现在也是很尴尬,原来 app 开发的东西也忘了不少,然后其实我想干 framework 开发,自己对 ams,pms 还算挺了解的,平时也根据他们原创了一点微小的解决方案。最近开始 fork 一个 aosp,买个 pixel 改改刷刷练习一下。

理想毕竟是理想,Android 低端不好混,没什么经验跳到 framework 上去感觉也是挺难的,跳回 app 开发又不甘心,现在的状态貌似是干了快 3 年没有特别精通的东西。最近闹的裁员,我司也是其中之一。加薪怕是没戏了,然而生活还要继续,跳槽避无可避。

1、作用

Serializable的作用是为了保存对象的属性到本地文件、数据库、网络流、rmi以方
便数据传输,当然这种传输可以是程序内的也可以是两个程序间的。而Android的
Parcelable的设计初衷是因为Serializable效率过慢,为了在程序内不同组件间以及
不同Android程序间(AIDL)高效的传输数据而设计,这些数据仅在内存中存在,
Parcelable是通过IBinder通信的消息的载体。

从上面的设计上我们就可以看出优劣了

2、效率及选择

Parcelable的性能比Serializable好,在内存开销方面较小,所以在内存间数据传输
时推荐使用Parcelable,如activity间传输数据,而Serializable可将数据持久化方便
保存,所以在需要保存或网络传输数据时选择Serializable,因为android不同版本
Parcelable可能不同,所以不推荐使用Parcelable进行数据持久化。

3、编程实现

对于Serializable,类只需要实现Serializable接口,并提供一个序列化版本
id(serialVersionUID)即可。而Parcelable则需要实现writeToParcel
describeContents函数以及静态的CREATOR变量,实际上就是将如何打包和解包
的工作自己来定义,而序列化的这些操作完全由底层实现。

最后送福利了,现在关注我并且加入群聊可以获取包含源码解析,自定义View,动画实现,架构分享等。
内容难度适中,篇幅精炼,每天只需花上十几分钟阅读即可。
大家可以跟我一起探讨,欢迎加群探讨,有flutter—底层开发—性能优化—移动架构—资深UI工程师 —NDK相关专业人员和视频教学资料,还有更多面试题等你来拿

点击Gitee领取
录播视频图.png

posted @ 2021-08-21 16:59  程序媛米菲  阅读(341)  评论(0)    收藏  举报