重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

Android应用程序启动过程——Launcher源码分析-创新互联

当我们在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源码分析

到此就对应用程序的启动过程分析结束了,欢迎各位网友的指正和建议,以其共同进步。

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


文章标题:Android应用程序启动过程——Launcher源码分析-创新互联
文章位置:http://cqcxhl.com/article/espsh.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP