当前位置: 首页 > news >正文

请人做个网页大概需要多少钱网站seo平台

请人做个网页大概需要多少钱,网站seo平台,seo入门培训课程,好的免费博客网站类列表 每一个ClassLoader里面的类列表,类的数量都是固定的。 对上一节中的dex反编译 使用DexClassLoader类动态加载插件dex   利用jadx对dex进行反编译可以看到有哪些类 源码分析 BaseDexClassLoader 从BaseDexClassLoader类加载器开始分析 在BaseDexClassLoade…

类列表

  每一个ClassLoader里面的类列表,类的数量都是固定的。

对上一节中的dex反编译

  使用DexClassLoader类动态加载插件dex
  利用jadx对dex进行反编译可以看到有哪些类

在这里插入图片描述

源码分析

  • BaseDexClassLoader
    BaseDexClassLoader类加载器开始分析
    BaseDexClassLoader类里有一个pathList属性,它的类型是DexPathList,分析DexPathList类的定义
    在这里插入图片描述

  • DexPathList
    DexPathList类里有一个dexElements属性,它是Element类型,分析Element类的定义
    在这里插入图片描述

  • Element
    Element类是DexPathList的内部类,它有一个属性是dexFile,它是DexFile类型,分析DexFile类的定义

    在这里插入图片描述

  • DexFile
    DexFile里找到一个方法getClassNameList(),获取类名,它需要一个参数cookie
    在这里插入图片描述
    cookie参数就是DexFile类的属性mCookie了在这里插入图片描述
    接下来通过反射调用getClassNameList()方法就可以得到类加载器可以加载的类了。

代码

public static void getClassListInClassLoader(ClassLoader classLoader) throws ClassNotFoundException, NoSuchFieldException, IllegalAccessException, NoSuchMethodException, InvocationTargetException {// 获取BaseDexClassLoader类Class BaseDexClassLoaderClass=Class.forName("dalvik.system.BaseDexClassLoader");// 获取BaseDexClassLoader类中的pathList字段Field pathListField = BaseDexClassLoaderClass.getDeclaredField("pathList");// 设置权限pathListField.setAccessible(true);// 从传进去的参数classLoader加载器对象中获取pathList对象Object pathListobj = pathListField.get(classLoader);// 获取DexElemtnt类Class DexElemtntClass = Class.forName("dalvik.system.DexPathList");// 获取DexElemtnt类中的dexElements字段Field dexElements = DexElemtntClass.getDeclaredField("dexElements");// 设置权限dexElements.setAccessible(true);//  pathList对象中获取dexElements对象Object[] dexElementsArratobj = (Object[]) dexElements.get(pathListobj);// 获取Element内部类Class ElementClass = Class.forName("dalvik.system.DexPathList$Element");// 从Element内部类中获取字段dexFileField dexFileField = ElementClass.getDeclaredField("dexFile");设置权限dexFileField.setAccessible(true);  // 取消权限检查// 获取DexFile类Class DexFileClass = Class.forName("dalvik.system.DexFile");// 从DexFile类中获取字段mCookie Field mCookieField = DexFileClass.getDeclaredField("mCookie");// 设置权限mCookieField.setAccessible(true);// 获取字段mFileNameField mFIleNameField = DexFileClass.getDeclaredField("mFileName");// 设置权限mFIleNameField.setAccessible(true);// 从DexFile类中获取getClassNameList方法Method getClassNameListMethod = DexFileClass.getDeclaredMethod("getClassNameList",Object.class);// 设置权限getClassNameListMethod.setAccessible(true);// 遍历dexElements,dexElement里面有dexFilefor(Object dexElementobj:dexElementsArratobj){// 获取dexfile对象Object dexfileObj = dexFileField.get(dexElementobj);// 获取mCookie对象Object mCookieobj = mCookieField.get(dexfileObj);// 获取mFileName对象String mFileNameobj = (String) mFIleNameField.get(dexfileObj);// 调用getClassNameList方法获取类列表String[] classList = (String[]) getClassNameListMethod.invoke(null,mCookieobj);for(String classname:classList){// 打印信息Log.e("classlist",classLoader.toString()+"---"+mFileNameobj+"---"+classname);}}
}

调用getClassListInClassLoader()

getClassListInClassLoader(dexClassLoader)
成功获取到了dexClassLoader类加载器中可以加载的类
在这里插入图片描述

http://www.yayakq.cn/news/309134/

相关文章:

  • php做网站导购宝塔window怎么做网站
  • html5网站开发的源码网站内搜索功能怎么做
  • 特殊信息收费的网站有哪些外贸营销网站怎么建站
  • 网站建设所面临的问题兰州旅游攻略
  • 免费承接网站建设开发平台网站多少钱
  • 南宁网站建设服务商免费企业网站开发
  • 周口集团网站建设wordpress文章所属栏目
  • 深圳网站设计 建设元住房和城乡建设部主网站
  • 网站翻页模板百度网盘搜索引擎入口哪里
  • 宁波建网站方式无经验学电商要多久
  • app 网站可以做的免费推广织梦cms手机网站源码
  • 网站建设技术发展现状系统开发的主要方法有生命周期法
  • 建设个人网站的参考网站及文献ui界面设计总结心得
  • 西南城乡建设部网站首页高州新闻 头条 今天
  • 招投标 网站建设 山西哪些网站建设公司好
  • 免费网站应用网站制作需求
  • 怎么宣传自己的网站推广Https全局wordpress
  • 上海公司网站建设公司长宁哪里有做网站优化比较好
  • 获得网站源文件icp备案查询网
  • 公司网站建设费属于宣传费吗怎么利用网站做兼职
  • 网站建设与管理专业人才调研深圳建设局网站打不开
  • 建设个电商平台网站需要多少钱网销怎么找客户
  • 青岛seo整站优化西安西工大软件园做网站的公司
  • 酒店网站建设价格wordpress如何更改页面显示字体
  • 网站建设中的pv指的是啥那个网站可以做全景图
  • 自贡市建设局网站汕头设计网站建设
  • 网站使用cookies北京app开发
  • 龙岗网站建设设计服务大学生网站开发工作室总结
  • 网站设计的基本过程网站 架构 设计
  • 中国建设招标网是什么网站个人网站做排名