Commit cf78bbe
[TrimmableTypeMap] JavaPeerScanner execution logic
Add JavaPeerScanner — the second phase that consumes AssemblyIndex
results and produces the final list of JavaPeerInfo for the app:
- Walks all indexed types and resolves their Java peer registrations
- Handles inheritance: traverses base types across assemblies to find
the nearest registered Java peer ancestor
- Detects activation constructors (IntPtr+JniHandleOwnership) and
distinguishes between direct declarations and inherited ones
- Collects marshal methods ([Register] on methods) and exported
methods ([Export]) with their JNI signatures
- Merges component attribute metadata ([Activity], etc.) and resolves
JNI names from attribute properties
- Flags types for unconditional preservation when component attributes
with non-default JNI names are present
The scanner is designed as a pure function: assemblies in → peer info
out, with no side effects or global state.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>1 parent b985314 commit cf78bbe
File tree
1 file changed
+714
-0
lines changed- src/Microsoft.Android.Sdk.TrimmableTypeMap/Scanner
1 file changed
+714
-0
lines changed
0 commit comments