Talk on Android Development at ESTG
Almost a week after the talk took place, I finally found some time to write a quick summary of the event and how it went.
Despite a slight delay at the beginning due to technical issues, the session kicked off with me presenting the different Android versions, their innovations, and sharing some tips on working with Git.
The parts I enjoyed the most were the sessions on OpenGL and ROM development. These covered things you don’t typically learn in school, and they sparked a real interest in me for ROM customization. That experience also pushed me to dive deeper into programming.

Game Dev
The game development segment was eye-opening. I got to learn more about graphic engines and the NDK (Native Development Kit). It made me realize that the small project I had done using RPG Maker VX for PAT was really just scratching the surface — there’s still so much to learn in this area.
One of the main takeaways was understanding that complex ideas don’t always make the best games. You can create very compelling experiences with simple concepts.
I also learned what goes into developing a game engine — from physics laws, code optimization, to collision prediction between game objects. Visually, building a game can be surprisingly straightforward, as long as you define:
- The game world
- The player-controlled object
- Collision zones
- A visual background
After that, you define the game’s narrative — quests, levels, characters, and so on. The real challenge is putting it all together into a working game.
ROM Development
Without a doubt, this was the topic that interested me the most. I’d been curious about building custom ROMs for a while, but always thought it was something only accessible to people with deep C knowledge or advanced coding skills.
In reality, there are now many tools that simplify the process. Still, it’s important to understand terms like boot.img
, root
, init.rc
, kernel
, etc., and what each component does.
One of the simplest ways to build a custom ROM is to start with an existing one and make minor changes — like adding or removing APKs from the /system
folder, creating your own theme, adjusting CPU clock speeds, changing the splash screen, and so on. Then you recompile it into a working ROM.
Sounds simple, right? In theory, yes — but in practice, you need to be careful not to mess with critical system settings, or you could end up with a bricked device.
The other way is building a ROM from source. This route requires much more advanced programming knowledge because it involves kernel development, working with drivers, and debugging a lot of initial issues. But the key is to not get discouraged.
Theme Development
Possibly the most accessible topic covered in the talk. I never imagined theme development in Android could be so simple. It was great to see the tools in action and how quickly you can make visual changes.
APN Portugal
There was also a short demo of the app in action, from a user perspective. Key aspects were explained, including how to identify which network your device is currently connected to.