We gave a Mouse an NDK: Non Android Developers' Experience with NDK
summary
Sentry builds a production NDK crash pipeline that captures native crashes with signal handlers, unwinds frames by increasing the sigaltstack and then dump stack to disk, and performs symbolication on the server using an open source symbolicator. Workarounds include custom assembly for getcontext, bundling or parsing /proc/maps to find build IDs, and a hacked gradle plugin to expose native headers and libraries. It works end to end but Android fragmentation, missing libunwind/Bionic APIs and async‑safe limits force brittle device‑side logic and unreliable symbol collection.
AI-written summary · about
chapters (10)
- 0:00Introduction and background
- 3:15Why NDK is special
- 7:15Production builds on Android
- 12:34Stack traces and unwinding
- 17:47Debug info and executables
- 20:59Stack walking on device
- 26:59Signal handlers and async safety
- 29:11Symbol servers and SDK integration
- 31:21Tooling and developer experience
- 32:48Wishlist for Android improvements
related talks
31mNDK Crash Handling the what, the where, and the how
43mAndroid NDK Crash Reports
31mWhat's new in Android C++ development
32mGetting Started with the Android NDK
48mThe Android NDK and its new support in Android Studio/gradle-experimental plugin (en)
06mAndroid GDS NDK/C++
50mAdvanced Development and Debugging for Android/iOS
37mDebugging Android Devices in the Field
