Why Android application/framework communicates with the underlying hardware through Java APIs not by system calls?