It currently compiles to jasmin asembly and utilize jasmin + apache bcel + javapp to done the job.
My research soonly showed that jasmin is no longer developed since 2015. Apache bcel is still maintained but the version used by FPC JVM is very old. Javapp is a broken software for me, I have never able to make it to work.
I don't know if the same stack is used on Android development but I saw the Android efforts are pretty much active.
My proposal is abandon jasmin and switch to asm instead:
https://asm.ow2.io/asm is currently active developed and being used for many projects, the most notable is Groovy.
Also have a look at oberonc:
https://github.com/lboasso/oberoncThe guy done everything entirely himself, without relying on any third party library like asm. I know oberon is different in nature with object pascal which is more complicated but it worths to have a look at his work.
Another interesting project is gpcp - the component pascal compiler for .net and java:
https://github.com/k-john-gough/gpcpUnfortunately, the software is currently in maintainence mode. But it's the best Pascal family language compiler targets JVM. It relies on asm to done the job. But the most notable thing we could learn from it is the j2cps utility - creating binding for Java library to use with component pascal. You could download the JVM distribution and go to symfiles, check the html documents here, you could start with index.html and you could see they provides complete Java runtime library binding. New binding for other java library could be created easily with j2cps.
I have never able to make our javapp to work. May be we could learn something from this project. As we already admitted on the Wiki, javapp's source code is ugly. So I think a complete rewrite might be feasible, isn't it?
Our current FPC JVM runtime library is too bare metal and having many problems interfacing with Java code. I suggest to break compatibily with the object pascal dialect used by other other frontend (objfpc) completely and create a separate dialect to deal with the JVM and Java interop exclusively.
Final words: it's all depends on the people who actually done the job and all of my proposals are just... proposals. But I'm realy interested on the FPC JVM backend and I hope you - the developer, would have a look at this thread. Thanks.