手把手教你修改包名實現app分身
一. 前言
哈嘍,大家好,我是星期八,事情是這樣嬸的。
我們可能都用過應用分身,但是你想自己實現應用分身嗎?
那就來看看吧!
二. 示例的app
鏈接: https://pan.baidu.com/s/1Tdbh2X_n11Nd8GDgygyH9w 提取碼: s2s7 復制這段內容后打開百度網盤手機App,操作更方便哦
三. 最終實現的效果
可以發現,我有倆土豆視頻,這可是貨真價實得倆,,倆都能單獨運行!
如果才能實現這樣的功能呢?
四. 實現app原理
一般情況下,安卓系統只能安裝一個apk,不能安裝重復安裝同一個apk的!
安卓系統判斷apk是否為重復的主要判斷依據是
- 包名(package)
- 內容提供者(provider)
所以,要想實現app分身,就得對癥下藥,從這兩方面下手。
修改這倆玩意是在AndroidManifest.xml文件修改的
五. 實現步驟
5.1 使用AndroidKiller打開土豆視頻.apk
不進行工程分析
打開如下:
5.2 修改AndroidManifest.xml文件
上述說過,只需要修改``AndroidManifest.xml`文件即可,不需要考慮太多!
5.2.1 修改包名
上面說到,判斷是不是同一個文件,有一個主要依據就是包名!
那就先修改包名,我在原來的包名基礎上加了個_1!
?
5.2.2 修改provider
點擊工程搜索,搜索<provider,為啥加個<,因為這玩意其實是個標簽,加個<更準確!
搜索結果如下:
搜索到之后呢?
其實還是和修改包名一樣,在后面加_1就行!
就像這樣
**PS:**注意了啊,不是說非得加_1,加啥都行,只要和原來不一樣就行!
我加_1只是為了好區分,如果分身更多,還有_2,_3等等等,可不要以為只能加_1!
還有要注意的就是,只需要修改<provider>下android:authorities=這個屬性后面的就行了!!!不需要改其他。
并且,_1只能加在后面,不能加在前面。
繼續修改
然后搜索到了這么多,如法炮制!
把每個<provider>下android:authorities屬性后面的那個值,后面在多加_1即可!
如下:
修改完之后,記得保存哈!
6. 重新打包
上述都完成,點擊編譯!
等待編譯完成
7. 安裝注意事項
點擊生成路徑,就可以直接跳轉到重新打包好apk的路徑了!
然后在真機或者模擬器中安裝就行!
注意了啊,在安裝的時候,一定要卸載官方下載土豆視頻,其他app同理!
雖然我們修改了包名等啥玩意,但是其實本質并沒有變,在安裝的時候會驗證簽名!
系統會發現新的app和我原來的app簽名不一致,就GG了,所以需要卸載官方下載的app!
卸載完之后,在安裝由AndroidKiller打包簽名出來的app,同一個簽名的不會拒絕,即使又N個app
效果就不示范了!
如果想要再多開一個app,把_1改成_2,_3等等等,在重新打包即可!
8. 總結
其實應用分身主要就是對package和provider的修改,并沒有太大的技術難度!
有的是需要耐心和細節!
如果在操作過程中有任何問題,記得下面留言,我們看到會第一時間解決問題。
越努力,越幸運。我是碼農星期八,如果覺得還不錯,記得動手點贊一下哈。感謝你的觀看。
小伙伴們,快快用實踐一下吧!如果在學習過程中,有遇到任何問題,歡迎加我好友,我拉你進Python學習交流群共同探討學習。