In this post i would like to share some information on Android Development Infrastructure. It includes recommended Hardware, Software, Network and external Services are being used by Android developers world wide. This consolidated list of infra details would helps Android Native developers to save their valuable time.
Please note, the infra requirements have been given by keeping one key point in my mind that is the smooth working of Android Studio IDE and emulators on the developer computer. From each version to version Google and JetBrains add more features to improve the performance and productivity.
When i write this post Android Studio 3.4.1 has been released.
Hardware plays the most important role in software development. Running Android Studio IDE alone is an expensive task for host computer machine. But during the development we need to open emulator, browser (with multiple tabs) and other software tools.
- Desktop is recommended
- Intel processor min i5 or above (recommended)
- RAM 16GB DDR4 or above
- SSD storage. Minimum capacity 256GB.
- LED display of Minimum 23 inch
- Wi-Fi enabled modem
- Real mobile device is recommended for testing.
You may find a difference from the Official Android development hardware recommendation list but i would say the resource utilisation by Studio itself may vary depending on the build process i.e, a project with long list of dependencies take more time to build that usually affects other software also.
I would recommend desktop machines over laptop. Laptop indeed enables mobility and increases productivity but here i give high priority to factors like cost and scaling.
- 64-bit version of Linux OS is recommeded. Or Windows 64-bit with hypervisor enabled.
- Android Studio Latest Stable version.
- SQLite browser software (optional)
- Version Control System. Git is recommended.
- Genymotion ARM-64 bit emulators (optional)
- Prototype tools like Adobe XD (optional)
- Adobe illustrator, photoshop
- 2Mbps internet connection.
- Open network or closed network with Maven, Bintray + all external repo urls to be excluded from firewall.
- Json parser
- Jave to Kotlin convertor
- Image compressor
- CC0 asset collections (animations, graphics, audio, video etc)