前言
前幾天去參加了一場面試。面試的題目大多很基礎,有一道關于埋點的問題,面試官問我如果不用第三方SDK進行埋點,自己埋點的話,如何減少埋點對業務代碼的入侵。
當時沒想太多,就說創建一個 BaseView 類,在這個類中進行埋點的操作,然后使需要進行埋點操作的 View 繼承這個 Base 類。后來想想,這個方案其實存在很多問題,因為讓每個需要埋點的 View 去繼承 BaseView 類,說明 View 需要自定義,會耗費很多的時間和精力,對于自帶的 Button 等控件的埋點,這種方法又無法實現。所以說,其實在這個問題上,我答的不是很好,但可能之前的幾個問題答得不錯,面試官也沒說什么,就說行,然后繼續問下面的問題。
對于埋點,減少業務代碼入侵這個問題,我回來想了想,或許用代理模式來實現,會是一個很好的選擇。
就我身邊的例子來說,很多開發者會存在以下3個問題:
- 對性能優化的流程不是很清晰。?初步定為一個疑似瓶頸點后,就興高采烈地吭哧吭哧開始干,最終解決的問題其實只是一個淺層次的性能瓶頸,真實的問題的根源并未觸達;
- 對性能瓶頸點的分析思路不是很清晰。?UI、網絡、內存…這么多的性能指標,我到底該關注什么,應該從哪一塊兒開始入手?
- 對性能優化的工具不了解。?遇到問題后,不清楚該用哪個工具,不知道通過工具得到的指標代表什么。
在大廠的面試中,性能優化也是經常會被問到的題目,用來考察是否有實際的線上問題處理經驗。比如:
- ui優化除了在布局上處理,還有其他方式沒?
- 啟動優化時除了在application的oncreate的方法中使用異步線程加載部分資源外,還有什么方式?
- 為什么jvm設置了標記和回收算法,在標記的同時也做回收不行么?為什么?
- 通過jvm的標記回收算法,你能想到這種優化方式能如何使用到自己的項目中,請舉例說明
- 性能優化的本質是什么?請說一下你的理解!
學習分享
在當下這個信息共享的時代,很多資源都可以在網絡上找到,只取決于你愿不愿意找或是找的方法對不對了
很多朋友不是沒有資料,大多都是有幾十上百個G,但是雜亂無章,不知道怎么看從哪看起,甚至是看后就忘
如果大家覺得自己在網上找的資料非常雜亂、不成體系的話,我也分享一套給大家,比較系統,我平常自己也會經常研讀。
2021最新上萬頁的大廠面試真題
七大模塊學習資料:如NDK模塊開發、Android框架體系架構…
只有系統,有方向的學習,才能在段時間內迅速提高自己的技術。
這份體系學習筆記,適應人群:
**第一,**學習知識比較碎片化,沒有合理的學習路線與進階方向。
**第二,**開發幾年,不知道如何進階更進一步,比較迷茫。
**第三,**到了合適的年紀,后續不知道該如何發展,轉型管理,還是加強技術研究。如果你有需要,我這里恰好有為什么,不來領取!說不定能改變你現在的狀態呢!
由于文章內容比較多,篇幅不允許,部分未展示內容以截圖方式展示 。如有需要獲取完整的資料文檔的朋友點擊我的【GitHub】免費獲取。
%E6%8B%BF%E9%AB%98%E8%96%AA%EF%BC%81.md)】免費獲取。