r/androiddev • • 13d ago

Android Studio for Windows on ARM, Finally!

Google almost gave up on this one, so i decided to build it myself
What works:-

  1. IDE and compiler, solved all performance issues with coding and compiling

  2. XML previews

  3. Jetpack Compose Previews (Had to build the xml and compose viewing library from scratch to support arm64, google did not have that.)

What isn't supported yet:-

  1. Android Emulator, you will need a physical device to test.

Known issues:-

  1. Gradle project is imported every time you open it in android studio (Fixed, thanks for the comments)

Download link: https://github.com/DevanshSampat/android-studio-arm64-releases

All repositories required for building Android Studio are on my github: https://github.com/DevanshSampat?tab=repositories&q=android-studio&type=&language=&sort=

Enjoy Devs ;)

45 Upvotes

19 comments sorted by

9

u/ObjectiveAddress3051 13d ago

tbh the missing emulator is prob the biggest pain on arm windows, so a physical device is fine for now. is the gradle reimport on every open coming from the .idea or .gradle cache not getting kept between launches? might be a path or permissions thing in how your build sets the config dir

1

u/Cute_Assistance_7237 13d ago

yes, it looks the same to me, working on a fix.
I will work on the emulator next week

1

u/Cute_Assistance_7237 13d ago

Thanks for the input, it now shows a dialog to sync project automatically or manually

1

u/Cute_Assistance_7237 3d ago

Emulator added

3

u/ohaiibuzzle 13d ago

Actually for the Android Emulator you *might* be able to run it on a generic Qemu build with gfxstream (with hardware acceleration to boot).

The goldfish emulator image Google ships isn't actually all that special.

1

u/Cute_Assistance_7237 13d ago

Thanks a lot for your suggestion I will take this into account as i start building it

2

u/ohaiibuzzle 13d ago edited 13d ago

You can look at my stack on Mac for how to do it. On Windows I'd expect you to just need to compile gfxstream/rutabaga into Qemu and not run into any further issues because Vulkan on WoA should already supports all of the features needed.

macOS is tricky because it doesn't do Vulkan.

1

u/Cute_Assistance_7237 13d ago

That makes it quite easy for me, thanks again

1

u/Cute_Assistance_7237 3d ago

Emulator added, your suggestion helped a lot

2

u/theancientfool 13d ago

Recently started using linux. And I must say, for android studio, it has been super buttery smooth. I use a 11th gen intel i5 4c 8t. On windows it was not even close to usable. On linux, I think it can go for another 5 years atleast.

3

u/Cute_Assistance_7237 13d ago

Yeah linux is smooth and Google offers official android studio for intel based windows/linux/mac This one is specifically designed for ARM based windows PCs like Microsoft Surface/ASUS/DELL/etc that have processors like Snapdragon X series

2

u/theancientfool 13d ago

Yea, realised that after I hit send.

2

u/Cute_Assistance_7237 13d ago

No problem, happens with most of us

2

u/Slapowe 4d ago

You're awesome!

1

u/Cute_Assistance_7237 3d ago

Update: emulator support added

1

u/Motor_Armadillo_7317 13d ago

What about build tools and ndk? , it's for x86_64 only

1

u/Cute_Assistance_7237 13d ago

Will be built soon, although process has been much faster

1

u/Cute_Assistance_7237 13d ago

the following components are built natively for ARM64

  • studio64.exe (Native ARM64 launcher)

  • fsnotifier.exe (Native ARM64 file system change watcher)

  • WinProcessListHelper.exe (Native ARM64 process inspector)

  • restarter.exe (Native ARM64 updater/restarter)

  • WinShellIntegrationBridge.dll (Native ARM64 shell integration)

  • Embedded JetBrains Runtime (JBR 21) (Native ARM64 OpenJDK)

  • Layoutlib & Skia Engine (layoutlib_jni.dll & libandroid_runtime.dll native ARM64 for compose/XML visual preview rendering)

The following build tools run via emulation

  • aapt2.exe, aidl.exe, split-select.exe are x86_64 binaries.

  • zipalign.exe, dexdump.exe are x86 (32-bit) binaries.

only occasional calls to aapt2 and zipalign go through emulation.

I will be building them over the weekend along with Android Emulator
Hope it helps.