외부에서 이미 개발된 Android Source를 취급할 때
File -> Import -> General - Existing Projects into Workspace 를 선택하고 Next 버튼 클릭
다음화면에서 Select root_directory 라디오박스가 선택된 상황에서 Browse 버튼 클릭
그리고 나서 불러올 소스 폴더를 선택을 하면 해당 프로젝트가
Package Explore로 올러오게 된다 (물론 그 전에 WorkSpace에 해당 폴더를 복사해야한다)
그리고 src 폴더의 소스들을 보게 되면 에러 표시가 많을텐데
여기서 의외로 많은 분들이 쉽게 지나치는 부분이 해당 android.jar을 포함시키지 않는 다는 것을 알았다
그리고 이것 저것 해 보면서 시간을 보내다가 결국 안된다고 포기해 버리는 분들도 있어
간략하게 나마 적는다
불러온 프로젝트를 마우스 우클릭하고 난 후 Properties를 클릭한다
그리고 팝업으로 창이 뜨면 android 라는 왼쪽 메뉴를 선택하고 난 후
해당 프로젝트의 엔진을 선택하라
android 1.1 부터 Goole APIs 2.1 Api 7까지 화면에 보인데 (이글을 적는 시점의 최신 버젼이다)
난 Google APIs를 사용해야 할 프로젝트를 개발할 것이기 때문에 Google APIs 2.1 api 7을 선택하였다
그리고 Apply 버튼을 클릭하라
혹시 R.java 파일이 프로젝트에서 gen이라는 폴더 이하에 생기면
src 폴더 하부의 R.java 파일은 그냥 삭제 해도 된다
단순한 문제다
어떤 Android 버젼으로 개발할지 지정해 주지 않으면
모든 R.java 그리고 모든 Import 항목이 에러가 발생하게 된다.
이것만 해 주면 문제 없을 것이다.
PS. 이래도 에러가 해결 되지 않는다면 특별히 Import해야 하는 jar 항목이 더 있을수도 있고
그것도 아니라면 위 메뉴항목 중 Project -> Build Automatically를 선택하지 않았을 수도 있다
Build Automatically를 선택하지 않았다면 Build Project를 매번 열심히 눌러주면 된다
Android, Oracle, MS-SQL, PHP, JAVA, XML, C#, php, memcache, linux, centos6, mysql, mongodb
구글맵을 사용하기 위해서 필요한 API Key를 발급받기
MD5 Fingerprint를 얻기 위해서는 keytool이라는 툴을 이용하여야 하는데, 이 keytool은 안드로이드 SDK 내에 있는 것이 아니라 [JDK가 설치된 폴더]/bin 폴더 내에 있습니다.
keytool을 이용하려면 명령 프롬프트를 이용하여야 하는데, 이때 JDK의 Path가 설정되어 있지 않으면 매우 불편합니다. JDK의 Path가 등록되어 있는 경우도 있지만, 등록되어 있지 않을 경우 수동으로 등록해주도록 합시다. 내 컴퓨터 - 속성을 선택한 후, 고급 탭의 [환경 변수] 버튼을 누르면 아래와 같은 화면이 표시됩니다.
여기에서, 아래의 시스템 변수 목록 중 Path 항목을 선택한 후, 편집을 눌러 아래와 같이 맨 마지막 항목 각 항목을 구분지어주는 문자인 세미콜론(;)을 입력한 후, JDK의 bin 폴더의 경로를 입력한 후, 확인을 눌러주시면 됩니다.
Path가 제데로 등록 되었다면, 본격적으로 MD5 Fingerprint를 생성할 차례입니다.
안드로이드 어플리케이션 테스트에 사용되느 디버그용 keystore는 윈도우 XP 기준으로 C:\Documents and Settings\[사용자 계정명]\.android 폴더 내에 debug.keystore라는 이름으로 저장되어있습니다.
여기에서 아래와 같이 입력합니다.
keytool -list -alias androiddebugkey -keystore debug.keystore -storepass android -keypass android
잠시 기다리면 아래와 같이 생성된 MD5 Fingerprint가 표시됩니다.
잘 복사하시고, 이것을 http://code.google.com/android/maps-api-signup.html 에 가신 후, MD5 Fingerprint를 입력하고, 구글 계정으로 로그인하면 API Key가 발급됩니다.
생성된 MD5 Fingerprint를 입력한 후, Generate API Key 버튼을 누르시면 아래와 같이 사용자 키가 발급됩니다.
이 사용자 키는 잃어버리지 않게 유의하셔야 합니다. 앞으로 동일한 개발환경에서는 이 API Key를 사용하여 구글맵 API를 사용할 수 있으며, 만약 개발환경이 바뀐 경우에는 다시 API Key를 발급받아야 정상적으로 구글맵 API를 사용할 수 있습니다.
다음시간부터는 본격적으로 어플리케이션에서 구글맵을 이용하는 방법에 대해 알아보도록 하겠습니다 :)
MJAndroid 폴더 카피후 에러발생 문제 때문에 고민하는 분들을 위한 By Vins
MJAndroid를 패치키 프로젝터에 포함 시키는 순서는
8. 아직 에러표시 x 아이콘이 군대 군대 보인다면 MJAndroid 프로젝트를 우클릭한 후
팝업메뉴에서 가장 밑 부분에 Android Tool 이라는게 보일것이고 다시 클릭하면
Fix Project Properties 를 클릭하면 해결된다
9. 마지막으로 MJAndroid는 SQLite3을 사용하면서 저장할 공간이 필요하게 된다
즉 sdcard를 AVD에 넣어야 하는데 뭔가 저장하고 불러오는 작업이 없는 단순google Maps의
경우는 이런 작업이 필요 없지만 sdcard를 넣는 부분만 살펴보도록 하겠다
다음의 그림을 참고하자
그림을 보면 google APIs 6을 선택하고 난 후 바로 아래부분에 SD card 선택하는 부분이 있을 것이다
이미 MJAndrod 프로젝트에는 sdcard 이미지가 생성되어 있고 그 파일을 선택하면 된다
MJAndroid 프로젝트 바로 밑에 확장자가 없는 sdcard 파일이 하나 보일것인데
이를 선택하자
(sdcard를 선택하지 않은 애뮬레이터에서 돌리면 에러가 발생한다
DDMS에서 Devices의 디버그 모양 아이콘을 클릭하면 뭔가 실행하는 듯 하면서
다음과 같은 에러는 낸다
"dalvikvm Unable to open stack trace file '/data/anr/traces.txt' : Permission denied"
이는 sdcard를 AVD에 인식시켜주면 해당 파일이 인지할 수 있게 된다)
그러면 다음과 같은 MJAndroid 프로그램의 실행 화면을 보게 될 것이다
By Vins
1. File --> Import --> General --> Existing Projects into WorkSpace 를 선택하고 난 후
2. 새로운 창이 뜨면 Select root directory 옆에 Browse 버튼 클릭하고 폴더 선택한 후 Finish
3. MJAndroid 프로젝트가 보이면 마우스 우클릭후 Build path --> Configire Build path 클릭
4. 새창 뜨면 왼쪽 Java Build Path가 기본적으로 선택되어 있고 2칸위인 Android 선택
5. 그러면 Android가 버젼별로 나오는데
- Android 1.1 .....
- Android 1.5 .....
- Android 1.6 .....
- Android 2.0 .....
...중략...
- Google APIs Google inc. 1.5 3
- Google APIs Google inc. 1.6 3
- Google APIs Google inc. 2.0 5
- Google APIs Google inc. 2.0.1 6
- Google APIs Google inc. 2.1. 7
등이 있는데 내 경우엔 Google APIs 2.0.1을 선택했다
(구글 API를 사용해야 할 경우는 Android x.x 버전들을 사용하면 설치는 되지만 에러메세지와 함께 실행은 되지 않을 것이다)
6. 위 설정에서 Apply를 클릭하고 나오면 gen 폴더가 생기면서 R.java 파일이 생성됨
- Android 1.6 .....
- Android 2.0 .....
...중략...
- Google APIs Google inc. 1.5 3
- Google APIs Google inc. 1.6 3
- Google APIs Google inc. 2.0 5
- Google APIs Google inc. 2.0.1 6
- Google APIs Google inc. 2.1. 7
등이 있는데 내 경우엔 Google APIs 2.0.1을 선택했다
(구글 API를 사용해야 할 경우는 Android x.x 버전들을 사용하면 설치는 되지만 에러메세지와 함께 실행은 되지 않을 것이다)
6. 위 설정에서 Apply를 클릭하고 나오면 gen 폴더가 생기면서 R.java 파일이 생성됨
7. 기존 src 밑에 R.java는 삭제해 버림
8. 아직 에러표시 x 아이콘이 군대 군대 보인다면 MJAndroid 프로젝트를 우클릭한 후
팝업메뉴에서 가장 밑 부분에 Android Tool 이라는게 보일것이고 다시 클릭하면
Fix Project Properties 를 클릭하면 해결된다
9. 마지막으로 MJAndroid는 SQLite3을 사용하면서 저장할 공간이 필요하게 된다
즉 sdcard를 AVD에 넣어야 하는데 뭔가 저장하고 불러오는 작업이 없는 단순google Maps의
경우는 이런 작업이 필요 없지만 sdcard를 넣는 부분만 살펴보도록 하겠다
다음의 그림을 참고하자
그림을 보면 google APIs 6을 선택하고 난 후 바로 아래부분에 SD card 선택하는 부분이 있을 것이다
이미 MJAndrod 프로젝트에는 sdcard 이미지가 생성되어 있고 그 파일을 선택하면 된다
MJAndroid 프로젝트 바로 밑에 확장자가 없는 sdcard 파일이 하나 보일것인데
이를 선택하자
(sdcard를 선택하지 않은 애뮬레이터에서 돌리면 에러가 발생한다
DDMS에서 Devices의 디버그 모양 아이콘을 클릭하면 뭔가 실행하는 듯 하면서
다음과 같은 에러는 낸다
"dalvikvm Unable to open stack trace file '/data/anr/traces.txt' : Permission denied"
이는 sdcard를 AVD에 인식시켜주면 해당 파일이 인지할 수 있게 된다)
그러면 다음과 같은 MJAndroid 프로그램의 실행 화면을 보게 될 것이다
이 이후 AVD생성 및 설치는 제 블로그에서 Android 텝을 클릭하시면 또 나와 있습니다.
--> http://mcpicdtl.blogspot.com/2010/01/mjandroid-installfailedmissingsharedlib.html
위 링크는 설치 실폐의 예를 이용하여 가상 어플리케이션 (AVD)를 올바르게 설치하는 방법이 나열되어 있습니다.
위 링크는 설치 실폐의 예를 이용하여 가상 어플리케이션 (AVD)를 올바르게 설치하는 방법이 나열되어 있습니다.
By Vins
MJAndroid, [INSTALL_FAILED_MISSING_SHARED_LIBRARY] By Vins
오렐리 책을 실습하다가 보면서 MJAndroid의 설치에서
단 MJAndroid와 같이 데이터를 저장하고 또 불러와야 하는 경우는
sdcard를 인식시켜 줘야 함으로 이미지가 없다면 -c 옵션으로 sdcard이미지를 생성하든지
이미 sdcard 이미지를 만들었거나 만들어진 파일이 있다면 이를 인식시켜 주도록 한다
위에선 새로 만들는 방법을 사용하였는데 어떤 차이가 있는지 설명하면 다음과 같다
android create avd -n vinsAndroid-2.1 -t 21 -c 1000M (1기가 sdcard를 자동으로 생성하였을 경우)
간단하게 정의 내리자면 AVD가 SDcard를 포함한 채로 실행되는 경우를 말한다
예를 들어
android create avd -n vinsAndroid-2.1 -t 21 -c 1000M
위 구문을 실행시켜 AVD를 생성하였다면
C:\Documents and Settings\vins\.android\avd\vinsAndroidinSDcard-2.1.avd 폴더 내부는 아래와 같다
2010/01/28 16:07 <DIR> .
2010/01/28 16:07 <DIR> ..
2010/01/28 15:51 16,860 cache.img
2010/01/28 14:54 189 config.ini
2010/01/28 16:07 54 emulator-user.ini
2010/01/28 16:07 1000,485,760 sdcard.img
2010/01/28 16:07 44,996,124 userdata-qemu.img
2010/01/28 14:54 2,401,344 userdata.img
즉 1기가짜리 sdcard.img 이라는 것이 여기에 생성되고 AVD에 의해서 관리가 된다
즉 한가지 유의 해야 할 점은 외부 sdcard이기 때문 쓰기, 읽기 등의 권한을 가지고 있어야 한다
AndroidManifest.xml 의 Permission tab을 클릭하고 추가적으로 권한을 주도록 해야 한다
추가해야 할 권한은 "android.permission.WRITE_EXTERNAL_STORAGE" 을 줘야 한다
해석하면 외부 저장장치에 쓰기 권한을 달라는 말이 된다
user-permission 이 한줄 더 추가 되게 된다
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
---------------------------------------------------------------------------------------------------------
android create avd -n vinsAndroid-2.1 -t 21 -c c:\vinsPrivate\android\workspace\MJAndroid\sdcard (이미 만들어진 sdcard 이미지를 이용할 경우)
내부 sdcard 이미지의 경우는 프로젝트에 종속되어져서 AVD에서 실행시
해당 경로를 참조하게 된다
MJAndroid의 경우엔
C:\vinsPrivate\Android\workspace\MJAndroid\sdcard 가 될 것이다
AVD에서 MJAndroid를 실행시켜보고 해당 MJAndroid 폴더 이름을 바꾸려고 하면
사용중인 리소스가 있어서 디렉토리 명을 변경 할 수 없다고 나온다
---------------------------------------------------------------------------------------------------------
즉 프로젝트를 실행하는데 sdcard 이미지가 프로젝트 폴더 내부에 있는 것은 그리 권장할 만하지 못한것 같다
배포파일의 크기만 커질뿐이며 유지관리에는 자동으로 AVD가 생성하도록 하는 것이
좋을 것 같다
[INSTALL_FAILED_MISSING_SHARED_LIBRARY] 가 발생했다
이전 HelloAndroid와 무엇이 다른지 생각해 보다가 구글맵을 사용하는 것이
문제라는 것을 발견했다
우선 MJAndroid를 패키지 익스플로러를 살펴보면 MapKey를 넣는 곳이 있는데
먼저 android용 api key를 받아야 한다 아래주소로 이동하면
Sign Up for the Android Maps Key Api 라며 박스안에 녹색 글자들이 나오는데
$ keytool -list -keystore ~/.android/debug.keystore
...
Certificate fingerprint (MD5): 94:1E:43:49:87:73:BB:E6:A6:88:D7:20:F1:8E:B5:98
<-- 인증키 발급하는 부분은 내용상 따로 준비하였습니다.
아직 인증키 발급안 하신분은 이쪽으로 새탭으로 바로 아래 링크 부터
하여 MD5키를 생성하시고 다음으로 이동하시기 바랍니다.
http://mcpicdtl.blogspot.com/2010/01/api-key.html
아직 인증키 발급안 하신분은 이쪽으로 새탭으로 바로 아래 링크 부터
하여 MD5키를 생성하시고 다음으로 이동하시기 바랍니다.
http://mcpicdtl.blogspot.com/2010/01/api-key.html
------------ API Key URL ----------------
http://code.google.com/intl/kr/android/maps-api-signup.html
다시 본론으로 돌아가서
이클립스를 사용하여 AVD를 생성하였다면
MJAndroid 경우는 구글 맵을 사용하는 App이기 때문에 Android+google map을 선택해야 한다
이클립스에서는 아마 Google APIs 각 버젼으로 나올것이다
그래서 /android-sdk-window/tools 폴더에 있는 android.bat 를 사용해서 가상머신을 돌리기로 했다
근데 자기 PC에 설치된 것들이 뭐뭐가 있는지 잘 모를수 있으니 먼저
어떤 것들이 있는지 보자
cmd 창을 하나 열어 아래와 같이 tools 폴더로 이동한 후 실행 시켜보자
C:\vinsPrivate\Android\android-sdk-windows\tools> android list targets
그러고 나면 아래 안드로이드 종류가 10~20가지 정도 나올것이다
---------------------- 출력 결과 -----------------------------------------------------
Available Android targets:
id: 1 or "android-2"
Name: Android 1.1
Type: Platform
API level: 2
Revision: 1
Skins: HVGA (default), HVGA-L, HVGA-P, QVGA-L, QVGA-P
id: 2 or "android-3"
Name: Android 1.5
Type: Platform
API level: 3
Revision: 1
Skins: HVGA (default), HVGA-L, HVGA-P, QVGA-L, QVGA-P
id: 3 or "android-4"
Name: Android 1.6
Type: Platform
API level: 4
Revision: 1
Skins: HVGA (default), QVGA, WVGA800, WVGA854
id: 4 or "android-5"
Name: Android 2.0
Type: Platform
API level: 5
Revision: 1
Skins: HVGA (default), QVGA, WQVGA400, WQVGA432, WVGA800, WVGA854
id: 5 or "android-6"
Name: Android 2.0.1
Type: Platform
API level: 6
Revision: 1
Skins: HVGA (default), QVGA, WQVGA400, WQVGA432, WVGA800, WVGA854
id: 6 or "android-7"
Name: Android 2.1
Type: Platform
API level: 7
Revision: 1
Skins: HVGA (default), QVGA, WQVGA400, WQVGA432, WVGA800, WVGA854
id: 7 or "Google Inc.:Google APIs:3"
Name: Google APIs
Type: Add-On
Vendor: Google Inc.
Revision: 3
Description: Android + Google APIs
Based on Android 1.5 (API level 3)
Libraries:
* com.google.android.maps (maps.jar)
API for Google Maps
Skins: QVGA-P, HVGA-L, HVGA (default), QVGA-L, HVGA-P
id: 8 or "Google Inc.:Google APIs:3"
Name: Google APIs
Type: Add-On
Vendor: Google Inc.
Revision: 3
Description: Android + Google APIs
Based on Android 1.5 (API level 3)
Libraries:
* com.google.android.maps (maps.jar)
API for Google Maps
Skins: QVGA-P, HVGA-L, HVGA (default), QVGA-L, HVGA-P
id: 9 or "Google Inc.:Google APIs:3"
Name: Google APIs
Type: Add-On
Vendor: Google Inc.
Revision: 3
Description: Android + Google APIs
Based on Android 1.5 (API level 3)
Libraries:
* com.google.android.maps (maps.jar)
API for Google Maps
Skins: QVGA-P, HVGA-L, HVGA (default), QVGA-L, HVGA-P
id: 10 or "Google Inc.:Google APIs:4"
Name: Google APIs
Type: Add-On
Vendor: Google Inc.
Revision: 2
Description: Android + Google APIs
Based on Android 1.6 (API level 4)
Libraries:
* com.google.android.maps (maps.jar)
API for Google Maps
Skins: WVGA854, HVGA (default), WVGA800, QVGA
id: 11 or "Google Inc.:Google APIs:4"
Name: Google APIs
Type: Add-On
Vendor: Google Inc.
Revision: 2
Description: Android + Google APIs
Based on Android 1.6 (API level 4)
Libraries:
* com.google.android.maps (maps.jar)
API for Google Maps
Skins: WVGA854, HVGA (default), WVGA800, QVGA
id: 12 or "Google Inc.:Google APIs:4"
Name: Google APIs
Type: Add-On
Vendor: Google Inc.
Revision: 2
Description: Android + Google APIs
Based on Android 1.6 (API level 4)
Libraries:
* com.google.android.maps (maps.jar)
API for Google Maps
Skins: WVGA854, HVGA (default), WVGA800, QVGA
id: 13 or "Google Inc.:Google APIs:5"
Name: Google APIs
Type: Add-On
Vendor: Google Inc.
Revision: 1
Description: Android + Google APIs
Based on Android 2.0 (API level 5)
Libraries:
* com.google.android.maps (maps.jar)
API for Google Maps
Skins: WVGA854, WQVGA400, HVGA (default), WQVGA432, WVGA800, QVGA
id: 14 or "Google Inc.:Google APIs:5"
Name: Google APIs
Type: Add-On
Vendor: Google Inc.
Revision: 1
Description: Android + Google APIs
Based on Android 2.0 (API level 5)
Libraries:
* com.google.android.maps (maps.jar)
API for Google Maps
Skins: WVGA854, WQVGA400, HVGA (default), WQVGA432, WVGA800, QVGA
id: 15 or "Google Inc.:Google APIs:5"
Name: Google APIs
Type: Add-On
Vendor: Google Inc.
Revision: 1
Description: Android + Google APIs
Based on Android 2.0 (API level 5)
Libraries:
* com.google.android.maps (maps.jar)
API for Google Maps
Skins: WVGA854, WQVGA400, HVGA (default), WQVGA432, WVGA800, QVGA
id: 16 or "Google Inc.:Google APIs:6"
Name: Google APIs
Type: Add-On
Vendor: Google Inc.
Revision: 1
Description: Android + Google APIs
Based on Android 2.0.1 (API level 6)
Libraries:
* com.google.android.maps (maps.jar)
API for Google Maps
Skins: WVGA854, WQVGA400, HVGA (default), WQVGA432, WVGA800, QVGA
id: 17 or "Google Inc.:Google APIs:6"
Name: Google APIs
Type: Add-On
Vendor: Google Inc.
Revision: 1
Description: Android + Google APIs
Based on Android 2.0.1 (API level 6)
Libraries:
* com.google.android.maps (maps.jar)
API for Google Maps
Skins: WVGA854, WQVGA400, HVGA (default), WQVGA432, WVGA800, QVGA
id: 18 or "Google Inc.:Google APIs:6"
Name: Google APIs
Type: Add-On
Vendor: Google Inc.
Revision: 1
Description: Android + Google APIs
Based on Android 2.0.1 (API level 6)
Libraries:
* com.google.android.maps (maps.jar)
API for Google Maps
Skins: WVGA854, WQVGA400, HVGA (default), WQVGA432, WVGA800, QVGA
id: 19 or "Google Inc.:Google APIs:7"
Name: Google APIs
Type: Add-On
Vendor: Google Inc.
Revision: 1
Description: Android + Google APIs
Based on Android 2.1 (API level 7)
Libraries:
* com.google.android.maps (maps.jar)
API for Google Maps
Skins: WVGA854, WQVGA400, HVGA (default), WQVGA432, WVGA800, QVGA
id: 20 or "Google Inc.:Google APIs:7"
Name: Google APIs
Type: Add-On
Vendor: Google Inc.
Revision: 1
Description: Android + Google APIs
Based on Android 2.1 (API level 7)
Libraries:
* com.google.android.maps (maps.jar)
API for Google Maps
Skins: WVGA854, WQVGA400, HVGA (default), WQVGA432, WVGA800, QVGA
id: 21 or "Google Inc.:Google APIs:7"
Name: Google APIs
Type: Add-On
Vendor: Google Inc.
Revision: 1
Description: Android + Google APIs
Based on Android 2.1 (API level 7)
Libraries:
* com.google.android.maps (maps.jar)
API for Google Maps
Skins: WVGA854, WQVGA400, HVGA (default), WQVGA432, WVGA800, QVGA
C:\vinsPrivate\Android\UTIL\android-sdk\tools>
-------------------- 출력 결과 끝 -------------------------------
내 경우엔 위 출력 결과에서 파란색 처리 된 부분..
즉 android 2.1(현재최신버젼) + google Apis 를 사용할 것이었기 때문에
ID : 21 인 AVD를 사용할 것이다
(사용자 PC마다 원하는 번호가 다를수 있기 때문에 확인하고 타켓 번호를 사용하자)
자 그럼 AVD를 실행시켜 보자
cmd.exe 창으로 돌아가서
C:\vinsPrivate\Android\UTIL\android-sdk\tools> android create avd -n vinsAndroid-2.1 -t 21 -c 1000M
위에 보면 -n 과 -t 가 있는데 이의 상세한 설명은
http://developer.android.com/guide/developing/tools/avd.html
공식 웹 사이트를 참조하면 된다
뭐 지금은 -n (avd 이름 : 맘대로 정하면 됨)과 -t (타켓번호) 만 알아도 된다
내 경우엔 AVD이름을 vinsAndroid-.2.1 로 하였지만 이건 자기가 원하는 이름으로 하면 된다
단 MJAndroid와 같이 데이터를 저장하고 또 불러와야 하는 경우는
sdcard를 인식시켜 줘야 함으로 이미지가 없다면 -c 옵션으로 sdcard이미지를 생성하든지
이미 sdcard 이미지를 만들었거나 만들어진 파일이 있다면 이를 인식시켜 주도록 한다
위에선 새로 만들는 방법을 사용하였는데 어떤 차이가 있는지 설명하면 다음과 같다
android create avd -n vinsAndroid-2.1 -t 21 -c 1000M (1기가 sdcard를 자동으로 생성하였을 경우)
간단하게 정의 내리자면 AVD가 SDcard를 포함한 채로 실행되는 경우를 말한다
예를 들어
android create avd -n vinsAndroid-2.1 -t 21 -c 1000M
위 구문을 실행시켜 AVD를 생성하였다면
C:\Documents and Settings\vins\.android\avd\vinsAndroidinSDcard-2.1.avd 폴더 내부는 아래와 같다
2010/01/28 16:07 <DIR> .
2010/01/28 16:07 <DIR> ..
2010/01/28 15:51 16,860 cache.img
2010/01/28 14:54 189 config.ini
2010/01/28 16:07 54 emulator-user.ini
2010/01/28 16:07 1000,485,760 sdcard.img
2010/01/28 16:07 44,996,124 userdata-qemu.img
2010/01/28 14:54 2,401,344 userdata.img
즉 1기가짜리 sdcard.img 이라는 것이 여기에 생성되고 AVD에 의해서 관리가 된다
즉 한가지 유의 해야 할 점은 외부 sdcard이기 때문 쓰기, 읽기 등의 권한을 가지고 있어야 한다
AndroidManifest.xml 의 Permission tab을 클릭하고 추가적으로 권한을 주도록 해야 한다
추가해야 할 권한은 "android.permission.WRITE_EXTERNAL_STORAGE" 을 줘야 한다
해석하면 외부 저장장치에 쓰기 권한을 달라는 말이 된다
user-permission 이 한줄 더 추가 되게 된다
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
---------------------------------------------------------------------------------------------------------
android create avd -n vinsAndroid-2.1 -t 21 -c c:\vinsPrivate\android\workspace\MJAndroid\sdcard (이미 만들어진 sdcard 이미지를 이용할 경우)
내부 sdcard 이미지의 경우는 프로젝트에 종속되어져서 AVD에서 실행시
해당 경로를 참조하게 된다
MJAndroid의 경우엔
C:\vinsPrivate\Android\workspace\MJAndroid\sdcard 가 될 것이다
AVD에서 MJAndroid를 실행시켜보고 해당 MJAndroid 폴더 이름을 바꾸려고 하면
사용중인 리소스가 있어서 디렉토리 명을 변경 할 수 없다고 나온다
---------------------------------------------------------------------------------------------------------
즉 프로젝트를 실행하는데 sdcard 이미지가 프로젝트 폴더 내부에 있는 것은 그리 권장할 만하지 못한것 같다
배포파일의 크기만 커질뿐이며 유지관리에는 자동으로 AVD가 생성하도록 하는 것이
좋을 것 같다
자 실행후 몇줄 더 읽는 동안 AVD가 회면에 떠 있을 것이다
이클립스에서 그냥 안드로이드만 실행했을때와 달라진 점은 메인 화면에 구글맵 아이콘이
하나 더 생겼다는 점이다
그리고 Menu위에 어플리케이션 리스트를 출력 버튼을 클릭해 보면
"MicroJobs"라는 어플리케이션이 설치되어 있을 것이다
이번에 안드로이드를 새로이 입문하면서 느낀것이지만
자바, 리눅스, Struts 등 오픈진형의 소스는 환경 설정 및 Docs를 철저히 파악하지 못하면
삽질에 시간을 많이 보낼수 있다는 점이다
최근 OpenPNE라는 일본 오픈SNS로 프로젝트를 하고 있는데
이 역시도 설정을 맞추는데 3일이나 잡아 먹었다 (나중에 그 버젼이 beta라는 것을 알게 되었지만 ㅜ.ㅜ)
by Vins
ps. 아 오렐리 책에서 보면 $ adb install mjandroid-1.0.0.apk 부분은 신경 쓸 필요 없다
전부 빌드 하고 나면 /bin 폴더안에 MJAndroid.apk 가 생기는데 버전관리의 중요성을
언급하기 위한 변형일 뿐이다.
버젼관리는 AndroidManifest.xml 파일에 서 Manifest탭을 클릭하면
android:version을 설정할 수 있고 version code는 1, version name 1.0 이 된다
사용사가 보게되는 version 숫자는 version name이 되겠다
혹시 설치까지는 성공하였으나 실행시
에라가 뜨는 분들은 Google Maps 부분에서 실수를 하였을 가능성이 높다
만일 MJAndroid가 아니더라도 구글맵에서 계속해서 에러가 발생한다면
다음 링크를 꼭 클릭해서 내용을 살펴보도록 하자
아마도 컴파일을 버젼을 Android 1.x or 2.x 등 단순 안드로이드를 사용했을 가능성이 높고
http://mcpicdtl.blogspot.com/2010/01/mjandroid.html <-- 여기에서 모든것을 해결 할 수 있을 것이다
버젼관리는 AndroidManifest.xml 파일에 서 Manifest탭을 클릭하면
android:version을 설정할 수 있고 version code는 1, version name 1.0 이 된다
사용사가 보게되는 version 숫자는 version name이 되겠다
혹시 설치까지는 성공하였으나 실행시
에라가 뜨는 분들은 Google Maps 부분에서 실수를 하였을 가능성이 높다
만일 MJAndroid가 아니더라도 구글맵에서 계속해서 에러가 발생한다면
다음 링크를 꼭 클릭해서 내용을 살펴보도록 하자
아마도 컴파일을 버젼을 Android 1.x or 2.x 등 단순 안드로이드를 사용했을 가능성이 높고
http://mcpicdtl.blogspot.com/2010/01/mjandroid.html <-- 여기에서 모든것을 해결 할 수 있을 것이다
안드로이드 sdk 설치
안드로이드 개발환경 구축시 필수사항
안드로이드 SDK 업데이트 하기
- JDK
JDK는 5와 6을 지원하지만,안드로이드는 JDK 5로 구축되었기 때문에
JDK 6의 모든 기능이 지원되지는 않고 있다.
- Eclipse 통합개발환경
안드로이드 응용프로그램 개발을 지원하는 버전은 3.3(유로파)와 3.4 (가니메데~,게니미드ㅋㅋ)이다.
Eclipse IDE for Java EE Developers 를 추천한다.
※ 기타 IDE (통합개발환경)에서 안드로이드 응용프로그램을 개발하는것도 가능하지만,
안드로이드 SDK와 적절하게 통합되는것은 Eclipse 뿐이다.
반드시 JDK 5 나 JDK 6을 완전히 지원해야 한다.
- 안드로이드 SDK
안드로이드 SDK에는 안드로이드 jar 파일,문서화,도구,예제코드 등이 들어있다.
http://developer.android.com/sdk/index.html 를 클릭하면 다운로드 받을 수 있다.
여기서 윈도우용 SDK파일을 다운받을 수 있는데..퀵스타트 버전이라서 그런지
용량은 22MB 정도이고 압축을 풀어보면 대부분의 폴더가 비어있다.
걱정은 안해도 된다. 제공되는 매니저를 통해서 업데이트받으면 해당하는 버전의 파일이 들어오게 된다.
※ 지원하는 운영체제
윈도우 XP ,Vista
Mac OS X 10.4.8 이후(x86만)
리눅스(우분투 6.06 LTS,Dapper Drake)
안드로이드 SDK 설치
설치
안드로이드 SDK의 설치는 매우 간단하다.
원하는 경로에 압축만 풀면 된다.
환경변수 등록
압축해제 후 반드시 안드로이드 tools 디렉토리를 환경변수 PATH에 등록해줘야 한다.
아래는 윈도우XP에서 설정하는 방법이다.
1단계 : 내컴퓨터를 우클릭하여 속성을 클릭한다.
2단계 : 고급탭에서 환경변수를 클릭한다.
3단계 : 하단의 시스템변수에서 Path변수를 선택하고 편집버튼을 클릭한다.
4단계 : 안드로이드 SDK의 tools 디렉토리를 추가한다.
Eclipse 안드로이드 플러그인 설치
(Eclipse ADT 플러그인 : Android Development Tools)
2. 메뉴에서 Help > software updates를 선택한다.안드로이드 플러그인은 여러 안드로이드 개발도구들을 Eclipse 에 적절하게 통합해 준다.
플러그인에는 다양한 Wizard 가 포함되어 있어 개발이 편해진다.
1. Eclipse를 실행한다.
3단계 : Available Software 탭 > Add site 버튼을 클릭한다.
4단계 : 원격사이트 http://dl-ssl.google.com/android/eclipse/를 추가하면 다음과 같이 된다.
5단계 : Eclipse를 재시작 한 후 안드로이드 SDK의 경로를 설정한다.
메뉴에서 Window > Preference 를 선택하면 나오는 아래와 같은 창에서
SDK Location 에 안드로이드 SDK가 설치된 경로를 설정한다.
처음 안드로이드 SDK 를 설치했을 경우에는 add-ons , platforms 폴더가 텅 비어있다.
샘플을 돌려보거나 개발을 진행하려면 필요한데 SDK 플랫폼에 따라서 해당 플랫폼을 업데이트 시키면 된다.
메뉴 아이콘상에 아래 그림같은 핸드폰 모양의 아이콘이 생겼을 것이다..1. 매니저 실행시키기 (Android SDK and AVD Manager)
간단하다 ,위에서 안드로이드 플러그인을 설치가 잘 됐다면,
2단계 : Available Package 를 클릭한 후 업데이트할 플랫폼을 체크한후
우측 아래에 있는 Install Selected 를 클릭한다.
피드 구독하기:
글 (Atom)









