Although the underlying language is Java it is a completely different mindset. The focus is on size and then performance. Given the tiny heap size this makes sense, but it requires a different mindset. Regular OO techniques that you would use are thrown out the window to save time or space. People leave out setter and getter methods and make members protected or public so that they can access them directly for both better performance and code size. You have to really think twice before introducing another class or interface, every extra class takes up space. Even the underlying API's are written like that. It is OO in name only.

I have always been a big OO guy, I hope that I can adjust to the mindset.

Hopefully Moore's law will work it's wonders here as well, already I am seeing devices with a 2MB heap which is a huge step up.