android中so函数动态获取问题

由于二进制中的函数是被粉碎过的,假如我要获取libart.so中的OpenMemory函数(这个看源码),我们可以这样找。

nm -a ‘/home/haidragon/Desktop/android-5.1.1_r1/out/target/product/hammerhead/obj/lib/libart.so‘  | grep "OpenMemory"


然后找对应的那个OpenMemory(因为有函数重载)

c++filt _ZN3art7DexFile10OpenMemoryEPKhjRKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEjPNS_6MemMapEPKNS_7OatFileEPS9_


用dlsym获取就行了。

原文地址:https://blog.51cto.com/haidragon/2413866

时间: 2024-11-05 02:43:31

android中so函数动态获取问题的相关文章

如何在Android中为TextView动态设置drawableLeft等

如何在Android中为TextView动态设置drawableLeft等 两种方式: 方式1:手动设置固有边界 1 Drawable drawable = getResources().getDrawable(resId); 2 //注意查看方法TextView.setCompoundDrawables(Drawable, Drawable, Drawable, Drawable) 3 //的注释,要求设置的drawable必须已经通过Drawable.setBounds方法设置过边界参数 4

【原创】如何在Android中为TextView动态设置drawableLeft等

如何在Android中为TextView动态设置drawableLeft等 两种方式: 方式1:手动设置固有边界 1 Drawable drawable = getResources().getDrawable(resId); 2 //注意查看方法TextView.setCompoundDrawables(Drawable, Drawable, Drawable, Drawable) 3 //的注释,要求设置的drawable必须已经通过Drawable.setBounds方法设置过边界参数 4

Android 中使用代码动态布局

Android 中使用代码动态布局 本文介绍在android中使用代码动态布局,有时候根据不同的需求,比如需要根据服务器上的条目个数来决定app中页面布局控件(显示个数,图标等).此处介绍通过java代码进行动态布局. 一.效果图: 图片随便找的,将就将就吧 二.给出xml文件布局 <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schema

Android中回调函数的理解---本人Android纯新手

本人大二,刚刚接触Android,也刚刚申请的cnblog博客,说一下对Android中回调函数的理解,Android中回调函数和C++.JAVA中的默认构造函数差不多,即运行到了一定的代码时自动调用的代码,而Android中的回调函数和C++.JAVA中的默认构造函数的区别在于:C++.JAVA中的默认构造函数在创建一个对象时自动调用,而Android中的回调函数的自动调用是在比如按了HOME键之后.

vmware中linux无法动态获取dhcp解决方法

最近遇到了vmware虚拟机中 linux  dhcp无法获取的问题 困扰了好久 终于得到大神的帮助 解决了 所以马上来分享~ 首先确定自己ethX的配置没问题,我是eth0 dhcp获取,配置如下: [[email protected] network-scripts]# cat ifcfg-eth0 DEVICE="eth0"//这个就是要设置的接口 BOOTPROTO="dhcp" HWADDR="00:0C:29:54:2B:48"//这

android 6.0之后动态获取权限

Android 6.0 动态权限申请 1. 概述 Android 6.0 (API 23) 之前应用的权限在安装时全部授予,运行时应用不再需要询问用户.在 Android 6.0 或更高版本对权限进行了分类,对某些涉及到用户隐私的权限可在运行时根据用户的需要动态授予.这样就不需要在安装时被强迫同意某些权限. 2. 正常权限 和 危险权限 Android系统权限分为几个保护级别.需要了解的两个最重要保护级别是 正常权限 和 危险权限: (1)正常权限: 涵盖应用需要访问其沙盒外部数据或资源,但对用

Android中SharedPreferences函数具体解释

Android平台提供了一个SharedPreferences类,它是一个轻量级应用程序内部轻量级的存储方案,特别适合用于保存软件配置參数,比方boolean,int,float,long,String等数据.使用SharedPreferences保存数据,事实上质是採用了xml文件存放数据,路径为:/data/data/<package name>/shared_prefs. 获取SharedPreferences的两种方式: (1)调用Context对象的getSharedPreferen

Android中SharedPreferences函数详解

Android平台提供了一个SharedPreferences类,它是一个轻量级应用程序内部轻量级的存储方案,特别适合用于保存软件配置参数,比如boolean,int,float,long,String等数据.使用SharedPreferences保存数据,其实质是采用了xml文件存放数据,路径为:/data/data/<package name>/shared_prefs. 获取SharedPreferences的两种方式: (1)调用Context对象的getSharedPreferenc

Swing中使用JTable动态获取数据库中的数据并显示

笔者注:本文供新手学习使用,若有一定基础,可以直接看3! 1.创建数据库: /* Navicat MySQL Data Transfer Source Server : aa Source Server Version : 50519 Source Host : localhost:3306 Source Database : test Target Server Type : MYSQL Target Server Version : 50519 File Encoding : 65001 D