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