Depends on whether your application is a derivative work of the modified module.
If for example you create an application using the BSD libedit library, using the char *readline(const char*)
interface and later someone links your application to libreadline, the linked application is not a derivative work of the module and the linked binary can freely be redistributed, even though the first and most common implementation of char *readline(const char*)
is in the GPL licensed libreadline.
However, note that GPL might still put restrictions on the redistribution of the dependency. So for example someone redistributing the linked application along with libreadline, the mere act of distributing libreadline, a freely redistributable component, is something that can only be done if complying with the GPL. So even though the linked binary is not a derivative work, it can be a copyright crime to distribute along with libreadline. However, distributing libreadline and the linked binary separately is permitted.
Free software foundation, the creator of the GPL license, would like everyone to interpret it in such a manner that mere linking creates a derivative work. This is not necessarily the case. A counterargument could be the availability of a compatible interface in a non-GPL component. So you could ensure the validity of the counterargument by creating your own module with a compatible interface -- but that's a lot of effort and why would you use the GPL version of the module if you have rewritten it?
Almost everyone agrees that for running in separate address space and communicating with pipes is not derivative work. However, if the data structures communicated over said pipes contain specific internal details of the program, someone could successfully argue that too intimate communication could make even a program that communicates over pipes a derivative work.
Also, in practice if you are distributing an Android app, you are distributing the dependency module at the same time, so you have little options than to comply with GPL even if you don't like the strictest interpretations of it.
It is too worth mentioning that inline functions can somewhat complicate the situation in C language programs -- in such a case, including a header could make the linked binary a derivative work even though the source code is not a derivative work.
The Linux kernel authors have devised their own way of marking some functions GPL functions, so that all modules using them should be categorized as under GPL. However, a court is not bound by such an interpretation. Yet, it may be wisest to be cautious and not willfully create a component that provides access to GPL-only functions using an interface that is claimed to be not under GPL.