RRO 動態(tài)資源替換方法介紹

RRO 動態(tài)資源替換介紹

簡單介紹:

Runtime Resource Overlay 是從Android5.0開始轩娶,給出的一種能夠在不需要應(yīng)用源碼的情況下,將替換應(yīng)用res資源的一種方法宝与。

替換應(yīng)用資源主要分為兩種:
一,靜態(tài)替換資源:需要源碼冶匹,每次都需要編譯习劫,重新安裝
二,動態(tài)替換資源:不需要源碼嚼隘,只要編譯替換資源apk文件

這里就只介紹動態(tài)替換資源的方法诽里。

步驟:

  • 使用Android Studio 創(chuàng)建兩個項目:
    1,被替換資源的應(yīng)用項目
    2飞蛹,替換應(yīng)用資源的overlay項目

  • 聲明一個MainActivity布局中TextView的文本資源例如:

<resources>
    <string name="app_name">OverlayDemo</string>
    <string name="hello_world">這是原生應(yīng)用的資源</string>
</resources>

我們聲明被替換資源的app應(yīng)用名為OverlayDemo

  • 在替換應(yīng)用資源的項目中谤狡,修改清單文件的內(nèi)容如下:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.zeasn.usra.overlayapp">

    <overlay
        android:priority="1"
        android:targetPackage="com.zeasn.usra.overlaydemo" />
</manifest>

android:priority 用于在多overlay版本共存的情況下,值越高卧檐,代表優(yōu)先級越高墓懂,系統(tǒng)將會優(yōu)先讀取優(yōu)先級別搞的資源包進行替換。

android:targetPackage 用于指定需要替換資源的應(yīng)用包名霉囚。這里的包名要和被替換資源應(yīng)用的包名一致捕仔。

  • 將需要修改的資源鍵值寫入overlayapp資源文件中,例如strings.xml 的內(nèi)容如下:
<resources>
    <string name="app_name">OverlayApp</string>
    <string name="hello_world">這是RRO加載的資源</string>
</resources>

這里將修改兩處的資源盈罐,一個是應(yīng)用名稱榜跌,另外一個是MainActivity中文本的字符串值。

特別注意盅粪,Overlay應(yīng)用不應(yīng)該存在其他的代碼钓葫,這個項目僅僅只用于存放替換資源鍵值。
  • 打包簽名
    將兩個項目分別打包票顾,并簽名瓤逼,特別注意笼吟,簽名必須一樣

  • 安裝
    需要被替換資源的應(yīng)用安裝到設(shè)備上,Overlay應(yīng)用簽名生成的apk文件霸旗,需要通過adb push命令贷帮,push到系統(tǒng)根路徑下的vender/overlay目錄下,這個操作需要獲取root權(quán)限诱告,具體可以參考希峰的gitbook
    獲取root權(quán)限

最后撵枢,開啟應(yīng)用,如果發(fā)現(xiàn)沒有被及時的替換精居,可以重新退出應(yīng)用再次進入锄禽,或者重新啟動設(shè)備靴姿。

最后的效果圖如下:


image.png

如果需要再次的替換資源,升高android: priority的值重新打包簽名,adb push到overlay目錄下即可逸贾。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末触徐,一起剝皮案震驚了整個濱河市嗜诀,隨后出現(xiàn)的幾起案子隆敢,更是在濱河造成了極大的恐慌,老刑警劉巖玄货,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件馆里,死亡現(xiàn)場離奇詭異,居然都是意外死亡械媒,警方通過查閱死者的電腦和手機键俱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門臭埋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人液斜,你說我怎么就攤上這事〉拢” “怎么了少漆?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長硼被。 經(jīng)常有香客問我示损,道長,這世上最難降的妖魔是什么嚷硫? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任检访,我火速辦了婚禮始鱼,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘脆贵。我一直安慰自己医清,他們只是感情好,可當我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布丹禀。 她就那樣靜靜地躺著状勤,像睡著了一般。 火紅的嫁衣襯著肌膚如雪双泪。 梳的紋絲不亂的頭發(fā)上持搜,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天,我揣著相機與錄音焙矛,去河邊找鬼葫盼。 笑死,一個胖子當著我的面吹牛村斟,可吹牛的內(nèi)容都是我干的贫导。 我是一名探鬼主播,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼蟆盹,長吁一口氣:“原來是場噩夢啊……” “哼孩灯!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起逾滥,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤峰档,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后寨昙,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體讥巡,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年舔哪,在試婚紗的時候發(fā)現(xiàn)自己被綠了欢顷。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡捉蚤,死狀恐怖抬驴,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情缆巧,我是刑警寧澤怎爵,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站盅蝗,受9級特大地震影響鳖链,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一芙委、第九天 我趴在偏房一處隱蔽的房頂上張望逞敷。 院中可真熱鬧,春花似錦灌侣、人聲如沸推捐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽牛柒。三九已至,卻和暖如春痊乾,著一層夾襖步出監(jiān)牢的瞬間皮壁,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工哪审, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蛾魄,地道東北人。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓湿滓,卻偏偏與公主長得像滴须,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子叽奥,可洞房花燭夜當晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容

  • 前言 Android Overlay是一種資源替換機制扔水,它能在不重新打包apk的情況下,實現(xiàn)資源文件的替換(res...
    GrayMonkey閱讀 37,142評論 1 26
  • 自己總結(jié)的Android開源項目及庫朝氓。 github排名https://github.com/trending,g...
    passiontim閱讀 2,531評論 1 26
  • 各種幫助類匯總:https://github.com/Blankj/AndroidUtilCode 常用的 ios...
    懦弱的me閱讀 1,211評論 0 51
  • Android基礎(chǔ)及相關(guān)機制 Android Context 上下文 你必須知道的一切 Android中子線程真的...
    楷桐閱讀 1,998評論 1 30
  • 提問 1.想修改第三方的資源文件魔市,該怎么處理?例如Google某一個apk中的字符串太長了膀篮,影響了美觀嘹狞。 2.為了...
    鋤禾豆閱讀 12,859評論 4 2