complie(*.java, *.xml) => *.class(여러개의 파일) dex tool(*.class) => *.dex(1개의 파일) make_apk(*.dex,*.xml,*.resource) => *.apk(1개의 파일) |
NDK 샘플 프로젝트 폴더에서 "D:\Android\NDK\ndk-build.cmd"를 실행하면,
(배치 파일로 만들어서 실행. 또는 바로가기=시작위치 없게 만들면 된다.)
obj, libs 폴더가 생성된다.
폴더안에는 *.so파일이 CPU종류별로 생성된다.
PATH=%PATH%;D:\Android\sdk\build-tools\android-4.4W
aapt.exe list bin\Plasma.apk > list.txt
AndroidManifest.xml resources.arsc classes.dex lib/armeabi/gdbserver lib/armeabi/libplasma.so lib/armeabi-v7a/gdbserver lib/armeabi-v7a/libplasma.so lib/mips/gdbserver lib/mips/libplasma.so lib/x86/gdbserver lib/x86/libplasma.so META-INF/MANIFEST.MF META-INF/CERT.SF META-INF/CERT.RSA
|
APK파일은 zip압축파일이다. 7zip 같은 프로그램으로 압축을 풀 수 있다.(확장자를 zip으로 바꾸면된다)
위의 내용은 압축을 푼것과 동일하다.
거꾸로, 압축파일을 만들고, 확장자를 APK로 변환해도 실행가능할까?
APK를 만든후, keystore프로그램으로 서명을 해주어야 배포 가능해진다. 서명방법
classes.dex : 파일에 자바코드가 들어 있고, 자바소스로 변환도 가능 하다.(자바 디컴파일러)
달빅 가상머신에서 동작하는 바이너리 실행 파일.
AndroidManifest.xml : 앱에 대한 정보 및 실행권한 등의 정보를 가지는 xml
*.so : 윈도우에서 DLL파일과 같은 개념. 동적 라이브러리. NDK로 생성한 코드가 들어 있다.
ProGuard : 코드난독화 방법(별로 효과가 없다고 함)
안드로이드 앱 난독화(Proguard & Dexguard)를 해보자! 1. 프로가드 편 ...
Shrink Your Code and Resources | Android Studio - Android Developers
덩치의 안드로이드 스터디 :: Proguard를 이용해 코드난독화 적용하기
Naked Foot :: APK 디컴파일 및 ProGuard 사용하기.
ProGuard (software) - Wikipedia
'안드로이드' 카테고리의 다른 글
안드로이드 - assets 폴더 (0) | 2017.02.05 |
---|---|
ant로 안드로이드 앱을 자동으로 빌드하자 (0) | 2017.02.04 |
안드로이드 - keystore 파일 (0) | 2017.02.04 |
안드로이드 NDK 컴파일 환경 구축2 (0) | 2017.01.28 |
안드로이드 AssetManager (0) | 2016.11.29 |