您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關Android進階學習有哪些知識點,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
一、Binder
1、介紹Binder
Binder是Android中特有的IPC方式。基于Binder,Android還實現了其他的IPC方式,比如AIDL、Messenger和ContentProvider。Binder的優點在于效率高、安全性好。
2、Binder的通信過程
(1)Server在Service Manager中注冊:Server進程在創建的時候,也會創建對應的Binder實體,如果要提供服務給Client,就必須為Binder實體注冊一個名字。
(2)Client通過Service Manager獲取服務:Client知道服務中Binder實體的名字后,通過名字從Service Manager獲取Binder實體的引用。
(3)Client使用服務與Server進行通信:Client通過調用Binder實體與Server進行通信。
二、 序列化
Android的序列化方式:為了解決Android中內存序列化速度過慢的問題,Android使用了Parcelable。
三、Framework
1、App的啟動過程
(1)ActivityThread:依賴于Ui線程,實際處理與AMS中交互的工作。
(2)ActivityManagerService:負責Activity、Service等的生命周期工作。
(3)ApplicationThread:System Server進程中ApplicatonThreadProxy的服務端,幫助System Server進程跟App進程交流。
(4)System Server:Android核心的進程,掌管著Android系統中各種重要的服務。
2、Apk安裝的主要步驟
(1)將apk文件復制到data/app目錄
(2)解析apk信息
(3)dexopt操作
(4)更新權限信息
(5)完成安裝,發送Intent.ACTION_PACKAGE_ADDED廣播
四、Context
1、概念
不論是Android小白還是經驗豐富的Android開發者,對Context都不會陌生。在加載資源、啟動一個新的Activity、獲取系統服務、獲取內部文件(夾)路徑、創建View操作時等都需要Context的參與,可見Context的常見性。Context字面意思上下文,或者叫做場景,也就是用戶與操作系統操作的一個過程。
2、Context的應用場景
五、Android性能優化
性能優化是Android進階學習的一個重要知識點。關于Android的性能優化我們可以從布局、繪制、內存優化
(1)布局優化
如果父控件有顏色,也是自己需要的顏色,那么就不必在子控件加背景顏色;如果每個自控件的顏色不太一樣,而且可以完全覆蓋父控件,那么就不需要再父控件上加背景顏色;盡量減少不必要的嵌套;能用LinearLayout和FrameLayout,就不要用RelativeLayout,因為RelativeLayout控件相對比較復雜,測繪也想要耗時。
(2)繪制優化
一方面onDraw方法中不要做耗時的任務,也不做過多的循環操作,特別是嵌套循環,雖然每次循環耗時很小,但是大量的循環勢必霸占CPU的時間片,從而造成View的繪制過程不流暢。另一方面,除了循環之外,onDraw()中不要創建新的局部對象,因為onDraw()方法一般都會頻繁大量調用,就意味著會產生大量的零時對象,不進占用過的內存,而且會導致系統更加頻繁的GC,大大降低程序的執行速度和效率。
(3)內存優化
內存泄漏指的是那些程序不再使用的對象無法被GC識別,這樣就導致這個對象一直留在內存當中,占用了沒來就不多的內存空間。因為有內存泄漏,所以內存被占用越來越多,那么GC會更容易被觸發,GC會越來越頻發,但是當GC的時候所有的線程都是暫停狀態的,需要處理的對象數量越多耗時越長,所以這也會造成卡頓。那么我們就可以針對集合類泄漏、單例/靜態變量造成的內存泄漏 、匿名內部類/非靜態內部類、以及資源未關閉造成的內存泄漏做出相應得策略。
以上就是Android進階學習有哪些知識點,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。