Comunicación vía GPRS entre Arduino y Android

Hola, quisiera tener algunos alcances o artículos acerca de la comunicación bidireccional (envió y recepción de datos) entre Arduino y Android usando el modulo GPRS.
Quiero realizar un proceso de control a distancias largas mediante una aplicación android.

Y si fueran tan amables, indicarme si existe una mejor opción que usar el modulo GPRS (necesito tener alcances de 1Km Aproximado)
Gracias.