Eu escrevi alguns textos explicando a mecânica da movimentação que eu conheço bem porque reinventei a roda.
O primeiro link foca mais na mecânica, o segundo foca mais em ambiente android studio:
https://rodrigoschio.github.io/tutoriais/modulos/5/index.htm
https://rodrigoschio.github.io/tutoriais/modulos/8/index.htm