【源码剖析】Launcher 8.0 源码 (2) --- Launcher 启动流程 第一步(1)之LauncherAppState 对象创建简述

这篇博客深入探讨了Android Launcher 8.0的启动流程第一步,主要聚焦于如何通过`LauncherAppState.getInstance()`创建对象并获取硬件参数。文中详细分析了`LauncherAppState`的构造过程,特别是`InvariantDeviceProfile`类在获取硬件配置信息中的作用,以及与之相关的`device_profiles.xml`配置文件如何定义不同设备的布局参数。
摘要由CSDN通过智能技术生成

从综述将启动流程拆分成7步,其中第一步,重点是通过手机的硬件来获取信息。

关于第一步在oncreate中的源码如下:

@Override
protected void onCreate(Bundle savedInstanceState) {

if (mLauncherCallbacks != null) {
    mLauncherCallbacks.preOnCreate();
}
super.onCreate(savedInstanceState);
LauncherAppState app = LauncherAppState.getInstance(this);

 

从源码看,重点就做了一件事情,创建LauncherAppState 对象。

这是因为在Launcher的启动流程中,手机硬件参数获取不是在Launcher.java这个类中完成。

 

LauncherAppState.getInstance(this) 这段代码是初始化一个LauncherAppState的对象app,其初始化方法是通过一个静态方法getInstance来创建,创建的时候需要传入Launcher对象作为参数,那么说明在LauncherAppState中会用到Launcher的对象,下面详细看getInstance方法。

  源码如下:

public static LauncherAppState getInstance(final Context context) {
    if (INSTANCE == null) {
        if (Looper.myLooper() == Looper.getMainLooper()) {
            INSTANCE = new LauncherAppState(context.getApplicationContext());
        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值