本文實例講述了php自定義apk安裝包的方法,分享給大家供大家參考。具體實現方法如下:
眾所周知,apk格式安裝文件是android智能系統的安裝文件,下面我們來看一個利用php實現自定義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);
希望本文所述對大家的php程序設計有所幫助。
你現在的做法是唯一可行的做法了,只能讓APK定時刷新,除非APK和服務器保持連接不斷開,否則服務器的PHP是服務去找到APK的,因為你的APK不是服務器,不能反過來執行。
如果要減輕服務器壓力,那就必須把你的APK做成一個服務器,偵聽一個網絡端口,允許網絡上的其它設備來連接。不過這個工程會很大,APK和PHP的邏輯都會變得非常復雜,因為PHP要在需要的時候來找APK,如果手機關機還得延時再來,而APK為了隨時等待PHP來連接,要以服務方式工作,隨時待命。
php文件是動態網頁,下載的php文件中記錄的是apk文件的地址。你只能點擊它打開網頁再下載。以後下載時,點鏈接右鍵,看屬性,如果地址欄結尾是apk的話,就可以用你的方法,不是的話需要點開這個鏈接,繼續找.....