php实现自定义apk安装包

apk格式安装文件是android智能系统的安装文件了,下面我们来看一个利用php实现自定义apk安装包例子,希望能帮助到各位.

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

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

实现代码如下:

  1. // 源文件
  2. $apk = "gb.apk";
  3. // 生成临时文件
  4. $file = tempnam("tmp", "zip");
  5. // 复制文件
  6. if(false===file_put_contents($file, file_get_contents($apk))){
  7. exit('copy faild!');
  8. }
  9. // 打开临时文件
  10. $zip = new ZipArchive();
  11. $zip->open($file);
  12. // 添加文件
  13. // 由于apk限定只能修改此目录内的文件,否则会报无效apk包
  14. $zip->addFromString('META-INF/extends.json', json_encode(array('author'=>'deeka')));//开源代码phpfensi.com
  15. // 关闭zip
  16. $zip->close();
  17. // 下载文件
  18. header("Content-Type: application/zip");
  19. header("Content-Length: " . filesize($file));
  20. header("Content-Disposition: attachment; filename=\"{$apk}\"");
  21. // 输出二进制流
  22. readfile($file);
  23. // 删除临时文件
  24. unlink($file);