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]

Reply via email to