Android Studio versione 2.3
Puoi creare un servizio senza un'attività principale seguendo alcuni semplici passaggi. Potrai installare questa app tramite Android Studio ed eseguirne il debug come una normale app.
Innanzitutto, crea un progetto in Android Studio senza un'attività. Quindi crea la tua classe Service e aggiungi il servizio al tuo 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>
Ora, nel menu a discesa accanto al pulsante "Esegui" (freccia verde), vai su "modifica configurazioni" e all'interno delle "Opzioni di avvio" scegli "Niente". Ciò ti consentirà di installare il tuo servizio senza che Android Studio si lamenti di non avere un'attività principale.
Una volta installato, il servizio NON sarà in esecuzione ma sarai in grado di avviarlo con questo comando adb shell ...
am startservice -n com.whatever.myservice/.MyService
Posso controllare che funzioni con ...
ps | grep whatever
Non ho ancora provato, ma è probabile che anche Android Studio avvii automaticamente il servizio. Questo dovrebbe essere fatto in quel menu "Modifica configurazioni".