The GitHub Actions job "Fory CI" on fory.git/main has succeeded. Run started by GitHub user chaokunyang (triggered by chaokunyang).
Head commit for run: 33e0dc06528783849d3f321eb9f12dd4de3864b8 / Shawn Yang <[email protected]> feat: add android support (#3667) ## Why? Fory Java core needs to run on Android 8.0+ without relying on JVM-only internals such as `sun.misc.Unsafe`, private-field `MethodHandle` access, runtime bytecode loading, or `LambdaMetafactory`. The support surface also needs to keep JVM, GraalVM, `fory-format`, and hot-path behavior owned by their existing runtime-specific paths instead of weakening the core protocol or serializers. ## What does this PR do? - Adds Android platform support for Java `fory-core`, including Android detection, Android-safe object serialization paths, heap/`ByteBuffer`/stream/channel input handling, reflection-backed field access, and reflection-based object construction. - Updates serializer behavior for Android-specific constraints, including dynamic proxies with deferred handlers, `Throwable` construction/restoration, JDK collection/map wrappers, sublists, lambdas, serialized lambdas, Java serializer fallbacks, and targeted unsupported-operation failures for JVM-only features. - Introduces type-safe `MemoryBuffer`/`MemoryOps` primitive-array and byte-copy APIs, moves JVM-only unsafe operations behind platform owners such as `UnsafeOps`, and keeps `fory-format` direct-memory paths on JVM-only unsafe APIs. - Adjusts codegen and platform defaults so Android and GraalVM disable runtime code generation by default, while explicit unsupported codegen requests are forced off with a warning. - Adds Android instrumented integration tests and CI coverage for Java changes, updates Java Android documentation/spec guidance, and aligns related GraalVM, JDK compatibility, benchmark, Kotlin, Scala, and SIMD usages with the new platform ownership. ## Related issues #1017 Closes #3405 Closes #1101 Closes #2435 ## AI Contribution Checklist - [ ] Substantial AI assistance was used in this PR: `yes` / `no` - [ ] If `yes`, I included a completed [AI Contribution Checklist](https://github.com/apache/fory/blob/main/AI_POLICY.md#9-contributor-checklist-for-ai-assisted-prs) in this PR description and the required `AI Usage Disclosure`. - [ ] If `yes`, my PR description includes the required `ai_review` summary and screenshot evidence of the final clean AI review results from both fresh reviewers on the current PR diff or current HEAD after the latest code changes. ## Does this PR introduce any user-facing change? Adds documented Android support for Java `fory-core` and updates Java runtime/platform APIs around JVM-only unsafe memory access. No binary protocol compatibility change is intended. - [x] Does this PR introduce any public API change? - [ ] Does this PR introduce any binary protocol compatibility change? ## Benchmark Not provided in the PR description. Report URL: https://github.com/apache/fory/actions/runs/25655350392 With regards, GitHub Actions via GitBox --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
