Android Studio version 2.3
Vous pouvez créer un service sans activité principale en suivant quelques étapes simples. Vous pourrez installer cette application via Android Studio et la déboguer comme une application normale.
Tout d'abord, créez un projet dans Android Studio sans activité. Créez ensuite votre classe Service et ajoutez le service à votre AndroidManifest.xml
<application android:allowBackup="true"
android:label="@string/app_name"
android:icon="@mipmap/ic_launcher"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<service android:name="com.whatever.myservice.MyService">
<intent-filter>
<action android:name="com.whatever.myservice.MyService" />
</intent-filter>
</service>
</application>
Maintenant, dans le menu déroulant à côté du bouton "Exécuter" (flèche verte), allez dans "Modifier les configurations" et dans les "Options de lancement" choisissez "Rien". Cela vous permettra d'installer votre service sans qu'Android Studio ne se plaint de ne pas avoir d'activité principale.
Une fois installé, le service ne fonctionnera PAS mais vous pourrez le démarrer avec cette commande adb shell ...
am startservice -n com.whatever.myservice/.MyService
Peut vérifier qu'il fonctionne avec ...
ps | grep whatever
Je n'ai pas encore essayé, mais vous pouvez probablement demander à Android Studio de démarrer automatiquement le service également. Cela serait fait dans le menu "Modifier les configurations".