中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android應用程序啟動過程——Launcher源碼分析

發布時間:2020-06-10 00:02:53 來源:網絡 閱讀:1407 作者:kinbos 欄目:移動開發

當我們在Launcher界面單擊一個應用程序圖標時就會啟動一個程序,那這一個過程究竟發生了些哪樣呢?讓我們跟蹤Launcher源碼來分析一下吧。

先上流程圖:

Android應用程序啟動過程——Launcher源碼分析

step1、追蹤Launcher  從源碼中我們可以發現Launcher其實也是一個程序,它繼承于Activity。找到該文件中的onCreate()方法,代碼片段如下:


protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        LauncherApplication app = ((LauncherApplication)getApplication());
        mModel = app.setLauncher(this);
        mIconCache = app.getIconCache();
        mDragController = new DragController(this);
        mInflater = getLayoutInflater();

        mAppWidgetManager = AppWidgetManager.getInstance(this);
        mAppWidgetHost = new LauncherAppWidgetHost(this, APPWIDGET_HOST_ID);
        mAppWidgetHost.startListening();

        if (PROFILE_STARTUP) {
            android.os.Debug.startMethodTracing("/sdcard/launcher");
        }

        loadHotseats();
        checkForLocaleChange();
        setWallpaperDimension();

        setContentView(R.layout.launcher);
        setupViews();

        registerContentObservers();

        lockAllApps();

        mSavedState = savedInstanceState;
        restoreState(mSavedState);

        if (PROFILE_STARTUP) {
            android.os.Debug.stopMethodTracing();
        }

        if (!mRestoring) {
            mModel.startLoader(this, true);
        }

找到關鍵部分,也就是上面被標注紅色代碼。mModel是LauncherModel類型對象,接下來我們跟蹤LauncerModel.java文件。



step2、  `LauncherModel是一個BroadcastReceiver,在這里我們先進入startLoader(Context context, boolean isLaunching) 方法。

Android應用程序啟動過程——Launcher源碼分析

LoaderTask實現了Runnable接口,接著我們再找到該實現類的run()方法,代碼片段如下:

Android應用程序啟動過程——Launcher源碼分析

讀取系統中各應用主Activity的信息代碼片段如下:

Android應用程序啟動過程——Launcher源碼分析

step3、當我們單擊應用程序圖標時所執行的對應方法為Launcher.java里的onClick()方法,其代碼如下:

Android應用程序啟動過程——Launcher源碼分析Android應用程序啟動過程——Launcher源碼分析

到此就對應用程序的啟動過程分析結束了,歡迎各位網友的指正和建議,以其共同進步。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

达日县| 江永县| 长沙市| 通州区| 呼图壁县| 嘉定区| 集贤县| 阿拉善盟| 合作市| 天峨县| 霍林郭勒市| 钦州市| 平罗县| 三门峡市| 柳河县| 武隆县| 广灵县| 蓬安县| 石楼县| 常山县| 冷水江市| 泽普县| 涡阳县| 饶平县| 昌都县| 达拉特旗| 枞阳县| 丰原市| 科技| 和平县| 富蕴县| 陇南市| 雷州市| 沙坪坝区| 云阳县| 通州市| 罗甸县| 沧源| 红安县| 绥滨县| 罗江县|