1. 程式人生 > >Android應用程式啟動過程

Android應用程式啟動過程

// --runtime-init, --setuid=, --setgid=,
            // and --setgroups= must go first
            argsForZygote.add("--runtime-init");
            argsForZygote.add("--setuid=" + uid);
            argsForZygote.add("--setgid=" + gid);
            if ((debugFlags & Zygote.DEBUG_ENABLE_JNI_LOGGING) != 0) {
                argsForZygote.add("--enable-jni-logging");
            }
            if ((debugFlags & Zygote.DEBUG_ENABLE_SAFEMODE) != 0) {
                argsForZygote.add("--enable-safemode");
            }
            if ((debugFlags & Zygote.DEBUG_ENABLE_DEBUGGER) != 0) {
                argsForZygote.add("--enable-debugger");
            }
            if ((debugFlags & Zygote.DEBUG_ENABLE_CHECKJNI) != 0) {
                argsForZygote.add("--enable-checkjni");
            }
            if ((debugFlags & Zygote.DEBUG_ENABLE_ASSERT) != 0) {
                argsForZygote.add("--enable-assert");
            }
            if (mountExternal == Zygote.MOUNT_EXTERNAL_MULTIUSER) {
                argsForZygote.add("--mount-external-multiuser");
            } else if (mountExternal == Zygote.MOUNT_EXTERNAL_MULTIUSER_ALL) {
                argsForZygote.add("--mount-external-multiuser-all");
            }
            argsForZygote.add("--target-sdk-version=" + targetSdkVersion);

相關推薦

Android應用程式啟動過程原始碼分析(2)

Step 9. ActivityStack.startActivityUncheckedLocked         這個函式定義在frameworks/base/services/java/com/android/server/am/ActivityStack.java檔案中: view plain pu

Android應用程式啟動過程原始碼分析

        前文簡要介紹了Android應用程式的Activity的啟動過程。在Android系統中,應用程式是由Activity組成的,因此,應用程式的啟動過程實際上就是應用程式中的預設Activity的啟動過程,本文將詳細分析應用程式框架層的原始碼,瞭解Android

Android應用程式啟動過程

// --runtime-init, --setuid=, --setgid=,             // and --setgroups= must go first             argsForZygote.add("--runtime-init");             argsFor

Android應用程式啟動過程

Android應用程式啟動是一個比較複雜的過程,就著系統原始碼一步步走,明白啟動流程。 做過app開發的都知道,我們離不開activity,所有的頁面顯示都必須有一個activity承載著,那麼我們系統的桌面(Launcher)也是一樣的,請看下面大螢幕,我們

Android應用程式啟動詳解(二)從原始碼瞭解App的啟動過程

本文承接《Android應用程式啟動詳解(一)》繼續來學習應用程式的啟動的那些事。上文提到startActivity()方法啟動一個app後經過一翻過程就到了app的入口方法ActivityThread.main()。其實我們在之前的文章中《Android的訊息機制(二)之L

Android深入四大元件(一)應用程式啟動過程

前言 在此前的文章中,我講過了Android系統啟動流程和Android應用程序啟動過程,這一篇順理成章來學習Android 7.0的應用程式的啟動過程。分析應用程式的啟動過程其實就是分析根Activity的啟動過程。 1.Launcher請求A

SpringBoot 應用程式啟動過程

概述 說到接觸 SpringBoot 伊始,給我第一映像最深的是有兩個關鍵元素: 對照上面的典型程式碼,這個兩個元素分別是: @SpringBootApplication SpringApplication 以及 run() 方法

SpringBoot 應用程式啟動過程探祕

概述 說到接觸 SpringBoot 伊始,給我第一映像最深的是有兩個關鍵元素: 對照上面的典型程式碼,這個兩個元素分別是: @SpringBootApplication SpringApplication 以及 run() 方法 關於 @SpringBootAp

Android應用啟動過程分析和優化方案你瞭解多少

