android 安装apk接口,android实现XAPK安装

为什么有这篇文章

最近一直在修bug,都是琐碎的ui或者交互方面的,倒是用户那边反应有游戏下载了安装不了,仔细检查发现用户下载的是xapk,并且里面包含两个apk,之前我们适配的xapk都是一个apk加上要放到Android/obb目录下的资源,然后经过几天的调研,实现,终于适配了这种xapk,正好在假期里记录一下。

XAPK 简介

xapk并不是一种替代apk的格式,而是将apk和其他文件打包成一个文件,方便下载,具体的说明,可以参考这篇文章:What is xapk.

之前我们已经适配了单apk加上obb资源文件,而现在我所做的,就是适配多apk的xapk。

调研

一开始看到多apk,我就直接试着一个一个安装,结果主apk安装了打开闪退,而另一个apk安装失败,这下就只好google查怎么安装,但搜到的主要就是上面给出的链接,只有介绍,没有实际安装的逻辑。查了许久一无所获,突然发现xapk里除了两个apk,还有icon图片文件和manifest.json文件,感觉到这个json文件,可能包含一些信息,打开发现其中提到了split_apk,然后通过这个进行搜索,果然发现了问题所在。

多个apk的xapk的出现,主要是因为google新推的app bundle机制,通过拆分资源,实现减小apk包大小的目的。而这里我遇到的是老任的马里奥赛车xapk,包含一个主apk和一个config apk,然后我们就顺着这个思路查找对应的安装方法,具体的话参考:Android PackageInstaller.

按照文档的说明,这样的多apk,我

你可能感兴趣的:(android,安装apk接口)