robovm icon indicating copy to clipboard operation
robovm copied to clipboard

[WIP] Libcore10 - Android10 runtime

Open dkimitsa opened this issue 5 years ago • 5 comments

This PR proposes replaces Java Runtime classes used in RoboVM (Android 4.4 base) with ones from Android10 (R45)

Scope of changes

  • Java RT classes were completely replaced (check TODO section bellow);
  • JNI code was replaced
  • RoboVM core/boot code was adapted to Java RT

Highlights

  • Java8+ API (streams/nio2 etc);
  • Conscrypt is an alternate Java Security Provider that uses BoringSSL
  • OpenSSL (v1.0.1e) replaces with BoringSSL (base on OpenSSL 1.1.0g)
  • recent crypto unlocks TLS v1.3
  • will solve issues: #514 #307 #259

TODO/FIXME

  • core lang classes (like Object, String, Thread) were left and adapted from Android 4.4 as corresponding JNI code significantly differs that requires big effort for adaptation (will be done later). As result some API might be missing;
  • several places in code are not implemented/adapted yet (marked as RoboVM TODO: FIXME) that might affect particular APIs;

Test builds

There are several options to get test build:

  1. Build from source code
  2. Download pre-build Idea plugin from Releases section;
  3. Setup Custom plugin repository as described by link:
  • add https://dkimitsa.github.io/assets/updatePlugins.xml as custom plugin repository;
  • in marketplace's search bar enter repository: https://dkimitsa.github.io/assets/updatePlugins.xml;
  • install RoboVM - Libcore 10 plugin from there.

Issue reporting

Please open the issue in the robovm-libcore10-smoketest tracker that was created for testing of libcore10.

Updates/tech notes

Will be post technical details in blog under libcore10 tag

dkimitsa avatar Oct 07 '20 07:10 dkimitsa

Many thanks for making this!

ice1000 avatar Apr 30 '23 14:04 ice1000