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

国外创意网站设计欣赏一个网站开发需要多久

国外创意网站设计欣赏,一个网站开发需要多久,站内免费推广,比较出名的设计网站类列表 每一个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/917024/

相关文章:

  • 杨浦网站建设公司上海 网站备案拍照
  • 深圳市企业网站建设价格网站建设丶金手指花总12
  • 网站页面设计招聘网站设计与网页设计的区别
  • 苏州做网站的专业公司有哪些dw建设的网站怎么看
  • 网站建设管理 优帮云网址大全下载安装
  • 个人建站建设如何做自己的淘宝客网站
  • 网站建设业务员转换大设计网站需要用到哪些技术
  • 有关网站建设的外文文献平台网站怎么做的好
  • wix怎样做网站品牌vi设计有哪些内容
  • 局网站建设总结wordpress大气
  • 做爰全过程免费网站网站开发建设专业的公司
  • 淘宝可以在哪些网站上面打做推广网站制作教程及流程
  • 泰兴网站建设哪个电商平台最能卖货
  • 用旧手机做网站怎么制作自己的网址
  • 做网站前需要准备什么北京网站建设的关键词
  • 怎样增加网站流量网络热词有哪些
  • 新开发网站win10优化软件
  • 四川住房和城乡建设厅网站打不开做100个网站效果图
  • 宿松网站建设推荐秒搜科技网络优化岗位详细介绍
  • 网站排名优化软件有哪些大学生就业信息招聘网
  • 怎么做好网站搜索引擎优化怎样启动wordpress
  • 如果网站没有做icp备案企业网站的基本内容以及营销功能
  • 化妆品网站程序公司网站建设行为规定
  • 网站建设编程软件制作移动端网页
  • 贷款织梦网站模版好用的wordpress博客主题
  • 中国建设银行官网站积分抽奖搜索推广账户优化
  • 网站维护需要多久时间该怎么给做网站的提页面需求
  • 有哪些做ppt网站网站首页可以做竖版吗
  • 网站建设西班牙语注册域名建设网站
  • dw做aspx网站wordpress文章排列