>  기사  >  백엔드 개발  >  ThinkPHP5.1과 tufanbarisyildirim을 능숙하게 사용하여 apk를 빠르게 분석하세요

ThinkPHP5.1과 tufanbarisyildirim을 능숙하게 사용하여 apk를 빠르게 분석하세요

little bottle
little bottle앞으로
2019-04-20 17:48:283030검색

apk의 경우 설치만 한다고 할 수 있는데 어떤 콘텐츠를 녹화해야 할지 모르겠습니다. 왜냐하면 저는 이런 유형의 프로젝트를 접해본 적이 없고, 온라인에서 검색해도 이러한 유형의 개발 프로세스와 요구 사항을 찾을 수 없기 때문입니다. 이 기사의 주요 내용은 ThinkPHP5.1과 tufanbarisyildirim을 사용하여 apk를 구문 분석하는 것에 관한 것입니다. 관심 있는 친구들이 와서 배울 수 있습니다.

TP5는 업로드된 파일을 가져오고 확인합니다

tp5는 업로드된 파일을 가져오는 것이 매우 간단하다고 할 수 있습니다. (여기서 $file 유형은 tp5에 의해 캡슐화된 파일이라는 점에 유의하세요.)


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

이렇게 하면 업로드된 파일을 직접 가져오는 것은 정말 힘든 일입니다.

먼저 파일이 업로드되었는지, 비어 있는지 확인하세요.


if (false === ($file instanceof File)) {
  //文件为空,抛异常/业务处理}

다음 단계는 파일 형식을 확인하는 것입니다. apk의 미디어 정보는 실제로 zip으로 판단됩니다. 나는 어렸을 때 접미사를 사용하여 판단했습니다.

숙련된 드라이버가 getMime 메서드를 사용하여 일치할 파일의 미디어를 가져오라고 제안했습니다. (getMime은 tp5 File의 패키징 방식에 속함)


if ('application/zip' !== $file->getMime()) {
  //文件类型错误,抛异常/业务处理}

tufanbarisyildirim

Join Composer


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

그런 다음 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]))); //把第1个图标转为流后保存到相应的目录

의 매개변수는 애플리케이션 이름 배열인 이 컨트롤을 사용할 때 개인적으로 문제가 발생했습니다. 애플리케이션 이름에 해당하는 언어를 어떻게 알 수 있나요? 애플리케이션 이름에 중국어 간체, 중국어 번체, 영어 등이 포함될 수 있기 때문입니다. 중국어 간체로 애플리케이션 이름을 추출하려면 어떻게 해야 합니까?

관련 튜토리얼: PHP 비디오 튜토리얼

위 내용은 ThinkPHP5.1과 tufanbarisyildirim을 능숙하게 사용하여 apk를 빠르게 분석하세요의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제