Whether as a mean of utilitarism or pure visual amusement, for a long time live wallpapers felt for me like a niche, stigmatized as battery-draining, or just a triviality that is obscured by the fact that there’s no one I know personally who uses them.
Only recently, stumbling upon this pure diamond I found on Github:
HOMM 3 themed live wallpaper by Ilya Pomaskin. I recommend building from included gradle files, as it worked fine for me.
…and refreshing my memories of playing H3:WOG for hours I asked myself a few questions, including:
- How exactly do you develop one?
- What did people already accomplish, in the means of creativity on this field?
Well, the first answer can be handed right away.
It boils down to creating an application that:
- Runs always, even when in background – achieved by creating a Service
- Does not create a window on its own, draws on existing surface supplied by the system – achieved by creating a Service, that extends specifically WallpaperService.
Only thing you need to do is to provide implementation for a few methods (i.e run, onTouchEvent, onVisibilityChanged) of Android SDK’s abstract classes WallpaperService and WallpaperService.Engine, and update your manifest file.
This can be done in any tool of your choice, as whether you’re developing in Unity, LibGDX or Android Studio, when deploying to Android you can always override default manifest file and provide additional java files.
Actually, it is that simple that I created a repository where I placed template files for live wallpapers using mentioned technologies:
You can clone it and create your live wallpaper right away.
I covered creating those templates in a series of three separate blog posts:
- Unity: https://dbeef.lol/2019/09/29/creating-live-wallpaper-in-unity/
- Android Studio: https://dbeef.lol/2019/09/29/creating-live-wallpaper-in-android-studio/
- LibGDX: https://dbeef.lol/2019/09/29/creating-live-wallpaper-in-libgdx/
Once you install such application, it will be visible on your device’s wallpaper browser.
Coming into my second question – If it’s easily accessible, then there must be tons of live wallpapers, for which creativity didn’t simply end on:
Let’s take an image, split it into layers, and add the parallax efect!
And it is correct. There’s a wallpaper that takes a GLSL shader on input and uses it as an output. Another one is an iteration of classic 1970 John Conway’s Game of life. The one after draws Conky-like utility information (RAM, CPU, network usage), yet another opens random Wikipedia article (I would fancy one, that would open CPP-reference, though).
ShaderEditor – Allows to input GLSL shader and use it as live wallpaper. https://github.com/markusfisch/ShaderEditor
DVDLiveWallpaper – Just what you see.
Seemingly, making one’s wallpaper is part of self-expression, like wearing that blue shirt with name of a band you like, or customization, that people tend to make when buying smartphone cases.
Be careful, there’s a space battle going on!
I offer no conclusion other, than it is a satisfying weekend project to do, when your current project extends to many months and pulls you down.