Home | History | Annotate | Download | only in models
      1 # Shared Native Code Model
      2 
      3 The value of the Shared Native Code model is the sum of the virtual memory
      4 sizes of all loaded `.so` files. It is calculated by reading `/proc/self/maps`.
      5 
      6 The actionable breakdown of the shared native code model is a breakdown by
      7 library name. Unfortunately, due to technical limitations, this does not
      8 include information about what caused a library to be loaded, whether the
      9 library was loaded by the app or the platform, the library dependency graph,
     10 or what is causing a library to remain loaded. Individual `.so` files can be
     11 further broken down using tools such as `readelf`.
     12 
     13 For example, for an application `AmmTest.apk` that includes `libammtestjni.so` as a
     14 native library that loads 36 KB worth of memory regions, `BaseClassLoader` will
     15 be shown with library
     16 `/data/app/com.android.amm.test-_uHI4CJWpeoztbjN6Tr-Nw==/lib/arm64/libammtestjni.so`
     17 taking up 36 KB.
     18