首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    获取资源那些事

    —》Resource----》AssetManager—》Native层AssetManager打开资源文件 Zygote替你做的事 zygote会进行调用prepareresource方法,这个方法创建了...Resource中的msystem(代表系统资源)和Assetmanager中的mAsset(代表系统资源)这两个静态变量。...prepareresource 在prepareresource方法中会创建一个Assetmanager并调用addpath将framework-res.apk(系统资源APK)中的资源添加到assetmanager...中,这个assetmanager对象就是assetmanager中的静态变量mAsset对象,它代表framework的资源,接下来会进行添加字符串池操作把framework涉及到的资源文件名添加到常量池中...这时候assetManager不仅可以访问到framework资源也可以访问到应用资源,但是这步只是生成了资源管理者 5.最后一步创建出一个resource对象,将assetmanager传入到构造方法中即可返回该

    36420

    【Android 插件化】Hook 插件化框架 ( 加载插件包资源 )

    类并创建实例对象 2、反射 AssetManager 的 addAssetPath 方法并调用 3、创建 Resources 二、自定义 Application 中设置插件资源 三、插件 Activity...加载插件包资源文件 ---- 在插件包中的 Activity , 如果加载 R.layout.activity_main , 拿到的是 “宿主” 应用中的资源 , 无法拿到插件包中的资源 ; 1、反射 AssetManager...类并创建实例对象 反射 AssetManager 类 , 并创建 AssetManager 实例对象 ; // 使用反射工具类进行链式调用 , 创建 AssetManager 对象...AssetManager assetManager = Reflector.on(AssetManager.class).newInstance(); 涉及到的反射工具类内容 : 上述代码使用了上一篇博客...的 addAssetPath 方法并调用 通过反射获取 AssetManager 的 addAssetPath 方法 , 方法的参数是 String 类型 ; 执行该方法 , 传入当前插件包 APK

    41210
    领券