1. 程式人生 > 其它 >android記憶體管理,Android-App的設計架構經驗談,Android知識總結

android記憶體管理,Android-App的設計架構經驗談,Android知識總結

  • 前言

筆者看了一些NDK的專案。一些教程不是HelloWord就是直接整FFmpeg或OpenCV,可謂一個天一個地,而且目錄結構和Android3.5的預設結構並不是太一致,一直沒找到什麼合心的文章。故寫此文連線這天地,來總結一下在NDK開發之前你應知道的東西。


  • 在此之前,先劃分三類人,如果不認清自己是什麼角色就去玩NDK,你會很糟心:

user : 純粹.so連結庫使用者(伸手黨)
creator : 純粹ndk開發者,創作.so連結庫(創作家)
designer : 在現有的.so上自己開發.so連結庫實現特定功能(程式設計師)

面試題如下(答案太長不方便展開,僅僅展示部分)

  1. Android屬性動畫實現原理;
  2. 補間動畫實現原理
  3. Android各個版本API的區別
  4. Requestlayout,onlayout,onDraw,DrawChild區別與聯絡
  5. invalidate和postInvalidate的區別及使用
  6. Activity-Window-View三者的差別
  7. 談談對Volley的理解
  8. 描述一次網路請求的流程
  9. HttpUrlConnection 和 okhttp關係

10.如何優化自定義View

1)在要在onDraw或是onLayout()中去建立物件,因為onDraw()方法可能會被頻繁呼叫,可以在view的建構函式中進行建立物件;
2)降低view的重新整理頻率,儘可能減少不必要的呼叫invalidate()方法。或是呼叫帶四種引數不同型別的invalidate(),而不是呼叫無參的方法。無參變數需要重新整理整個view,而帶引數的方法只需重新整理指定部分的view。在onDraw()方法中減少冗餘程式碼。
3)使用硬體加速,GPU硬體加速可以帶來效能增加。
4)狀態儲存與恢復,如果因記憶體不足,Activity置於後臺被殺重啟時,View應儘可能儲存自己屬性,可以重寫onSaveInstanceState和onRestoreInstanceState方法,狀態儲存。

11.低版本SDK如何實現高版本api?

使用@TargetApi註解·
當代碼中有比AndroidManifest中設定的android:minSdkVersion版本更高的方法,此時編譯器會提示警告,解決方法是在方法上加上@SuppressLint("NewApi")或者@TargetApi()。但它們僅是遮蔽了android lint錯誤,在方法中還要判斷版本做不同的操作。
@SuppressLint("NewApi")遮蔽一切新api中才能使用的方法報的android lint錯誤
@TargetApi() 只遮蔽某一新api中才能使用的方法報的android lint錯誤,如@TargetApi(11)如果在方法中用了只有API14才開始有的方法,還是會報錯。

面試經驗總結

1.一定要謹慎對待寫在簡歷上的東西,一定要對簡歷上的東西非常熟悉。因為一般情況下,面試官都是會根據你 的簡歷來問的;

2.能有一個上得了檯面的專案也非常重要,這很可能是面試官會大量發問的地方,所以在面試 之前好好回顧一下自己所做的專案;

3.和麵試官聊基礎知識比如設計模式的使用、多執行緒的使用等等,可以結合具體的專案場景或者是自己在平時是 如何使用的;

4.建議提前瞭解一下自己想要面試的公司的價值觀,判斷一下自己究竟是否適合這個公司。

5.另外,我個人覺得面試也像是一場全新的征程,失敗和勝利都是平常之事。所以,勸各位不要因為面試失敗而灰心、 喪失鬥志。也不要因為面試通過而沾沾自喜,等待你的將是更美好的未來,繼續加油!

文末

我總結了一些Android核心知識點,以及一些最新的大廠面試題、知識腦圖和視訊資料解析。

需要的小夥伴私信【學習】我免費分享給你,以後的路也希望我們能一起走下去。(謝謝大家一直以來的支援,需要的自己領取)

[點選這裡也可以領取哦!](https://shimo.im/docs/3dQqpTdrrVvtcjjx/ 《BAT、位元組各大廠面試真題集》,可複製連結後用石墨文件 App 或小程式開啟)

  • 330頁PDF Android學習核心筆記(內含8大板塊)
  • Android學習的系統對應視訊
  • Android進階的系統對應學習資料
  • Android BAT大廠面試題(有解析)