引言

針對apk,我能說總是安裝,并不了解在其中有哪些內容必須記下來。此次企業做一個有關網絡機頂盒的新項目。針對這一生疏的新項目,一開始簡直一臉懵逼,徹底不清楚怎樣著手。

由于這種的新項目徹底沒有觸碰過,并且在網上搜一下也看不見這種的開發流程和要求。還行企業有一個老濕機帶帶我。廢話不多說,搞起來。

?

TP5獲得上傳文件并認證

tp5獲得上傳文件能夠說成非常的簡易,(留意這里的$file的種類是tp5封裝的File)

$file = $this->request->file('file');

那樣就可以立即的獲得提交的文檔,簡易的麻煩。

最先認證文檔是不是提交了而且是不是為空。

if (false === ($file instanceof File)) {
  //文檔為空,拋出現異常/業務流程解決
}

隨后便是認證文檔的種類了,apk的新聞媒體信息內容實際上便是zip,千萬別應用文件后綴名開展分辨啊。年青的我便是用后綴名開展分辨的。

老濕機見到就提議我應用getMime方式獲得文檔的新聞媒體開展開展配對。(getMime歸屬于tp5 File的封裝方式)

if ('application/zip' !== $file->getMime()) {
  //文件屬性不正確,拋出現異常/業務流程解決
}

?

tufanbarisyildirim

添加composer

"require": {
        "tufanbarisyildirim/php-apk-parser":"dev-master"
    }

隨后到新項目途徑安裝一下,沒安裝composer就安裝composer或是立即從在網上拉咯。

composer install

?

Parser分析apk

Parser坐落于 ApkParser文件目錄下,實例化時只必須傳到apk的全路徑名

$apkParser = new \ApkParser\Parser($file->getPathname());

?

下列為獲得apk中的主要參數

$apkParser->getManifest()->getPackageName(); //獲得apk包名
$apkParser->getManifest()->getVersionCode(); //獲得apk版本信息
$apkParser->getManifest()->getVersionName(); //獲得apk版本號名字

$apkParser->getManifest()->getMinSdk(); // 適用最少sdk的服務平臺
$apkParser->getManifest()->getMinSdkLevel(); // 適用最少sdk的版本號
$apkParser->getManifest()->getTargetSdk(); // 總體目標Sdk的服務平臺
$apkParser->getManifest()->getTargetSdkLevel(); //總體目標sdk的版本號

$labelIndex = $apkParser->getManifest()->getApplication()->getLabel(); //獲得運用名字的數據庫索引
$apkParser->getResources($labelIndex); //獲得運用名字的數字能量數組

$iconIndex = $apkParser->getManifest()->getApplication()->getIcon();//獲得標志的數據庫索引
$icons = $apkParser->getResources($iconIndex); //獲得標志途徑的數字能量數組
file_put_contents('儲存icon標志的全路徑名', stream_get_contents($apkParser->getStream($icons[0]))); //把第一個標志變為流后儲存到相對的文件目錄

?

本人應用這一控制時碰到點難題,便是運用名字數字能量數組,我怎樣才能了解運用名字相匹配的語言呢?由于運用名字中很有可能有簡體中文版、繁體版、英語等。我怎樣才能取下簡體中文版的運用名字呢?

emmmm,假如諸位應用過的巨頭了解得話,能否在發表評論寫出。特別感謝。

?

最終,謝謝諸位巨頭賞光看我的網站。假如對文章內容有沒有什么能夠改善的地區,請盡量在發表評論寫出,或至電子郵件到821312534@qq.com,特別感謝。