你有沒有發現,點選安卓手機桌面上的App圖示時,有時候應用馬上進入主介面,有時候要經歷好幾秒甚至更久的白屏(也可能是黑屏)時間才能進入主介面呢?這其實是安卓應用常見的冷熱啟動問題。本文就和大家一起聊聊冷熱啟動方式和啟動頁的體驗優化方案。 啟動方式 安卓應用的啟動方式分為三種:冷啟動

Android程式入口ActivityThread和Android應用程式啟動流程詳解

          大家初學java時候都知道java的程式入口是從main方法進入,那麼Android是基於java編寫的,那Android的程式入口做了哪些操作呢?還有Android的應用程式到底是怎樣啟動的呢?我們一起來看一下. 首先附上ActivityThread.

android應用程式啟動詳情之程序相關

        當某個應用元件啟動且該應用沒有執行其他任何元件時,Android 系統會使用單個執行執行緒為應用啟動新的 Linux 程序。 預設情況下,同一應用的所有元件在相同的程序和執行緒(稱為“主”執行緒)中執行。 如果某個應用元件啟動且該應用已存在程序(因為存在

android應用啟動過程分析與優化過程

http://yifeng.studio/2016/11/15/android-optimize-for-cold-start/?utm_source=tuicool&utm_medium=referral 你有沒有發現,點選安卓手機桌面上的App圖示時,有時候應用馬上進入主介面,有時候要經歷好幾秒甚

android應用程式啟動時短暫白屏或者黑屏的解決處理方案

         最近在研究使用app的過程中發現有的app首次啟動的時候會有短暫的白屏,而有些app則不會出現這樣的情況.起初我以為是手機的問題.但是當我換了幾個手機進行測試的時候仍然會出現這樣的狀況.當然出現白屏這樣的效果肯定是不會給使用者行雲流水般的感覺了,接下來我們

Android應用程式內部啟動Activity過程 startActivity 的原始碼分析

                        上文介紹了Android應用程式的啟動過程,即應用程式預設Activity的啟動過程,一般來說,這種預設Activity是在新的程序和任務中啟動的;本文將繼續分析在應用程式內部啟動非預設Activity的過程的原始碼,這種非預設Activity一般是在原來的程序

Android應用程式程序啟動過程(前篇)

前言 在此前我講過Android系統的啟動流程,系統啟動後,我們就比較關心應用程式是如何啟動的,這一篇我們來一起學習Android7.0 應用程式程序啟動過程,需要注意的是“應用程式程序啟動過程”,而不是應用程式啟動過程。關於應用程式啟動過程,我會在後

Android應用程式啟動過程

前言 在Android系統中,Activity和Service是應用程式的核心元件,它們以鬆藕合的方式組合在一起構成了一個完整的應用程式,這得益於應用程式框架層提供了一套完整的機制來協助應用程式啟動這些Activity和Service,以及提供Binder機制幫

Android應用程式程序啟動過程(後篇)

前言 在前篇中我們講到了Android應用程式程序啟動過程,這一篇我們來講遺留的知識點:在應用程式程序建立過程中會啟動Binder執行緒池以及在應用程式程序啟動後會建立訊息迴圈。 1.Binder執行緒池啟動過程 我們首先來看RuntimeInit

Android應用程式的Activity啟動過程簡要介紹和學習計劃

        在Android系統中,Activity和Service是應用程式的核心元件,它們以鬆藕合的方式組合在一起構成了一個完整的應用程式,這得益於應用程式框架層提供了一套完整的機制來協助應用程式啟動這些Activity和Service,以及提供Binder機制幫助它

[筆記]Android應用程式程序啟動過程的理解

疑問: 1.Process.fork是啥意思?類似new嗎? 2.接著1問,新APP程序和ActivityThread類是怎麼關聯起來的?是zygote程序呼叫執行的ActivityThread類的main方法,怎麼就執行在了新APP程序中? 3.UI主執行緒是啥時候建

Android應用程式管理服務啟動過程淺析(PackageManagerService)

       我們知道安卓應用程式的安裝最終都是通過應用程式管理服務PackageManagerService來管理安裝的,系統在啟動時就會啟動該服務,在之前的 Android應用程式安裝過程淺析文章中分析了應用程式的安裝的過程,當時只是使用該服務,並沒有講到該