Compression Digest
compression/_posts/2016-03-31-notes-on-android-sdk-dev.md
Android NDK & Linking Notes
[Literal] Notes from sharing Android NDK workflow: glue C/C++ into shared libs via Android.mk and Application.mk. [AI Synthesis] Emphasis is on linker mechanics and choosing static vs dynamic libraries.
Key points
- [Literal] Android.mk defines per-module properties; Application.mk defines app-wide module properties.
- [Literal] Good dev tooling matters—Eclipse called terrible for this task.
- [Literal] Linking concatenates blocks and assigns run-time addresses; symbol resolution maps globals in .symtab.
- [Literal] Static libraries copy only referenced object modules at link time; code can duplicate per process at run time.
- [Literal] Dynamic shared libraries allow one .text copy in memory shared across processes.
- [Literal] Basic idea: embed relocation/symbol info at executable creation; finish code/data linking at load time.
Patterns / reminders
- [AI Synthesis] Prefer dynamic linking when sharing code across processes; audit static libs for duplicated I/O helpers.