Ответ 1
Вот как это сделать.
1. Определите новый тип сборки в build.gradle:
buildTypes {
extraActivity {
signingConfig signingConfigs.debug
debuggable true
}
}
В моем я дал ему конфигурацию подписи отладки и установил ее для отладки; настройте по своему усмотрению.
2. Нажмите Проект синхронизации с помощью кнопки Gradle Файлы.
3. Выберите новый тип сборки из окна Build Variants.
4. Настройте исходные каталоги для нового типа сборки
В моем примере мои файлы находятся в пакете com.example.myapplication3.app
Java.
src/extraActivity/java/com/example/myapplication3/app
src/extraActivity/res
5. Создайте новое действие в папках для вашего типа сборки
Имейте в виду, что если вы щелкните правой кнопкой мыши на пакете и выберите Новый > Активность, там будет ошибка, и он не поместит файлы для активности в ваш новый build type, но вместо этого они будут помещены в src/main. Если вы это сделаете, вам нужно будет перенести файлы в нужную папку вручную.
6. Создайте файл AndroidManifest.xml в src/extraActivity
Этот манифест получает merged с версией в src/main, поэтому добавьте только те биты, которые вам нужно наложить поверх оригинала:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myapplication3.app" >
<application>
<activity
android:name=".ExtraActivity"
android:label="Extra Activity" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
В моем примере я настроил свою новую деятельность как активность запуска, чтобы увидеть ее на экране "Приложения" и подтвердить ее работу; вам может не понадобиться это делать. Поскольку я передаю свое приложение двум значкам запуска, мне также нужно следовать советам двух действий по запуску и добавить это к моей основной активности intent-filter
(в SRC/Основной/AndroidManifest.xml); вам может и не понадобиться:
<category android:name="android.intent.category.DEFAULT"/>
Вот скриншот моего макета проекта после всего этого:
Это работает для меня. Я могу переключать типы сборки взад и вперед с помощью окна Build Variants (вы можете увидеть вкладку для него в левой части скриншота выше); построение варианта debug дает мне только одно действие, а построение варианта extraActivity дает мне два.