다음에는 apk 파일의 디컴파일 전과 후의 비교와 파일의 의미에 대해 계속 설명하겠습니다. 이 튜토리얼에서는 비교적 간단한 애플리케이션인 "SD 카드 정리 도구"를 교육 소프트웨어로 사용합니다. (첨부파일은 소프트웨어, 영문)
A. 디컴파일하기 전에 먼저 파일 구조를 살펴보겠습니다. 그림에 표시된 대로:
B. 다음으로 디컴파일의 실제 동작에 대해 이야기한 후 디컴파일된 파일을 살펴보겠습니다
중국어1강에서 제공된 도구 [APK 디컴파일 및 컴파일 도구 v141]를 다운로드한 후 새 폴더(apktool이라는 이름)를 만든 다음 그 폴더에 apktool 도구를 넣고 디컴파일해야 하는 APK, 즉 알림 표시줄 단축키 스위치인NotificationToggle을 apktool 폴더에 넣고 이름을 바꾸는 것이 가장 좋습니다. 123.apk로 이동한 다음 apktool을 클릭합니다. v1.4.1을 사용하고 위의 메시지에 따라 APK 디컴파일, 컴파일(백 컴파일), 서명 및 기타 작업을 완료하세요.
도구의 작업 소개는 이미 매우 상세하기 때문에 너무 많이 설명하지 않겠습니다. 다음 인터페이스가 나타나면
C가 성공적으로 디컴파일되었음을 의미합니다. 다음으로 디컴파일된 파일과 원본 파일의 차이점을 살펴보겠습니다.
디컴파일 전과 후의 파일을 비교하면 파일의 변경 사항을 확인할 수 있습니다.
디. 다음으로, 이 파일들의 기능에 대해 전반적으로 이해해 봅시다:
그 중에는 META-INF와 res라는 두 개의 폴더와 AndroidManifest가 있습니다. xml, 클래스. 덱스와 자원. 이 세 개의 arsc 파일은 모든 소프트웨어에 포함되어 있습니다. 즉, 필요합니다! 일부 소프트웨어에는 자산이 있고 일부 소프트웨어에는 자산이 없습니다. 주로 일반 프로그램에서는 발견되지 않지만 주로 게임에서 발견되는 일부 리소스 파일을 저장합니다. 일부 소프트웨어에는 다른 파일 등도 있습니다.
META-INF 디렉토리에는 apk 패키지의 무결성과 시스템 보안을 보장하는 데 사용되는 서명 정보가 저장됩니다.
res 디렉터리에는 리소스 파일이 저장됩니다. 소프트웨어마다 res 디렉토리에 다른 폴더가 있습니다. 일반적으로
drawable(그림이 있는 폴더)
drawable-hdpi(고해상도 이미지가 있는 폴더)
layout(인터페이스 레이아웃 xml 파일이 있는 폴더)
layout-hdpi(고해상도 인터페이스 레이아웃 xml 파일이 있는 폴더)입니다. 이는 이 프로그램에 포함되어 있지 않습니다. 많은 프로그램에서 발견됨)
menu(일부 메뉴 파일이 있는 디렉터리는 이 프로그램에서는 찾을 수 없지만 많은 프로그램에서 발견됨)
raw(도움말 문서나 기타 리소스(예: help.html; clock.zip, 이 프로그램에서는 찾을 수 없음)를 저장하는 폴더)
xml(다른 일부 xml 파일이 있는 디렉터리)
이 튜토리얼의 [SD 카드 정리 도구] 예제에는 andmin, drawable, drawable-hdpi, 레이아웃, 메뉴, 값 및 xml 파일.
drawable 이 폴더는 일반적으로 소프트웨어의 그림을 저장합니다. 일부 소프트웨어로 사진을 수정하려면 여기에서 찾으세요! 일반적으로 일부 작은 게임의 경우 수정해야 할 그림이 이 폴더에서 찾을 수 있습니다.
다른 폴더에는 일부 XML 파일이 저장되어 있으며 중국어화해야 하는 위치도 있습니다.
AndroidManifest. xml은 모든 애플리케이션에서 정의하고 포함해야 하는 기본 XML 파일입니다. 애플리케이션의 이름, 버전, 권한, 참조 라이브러리 파일 및 기타 정보를 설명합니다. 기본적으로 중국어화할 필요는 없지만 이 메인 XML에는 매우 개별적인 소프트웨어의 소프트웨어 이름이나 개별 단어가 존재하게 됩니다!
classes. dex는 자바 소스 코드를 컴파일한 후 생성된 자바 바이트코드 파일입니다. 일반인의 용어로 말하면 전체 소프트웨어의 소스 코드 파일입니다.
APKTOOL의 주요 중국어 버전은 다음과 같습니다(아래 그림)
---------------------------------------------------------------------------------------------------------------------
참고: 디컴파일 소프트웨어(apktool의 여러 버전이 있음) 이 튜토리얼에서는 APK 디컴파일 및 컴파일 도구 v141을 예로 사용합니다.