GPS is probably the single biggest battery killer; however, our apps don't run the GPS very much aside from "warming up" GPS when logging in, and then attempting a lock during form entry. The lock during form entry is to provide the default "Completed At" metadata that is gathered with each entry. You can turn off this function off if you like: see the Settings page of your Form screen. There you will find the "Log User Location" field that you can unselect and save changes to turn it off for that Form. Note that turning off the "Log User Location" does not prevent you from having Location type fields in your Form; these only run when the user taps on the "Capture GPS" button in their form entry. So, this approach could be more efficient if you have many form entries with few/no Location fields being captured each day.
Aside from GPS, the time that the device screen is powered on affects battery. Unfortunately, if the device is in constant use, the screen is on for a lot of that time and thus will consume battery. You could try setting brightness settings lower to reduce backlight power use, but this may not be feasible if the screen is not easily viewable as a result.
Finally, the mobile device processor and its data networking chips also consume power. If you have many images being captured during the day, this can affect battery life, too. This is because those images must all be processed by the app (cropped, resized etc.) and then uploaded in the background. So, if you have many images this will mean the processor and network chips are running a lot; again, not much can be done about this if your scenario requires this.
Newer devices are getting more power efficient all the time, so using devices that have newer SoC (system on chip) hardware is also worth exploring, if feasible.