Android Studio将某个Module作为Library被引用时,主APP安装后作为Library的Module在桌面上也有一个APP图标

Posted guangdeshishe

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android Studio将某个Module作为Library被引用时,主APP安装后作为Library的Module在桌面上也有一个APP图标相关的知识,希望对你有一定的参考价值。

android Studio将某个Module作为Library被引用时,主APP安装后作为Library的Module在桌面上也有一个APP图标,点开后就是那个Library的主界面,大概是这样:
在这里插入图片描述
这是因为作为Library的Module中AndroidManifest.xml里配置了默认启动的Activity,像这样:

//Library项目中
<activity
   android:name=".SettingsActivity"
    android:label="@string/app_name">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

所以桌面程序(Launcher)就将它识别成一个可以启动的APP,打开后就是该Activity界面,其实它只是个桌面快捷方式而已,并非将Library作为一个独立的APP,这点可以在系统的“设置”->“应用管理”那里可以证实(如果是作为独立app那么列表会出现两个app);

那么同一个Module里是否可以配置多个Activity作为快捷方式呢?
当然是可以的,比如这样:

<activity android:name=".MainActivity"
    android:launchMode="singleTask">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>
<activity android:name=".SecondActivity"
    android:label="SecondActivity"
    android:icon="@mipmap/ic_launcher_second"
    android:taskAffinity="com.example.myapplication1">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

在这里插入图片描述

不仅如此,还可以修改该快捷方式的名字(android:label)和图标(android:icon),默认是跟主Activity一致的,更多快捷方式相关设置可以自行查询相关资料

以上是关于Android Studio将某个Module作为Library被引用时,主APP安装后作为Library的Module在桌面上也有一个APP图标的主要内容,如果未能解决你的问题,请参考以下文章

Android Studio将Eclipse的项目作为module的依赖库

Android Studio 将工程作为第三方类库的步骤

android studio 中移除module和恢复module

Android Studio怎样删除module

Android Studio在多Module中依赖aar的配置问题

Android Studio 设置项目Module编码,解决Android Studio项目执行时乱码问题