The Socket solution sounds complicated enough, in that I'm not sure if you are refering to unix domain socket, or the tcp internet socket. unix socket vs tcp. Plus you have to figure out a way as how you define the communication protocol for that socket so that the Pi can distinguish the actual signal from random spam/bombardment.
An alternative + Quick&Dirty solution would be
- write your android app normally, with official sdk and so on. send the signal over internet wrapped by a simple HTTP get method
- setup a lightweight and dead-simple http daemon on Pi, with a cgi socket binding. You can write your socket program the same way you have planned.
Of course. if your environment is strictly controlled. you can just use unix domain socket to solve the problem.