# Profile Unity application performance on Android devices

## In this learning path

- [Introduction](https://learn.arm.com/learning-paths/mobile-graphics-and-gaming/profiling-unity-apps-on-android/)
- [Analyzing the sample application](https://learn.arm.com/learning-paths/mobile-graphics-and-gaming/profiling-unity-apps-on-android/1-analyzing/)
- [Preparation](https://learn.arm.com/learning-paths/mobile-graphics-and-gaming/profiling-unity-apps-on-android/2-preparation/)
- [Inside the code](https://learn.arm.com/learning-paths/mobile-graphics-and-gaming/profiling-unity-apps-on-android/3-inside-the-code/)
- [Profiling](https://learn.arm.com/learning-paths/mobile-graphics-and-gaming/profiling-unity-apps-on-android/4-profiling/)
- [Collect performance data](https://learn.arm.com/learning-paths/mobile-graphics-and-gaming/profiling-unity-apps-on-android/5-collect/)
- [Using the Unity Analyzer](https://learn.arm.com/learning-paths/mobile-graphics-and-gaming/profiling-unity-apps-on-android/6-unity-analyzer/)
- [Next Steps](https://learn.arm.com/learning-paths/mobile-graphics-and-gaming/profiling-unity-apps-on-android/_next-steps/)

## About this Learning Path

|  |  |
| --- | --- |
| Skill level: | Introductory |
| Reading time: | 40 min |
| Last updated: | 24 Aug 2026 |

|  |  |
| --- | --- |
| Author: | Joshua Marshall-Law , Arm |
| Arm IP: | [Cortex-A](https://support.arm.com/?tab=compute-ip&Product%20Type=Application%20Processors) |
| Tags: | [Performance and Architecture](https://learn.arm.com/tag/performance-and-architecture) [Android](https://learn.arm.com/tag/android) [Unity](https://learn.arm.com/tag/unity) [csharp](https://learn.arm.com/tag/csharp) |

### Who is this for?
Unity developers wanting to analyze the performance of their apps on Android devices

### What will you learn?
After completing this Learning Path, you'll be able to perform the following tasks:
- Deploy to Android
- Profile code running on an Android device
- Analyze performance data

### Prerequisites
Before starting, you'll need the following prerequisites:
- Recent Android device, such as a mobile phone or tablet
- Desktop computer capable of running Unity
- Basic knowledge of Unity and programming concepts
- The setup described in the Learning Path [Get started with Unity on Android](https://learn.arm.com/learning-paths/mobile-graphics-and-gaming/get-started-with-unity-on-android)

### Summary
You’ll deploy a Unity collision sample to an Android device, collect performance data, and compare unoptimized and Arm Neon code. First, you’ll create a URP project, import and deploy the sample, and examine the `Plain`, `Burst`, and `Neon` modes. Then, you’ll use Unity Profiler to record and inspect frames. You’ll also use Profile Analyzer to load, select, and compare the `Plain` and `Neon` recordings.

### Frequently asked questions

**Do I need to create a new Unity project before importing the sample?**

Yes. In Unity Hub, select **New Project**, select the **3D (URP) Core** template, and create a blank project before you import the sample.

**Which tool should I use to examine results?**

Use the Profiler to collect data and inspect specific frames. To use Profile Analyzer, open the Profiler window, load the recording there, and select **Pull Data** to analyze or compare datasets.

**Which sample modes should I record for comparison?**

Record the unoptimized `Plain` mode and the optimized `Neon` mode. You can also inspect `Burst` mode to see how its auto-vectorized code differs.

**How do I compare the Plain and Neon recordings?**

Compare recordings from the unoptimized `Plain` mode and the optimized `Neon` mode. Use the Profiler and Profile Analyzer to examine differences in frame timing and function execution.

**What should I check if the Android device or app doesn't appear for profiling?**

Confirm the app builds and deploys to the Android device using the steps from the [Get started with Unity on Android](https://learn.arm.com/learning-paths/mobile-graphics-and-gaming/get-started-with-unity-on-android) Learning Path. After confirming, run the app on the device before recording. If no data appears, re-verify deployment and that the device is actively running the sample.
