Programming/android2010. 9. 5. 02:01
혹시나 해서 헤더를 봤더니 역시나.. PK로 시작한다(즉, ZIP 압축파일)
그래서 빵집으로 보면 내용이 보인다!



아마도 자바의 jar과 유사한것으로 생각을 했는데, 영문 위키를 보니

An .apk file extension denotes an Android Package (APK) file. This file format, a variant of the JAR format, is used for the distribution and installation of bundled components onto the Android mobile device platform

An APK file is an archive that usually contains the following:

  • AndroidManifest.xml
  • classes.dex
  • resources.arsc
  • res (folder)
  • META-INF (folder)

An .apk file can be opened and inspected using common archive tools such as 7-Zip, Winzip, Winrar and Ark.


[링크 : http://en.wikipedia.org/wiki/APK_%28file_format%29]
머.. 새삼스러운 내용도 아니지만, 그래도 일단 신기신기!



Posted by 구차니

댓글을 달아 주세요

  1. Java나 안드로이드 버전에 따라, APK 파일을 잘 볼 수 없을 경우도 있지만
    우선은 http://www.jopenbusiness.com/mediawiki/index.php/Android#apk_Decompile 를 참조하세요.

    2010.12.13 09:00 [ ADDR : EDIT/ DEL : REPLY ]
    • 그러고 보니 예전에 class 파일을 디컴파일 하는 녀석도 하드 어딘가 잠들어 있는거 같은데 혹시 산사랑님 필요하신가요?

      2010.12.13 20:01 신고 [ ADDR : EDIT/ DEL ]
  2. 저도 class 파일 디컴파일 하는 녀석을 키우고 있답니다.
    ㅋㅋ

    2010.12.14 10:24 [ ADDR : EDIT/ DEL : REPLY ]

Programming/android2010. 9. 5. 01:52
SDK를 설치하고, ddms.bat를 실행하면 Dalvik Debug Monitor가 실행되는데

"Device - File Explorer"을 구동하면 별도의 프로그램 설치없이 핸드폰 내부의 내용을 볼수있다.
물론, 프로그램을 받아서 실행해도 권한문제로 볼수 없는 부분이 많고, 디버거에서도 sbin이나 root 등은 보여지지 않는다 -_-

아무튼, /system 에는 안드로이드 시스템의 프로그램들이 설치되는데

/system/bin 에는 파일명들로 봐서는 일반 리눅스 시스템의 /bin과 유사해 보인다.
(그러니까 각종 시스템 실행파일들이 존재한다. 내려가면 ls 라던가 ifconfig 등도 보인다.)

그리고 마켓을 통해 다운받은 프로그램은 인스톨러 버전이고, 이녀석들은 /system/app 에 저장된다. (오홍!)
apk가 유포되는데 아마 이것을 통해서 뺴내는 것으로 생각된다.
(해보지는 않았지만, 유료어플도 이런걸로 빼면 다른 데서 실행이 되려나?)


Posted by 구차니

댓글을 달아 주세요

Programming/android2010. 9. 5. 01:46
안드로이드 폰에서 "설정 - 응용프로그램 - 개발"에 보면 "모의 위치 허용" 이라는 것이 있다.
도대체 머하는 녀석인지 궁금증 발동!



개발 화면
개발 화면에는 Android 애플리케이션 개발에 유용한 설정이 들어 있습니다.
Android API 및 개발 도구에 대한 도움말을 비롯한 자세한 정보는 Android 개발자 웹사이트 (http://developer.android.com) 를 참조하세요 .

USB 디버깅
USB 연결을 통해 컴퓨터의 디버깅 도구가 휴대전화와 통신할 수 있도록 하려면 선택합니다 .

켜진 상태로 유지
휴대전화를 충전기에 연결하거나 전원을 공급하는 USB 장치에 연결했을 때 화면이 흐려지거나 잠기는 것을 방지하려면 선택합니다 . 고정된 이미지가 휴대전화에 장시간 표시된 상태로 이 설정을 사용하지 마세요 . 화면에 해당 이미지의 자국이 남을 수 있습니다 .

모의 위치 허용
휴대전화의 자체 내부 도구를 사용하는 것이 아니라 컴퓨터의 개발 도구가 휴대전화에서 인식하는 위치를 제어할 수 있도록 허용하려면 선택합니다 .

[링크 : www.google.com/googlephone/android-userguide_kr.pdf]

자세한 내용은 모르겠지만, 이걸 확인하면 개발도구에서(SDK) 핸드폰의 위치 정보를 변경이 가능한것으로 보인다.
예를들면, GPS의 값이나 혹은 핸드폰 기지국을 통해 받아오는 위치정보 이런게 변경될듯?


+

2017.01.25

[링크 : https://www.xda-developers.com/fake-android-location/]

[링크 : http://stackoverflow.com/questions/2531317/android-mock-location-on-device]


Posted by 구차니

댓글을 달아 주세요

Programming/android2010. 8. 29. 01:49
안드로이드 개발했던 선배에게 물어봤더니(그 선배는 아이퐁 씀 ㅋㅋㅋ)
AVD는 원래 1분 정도 켜지는 시간 걸리고, 안드로이드 폰 있으면
    1. 이클립스에서 AVD 한번만 켜 놓고, 계속 프로그램 전송해서 쓸수 있다는 것과
    2. 안드로이드 폰이 있다면, 이클립스에서 target을 AVD 를 끄고 핸드폰을 직접 선택해서 쓸수 있다는
정보를 입수했다.

Step 1. Run - Run Configureations

Step 2. Android Applicatio - Project name - Target 탭
           여기서 Automatic 에서 체크를 하나도 하지 않으면 된다.

           Manual로 했을 경우에는, Run 버튼을 누르면 아래와 같은 창이 뜨고,
           Choose a running Andoid device 중에 사용할 안드로이드 폰을 설정해주면 된다.
           물론, USB 드라이버 설치 / USB 디버그 모드 사용 / USB로 연결되어 있어야 한다.

아래는 Automatic 에서 아무것도 체크하지 않았을 경우 자동으로 장치를 찾아 구동하는 내용이다.


프로젝트 이름대로 프로그램이 설치가 되고,
프로그램 목록에 FirstProject 라는 녀석이, 응용 프로그램 관리에도 FirstProject 라는 녀석이 추가되었다.
Run을 하면, 당연히(!) FirstProejct가 실행된 화면이 나온다.(검은색 화면이라도, Lock을 풀면 실행되어 있다)



아무튼, Project - Properties - Android - Build Target 과는 관계가 없어 보인다.

Properties에서 체크가 하나라도 없으면 Apply도 OK도 활성화 되지 않는다.

Posted by 구차니

댓글을 달아 주세요

  1. 안드로이드 프로그래밍까지 하시는 건가요? 부럽습니다. ^^

    2010.08.30 13:52 신고 [ ADDR : EDIT/ DEL : REPLY ]
    • 취미죠 ^^;
      아직은 이쪽으로 나갈려고 하는게 아니구요.
      그냥 안드로이드폰 캡쳐하려다가, 그게 이미 개발환경이고.. OTL 머 그렇게 된거에요 ㅠ.ㅠ

      2010.08.30 19:58 신고 [ ADDR : EDIT/ DEL ]

Programming/android2010. 8. 28. 01:42
긴말할 필요없이 바로 고고싱

Step 1. File -  New - Project

Step 2. Android - Android Project

Step 3. 프로젝트 이름은 반드시 넣어야 하므로 프로젝트 이름을 넣어준다.
           물론 클래스 이름이 되는 구분자(identifier)이므로 공백이 들어가서는 안된다.
           (간단하게 프로젝트 명을 복사해서 Application / Activity 에는 그대로 붙여넣고,
            Package에는 com.Android.[프로젝트명] 으로 복사하면 된다.)

Step 4. 앞서 만들어놨던 AVD의 버전이 하나라면, 그 버전을 기억해 놨다가,
           Build Target의 버전을 생성한 AVD의 버전으로 선택해준다.
           2010/08/28 - [개소리 왈왈/핸드폰(안드로이드)] - AVD 에서 가상 안드로이드폰 구동시키기


Step 5. Application Name은 귀찮으니(!) Project name과 동일하게 복사해준다.

Step 6. 패키지 이름은 com.Android.ProjectName 으로 입력해주면 된다.
           다음은, Package name을 입력하면서 변화되는 경고의 내용이다.
           1. Package name must have at least two identifiers.
           2. A package name cannot start or end with a dot
           3. Activity name must be specified.
           4. A package name cannot start or end with a dot
           5. Activity name must be specified.



Step 7. Package name을 입력했다면, Activity 를 생성한다. 일단 Project name을 넣어준다.

Step 8. 위의 단계까지 하면 프로젝트가 생성이 되고, 아래의 단계의 Run(Ctrl - F11)을 누르면 된다.
           하지만 나의 경우에는 아래와 같은 에러와 함께 실행이 되지 않았으며

           에러의 내용은 다음과 같다. (라고는 하지만.. 별 도움은 안된다)

           아래와 같이 Build Path 에서 Order를 변경하는 방법도 있지만,
           [링크 : http://bum20.tistory.com/19]

           "Project - Clean..."을 해주어도 간단히 해결되었다.

           Clean 에서는 "Clean all projects"를 해준다.

Step 9. 컴파일이 이상없이 되었다면, Run As를 통해 실행을 한다. (단축키는 Ctrl - F11)
           안드로이드 프로그램이므로 "Android Application"을 선택한다.

Step 10. AVD가 구동되면서(1분은 기다려야 했음) 자동으로 프로젝트가 실행된다.

Step 11. 아래의 프로그램 목록중 하나로 추가되어 있는 모습이 보인다. (여기서는 FirstProject 라는 아이콘)

[링크 : http://www.winapi.co.kr/android/book/2-1-1.htm]
[링크 : http://www.winapi.co.kr/android/book/2-1-2.htm]


덧붙임 + 믿거나 말거나
    프로젝트 명을 대충짓다가, TestProejct 나 HelloWorld로 했더니 conflict 에러가 발생했다.
    모든 프로젝트나 jar 파일을 뒤진게 아니라 어디서 중복되어 있는지는 모르겠지만,
    TestProejct는 말그대로 프로젝트에서 테스트용으로 예약되어 있으므로 써서는 안되고
    HelloWorld는 HelloWorld 클래스가 아마도 존재하는지 안되는것으로 추측된다.
Posted by 구차니

댓글을 달아 주세요

  1. 오오.. 이클립스... cortex를 공부해볼까하고(생각만..) 깔아둔.. ㅋㅋㅋㅋ
    매력적인 툴이라고 하던데 말이죠...
    참.. 공부해야할텐데^^

    2010.08.28 05:27 신고 [ ADDR : EDIT/ DEL : REPLY ]
    • 초기의 이클리스는 환상적인 속도를 보여줬었는데(반어법!) 요즘에는 무난한 성능을 보여주더라구요 ㅋ

      개인적으로는 source insight를 좋아한답니다

      2010.08.28 11:32 신고 [ ADDR : EDIT/ DEL ]
  2. 응? 왠 안드로이드? ㅎ.
    이클립스 세계에 들어왔군요. javascript는 관둔건가요? ㅎ

    2010.08.28 09:06 신고 [ ADDR : EDIT/ DEL : REPLY ]
    • 자바스크립트를 지금 현재에 와서 쓸일이 없어져서요 ㅋㅋ
      전에있던 일에서는 쓸일이 있었는데, 지금은 없으니 지금 직장에서 또 웹관련해서 쓸일이 있으면 다시파겠죠 ^^;

      2010.08.28 11:31 신고 [ ADDR : EDIT/ DEL ]
  3. 구차니님은 참 열정적이세요~~~
    저는 귀차니즘으로 아이폰도...

    2010.08.28 14:35 신고 [ ADDR : EDIT/ DEL : REPLY ]
    • 아이폰은 맥을 사야하잖아요 ㅋㅋㅋ
      안드로이드는 윈도우에서도 되니까요 ^^;

      2010.08.28 23:47 신고 [ ADDR : EDIT/ DEL ]
  4. 응? 취직한건가요? 안드로이드쪽으로 취직했다니..의외인데요.ㅋ 쩝 이클립스관련된 사항이라면 그것도 내가 공유할게 좀 많은데 ㅋ. 앞으로 안드로이드 인탠트, 서비스, 유저인터페이스로 쭈욱 공부하시겠군요. 여튼 열정도 대단하셔라.
    나중에 이클립스 플러그인도 갈켜드릴께요 ㅎ 아하항~ 쭈루쉬~

    2010.08.28 15:16 신고 [ ADDR : EDIT/ DEL : REPLY ]
    • 취직은 임베디드 리눅스구요 ㅎ
      안드로이드는 안드로이드폰을 샀더니 캡쳐를 하고 싶었고, 그러다보니 SDK 전부 다 깔렸고... OTL
      그러다보니.. 개발도 해볼까? 이렇게 된거죠 ㅋ

      2010.08.28 23:48 신고 [ ADDR : EDIT/ DEL ]

Programming/android2010. 8. 28. 00:30
menu 누르고 잠시 기다리면 뜬다는데..
내 시스템에서는(AMD 4200+ x2 / 3GB) 아무런 키도 안누르고 1분 걸렸다 -_-

Step 1. 이클립스나, 직접 SDK의 SDK Setup.exe를 통해 AVD Manager를 구동하고
           Virtual Devices 에서 New 버튼을 눌러 새로운 Android Virtual Device(AVD)를 생성한다.

Step 2. AVD 생성 다이얼로그가 뜨면, Name에는 이름을 Target에는 안드로이드 버전을 설정한다.

Step 3. 단, Name에는 공백이나 특수문자가 들어갈수 없다. 일종의 함수나 클래스 이름과 비슷하게 작성한다.

Step 4. 이름을 넣으면 Target을 설정해야 한다고 나온다.

Step 5. 위에서 말했듯 Target은 안드로이드 버전을 정해준다.
           winapi구글 에서는 이유는 모르겠지만, Android 1.5를 선택하라고 한다.

Step 6. 여기까지 하면 완성일려나?

Step 7. SD Card는 최소한 9메가는 되어야 한다고 툴팁이 나온다. 왜 경고도 없는거냐!!

Step 8. 난 착하니까(응?) 최소 사양인 9메가를 넣어준다.
           더이상은 만지기 귀찮으니 "Create AVD"를 누르자

Step 9. 생성이 된 AVD를 클릭하면 우측의 항목들이 활성화 되고, "Start..."를 누르면 가상 머신이 작동된다.

Step 10. "Start..."를 누르면 이상한 옵션이 나오는데 귀찮으니 그냥 "Launch" 누르자

Step 11. 설명에는 꺼져있으니 Menu를 눌러서 켜라는데.. 그냥 냅두면 알아서 켜진다(1분 ... OTL)

Step 12. 내꺼에서는 한 15초 지나면 이런 안드로이드 로고가 떴다.

Step 13. 오홍 내꺼가 2.1 버전이라 동일한 Lock 해제 화면도 뜨고!!!

Step 14. Lock을 풀어주면 안드로이드 메인화면도 나온다.

아무튼 간에.. 부팅이 매번 1분 걸린다면 우울한데..

[링크 : http://www.winapi.co.kr/android/book/1-3-5.htm]
Posted by 구차니

댓글을 달아 주세요

  1. 매번 1분 맞다. 대신 한번 켜두면 그담부터는 안끄고 프로젝트만 다시 실행해주면 시간은 얼마 안걸려~~~

    2010.08.28 14:37 신고 [ ADDR : EDIT/ DEL : REPLY ]
    • 형이 알려준대로 한번 핸드폰으로 바로 해보고, 안끄고도 해봐야겠어요 ㅋ

      2010.08.28 23:48 신고 [ ADDR : EDIT/ DEL ]
  2. ;;;; 아니 에뮬레이터를 좀 깔쌈하게 만들어주면 좋으련만 버쳐PC 처럼 걍 환경 자체를 에뮬레이터 했나 보네요...
    아이폰 에뮬레이터는 대단했다는걸 이제야 알았네요..

    2010.08.28 14:37 신고 [ ADDR : EDIT/ DEL : REPLY ]
    • 에뮬레이터라고 하기에는 일단 Virtual Machine 위에서 핸드폰이 돌아가다 보니, PC의 Virtual Machine에서 돌리는 것과 거의 100% 동일 기기에서 테스트 하는 셈이니 어떤 면에서는 어설픈 에뮬레이터 보다는 이런 환경이 더 나을수도 있죠 ^^

      음.. 아이퐁 에뮬은 어떤가요?

      2010.08.28 23:49 신고 [ ADDR : EDIT/ DEL ]
    • 아이폰 에뮬레이터는 아이폰 실행부를 뗘와서 x86 용으로 포팅한 느낌입니다. 쾌적하게 돌아가는게 장점이죠^^ 부팅이나 그런것도 딱히 없고요

      2010.08.29 05:55 신고 [ ADDR : EDIT/ DEL ]
    • 음.. 맥북도 이제 x86이니, 그런식으로 구성이 된걸려나요? 듣기로는 아이폰 앱개발 환경은 윈도우나 다른 플랫폼에서는 구성이 안되고 맥/맥북에서만 가능하다고 들어서 말이죠.

      다음글(?)을 보시면 아시겠지만, 제가 몰라서 그런 번거로움을 한거 더라구요.
      한번 부팅하고 계속 가상머신을 재활용하거나, 핸드폰으로 직접 전송해서 할수도 있어요.

      2010.08.29 12:19 신고 [ ADDR : EDIT/ DEL ]
    • ^^ 그렇군요 이것도 나름 좋은 정보네요~~

      2010.08.29 15:30 신고 [ ADDR : EDIT/ DEL ]
  3. 한글화

    이거 한글은 안돼나요?

    2011.12.17 17:27 [ ADDR : EDIT/ DEL : REPLY ]

Programming/android2010. 8. 27. 16:59
winapi 저자가.. 또 안드로이드 까지 손을 대다니..
이분은 정녕 천재인가 싶다 -ㅁ-!

[링크 : http://developer.android.com/guide/developing/eclipse-adt.html]
[링크 : http://www.winapi.co.kr/android/]
Posted by 구차니

댓글을 달아 주세요

  1. 빈익빈 부익부의 세상인가요? 아아..

    2010.08.27 19:46 [ ADDR : EDIT/ DEL : REPLY ]

Programming/android2010. 8. 25. 18:35
Optimus Q를 제외하면 기본적 기능으로 캡쳐를 할수 없기 때문에,
안드로이드들은 안드로이드 개발 도구를 설치해야만 한다 ㄱ-

[링크 : http://www.androidpub.com/672]
[링크 : http://dtalker.tistory.com/408]


이짓하다가 정신줄 로그아웃하는 수가 있을수도 있으니
되도록이면 하지 않는걸 추천합니다 -_-




Step 1. Java SE SDK 설치
java SE로 "JDK 6 Update 21 (JDK or JRE)" 라고 써있는 놈을 다운로드 받는다.
[링크 : http://www.oracle.com/technetwork/java/javase/downloads/index.html]

Step 2. Eclipse IDE 설치 (안드로이드에서 3.4~3.5 버전을 요구했으므로 클래식 버전으로!)
Windows 32-bit
Mac Carbon 32-bit
Mac Cocoa 32-bit 64-bit
Linux 32-bit 64-bit

[링크 : http://www.eclipse.org/downloads/packages/release/galileo/r]

Step 3. android SDK 설치 (압축만 풀면 된다)
Platform Package Size MD5 Checksum
Windows android-sdk_r06-windows.zip 23293160 bytes 7c7fcec3c6b5c7c3df6ae654b27effb5
Mac OS X (intel) android-sdk_r06-mac_86.zip 19108077 bytes c92abf66a82c7a3f2b8493ebe025dd22
Linux (i386) android-sdk_r06-linux_86.tgz 16971139 bytes 848371e4bf068dbb582b709f4e56d903

[링크 : http://developer.android.com/sdk/index.html]

Step 4. eclipse 에서 android 설치
            사진이 많으므로, 자세한 내용은 아래의 "더보기"를 클릭.

Step 5. 안드로이드 SDK 설정을 위해 Window - Preferences 클릭

Step 6. Preferences 의 Android를 선택하고 Browse를 눌러
           안드로이드 SDK 가 설치된 경로(위의 Step 3 에서 압축 풀은 경로)를 정해준 다음 "OK"를 누름

Step 7. Window - Android SDK and AVD Manager 를 누르면, SDK 관리자가 실행된다.


Step 8. 안드로이드 SDK 업데이트
           Virtual Devices 에서는 별볼일 없으므로 패스

          Installed Package에서 "Update All"을 누른다.

update 시에 아래와 같은 에러가 발생한다면 "더보기"를 클릭!


          요런요런 녀석들이 포함된다. 생각하기 귀찮으면 "Accept All"을 누르고 "Install"을 누른다.

          하지만 기본값으로는 USB 드라이버가 설치되지 않으니, "Usb Driver package"를 찾아 추가로 설치한다.
          모토로라의 경우 Step 9에서 설치하면 되니, USB 드라이버 설치를 패스한다.

          기본값으로 설치하니 11개가 설치되었고, 드라이버를 추가한다면 총 12개가 설치된다.

Step 9. 모토쿼티 드라이버 다운로드.
          모토쿼티의 경우 Android 내장 드라이버로 작동되지 않았으므로
          반드시 홈페이지에서 제공하는 모토로라 드라이버를 사용해야 한다.
          [링크 : http://www.mymotorola.co.kr/product/PrdDownProduct.aspx?id=0048]


안드로이드 내장 드라이버로 설치 < - > 모토로라사 제공 드라이버로 설치

Step 10. 핸드폰의 설정 - 응용프로그램 - 개발 - USB 디버깅을 켜줌
 

Step 11. 안드로이드 SDK의 tools/ddms.bat를 실행하여 캡쳐

              ddms.bat를 실행하면

              Dalvik Debug Monitor가 실행되고, Name의 핸드폰을 클릭하면 Log가 뜨면서 접속된다.

              Device - Screen capture 나 ctrl-s 를 누르면

              현재 화면이 나온다. 그리고 Save를 누르면 png로 저장해준다.

Posted by 구차니

댓글을 달아 주세요

  1. 단지 캡쳐를 위해서 이짓을 하다니 ㅡ.ㅡ;;

    2010.08.25 23:08 신고 [ ADDR : EDIT/ DEL : REPLY ]
    • Don't try this at home! ㅋㅋㅋ

      캡쳐가 힘들다 보니.. 그냥 개발을 하라는 안드로이드의 음모가 아닐까요? ㅋㅋ

      2010.08.25 23:13 신고 [ ADDR : EDIT/ DEL ]