ccgt is now working on the android platform. You should be able to install it if your phone is not too old, minimum sdk version for the app is 23, target sdk version 29. In the beginning there was just the console. The code was just there and worked straightforward in c using ncurses. Still the ui simply uses characters, but now in a different world where threads rule. In the sinewave clock project below, the problem of manipulating the ui while in another thread was solved. Here, a handler posts the display update Thread as a Runnable twice a second.
ccgt-0.6.tar.xz
ccgt-0.6.apk
Up to here, the code is about as easy to follow as Bjoern Roche stated. It is usable, but has some flaws in it which makes performance poor for certain conditions. So the next goal will be optimization.

Guys, it's not just the fft ... you get a screenshot of the audio and some frequencies out of it. But in the end it's just a sequence of numbers ... telling you not too much about what's happening in front of your mic. The code already uses windowing and a lowpass filter on the input, and an additional moving average on the output. But still the display is somewhat chatty and not always on the correct fundamental. Further investigation is needed into how frequency peaks are to be found.