Sentry Android SDK'sı Artık Tombstone Verilerini Okuyor
Android 12 ve üzeri cihazlarda Sentry, platformun tombstone çıktısını okuyarak native çökme raporlarını daha eksiksiz, hafif ve kolay analiz edilebilir hale getiriyor.
Android'in yerleşik çökme kaydedicisi debuggerd, çöken iş parçacığını, diğer tüm thread'leri, register durumunu ve bellek haritalarını 'tombstone' adı verilen dosyalara yazar. Ancak uzun süre bu veriler uygulama içinden programatik olarak okunamadığı için Sentry gibi SDK'lar, libunwindstack'i NDK ile derlenebilir hale getiren bir fork üzerinden kendi native çökme altyapılarını sürdürmek zorunda kaldı. Bu yaklaşım her ABI için yaklaşık 1MiB ikili dosya yükü, eksik Java/Kotlin çerçeve sembolikasyonu ve sadece çöken thread'i kapsayan sınırlı bağlam gibi kalıcı sorunlar doğuruyordu.
Android 11 ile gelen ApplicationExitInfo ve Android 12'de eklenen native çökme trace akışı, bu tıkanıklığı ortadan kaldırdı. Sentry'nin Android SDK'sı 8.30.0 sürümünden itibaren, Android 12 ve üzeri cihazlarda bu akışı doğrudan okuyarak tombstone verisini native çökme olayı olarak gönderiyor. Böylece tüm thread'ler tam sembolikasyonla raporlanıyor, Java/Kotlin çerçeveleri platform seviyesinde çözülüyor, ekstra ikili dosya yükü ortadan kalkıyor ve AOSP'nin değişken yapısına karşı fork bakımı yükü platforma devrediliyor.
Bu değişiklik, özellikle native kod kullanan Android uygulamaları için hata ayıklama sürecini önemli ölçüde basitleştiriyor. Son 30 günde alınan 2 milyardan fazla Android hata olayının yaklaşık %69'unun Android 12 ve üzeri cihazlardan geldiği düşünüldüğünde, bu iyileştirme geliştiricilerin büyük çoğunluğu için doğrudan fayda sağlıyor. Eski Native SDK/NDK entegrasyonu hâlâ kullanılabiliyor ve iki sistem çakışmadan birlikte çalışabiliyor.