Hola Narian,
Considero que la primera opción trae mayores beneficios, ahora te explico por qué:
Al comunicar la aplicación Android con scripts que dan como respuesta información codificada en JSON, separas la capa de acceso a datos, esto quiere decir que tu aplicación no sabe realmente de donde viene la fuente de los datos, sólo le importa recibir el JSON con cierta estructura así que, si en un futuro cambian los requerimientos y te piden que la información provenga de otras fuentes, puede ser otro motor de base de datos como SQL Server o inclusive que ahora los tomes de archivos XML, tu aplicación permanecerá igual solo tendrías que cambiar en el servidor los procesos responsables de generar la salida en JSON.
Aunque también es posible que tengas la capa de abstracción de acceso a los datos en tu aplicación Android, considero que implica más trabajo ya que necesitas implementar los nuevos cambios en el fuente y además actualizar cada uno de los dispositivos.
Saludos