Java知識分享網 - 輕松學習從此開始!????

Java知識分享網

Java1234官方群25:java1234官方群25
Java1234官方群25:838462530
     
粉絲特別福利:66套java從入門到精通實戰課程 ( 限時1小時免費領取 )

SpringBoot打造企業級進銷存

Java1234 VIP課程

領取微信掃碼登錄Java實現視頻教程

Java1234至尊VIP(特價活動)

Android高級面試題 PDF 下載


分享到:
時間:2020-07-09 12:49來源:http://www.bxroef.tw 作者:小鋒  侵權舉報
Android高級面試題 PDF 下載
失效鏈接處理
Android高級面試題 PDF 下載

整理下載:
提取碼:tz7g
 
相關截圖:
 
主要內容:
內存抖動(代碼注意事項):
內存抖動是由于短時間內有大量對象進出新生區導致的,它伴隨著頻繁的GC,gc會大量占用ui線程和
cpu資源,會導致app整體卡頓。
避免發生內存抖動的幾點建議:
盡量避免在循環體內創建對象,應該把對象創建移到循環體外。
注意自定義View的onDraw()方法會被頻繁調用,所以在這里面不應該頻繁的創建對象。
當需要大量使用Bitmap的時候,試著把它們緩存在數組或容器中實現復用。
對于能夠復用的對象,同理可以使用對象池將它們緩存起來。
四、App瘦身
五、App電量優化
六、網絡優化
移動端獲取網絡數據優化的幾個點
1、連接復用:節省連接建立時間,如開啟 keep-alive。于Android來說默認情況下
HttpURLConnection和HttpClient都開啟了keep-alive。只是2.2之前HttpURLConnection存在影
響連接池的Bug。 2、請求合并:即將多個請求合并為一個進行請求,比較常見的就是網頁中的CSS Image Sprites。
如果某個頁面內請求過多,也可以考慮做一定的請求合并。
3、減少請求數據的大?。簩τ趐ost請求,body可以做gzip壓縮的,header也可以做數據壓縮(不
過只支持http 2.0)。
返回數據的body也可以做gzip壓縮,body數據體積可以縮小到原來的30%左右(也可以考慮壓縮
返回的json數據的key數據的體積,尤其是針對返回數據格式變化不大的情況,支付寶聊天返回的
數據用到了)。
4、根據用戶的當前的網絡質量來判斷下載什么質量的圖片(電商用的比較多)。
5、使用HttpDNS優化DNS:DNS存在解析慢和DNS劫持等問題,DNS 不僅支持 UDP,它還支持
TCP,但是大部分標準的 DNS 都是基于 UDP 與 DNS 服務器的 53 端口進行交互。HTTPDNS 則不
同,顧名思義它是利用 HTTP 協議與 DNS 服務器的 80 端口進行交互。不走傳統的 DNS 解析,從
而繞過運營商的 LocalDNS 服務器,有效的防止了域名劫持,提高域名解析的效率。
參考文章
客戶端網絡安全實現
七、安卓的安全優化
提高app安全性的方法?
安卓的app加固如何做?
安卓的混淆原理是什么?
談談你對安卓簽名的理解。
2、為什么WebView加載會慢呢?
這是因為在客戶端中,加載H5頁面之前,需要先初始化WebView,在WebView完全初始化完成之前,
后續的界面加載過程都是被阻塞的。
優化手段圍繞著以下兩個點進行:
預加載WebView。
加載WebView的同時,請求H5頁面數據。
因此常見的方法是:
全局WebView。
客戶端代理頁面請求。WebView初始化完成后向客戶端請求數據。
asset存放離線包。
除此之外還有一些其他的優化手段:
腳本執行慢,可以讓腳本最后運行,不阻塞頁面解析。
DNS鏈接慢,可以讓客戶端復用使用的域名與鏈接。
React框架代碼執行慢,可以將這部分代碼拆分出來,提前進行解析。
3、如何優化自定義View
為了加速你的view,對于頻繁調用的方法,需要盡量減少不必要的代碼。先從onDraw開始,需要特別
注意不應該在這里做內存分配的事情,因為它會導致GC,從而導致卡頓。在初始化或者動畫間隙期間
做分配內存的動作。不要在動畫正在執行的時候做內存分配的事情。
你還需要盡可能的減少onDraw被調用的次數,大多數時候導致onDraw都是因為調用了invalidate().因
此請盡量減少調用invaildate()的次數。如果可能的話,盡量調用含有4個參數的invalidate()方法而不是
沒有參數的invalidate()。沒有參數的invalidate會強制重繪整個view。
另外一個非常耗時的操作是請求layout。任何時候執行requestLayout(),會使得Android UI系統去遍歷
整個View的層級來計算出每一個view的大小。如果找到有沖突的值,它會需要重新計算好幾次。另外需
要盡量保持View的層級是扁平化的,這樣對提高效率很有幫助。
如果你有一個復雜的UI,你應該考慮寫一個自定義的ViewGroup來執行他的layout操作。與內置的view
不同,自定義的view可以使得程序僅僅測量這一部分,這避免了遍歷整個view的層級結構來計算大小。
4、FC(Force Close)什么時候會出現?
Error、OOM,StackOverFlowError、Runtime,比如說空指針異常

------分隔線----------------------------
鋒哥公眾號


鋒哥微信號


關注公眾號
【Java資料站】
回復 666
獲取 
66套java
從菜雞到大神
項目實戰課程
大乐透走势图夸距