91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

涞水县| 自贡市| 贡山| 济阳县| 郯城县| 怀集县| 柘城县| 龙南县| 福州市| 陇南市| 基隆市| 天全县| 油尖旺区| 左贡县| 包头市| 宁化县| 从化市| 太原市| 盘山县| 中宁县| 通榆县| 蓬安县| 资阳市| 成都市| 玉溪市| 祁东县| 横峰县| 延吉市| 新绛县| 双城市| 基隆市| 商南县| 北流市| 肇庆市| 盖州市| 岑巩县| 株洲县| 巴林右旗| 江都市| 天气| 桓台县|