Android查看當前應用已經加載的so庫

源代碼:

	private static List<String> allSOLists = new ArrayList<String>();/** * 獲取全部已加載的SO庫*/private void getAllSOLoaded(){allSOLists.clear();// 當前應用的進程IDint pid = Process.myPid();String path = "/proc/" + pid + "/maps";File file = new File(path);if(file.exists() && file.isFile()){readFileByLines(file.getAbsolutePath());} else {Log.e("DAVIS", "不存在[" + path + "]文件.");}StringBuilder sb = new StringBuilder();for(int i=0;i<allSOLists.size();i++){sb.append(allSOLists.get(i) + "\n");}Log.e("DAVIS", sb.toString());}/** * 獲取當前應用已加載的SO庫*/private void getCurrSOLoaded(){allSOLists.clear();// 當前應用的進程IDint pid = Process.myPid();String path = "/proc/" + pid + "/maps";File file = new File(path);if(file.exists() && file.isFile()){readFileByLines(file.getAbsolutePath());} else {Log.e("DAVIS", "不存在[" + path + "]文件.");}StringBuilder sb = new StringBuilder();for(int i=0;i<allSOLists.size();i++){if(allSOLists.get(i).startsWith("/data/app/")) {sb.append(allSOLists.get(i) + "\n");}}Log.e("DAVIS", sb.toString());}/*** 以行為單位讀取文件,常用于讀面向行的格式化文件*/public static void readFileByLines(String fileName) {File file = new File(fileName);BufferedReader reader = null;try {reader = new BufferedReader(new FileReader(file));String tempString = null;// 一次讀入一行,直到讀入null為文件結束while ((tempString = reader.readLine()) != null) {if(tempString.endsWith(".so")) {int index = tempString.indexOf("/");if(index != -1){String str = tempString.substring(index);// 所有so庫(包括系統的,即包含/system/目錄下的)allSOLists.add(str);}}}reader.close();} catch (Exception e) {e.printStackTrace();} finally {if (reader != null) {try {reader.close();} catch (IOException e1) {}}}}

輸出日志

全部已加載的SO庫:

	/vendor/lib64/hw/gralloc.kirin710.so/vendor/lib64/hw/gralloc.kirin710.so/vendor/lib64/hw/gralloc.kirin710.so/system/lib64/vndk-sp-28/libion.so/system/lib64/vndk-sp-28/libion.so/system/lib64/vndk-sp-28/libion.so/vendor/lib64/libhiion.so/vendor/lib64/libhiion.so/vendor/lib64/libhiion.so/data/app/com.tsb-eMBG4MWSQgAzpqckdwC7cQ==/lib/arm64/libNativeCrash.so/data/app/com.tsb-eMBG4MWSQgAzpqckdwC7cQ==/lib/arm64/libNativeCrash.so/data/app/com.tsb-eMBG4MWSQgAzpqckdwC7cQ==/lib/arm64/libNativeCrash.so/data/app/com.tsb-eMBG4MWSQgAzpqckdwC7cQ==/lib/arm64/libCloudwiseCrash.so/data/app/com.tsb-eMBG4MWSQgAzpqckdwC7cQ==/lib/arm64/libCloudwiseCrash.so/data/app/com.tsb-eMBG4MWSQgAzpqckdwC7cQ==/lib/arm64/libCloudwiseCrash.so/system/lib64/libhwetrace_jni.so/system/lib64/libhwetrace_jni.so/system/lib64/libhwetrace_jni.so/system/lib64/vndk-sp-28/liblzma.so/system/lib64/vndk-sp-28/liblzma.so/system/lib64/vndk-sp-28/liblzma.so/vendor/lib64/egl/libGLES_mali.so/vendor/lib64/egl/libGLES_mali.so/vendor/lib64/egl/libGLES_mali.so/system/lib64/vndk-sp-28/libz.so/system/lib64/vndk-sp-28/libz.so/system/lib64/vndk-sp-28/libz.so/vendor/lib64/libc_secshared.so/vendor/lib64/libc_secshared.so/vendor/lib64/libc_secshared.so/system/lib64/vndk-sp-28/libutilscallstack.so/system/lib64/vndk-sp-28/libutilscallstack.so/system/lib64/vndk-sp-28/libutilscallstack.so/system/lib64/vndk-sp-28/libbacktrace.so/system/lib64/vndk-sp-28/libbacktrace.so/system/lib64/vndk-sp-28/libbacktrace.so/system/lib64/vndk-sp-28/libunwindstack.so/system/lib64/vndk-sp-28/libunwindstack.so/system/lib64/vndk-sp-28/libunwindstack.so/system/lib64/vndk-sp-28/libunwind.so/system/lib64/vndk-sp-28/libunwind.so/system/lib64/vndk-sp-28/libunwind.so/system/lib64/libwebviewchromium_loader.so/system/lib64/libwebviewchromium_loader.so/system/lib64/libwebviewchromium_loader.so/system/lib64/libcompiler_rt.so/system/lib64/libcompiler_rt.so/system/lib64/libcompiler_rt.so/system/lib64/vndk-sp-28/libutils.so/system/lib64/vndk-sp-28/libutils.so/system/lib64/vndk-sp-28/libutils.so/system/lib64/vndk-sp-28/libbase.so/system/lib64/vndk-sp-28/libbase.so/system/lib64/vndk-sp-28/libbase.so/system/lib64/vndk-sp-28/libcutils.so/system/lib64/vndk-sp-28/libcutils.so/system/lib64/vndk-sp-28/libcutils.so/system/lib64/vndk-sp-28/libhidlbase.so/system/lib64/vndk-sp-28/libhidlbase.so/system/lib64/vndk-sp-28/libhidlbase.so/system/lib64/vndk-sp-28/android.hardware.graphics.common@1.0.so/system/lib64/vndk-sp-28/android.hardware.graphics.common@1.0.so/system/lib64/vndk-sp-28/android.hardware.graphics.common@1.0.so/vendor/lib64/hw/android.hardware.graphics.mapper@2.0-impl.so/vendor/lib64/hw/android.hardware.graphics.mapper@2.0-impl.so/vendor/lib64/hw/android.hardware.graphics.mapper@2.0-impl.so/system/lib64/vndk-sp-28/libhidltransport.so/system/lib64/vndk-sp-28/libhidltransport.so/system/lib64/vndk-sp-28/libhidltransport.so/system/lib64/vndk-sp-28/android.hardware.graphics.mapper@2.0.so/system/lib64/vndk-sp-28/android.hardware.graphics.mapper@2.0.so/system/lib64/vndk-sp-28/android.hardware.graphics.mapper@2.0.so/system/lib64/vndk-sp-28/libhardware.so/system/lib64/vndk-sp-28/libhardware.so/system/lib64/vndk-sp-28/libhardware.so/system/lib64/vndk-sp-28/libc++.so/system/lib64/vndk-sp-28/libc++.so/system/lib64/vndk-sp-28/libc++.so/system/lib64/vndk-sp-28/libhwbinder.so/system/lib64/vndk-sp-28/libhwbinder.so/system/lib64/vndk-sp-28/libhwbinder.so/system/lib64/libiAwareSdk_jni.so/system/lib64/libiAwareSdk_jni.so/system/lib64/libiAwareSdk_jni.so/system/lib64/libjavacrypto.so/system/lib64/libjavacrypto.so/system/lib64/libjavacrypto.so/system/lib64/libsoundpool.so/system/lib64/libsoundpool.so/system/lib64/libsoundpool.so/system/lib64/libmedia_jni.huawei.so/system/lib64/libmedia_jni.huawei.so/system/lib64/libmedia_jni.huawei.so/system/lib64/libhwlog_jni.so/system/lib64/libhwlog_jni.so/system/lib64/libhwlog_jni.so/system/lib64/libhwaps.so/system/lib64/libhwaps.so/system/lib64/libhwaps.so

當前應用已加載的SO庫:

	/data/app/com.tsb-eMBG4MWSQgAzpqckdwC7cQ==/lib/arm64/libNativeCrash.so/data/app/com.tsb-eMBG4MWSQgAzpqckdwC7cQ==/lib/arm64/libNativeCrash.so/data/app/com.tsb-eMBG4MWSQgAzpqckdwC7cQ==/lib/arm64/libNativeCrash.so/data/app/com.tsb-eMBG4MWSQgAzpqckdwC7cQ==/lib/arm64/libCloudwiseCrash.so/data/app/com.tsb-eMBG4MWSQgAzpqckdwC7cQ==/lib/arm64/libCloudwiseCrash.so/data/app/com.tsb-eMBG4MWSQgAzpqckdwC7cQ==/lib/arm64/libCloudwiseCrash.so

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/446883.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/446883.shtml
英文地址,請注明出處:http://en.pswp.cn/news/446883.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Android 進程監控(top命令)

文章目錄一、查看top命令Android N&#xff08;7.1系統&#xff0c;level 25&#xff09; 及之前Android O&#xff08;8.0系統&#xff0c;level 26&#xff09; 及之后二、top -n [number]Android N&#xff08;7.1系統&#xff0c;level 25&#xff09; 及之前Android O&…

java 快速排序

快速排序 對冒泡排序的一種改進 思路: 一趟排序后,選取一個中間值,數組被分為比中間值小的部分,比中間值大的部分;再對左右兩部分分別遞歸排序 代碼實現 import java.util.Arrays;public class QuickSort {public static void main(String[] args) {int[] arr {-9, 78, 0, 2…

C++字符串的個人理解

String string是字符串&#xff0c;在聲明一個字符串的時候&#xff0c;比如string a;這個過程是在棧上進行的&#xff0c;但是如果給這個字符串分配內存空間&#xff0c;這段區間是存儲在堆上的&#xff0c;因此最好在聲明字符串的時候就要指出字符串的大小和對其進行初始化s…

Android 基礎性能數據獲取(/proc/)

一、系統內存 讀取命令&#xff1a; /proc/meminfoJava代碼&#xff1a; private void click(){try{String cmd "/proc/meminfo";BufferedReader reader new BufferedReader(new InputStreamReader(new FileInputStream(cmd)), 1000);StringBuilder sb new Stri…

物理 常見力與牛頓三定律

常用知識點 動量 dmvdmvdvm p-mv- f-dp-/dtma- 開普勒第三定律 r1^3__k只與恒星質量有關 T^2 總結 1.電梯勻速就相當于在地面,加速或減速就會有一個a 2.當合外力為0時,物體保持靜止或勻速直線運動 3.力是改變物體運動狀態的原因 4.重力在地球兩極最大,赤道最小,隨緯度…

Java命令:jmap — 打印指定進程的共享對象內存映射或堆內存細節

文章目錄一、前言二、命令介紹三、使用實例1、jmap -heap [pid]2、jmap -histo[:live] [pid]3、jmap -histo[:live] [pid] |grep "[關鍵字1]\|[關鍵字2]"4、jmap -dump:live,formatb,filea.log [pid]四、總結一、前言 jdk安裝后會自帶一些小工具&#xff0c;jmap命令…

C++vector相關學習,我的理解

vector的初始化方式 1&#xff0c;使用拷貝初始化時候&#xff0c;即使用的時候&#xff0c;只可以提供一個初始值2&#xff0c;如果提供一個類內初始值&#xff0c;只可以使用拷貝初始化或者使用花括號的方式初始化3&#xff0c;如果提供的是初始元素值的列表&#xff0c;只可…

概率論 一維隨機變量

隨機變量 離散型隨機變量:有限個或無限可列個 連續型隨機變量 分布函數F(X) 范圍是[a,b) 包含能取到a以及a之前的值的概率相加 分布律(概率分布) 1.所有概率相加為1 2.WX-1,計算出每一個對應的W,然后如果有相同的W就合并其概率,最后一一對應P(x)即可 概率密度函數(密度) …

Linux命令:grep命令詳解

grep常用參數說明 grep [OPTIONS] PATTERN [FILE...] grep [OPTIONS] [-e PATTERN]... [-f FILE]... [FILE...]OPTIONS:-e: 使用正則搜索-i: 不區分大小寫-v: 查找不包含指定內容的行-w: 按單詞搜索-c: 統計匹配到的次數-n: 顯示行號-r: 逐層遍歷目錄查找-A: 顯示匹配行及后…

ECC密鑰結構和密碼學基礎

參考鏈接 密碼學基礎3&#xff1a;密鑰文件格式完全解析ECC數據結構

JAVA牛客專項練習2020.12.31

1.使用迭代器的remove方法&#xff0c;可以邊遍歷邊刪除元素 2.線程 啟動線程 new thread&#xff08;&#xff09;.start&#xff08;&#xff09; new thread&#xff08;new runnable&#xff08;&#xff09;&#xff09;.start&#xff08;&#xff09; 普通方法&#xf…

Linux命令:find命令詳解

find命令格式 find path -option [-print] [-exec -ok |xargs |grep] [command {} \;]# 參數說明path: find命令所查找的目錄路徑。~ 表示$HOME目錄;.來表示當前目錄;/來表示系統根目錄。-print: find命令將匹配的文件輸出到標準輸出。-exec: find命令對匹配的文件執行該參數所…

boost::interprocess::named_mutex的翻譯和學習

官方地址 named_mutex 簡介 // In header: <boost/interprocess/sync/named_mutex.hpp>class named_mutex { public:// construct/copy/destruct 構建/復制/銷毀named_mutex(create_only_t, const char *, const permissions & permissions());named_mutex(open_o…

安卓牛客專項練習2020.12.31

1.窗口dialog或半透明 2.Pracelable性能比serializable高

MAC查找JDK的路徑

在控制臺中輸入&#xff1a; /usr/libexec/java_home -V輸出如下結果&#xff1a; Matching Java Virtual Machines (4):1.8.0_121, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home1.7.0_79, x86_64: "Java SE 7&quo…

sqliteorm的sync_schema介紹

遷移功能 在遷移過程中&#xff0c;沒有明確的上下函數。取而代之的是sqlite_orm提供的sync_schema函數&#xff0c;它負責將實際的db文件模式和你在make_storage調用中指定的模式進行比較&#xff0c;如果有什么不一樣&#xff0c;它就會改變或放棄/創建模式。 storage.sync_…

安卓系統體系架構

1.大體:共有四層&#xff0c;系統應用層&#xff0c;JAVA API層&#xff0c;安卓系統運行層&#xff0c;Linux內核層 具體: 系統應用層&#xff08;System Apps&#xff09; Java API 框架層&#xff08;Java API Framework&#xff09; Android系統運行層&#xff08;包括Andr…

Java命令:jstack — 獲取線程dump信息

目錄一、命令介紹二、使用實例實例一&#xff1a;jstack查看輸出實例二&#xff1a;jstack統計線程數實例三&#xff1a;jstack檢測死鎖實例四&#xff1a;jstack檢測CPU高一、命令介紹 Usage:jstack [-l] <pid>(to connect to running process) //連接活動線程jstack …

Java多線程死鎖例子

目錄一、產生死鎖的原因二、如何避免死鎖一、產生死鎖的原因 發生死鎖的情況&#xff1a; 多個線程需要同時占用多個共享資源而發生需要互相死循環等待的情況&#xff0c;就是&#xff0c;兩個線程互相等待著對象釋放鎖&#xff0c;一直這樣僵持下去&#xff0c;所以導致了死鎖…

C++中lock_guard的學習

lock_guard 鎖守衛是一個管理mutex對象的對象&#xff0c;使其始終處于鎖定狀態。在構造時&#xff0c;mutex對象被調用線程鎖定&#xff0c;在銷毀時&#xff0c;mutex被解鎖。這是最簡單的鎖&#xff0c;作為一個自動持續時間的對象&#xff0c;它的作用特別大&#xff0c;可…