I'd like to know if there are some ways to reduce the APK file size and optimize the mobile games in general.
About reducing APK size, you currently need to compile the engine yourself. This is because Godot comes as a single binary, there is no way to split it otherwise.
Once you get familiar building the engine, you can start doing a custom build which removes modules and features you don't want: http://docs.godotengine.org/en/3.1/development/compiling/optimizing_for_size.html
Do I need to compile the engine itself or the export templates, or even both? There isn't a precompiled one?
An export template is the engine. The difference is, it's compiled with a special option. Please read the doc, it should be explained.
I mean the best advice I can give is to reduce the quality of some of your audio files if they are taking up alot of space, and to try to prevent overdraw when ever possible. Also if your game is 3d make sure you use a LOD system to increase performance.
Also, read this: https://docs.godotengine.org/en/3.1/tutorials/3d/3d_performance_and_limitations.html