I am building a home automation project. I have the hardware components working using python and nodejs. The remaining part is to control these components remotely from my android using an android application that I want to develop. But the thing is that I don't know how to start. I have done some research on this and seen people do it, but they did not describe how they got it working. Now my question is:

Do I have to install any thing into my raspberry pi for it to recognize my application's commands?
What are the APIs I need to import into the java code on the android development part for this to be possible?
What line of Code do I need to write for this communication to occur?
Please I will really appreciate any help from someone. Thanks.