What is the best method for hosting a server that contains a database?
С точки зрения сервера, связывающегося с базой данных, обычно нет разницы, является ли это Android или любой другой клиент.Важно то, что вы хорошо определяете протокол связи между сервером и клиентом (в вашем случае Android).Лучшим, вероятно, будет какой-то протокол на основе http (может быть REST).
does it matter what type of database I use?
Для клиента это не имеет значения.Android будет просто еще одним клиентом.Так что это не имеет значения для вас.Выберите тот, который легче всего начать и хорошо принят.MySql, Postgres - хорошие кандидаты.
Can I use the android SQLite APIs for getting data from the database.
Нет
I read in multiple places that it is not kosher to connect to a database from anything over the internet directly
Вы, конечно, не хотите этого делать.Что еще более важно, когда вы проектируете свой сервер, вы можете отделить код, который обращается к базе данных, от кода, который обращается к вашему клиенту.Это было бы основой сервис-ориентированной архитектуры.