原创 Andorid N 最近任務管理器流程詳解(四)

4. Task的移除 本章節主要講講Task移除的流程 4.1 removeTask 文件:SystemServicesProxy.java public void removeTask(final int taskId) {

原创 Andorid N 最近任務管理器流程詳解(五)

5、其他 這章節主要會講mRecentTasks賦值的地方,截圖的時機,一些重點方法等 5.1 mRecentTasks賦值 分別會在startActivity的過程中和重新resume時對mRecentTasks賦值,另外Activit

原创 最近任務欄清除app導致app不執行onDestory

問題 步驟:在計算器面板上出入數字,然後按Menu鍵進入最近任務界面,右滑清楚計算器,接着再進入計算器 期望結果:再次進入計算器,上面顯示的內容和之前的一致 實際結果:沒有保存 初步分析 開發計算器的工程師A說保存的代碼寫在了onD

原创 Android studio啓動DDMS失敗

今天我用AS啓動DDMS失敗了,失敗的信息是: A Java Runtime Environment (JRE) or Java Development Kit (JDK) must be available in order to ru

原创 Android 廣播內部機制詳解(二)

3. 廣播的發送 廣播的發送,其實也是交給AMS來完成的,首先調用context.sendBroadcast將廣播發給AMS的相應函數,AMS再和之前註冊的Receiver進行匹配,匹配成功後,就發送給對應的進程。好了,接下來我們通過源碼

原创 ActivityManagerService源碼分析(一)

前言: AMS是Android系統服務中很重要的一個,他負責四大組件的啓動、切換、調度、生命週期的管理等等,接下來我們根據AMS的啓動來分析AMS的源碼 1. SystemServer啓動AMS ActivityManagerServi

原创 Android自定義View

前言 Android給我們提供了大量的View,但是我們有時候發現很多APP的有一些Android本來沒有的View,顯然他們都是自定義的。自定義View可以實現很多絢麗的效果,但是如果你對View結構層次,事件的分發機制及View的工作

原创 設計模式---Builder模式

前言: 網絡上有人將它定義爲:將一個複雜對象的構建與它的表示分離,使得同樣的構建過程可以創建不同的對象。 所以建造者模式適合於一個具有較多的零件(屬性)的產品(對象)的創建過程。 構成 由五個部分構成: 1. Product:Co

原创 Andorid N 最近任務管理器流程詳解(三)

3. 縮略圖的獲取 本章節主要講一下縮略圖的獲取 3.1 獲取或者更新縮略圖 文件:RecentsTaskLoader.java Bitmap getAndUpdateThumbnail(Task.TaskKey taskKey,

原创 Handler延時處理消息的流程

前言 昨天碰到一個關於handler的問題,當我使用sendEmptyMessageDelayed這個方法,在手機熄屏的情況下並沒有按時發送消息,而且中間的時間還不固定,有時候短,有時候長,但是在亮屏和充電情況下,沒有該問題。 難道ha

原创 判斷用戶模式

前言 因爲android有多用戶模式,即機主或訪客,不同的模式所能獲得權限也不同。所以我們有時需要判斷當前的模式。 方法 一般在應用層,我們可以這樣來判斷: 如果是在PhoneWindowManager.java中,就不能用上面的方法