BorderFol, через теорему косинусов:
находим длины 2 векторов(a=|v1|, b=|v2|), находим длину вектора-разности этих векторов(c=|v1-v2|);
есть формула: c^2=a^2+b^2-2ab*cos(A)(теорема косинусов);
выражаем cos(A)=(a*a+(b+c)*(b-c))/(2*a*b) - это конечная оптимизованная формула;
находим угол по арккосинусу angle = Math.acos(cos(A));
Всё
п.с. У кого нет на мобиле в классе Math метода acos, зырьте
код