实现自定义apk安装包

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实现自定义apk安装包相关的知识,希望对你有一定的参考价值。

需求:
突然收到老大的需求,要对产品进行一次推荐好友安装的活动,每个会员下载自己的专属安装包(里面记录会员的相关信息)。

思路:
经过了解,发现apk安装包原来只是zip的一个马甲,使用php的ZipArchive类可以对文件进行操作。

实现代码:

// 源文件
$apk    = "gb.apk";
// 生成临时文件
$file   = tempnam("tmp", "zip");
// 复制文件
if(false===file_put_contents($file, file_get_contents($apk))){
    exit(‘copy faild!‘);
}
// 打开临时文件
$zip    = new ZipArchive();
$zip->open($file); 
// 添加文件
// 由于apk限定只能修改此目录内的文件,否则会报无效apk包
$zip->addFromString(‘META-INF/extends.json‘, json_encode(array(‘author‘=>‘deeka‘)));
// 关闭zip
$zip->close();
// 下载文件
header("Content-Type: application/zip"); 
header("Content-Length: " . filesize($file)); 
header("Content-Disposition: attachment; filename=\"{$apk}\""); 
// 输出二进制流
readfile($file);
// 删除临时文件
unlink($file); 

  转自:http://www.hdj.me/custom-apk-by-php-ziparchive 方便以后使用

以上是关于实现自定义apk安装包的主要内容,如果未能解决你的问题,请参考以下文章

Gradle插件开发 APK瘦身资源自定义7z压缩

Gradle实现自动打包,签名,自定义apk文件名

VS Code中自定义Emmet代码片段

Visual Studio 自定义代码片段在方法定义的参数列表中不起作用

如何内置推广软件?如何安装本地apk?

VS中添加自定义代码片段——偷懒小技巧