• 1나루토매니아
  • 2뱅이
  • 3푸타코타
  • 4완벽그자체
  • 5해삼
  • 1뱅이
  • 2나루토매니아
  • 3알짜배기
  • 4뱅이
  • 5빙그레우유
이클립스 내에서 안드로이드 제공하는 소스 난독화(ProGuard) 적용
연속출석 :
1일 랭킹 : 399위 중장7
45%
45% (1541 /3455)
  • 댓글 0 |
  • 추천 0 |
  • 조회 5221 |
  • 2012-08-07 (화) 15:35
    이미 알고 계신 분들도 계시겠지만, 저 같이 모르고 찾아 헤메시는 분이 없으시도록 하고자 글을 올립니다.

    안드로이드에서 제공하는 ProGuard 적용 시 개발자 사이트(http://developer.android.com/guide/developing/tools/proguard.html#configuring)를 보면 상당히 쉽다고 나오네요

    핵심은 project.properties 파일에 proguard.config=proguard.cfg만 추가하면 된다 입니다.

    정확한 ADT 버전은 확인되지 않으나, 최신 버전(Android Development Tools 18.0.0.v201203301601-306762 com.android.ide.eclipse.adt.feature.group) 내에서는 프로젝트 생성 시 proguard.cfg 파일이 생성되지 않습니다.
    하지만 지난 프로젝트 코드들을 살펴 보니, proguard.cfg 파일이 존재하는 것이 있는 것으로 봐서는
    개발 가이드가 틀렸다고는 얘기하긴 좀 애매하네요
    한 마디로 틀린 것이 아니라 개발 가이드를 현행화 하지 않았다가 맞을 듯 싶네요

    개발 가이드만 보고 적용했다고 제가 놓친 부분은 2가지 입니다.

    1. 안드로이드에서 제공하는 proguard는 릴리즈 버전에만 적용이 된다.
    단순히 이클립스 내서에 clean, build 시에는 적용이 되지 않습니다.

    Android Tools의 Signed/Unsigned Application Package... 를 수행하여야만 적용이 됩니다.

    하지만 막상 개발 가이드를 따라 하다보면 package를 수행할 때 proguard.cfg파일이 없다고 나오게 됩니다.

    2. ProGuard가 Version up이 되었고, ADT 업데이트로 변동 사항이 생겼다.
    최신 버전은 V.4.8입니다.
    안드로이드가 릴리즈 되면서 ProGuard 업데이트가 이뤄진 듯 하나, 릴리즈 노트에는 명시가 빠진 듯 하네요
    (제가 잘 못찾는 것일 수도 있습니다... ^^)

    일단 최신 버전에서 프로젝트 생성 시, proguard.cfg 파일은 생성이 되지 않습니다.
    대신 proguard-project.txt파일이 생성됩니다.
    그리고 project.properties를 보시면 아래와 같이 명시 되어 있습니다.

    # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
    #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt

    즉 단순히 proguard.config가 주석으로 막혀 있는 것을 풀기만 하면 package시 정상적으로
    proguard 폴더가 생성 되며, 내부에 4개의 txt 파일이 생성이 됩니다.

    참고로
    {sdk.dir}/tools/proguard/proguard-android.txt 이 파일은 안드로이드 프로젝트 공통 룰이 작성이 되어 있습니다.
    Activity는 유지한다던지.. 등등의 룰이 적용되어 있습니다.
    공통이라는 것은 딱히 수정이 필요치 않으면 변경을 하지 않아도 된다라는 의미겠죠..
    대신 생성된 프로젝트 내의 룰을 추가하기 위해선 proguard-project.txt 에 등록하면 됩니다.

    앞서도 말씀 드렸지만, 별로 중요하거나 새로운 내용이 아니겠지만,
    저처럼 얕은 지식으로 헤메시는 분이 않계시길 바라며 남깁니다.

    좋은 하루들 되세요
     


    [이 게시물은 더어플님에 의해 2016-07-12 15:23:56 개발 꿀팁에서 복사 됨]
    댓글을 작성하시려면 로그인을 하셔야지만 작성가능합니다. [로그인하기] [회원가입하기]
    번호 제목 글쓴이 추천 조회 작성일
    188 갤스2 CM9 MOD - 중앙시계 및 상태바 기능 확장 GNCkorea 0 6463 12/08/04
    187 갤럭시S II, 테이크 야누스, 이보 4G+, 아트릭스 - 무선… +2 GNCkorea 1 6398 12/08/01
    186 Android Virtual Device(AVD) 사용법 GNCkorea 1 6375 12/08/09
    185 패턴암호 등 잃어버렸을때 해제하는 방법(팁) GNCkorea 0 6359 12/08/05
    184 스마트빔은 안드로이드빔과 다른 기능인가요? +13 GNCkorea 4 6291 13/03/18
    183 아이폰에서 아이폰 5까지… 한 눈에 보는 요소별 사양 진화 +3 GNCkorea 0 6164 12/09/16
    182 갤럭시S3 LTE - 동영상 및 전면 카메라 기능 보기 +1 GNCkorea 1 5991 12/07/31
    181 [삼성갤럭시 ]갤럭시 노트의 숨겨진 기능 10가지 (NEW) +6 GNCkorea 3 5956 12/09/16
    180 갤럭시S3 번인현상 확인하는 방법 - 단점, 오류, 불량 +1 GNCkorea 1 5946 12/07/31
    179 팬택 스카이 베가 레이서2 - 베가 레이서2에 들어간 스… +2 GNCkorea 2 5559 12/08/01
    178 ZXing 바코드 스캔부분 크기 조절하기. GNCkorea 0 5447 12/08/10
    177 OS X 10.8 마운틴 라이온을 손쉽게 USB 드라이브 또는 D… +1 GNCkorea 1 5358 12/07/27
    176 갤럭시S3 LTE - 그래픽 및 배터리 시간 테스트 +2 GNCkorea 1 5271 12/07/31
    175 아이패드 충전/데이터 케이블 구입시 주의사항 GNCkorea 0 5241 12/08/01
    174 폰의 하드웨어 제어관련 혹은 하드웨어접근관련 앱 제작… GNCkorea 1 5240 12/08/10
    173 이클립스 내에서 안드로이드 제공하는 소스 난독화(ProG… GNCkorea 0 5226 12/08/07
    172 LG 옵티머스 LTE2 - 기기정보 +1 GNCkorea 1 5190 12/07/31
    171 팬택 스카이 베가 레이서2 - 음성인식 기능과 베가 클라… +2 GNCkorea 2 5171 12/08/01
    170 ViewPager의 아이템 얻어오기. GNCkorea 1 5150 12/08/10
    169 스마트폰을 더 스마트하게 사용하는 방법 4가지 +21 GNCkorea 13 5111 13/03/18
    168 윈도우에서 사진스트림 업로드가 안되는 이유와 간단한 … +3 GNCkorea 1 5083 12/07/29
    167 안드로이드 강좌 5 - XML에서의 TextView, ImageView, L… GNCkorea 1 5062 12/08/09
    166 데이터 네트워크(3G, 4G)로 셀프 업그레이드 하는 방법 +14 GNCkorea 5 5037 13/03/18
    165 갤럭시S3 LTE SKT 대기상태표기버그 수정본 + 소프트키 … GNCkorea 0 5008 12/08/08
    164 안드로이드 강좌 4 - 액티비티(Activity), 뷰(View), 레… GNCkorea 1 5008 12/08/09
    163 안드로이드 개발 시, Selector XML을 편하게 만들어봅시… GNCkorea 1 5006 12/08/10
    162 GPS 휴대폰, 활용하는 방법 +15 GNCkorea 4 4967 13/03/18
    161 스마트폰, 구글 기본 서비스 110% 활용하기 +17 GNCkorea 6 4942 13/03/18