当前位置: 首页 > 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/255578/

相关文章:

  • 优秀网站共分享wordpress添加干扰代码
  • 湖南星大建设集团有限公司网站广州seo公司品牌
  • 寿光 网站建设上海最出名的编程培训
  • 陕西省建设建设监理协会网站网站推广seo设置
  • 乌海市建设工程网站莆田个人外贸网站建设
  • 国内免费无版权图片素材网站wordpress网站文件管理
  • 以域名做网站关键词php网站绑定域名
  • 怎么在网站后面制作官网俩个字网站与支付宝对接
  • 夏津网站建设公司新网站提交百度收录
  • wordpress官方源文件结构廊坊视频优化效果
  • 二级域名做很多网站网站设计步骤的教学设计
  • 网站改不了分类网站百科推广怎么做
  • 一级域名做网站推广员网站怎么做
  • 网站编程语言哪个好wordpress 设计干货模板
  • 在线课堂网站开发百度seo教程网
  • 网站 绝对路径广东华业建设有限公司网站
  • 江苏建设厅网站首页海外网络推广方案
  • 以下属于网站页面设计的原则有最新新闻事件2023
  • 网站加载模式wordpress图片表单插件
  • 易语言网站开发教程一站式企业服务
  • 代理做网站怎么样精美网站
  • 政务网站信息化建设情况没有做icp备案的网站
  • 孝感网站开发选优搏淘宝网站建设属于什么类目
  • 临沂网站建设步骤网站分享到朋友圈
  • 国内优秀网页设计案例哈尔滨seo网络推广
  • 受欢迎的聊城网站建设wordpress 打包app
  • 网站空间到期时间查询网站过期怎么找回来
  • 一级a做爰全过程网站精利手表网站
  • 网站策划与建设阶段的推广方法网站建设和软件开发哪个有前途
  • 网站建设公司怎么宣传wordpress 育儿主题