Liliniser
10.09.05
조회 수 50873
추천 수 10
댓글 28
<###
odex 파일에 관한 일반적인 설명 ###>


기본적으로 안드로이드는 자바 기반의
가상머신을 프로그램 실행의 기본으로 삼습니다. 이녀석이 바로 Dalvik이라는 넘입니다.
dex파일이란 녀석은 달빅머신에 의해 사용되는
Dalvik-cache 를 포함하고 있는데요. 이는 apk파일 안에 들어있습니다.

odex파일은 dex파일을 기기 특성에 맞게
최적화하여수정하여 apk의 안에 넣지 않고 apk와 나란히 저장되는 녀석이고, 기본 시스템 어플리케이션들은 모두 apk+odex 형식으로
저장되어 있습니다.

하나의 odex 파일이 생성될 때 BOOTCLASSPATH라는 파일을
불러오고 여기서 이 odex는 해당 BOOTCLASSPATH 파일들에 의존성을 가지게 됩니다. 그러므로
이 odex가 유효하게 사용되기 위해서는 의존성을 가지는 정확한 BOOTCLASSPATH 파일들이 함께 하여야만 하는
것이지요
.
Dalvik은 각각의 odex 파일이 의존하고 있는 녀석들의 checksum을 저장하고 있다가 해당 odex
파일이 사용될 때 BOOTCLASSPATH와의 checksum이 매치가 되는지 단단히 확인을 합니다.

BOOTCLASSPATH는
메인 어플/jar가 로드될 때 추가적으로 클래스를 불러올 수 있는 jar와 어플들의 리스트입니다.
보통의 안드로이드 시스템에는 5개의 기본
BOOTCLASSPATH가 있습니다.
android.policy.jar, services.jar> (-> /system/framework 에 있는 것들이죠)
기본
BOOTCLASSPATH라 함은, 모든 어플들이 이 5개를 기본적으로 참조한다는 말이겠죠?
그러나 몇몇 어플들은 이 기본 jar들 외에
다른 녀석에게 의존성을 가지기도 합니다.
예를 들어보면, 구글 지도를 사용하는 어플리케이션은 위의 기본 5개외에
com.google.android.maps.jar 라는 파일에 의존성을 가지고 있으므로 이를 반드시 BOOTCLASSPATH에 추가해 주어야
한다는 것입니다.

이런 odex의 의존성은 여러 가지 불편한 점이 있습니다.
1) 예를 들어 갤럭시S의
apk+odex를 갤럭시K에 가져와서 실행할 수 없습니다. (익히 알고 계시죠?)
-->> 이 것이 가능하려면
갤럭시K가 갤럭시S와 똑같은 프레임워크 파일들을 사용해야 합니다.
2) BOOTCLASSPATH중 하나에 수정을 가하게 되면 이
녀석에 의존하고 있는 모든 odex 파일들이 사용 불가가 됩니다.


<### Deodex란? ###>

Deodex를 한다는 것은
이렇게 밖으로 나와있는 odex파일들을 apk파일 안으로 되돌려 넣는다는 것을 말합니다. 이를 적용하게 되면 기본적으로 odex파일을 걱정할
필요 없이 쉽게 파일들을 바꿀 수 있습니다. 하지만 이 행위의 주된 목적은 services.jar파일을 deodex함으로써 모든 텍스트의
색깔같은 테마를 변경하는 것이 가능하게 하는 것입니다.
많은 테마변경을 하고자
한다면 롬은 반드시 deodex가 되어야 합니다. 예를 들자면 커스텀 lockscreen 같은 것들은 보통 deodex된 롬을 필요로 합니다.
deodex를 하지 않고서도 몇 가지 테마 수정을 할 수는 있지만, deodex를 하게 됨으로써 더욱 더 많은 변경을 할 수
있습니다.


deodex는 단지 위의 조각들을 원래 어플의 안으로 되돌려 넣는 행위입니다. 이로 인한 장점은
어플들이 효과적으로 수정될 수 있는 점과, 개발자들로 하여금 나눠져 있는 코드의 odex부분때문에 곯머리 썩지 않아도 된다는
것입니다.


결론은 deodex는 odex를 dex로
재컴파일한 다음에 apk 안에 다시 쑤셔 넣는 것을 말합니다.


<### Zipalign이란? ###>

Zipalign을 하게 됨으로써 안드로이드는 어플리케이션과 조금 더 효율적으로 상호작용을 할
수 있게 됩니다. 따라서 이로 인해 전체적인 시스템과 어플리케이션의 실행을 빠르게 할 수 있습니다. 구글에서는 Zipalign을 강하게
권유하는군요. 그래서 했습니다. -_-)

