Aplicações modernas necessitam ser mais que uma simples sequência de processos, não pode mais apenas executar uma série de ações enfileiradas como se fossem um script, precisam ser multi-tarefas, precisam executar várias ações simultaneamente. Veja nesse artigo como usar o recurso de threads na linguagem Java para criar aplicações dinâmicas.
Direto ao ponto: Como chamar uma biblioteca nativa do sistema (.so/.dll) direto pelo Java usando JNA. Veja nesse artigo simples e objetivo uma forma de usar bibliotecas nativas dos sistema operacional através do Java, sem historinha e blá blá... mas se quiser, veja através do exemplo como compilar em C uma biblioteca no Linux.
Os smartphones dominam o mercado de dispositivos móveis atualmente, afinal de contas ninguém mais quer um aparelho celular comum para jogar snake e mandar SMS. Pensando nessa evolução, a Canonical decidiu radicalizar e criar um aparelho que seja smartphone e computador ao mesmo tempo, tudo isso com um hardware comparável ao PC...