And can you tell us a bit more about the choice of Java to create apps? Wasn't it frustrating for all the C++ coders in your team to use such a "slow" language for apps?
As for Java, it worked well enough for Hiptop at Danger on a 24MHz ARM7TDMI platform. We felt we could use a similar approach (use Java more for "business logic" and do the heavy lifting in native libraries and services) to get sufficient performance on the 200MHz+ ARM9 platforms we were looking at, and take advantage of having a real MMU for process protection and eventually supporting native code (the latter, more contentious).
Someone still hasn't built an equivalent to LuaJIT. Quickjs is in the same spirit but still interpreted, the way LuaJIT does C FFI is just pure awesome[1].