안드로이드에선, 각각의 어플에 적재된 데이터 파일들이 다중 프로세스에 의해 이용됩니다. 홈
어플리케이션은 다른 어플의 이름과 아이콘에 관한 자원을 읽어들이고, 시스템 서버는 다양한 이유때문에 어플의 자원을 읽습니다. 그리고 명백하게,
어플 자기 자신도 자원들을 읽습니다.
안드로이드의 이 자원관리 코드는 4바이트 경계들로 메모리-맵핑
(Wh.....What?..-0-)되었을 때 효율적으로 이용될 수 있습니다. 하지만 이 자원들이 4바이트 정렬이 되지 않는다면, 즉
zipalign이 되지 않는다면, 이를 명확하게 읽기 위한 과정이 필요하므로 약간의 느려짐과 추가적인 메모리 소비를
보입니다.

따라서 우리는 zipalign 툴을 이용해 어플리케이션 자원들을 4바이트로 정렬하는 것입니다.


댓글 28
댓글 쓰기 권한이 없습니다.
List of Articles
제목 글쓴이 추천 조회 날짜
일상 갤럭시s 진저 정펌 보내드립니다:) 411 아린이습 44 3004721 2011.05.17
게임 미르4 신규 직업 석궁사 업데이트 소식 1 file 신본기 1229151 2021.05.20
일상 커스텀셋팅 Ver2 메뉴얼 [ ICS 지원중... ] 674 file 떡  105 1064891 2011.10.28
일상 기본어플 삭제했는데 안지워졌어요.. 1 브렘보 857256 2010.09.21
일상 유저 포럼 내 질문 및 요청에 대한 무통보 삭제 / 신고 기준입니다. 61 berics 67 710852 2013.07.08
일상 [ 루팅 하는 방법 ] 54 벼리 375 390142 2010.12.13
일상 [2015.8월 대개편 작업] 사이트 내 불편함과 업데이트에 대해서.... 26 berics 31 274472 2015.07.14
일상 [2015.8월 대개편 작업] 맛클 작업 스케줄과 리스트 26 file berics 23 262311 2015.07.18
일상 테마 스토어 830 떡  49 209147 2010.11.16
일상 [ 2011/12/09 ] 테마스토어 정상화 파일 823 file 떡  379 165067 2011.09.01
일상 [5/4 업뎃] 테마스토어 주요 기능 안내 16 떡  10 150258 2011.03.14
일상 [8/1일 업뎃 - SKT 갤스, 갤2] 맛클 커스텀 셋팅 537 file 떡  106 133149 2011.05.10
일상 기기별 테마스토어 테스터 뽑습니다. 64 떡  10 100601 2011.02.09
일상 [정식펌] M110S-Gingerbread-HOME-IMAGE-REV03.. 564 file 박흰둥 191 81584 2011.05.17
일상 부팅화면 변경 / 업로드 방법 9 file 떡  6 76703 2011.02.09
일상 [ 시스템(/system) 상태 : 비정상 해결방안 ] 258 file 벼리 11 74068 2010.12.06
게임 라그나로크X 요즘들어 file 일라플 73571 2023.04.04
일상 배터리 아이콘 등록방법 18 file 떡  5 73544 2011.02.02
일상 계정 정지먹었어요. / 내맘대로 잠금화면, KIED 마켓 게시 122 떡  16 72726 2011.07.26
일상 데이터 무제한할인기간 끝라고 바꿔쓸만한 이벤트 다시 시작했네요 file 팰리스타 69905 2024.01.08
게임 겜 자체를 야하게 만들긴했네;; 1 file 거북이목 66322 2024.01.09
일상 애니메이션 바꾸기 기능 추가 완료. [ 스샷설명 ] 153 file 떡  46 65674 2010.12.26
게임 아크마스터 기대해보셈 file 칠린호미 1 65622 2023.03.24
소식 전국 3사 대란 가격 공지 [ 폴드5 플립5 S23 아이폰15 미친 가격 ] 성지투어 65318 2024.01.04
일상 테마스토어 4.3.13 버전 449 file 떡  118 64828 2012.04.04
일상 밀리의 서재 무료구독권 file 팰리스타 63960 2024.02.02
일상 전국 3사 대란 가격 공지 [ 폴드5 플립5 S23 아이폰15 미친 가격 ] 성지투어 63811 2023.11.05
일상 Wifi아이콘 추가방법 12 file 떡  7 63717 2011.01.30
일상 갤럭시S24 대란 성지 가격 ㄷ ㄷ ㄷ 성지투어 63370 2024.02.02
게임 아도르 수호의 여신이라는 게임인데 file 산리오 63203 2024.01.12
1 - 5850