Android ActivityIdle調(diào)用棧

通知系統(tǒng)進(jìn)行內(nèi)存清理
IDLE_NOW_MSG
AMS::forceStopPackageLocked
    // native kill 
    ActivityStackSupervisor::scheduleIdleLocked

IDLE_TIMEOUT_MSG
completeResumeLocked
    scheduleIdleTimeoutLocked
activityIdle調(diào)用棧
activityIdleInternalLocked
    AMS::scheduleAppGcsLocked // 1. ActivityIdle 2. 串行廣播處理完成
        mProcessesToGc// ProcessRecord
        Message// GC_BACKGROUND_PROCESSES_MSG
        performAppGcsIfAppropriateLocked
            if canGcNow
                performAppGcsLocked
                    performAppGcLocked // 
                        AppThread::scheduleLowMemory
            else
                scheduleAppGcsLocked   // Still not idle, wait some more.
    stops // ArrayList<ActivityRecord>
    if r.finishing
        finishCurrentActivityLocked
    else
        stopActivityLocked
    mFinishingActivities // ActivityRecord
    destroyActivityLocked
instrumentationClass 清理調(diào)用棧
AppDeathRecipient::binderDied
    appDiedLocked // 限制引用被kill后,重新啟動(dòng)allowRestart
        handleAppDiedLocked // 如果引用在黑名單,則setPackageStoppedState 
            cleanUpApplicationRecordLocked
                // 正在啟動(dòng)的provider需要重啟
            finishInstrumentationLocked
                    app.instrumentationClass = null
        willStart // restart
            addAppLocked

trimApplications 觸發(fā)時(shí)機(jī)

activityStopped
finishReceiver
    trimApplications
        mRemovedProcesses// empty process
        // crash 的進(jìn)程
        // 5秒內(nèi)沒有響應(yīng)并被用戶選在強(qiáng)制關(guān)閉的進(jìn)程
        //應(yīng)用開發(fā)這調(diào)用 killBackgroundProcess 想要?dú)⑺赖倪M(jìn)程
        if pid > 0
            app.kill
        else
            AppThread::onTerminate
            Looper.quit
            
        cleanUpApplicationRecordLocked
        addAppLocked // persistent

各種關(guān)閉當(dāng)前Activity引起的內(nèi)存回收

各種關(guān)閉當(dāng)前Activity引起的內(nèi)存回收
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容