引言

针对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,特别感谢。