一. 前言
哈喽,大家好,我是星期八,事情是这样婶的。
我们可能都用过应用分身,但是你想自己实现应用分身吗?
那就来看看吧!
二. 示例的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学习交流群共同探讨学习。