Thanks for reaching out and welcome to the community!
RUM agent has no specific integration for mobile devices.
Let me add a few comments/questions for each of the cases you are enumerating, please bear in mind, I'm not an expert on mobile applications, so maybe I'm assuming things that are completely inadequate
metric like performance, device like application load time,
What do you mean exactly by this? Could you please elaborate more on this?
Out of the box, the agent gathers performance metrics ,you can see more info here and here
transition between screens
Do these transitions imply a change in the route? If so, we have a RUM integration for React which automatically creates transactions when a route changes (only if the transition triggers a network request such as XHR, fetch)
The core rum agent would also do that, but the React integration enhances it.
If not so, you will need to create your own custom transactions.
Could you give an example?
Generally, you can create custom transactions for everything that is not out of the box, an example would help to understand more.
Same here, you could create a transaction with this info.
As you can see, every piece of information you want to send to APM needs to be associated with a transaction. I understand that for specific cases this is not the most desirable (like battery status), the agent still doesn't support user-custom metrics, which would enable you to send the metric "in a standalone way"