运行时资源覆盖(Runtime Resource Overlay)

参考:

Android运行时资源替换-Runtime Resource Overlay
Android Runtime Resource Overlay
Quick Tip: Theme Android With the Runtime Resource Overlay Framework
Customizing Android Devices Using Runtime Resource Overlay

Android5.0

 

AssetManager::addOverlayPath 
  idmapPathForPackagePath 
  openAssetFromFileLocked 
  appendPathToResTable 
    openIdmapLocked 
      openAssetFromFileLocked 
    ResTable::add 
      addInternal 
        parsePackage 
          parseIdmap

资源映射底层库 idmap_jni 

aapt dump resources GstMediaPlayer.apk
idmap --inspect xxx.idmap

基于 tv-n55 编译,在 Android 4.4 不能跑,切换到 tv-43p 环境

C库的 strtof 没有,atof 也没有,使用 strtod 代替

__read_chk 没有,可能需要切换到 box-4k 编译

__read_chk 重写了,没有其他问题了,在 tv-43p 编译 

资源覆盖上下文组件

Java流程第一步调通 
TargetResources 
OverlayResources 

只覆盖 getValue 不行

背景图片不能替换 

    public View(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { 
        this(context); 

        final TypedArray a = context.obtainStyledAttributes( 
                attrs, com.android.internal.R.styleable.View, defStyleAttr, defStyleRes); 

background = a.getDrawable(attr); 

style里面引用的资源不能替换,准备用 Factory 来实现替换

快速替换皮肤(无须重建View)

1、保存view弱引用
2、layout归类
3、layout id 加速查找

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Fighting Horse

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值