亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

资源县| 化德县| 黄山市| 新竹市| 永安市| 江陵县| 高淳县| 金寨县| 高州市| 宁化县| 漳浦县| 军事| 长治县| 房山区| 新河县| 辉县市| 泗水县| 天柱县| 沾益县| 卢氏县| 环江| 红桥区| 皋兰县| 兴隆县| 泰和县| 苗栗市| 陆河县| 垣曲县| 临海市| 纳雍县| 双牌县| 巫溪县| 合江县| 咸宁市| 博野县| 久治县| 茶陵县| 镇平县| 密云县| 翁源县| 闽清县|