beeware / beeware/briefcase

Decouple Android support from the emulator

Open
#1,386 0 comments 0 reactions 0 assignees View on GitHub
android bug
Dominant language
Python
Stars
3.3k
Forks
549
Avg merge
1d 4h
Merged PRs (30d)
40

Description

### Describe the bug

Currently, Briefcase requires the Android SDK to contain an operational emulator; however, it would be reasonable to run Briefcase without an emulator and test only on a physical device. Additionally, the emulator isn't supported on all platforms....and it runs terribly on slow machines anyway....or machines that are already being virtualized.

As discussed in #1366, Briefcase does invoke `sdkmanager` to download `build-tools`...and it has a dependency on emulator. Ideally, it's possible to remove this dependency somehow....but it's also possible to fake an installed emulator so `sdkmanager` doesn't try to install it.

### Steps to reproduce

Run `briefcase run android` without an operational emulator. Since Briefcase tries to enumerate the available AVDs with the emulator, it will error out during this process.

### Expected behavior

Ignore Android emulator functionality if the emulator is not available.

### Screenshots

_No response_

### Environment

- Operating System: pop os 22.04
- Python version: 3.11.4
- Software versions:
- Briefcase: `0.3.16.dev58+g5483fd9a`

### Logs

_No response_

### Additional context

_No response_

Contributor guide

Open the contributing guide

Research direction

Start from the `briefcase run android` entry point and trace how Briefcase invokes `sdkmanager` and enumerates AVDs through the emulator. Check the dependency described in #1366 and determine how a missing or non-operational emulator should be handled. Done means running against a physical device without an emulator no longer errors during setup.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, python
Domain
build-system, mobile
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.