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

Adding Android Integration #612

Merged
merged 75 commits into from
Feb 12, 2022
Merged

Adding Android Integration #612

merged 75 commits into from
Feb 12, 2022

Conversation

Danielku15
Copy link
Member

@Danielku15 Danielku15 commented May 30, 2021

Issues

Fixes #532

Proposed changes

Adds the specific platform implementations and toolchain updates for targeting android natively.

Checklist

  • I consent that this change becomes part of alphaTab under it's current or any future open source license
  • Changes are implemented
  • Existing builds tests pass
  • New tests were added

Further details

  • This is a breaking change
  • This change will require update of the documentation/website

@Danielku15 Danielku15 added the platform-android Related to the Android specific integrations label May 30, 2021
@Danielku15 Danielku15 self-assigned this May 30, 2021
@Danielku15 Danielku15 changed the title Feature/android Adding Android Integration May 30, 2021
@Danielku15 Danielku15 force-pushed the feature/android branch 4 times, most recently from 6fc13b5 to 55aea3b Compare May 31, 2021 15:50
@Danielku15 Danielku15 mentioned this pull request Jan 9, 2022
6 tasks
# Conflicts:
#	src/AlphaTabApiBase.ts
#	src/model/Score.ts
#	src/synth/soundfont/Hydra.ts
# Conflicts:
#	src.kotlin/alphaTab/build.gradle.kts
#	src.kotlin/alphaTab/settings.gradle.kts
@Danielku15
Copy link
Member Author

I finally found out what is causing Kotlin to be so extremely slow with the alphaTab codebase. It seems to be super slow when inferring generic types. One key class there is the PercussionMapper where there is a huge list of DoubleObjectMapEntry objects created without explicitly having generic types. Commenting only the MapEntry creations in the generated Kotlin, reduced the compilation from 3min to 1min on my Surface. Having it uncommented and opening the PercussionMapper makes Android Studio go crazy with high CPU load and memory consumption.

As a local fix we can try to explicitly specifying the generics.
In parallel we should create a standalone project only with the involved classes to report the error more concretely to JetBrains.

@Danielku15 Danielku15 marked this pull request as ready for review February 12, 2022 22:52
@Danielku15 Danielku15 merged commit 70b5c92 into develop Feb 12, 2022
@Danielku15 Danielku15 deleted the feature/android branch February 12, 2022 22:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
platform-android Related to the Android specific integrations
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Create native Android integration
1 participant