Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Consider Android development Codespace #77851

Closed
vcsjones opened this issue Nov 3, 2022 · 7 comments · Fixed by #96257
Closed

Consider Android development Codespace #77851

vcsjones opened this issue Nov 3, 2022 · 7 comments · Fixed by #96257
Assignees
Milestone

Comments

@vcsjones
Copy link
Member

vcsjones commented Nov 3, 2022

I've found myself occasionally wishing for a Codespace that was ready-to-go for Android development.

Is there an appetite for an Android Codespace? Ideally the Codespace would

  1. Get the NDK/SDK set up
  2. Get an emulator image
  3. Do a build of -rc release -s mono+libs
  4. Start an emulator with postStartCommand so the emulator is running when the Codespace starts.

If anyone else thinks this is a good idea, I'm happy to work on a devcontainer.json+Dockerfile for this, but would probably need someone with Administrative permissions to set up prebuilds, assuming we even want a prebuild of this.

/cc @eerhardt

@ghost ghost added the untriaged New issue has not been triaged by the area owner label Nov 3, 2022
@ghost
Copy link

ghost commented Nov 3, 2022

Tagging subscribers to this area: @dotnet/area-meta
See info in area-owners.md if you want to be subscribed.

Issue Details

I've found myself occasionally wishing for a Codespace that was ready-to-go for Android development.

Is there an appetite for an Android Codespace? Ideally the Codespace would

  1. Get the NDK/SDK set up
  2. Get an emulator image
  3. Do a build of -rc release -s mono+libs
  4. Start an emulator with postStartCommand so the emulator is running when the Codespace starts.

If anyone else thinks this is a good idea, I'm happy to work on a devcontainer.json+Dockerfile for this, but would probably need someone with Administrative permissions to set up prebuilds, assuming we even want a prebuild of this.

/cc @eerhardt

Author: vcsjones
Assignees: -
Labels:

area-Meta

Milestone: -

@marek-safar
Copy link
Contributor

/cc @steveisok

@steveisok
Copy link
Member

Not a bad idea. We'll look into it.

@steveisok steveisok added this to the 8.0.0 milestone Nov 3, 2022
@steveisok steveisok removed the untriaged New issue has not been triaged by the area owner label Nov 3, 2022
@steveisok steveisok self-assigned this Nov 3, 2022
@eerhardt
Copy link
Member

eerhardt commented Nov 7, 2022

Note that with #74683 we now have separate Codespace configurations for different development environments. So adding more configurations should be easy, albeit there may be duplication because you can't share/refactor devcontainer.json files.

@ghost
Copy link

ghost commented Aug 11, 2023

Tagging subscribers to 'arch-android': @steveisok, @akoeplinger
See info in area-owners.md if you want to be subscribed.

Issue Details

I've found myself occasionally wishing for a Codespace that was ready-to-go for Android development.

Is there an appetite for an Android Codespace? Ideally the Codespace would

  1. Get the NDK/SDK set up
  2. Get an emulator image
  3. Do a build of -rc release -s mono+libs
  4. Start an emulator with postStartCommand so the emulator is running when the Codespace starts.

If anyone else thinks this is a good idea, I'm happy to work on a devcontainer.json+Dockerfile for this, but would probably need someone with Administrative permissions to set up prebuilds, assuming we even want a prebuild of this.

/cc @eerhardt

Author: vcsjones
Assignees: steveisok
Labels:

area-Meta, os-android

Milestone: 8.0.0

@akoeplinger akoeplinger modified the milestones: 8.0.0, 9.0.0 Dec 13, 2023
@vcsjones
Copy link
Member Author

I spent a little bit of time this afternoon trying to get this working and I got very far... then hit a blocker at the last step.

/dev/kvm does not get mapped inside the docker container for Codespaces, so KVM is not available, and neither is nested virtualization.

We can disable hardware acceleration with -no-accel but that comes with a few problems.

  1. Boot time is bad. The emulator takes 10 minutes to boot - and that's after I slimmed it down as much as I could by disabling bluetooth, display output, etc.
  2. Test time is bad. Some things are "okay" like System.IO.Hashing, but System.Security.Cryptography is... indeterminable. I stopped waiting after 45 minutes.
  3. Emulation is emulation and its bound to subtle bugs.

A smaller but not-so-bad issue is that the emulators require a lot of disk space - at least 64 GB. So the minimum Codespace spec is 8 core / 64 GB of storage.

At this point the only thing the Codespace is good for is building the code - but not running it, which I think largely defeats the point of why I wanted the Codespace.

I don't think a Codespace is suitable for Android development right now. I think we should close this, but I'll leave it open in case someone has ideas on making this suitable.

@vcsjones
Copy link
Member Author

Okay - I actually have a way forward with this thanks to some inside help at GitHub.

@ghost ghost added the in-pr There is an active PR which will close this issue when it is merged label Dec 21, 2023
@ghost ghost removed the in-pr There is an active PR which will close this issue when it is merged label Dec 26, 2023
@github-actions github-actions bot locked and limited conversation to collaborators Jan 26, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants