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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM