Service Explorer

About

An Android app to list services.

All services and running services can be shown. They can be filtered to search for specific services. Detailed information about a service is available.

This app is particularly useful for debugging when creating an app that provides an exported service. This makes it easy to see if the service is properly exported. It also provides information such as the service name and package to help ensure an app using the service is properly connecting.

Open Source

As with many software things I create in my spare time I’ve made this project open source. It is licensed under the MIT license. The source can be found here.

In addition to the source code I’ve published it on the Play Store to make it easier to install. Even though this is primarily targeting developers it’s still nice to just install an app and not have to build and push it yourself.

Rational

I decided to make this app because of an issue I was having with a work project. The project is an Android app that provides a service. The service is meant to be used by other third party apps. I also wrote a demo (that we’re releasing on the play store and as source) to demonstrate using the service. Since this is an exported service that is supposed to have other apps use the connection happens with an implicit intent.

While developing I had everything working. Service starts and stops properly. The demo can connect to the service and everything was happy. Then I decided to reorganize the packages. I also split some of the functionality into .aar libraries.

After splitting everything up I couldn’t get the demo to connect to the service. I really didn’t know if the service was being exposed, the demo wasn’t creating the intent to bind the service properly or if something else was the issue. Hence creating an app that shows what services are available, and what services are running. You can see running services from the apps setting screen but it’s nice to have it as part of an app that shows information about services.

This app not only shows services it also shows as much information about them as I could reasonably get. For example the class and the package the service is in. This turned out to be the biggest benefit. After all the restructuring I had forgotten to change the package on my intent binding.