# 去除启动页

每次打开 APP 都要在启动页停留 2 秒,很烦人,既然如此我们把它去掉吧。

学过 Android 开发的都知道,APP 的每个界面都是一个 Activity,然后你点击桌面上的图标之后,其实是启动了这个 APP 的入口 Activity。现在我们这个 APP 的入口 Activity 就是启动页,启动页打开 2 秒后,它就会自动关掉,然后跳转到主界面。

既然我们知道了这个流程,那么要修改它就很容易,我们只要让主界面成为 APP 的入口 Activity,就可以跳过启动页了。

# 定位主界面

我们的第一步是确定主界面的 Activity 名称是什么,打开 MT 侧拉栏工具中的 Activity 记录,根据提示启动服务,启动成功再打开 MTestApp:

alt

从上图中可以看到,我们启动 APP 后,它是先跳转到 WelcomeActivity,然后再跳转到 MainActivity,所以 MainActivity 就是我们要找的主界面。

# 修改入口

Activity 的配置保存在 apk 中的 AndroidManifest.xml 文件内,使用 MT 反编译这个文件。

alt

查找入口 Activity 我们只需要搜索 android.intent.action.MAIN 或者 android.intent.category.LAUNCHER 就能快速定位:



 








<activity
    android:theme="@style/AppTheme.Welcome"
    android:name="cn.mt2.mtestapp.WelcomeActivity"
    android:exported="true"
    android:launchMode="singleTop">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

可以看到当前入口 Activity 是 WelcomeActivity,其中 intent-filter 包裹着的那 4 行代码的作用就是让这个 Activity 成为入口并显示在桌面上,所以我们把它去掉。

<activity
        android:theme="@style/AppTheme.Welcome"
        android:name="cn.mt2.mtestapp.WelcomeActivity"
        android:exported="true"
        android:launchMode="singleTop">
</activity>

然后我们要让 MainActivity 成为入口。

<activity android:name="cn.mt2.mtestapp.MainActivity" />

给它加上刚刚那段 intent-filter 和 android:exported="true" 属性,添加 intent-filter 前需要将 <activity .../> 改为 <activity ...> </activity>

<activity 
    android:name="cn.mt2.mtestapp.MainActivity"
    android:exported="true">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

最终修改结果:

alt

修改完成后保存并安装 apk,如果你的修改步骤没错,再次打开 APP 时你会直接进入主界面,不再显示启动页。