I’m optimizing my game with Adreno Profiler and it flags Heavy API calls on some drawcalls.
The heavy call Adreno Complains is glBufferData(…, GL_DYNAMIC_DRAW).

I’d like to know why is Unity marking them as dynamic since the mesh is marked as static in editor. (The only thing that’s not static is Navigation)

Any Ideas?
I think that is related to the “Read/Write Enabled” check box on the import screen for the mesh. That lets you modify it from script and Unity will use the GL_DYNAMIC_DRAW usage hint since it knows you want to modify the data.
Although I wouldn’t expect it to be uploading it each frame unless you are actually making changes each frame. Try unchecking that box and I would hope Unity will then load the mesh data once with GL_STATIC_DRAW and leave it alone.