Decompile - 디컴파일
Decompile을 하는 이유는 간단하다. 소스를 보기 위해서....
apk파일을 열어보면 xml은 깨져있고 java파일은 보이지도 않는다.
소스를 보기 위해서는 어떻게 해야할까?
알고있는 몇가지를 포스팅해본다.
- dex2jar
https://github.com/pxb1988/dex2jar
실행파일을 미러사이트에서 받으면 된다.
압축을 풀면 위와 같은 파일들을 볼 수 있다.
다음으로 apk에서 classes.dex파일을 추출하여 위 폴더에다 넣는다.
해당 폴더의 경로에서 d2j-dex2jar.bat classes.dex 를 입력하면 dex파일을 jar파일로 변환시켜준다.
변환된 jar파일의 압축을 풀면 java파일을 볼수가 있다.
- smali2java
dex2jar에 GUI까지 더해진 것이라 생각하면 된다.
단지 apk파일을 오픈하는 것만으로 java파일을 볼 수 있다.
- apk tool
http://ibotpeaches.github.io/Apktool/
파일을 다운받고 압축을 푼뒤 apk도 같은 폴더에 이동시킨다.
해당 위치에서 java -jar apktool.jar d [파일명].apk 를 입력하면 된다.
apk tool은 java파일을 볼 수가 없다.
apk tool은 xml등 리소스를 보기 위함이다.
해당 레이아웃을 어떻게 조정했는지 어떤 애니메이션을 사용했는지를 참고하는데 유용할 것이다.
이 외에도 decompile 툴이 존재하지만 대략적으로 많이 사용하는 방법을 올려보았다.
요즘은 proguard 등 코드 난독화 및 압축을 하기 때문에 소스 보기가 쉽지는 않다.
출처: https://akaisun.tistory.com/15?category=622886 [아카이의 개발창고]
'안드로이드 > 개발 TIP' 카테고리의 다른 글
photoview library (0) | 2020.12.09 |
---|---|
구글맵 사용하기 (0) | 2020.12.09 |
Goolgle map api 설정 (0) | 2020.12.09 |
내 주변의 와이파이 목록 가져오기 (0) | 2020.12.09 |
Resource 배열처리 (0) | 2020.12.09 |
안드로이드 비디오 재생하기 (0) | 2020.12.09 |
이미지 선택시 번호 표시하기 (0) | 2020.12.09 |
ButterKnife 사용하기 (0) | 2020.12.09 |