2012년 6월 26일 화요일
안드로이드 개발환경 설정 (r18)
* 설치환경
JDK 1.7.0_04 (64)
Eclipse Classic 3.7.2 (64)
* 환경변수 JAVA_HOME
* Android SDK download (r18)
http://developer.android.com/sdk/index.html
* 설치 종료 후 SDK Manager 에서 플랫폼과 패키지를 추가
http://developer.android.com/sdk/installing/adding-packages.html
* Eclipse ADT Plugin 설치
이클립스 실행
Help > Install New Software....
Add 버튼 클릭
Name: ADT Plugin
Location: https://dl-ssl.google.com/android/eclipse/
Click OK
Developer Tools 체크하고 Next 클릭
Next 클릭
라이센스 동의하고 Finish 클릭
설치가 완료되면 Eclipse 재시작
재시작시 Use existing SDKs, Existing Location에 Android SDK 설치 디렉토리 선택 (기본으로 설치했다면 C:\Program Files(x86)\Android\android-sdk)
2011년 8월 24일 수요일
sdcard path 구하기
1. 경로구하기
android.os.Environment.getExternalStorageDirectory().getAbsolutePath();
2. SDCard에 쓰기 권한 부여
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
android DatePickerDialog
main.xml
********************************************************************************
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical">
<EditText android:id="@+id/airedDate" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:focusableInTouchMode="false" />
</LinearLayout>
********************************************************************************
MainActivity.java
********************************************************************************
public class MainActivity extends Activity {
static final int AIRED_DATE_DIALOG_ID = 1;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
EditText airedDate = (EditText) findViewById(R.id.airedDate);
airedDate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showDialog(AIRED_DATE_DIALOG_ID);
}
});
Calendar c1 = Calendar.getInstance();
String yyyy = Integer.toString(c1.get(Calendar.YEAR));
String mm = Integer.toString(c1.get(Calendar.MONTH)+1);
String dd = Integer.toString(c1.get(Calendar.DAY_OF_MONTH));
if (mm.length() < 2)
mm = "0"+mm;
if (dd.length() < 2)
dd = "0"+dd;
airedDate.setText(yyyy+"-"+mm+"-"+dd);
}
private DatePickerDialog.OnDateSetListener airedDateSetListener = new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
String s = Utils.toDate(year, monthOfYear+1, dayOfMonth, "-");
EditText airedDate = (EditText) findViewById(R.id.airedDate);
airedDate.setText(s);
}
};
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case AIRED_DATE_DIALOG_ID:
EditText airedDate = (EditText) findViewById(R.id.airedDate);
Calendar c = Calendar.getInstance();
try {
c = Utils.getCalendar(airedDate.getText().toString());
} catch (Exception e) {
}
return new DatePickerDialog(this, airedDateSetListener, c.get(Calendar.YEAR), c.get(Calendar.MONDAY), c.get(Calendar.DAY_OF_MONTH));
}
return null;
}
}
********************************************************************************
Utils.java
********************************************************************************
public class Utils {
public static Calendar getCalendar(String yyyy, String mm, String dd) throws Exception {
Calendar c = Calendar.getInstance();
try {
int y = Integer.parseInt(yyyy);
int m = Integer.parseInt(mm)-1;
int d = Integer.parseInt(dd);
c.set(Calendar.YEAR, y);
c.set(Calendar.MONTH, m);
c.set(Calendar.DAY_OF_MONTH, d);
} catch (Exception e) {
throw e;
}
return c;
}
public static Calendar getCalendar(String yyyymmdd) throws Exception {
String[] ymd = null;
try {
ymd = yyyymmdd.split("-");
} catch (Exception e) {
throw e;
}
return getCalendar(ymd[0], ymd[1], ymd[2]);
}
public static String toDate(int yyyy, int mm, int dd, String sep) {
String result = Integer.toString(yyyy);
result += "-";
if (mm < 10)
result += "0"+Integer.toString(mm);
else
result += Integer.toString(mm);
result += "-";
if (dd < 10)
result += "0"+Integer.toString(dd);
else
result += Integer.toString(dd);
return result;
}
}
********************************************************************************
2011년 8월 8일 월요일
[android] Hello World tutorial
1. 안드로이드 프로젝트 생성
이클립스에서 "File > New > Project" 선택
Android Project를 선택하고 Next
아래와 같이 내용을 입력하고 Finish 클릭
Project name: HelloAndroid
Application name: Hello, Android
Package name: com.example.helloandroid
Create Activity: MainAndroid
Min SDK Version: 10
HelloAndroid > src > com.example.helloandroid 에서 MainActivity 파일을 열고 아래와 같이 변경
- package com.example.helloandroid;
- import android.app.Activity;
- import android.os.Bundle;
- import android.widget.TextView;
- public class MainActivity extends Activity {
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- TextView tv = new TextView(this);
- tv.setText("Hello, Android");
- setContentView(tv);
- }
- }
Run > Run 을 선택하거나 F11 버튼을 눌러 실행
Run as 화면에서 Android Application을 선택
AVD가 구동되면서 위에서 작성한 application이 실행되는 화면을 볼 수 있다.
(시스템 사양이 않좋은 경우 매우매우 오래 걸릴 수 있음)
[android] 개발환경 구축 (Install the SDK)
Installing the SDK
Step 1. 요구사항
1. 시스템 요구사항
(1) 지원 운영체제
- 윈도 XP(32-bit) Vista(32 or 64 bit) Windows7 (32 or 64bit)
- Mac OS X 10.5.8 or later (x86 only)
- Linux (tested on Ubuntu Linux, Lucid Lynx)
GNU C Library (glibc) 2.7 이상
우분투의 경우 8.04 이상
64-bit 배포판의 경우 32비트 어플리케이션 호환 가능해야 함
(http://developer.android.com/sdk/installing.html#troubleshooting)
(2) 지원되는 개발환경
- Eclipse 3.5 (Galileo) 이상
- Eclipse JDT(Java development tools) 플러그인
- JDK 5 or 6 (JRE는 불가)
- Android Development Tools plugin (recommended)
2. eclipse 다운로드
Eclipse Class 버전 권장, 아니라면 Java 또는 RCP 버전을 권장함
Step 2. SDK 패키지 다운로드
아래 경로에서 환경에 맞는 Android SDK를 다운로드 받는다.
다운받은 파일이 설치파일 (exe 등) 이면 해당 파일을 실행해서 설치하고
, 압축파일(zip 또는 tgz)이면 원하는 디렉토리 (C:\android-sdk-<machine-platform> 또는 /usr/local/ android-sdk-<machine-platform>) 압축 해제한다.
뒤에 SDK설치 경로를 사용하니 위의 경로를 기억해둔다.
Step 3. 이클립스에 ADT 플러그인 설치
1. ADT 플러그인 다운로드
이클립스에서 Help > Install New Software.... 선택
우상단의 Add 버튼 클릭
Add Repository 창이 나타나면 이름에 "ADT Plugin" URL에 "https://dl-ssl.google.com/android/eclipse/" 을 입력하고 "OK" 클릭
다운로드에 문제가 있다면 https 대신 http 사용한다.
이후 설치할 소프트웨어를 선택하고 설치한다.
설치가 완료되면 이클립스를 재시작 한다.
2. ADT 플러그인 설정
"Window > Preferences..." 메뉴를 선택 (맥에선 "Eclipse > Preferences")
왼쪽 패널에서 Android 선택
위에서 설치한 Android SDK 경로를 지정
Apply 버튼 클릭
Step 4. 플랫폼 추가 및 다른 구성요소 설치
이클립스에서 "Window > Android SDK and AVD Manager"
"Available packages"에서 설치하고자 하는 패키지를 선택하고 "Install selected" 클릭
"Android Repository" 에 있는 내용 설명
- SDK Tools: 안드로이드 어플리케이션 개발시 디버깅 및 테스팅할 수 있는 툴 (<sdk>/tools/ 에 설치됨)
- SDK Platform-tools: 안드로이드 어플리케이션 개발을 위한 platform-dependent 툴 (<sdk>/platform-tools/에 설치됨)
- Android platforms: 설치가능한 안드로이드 SDK 플랫폼
- USB Driver for Windows (Windows only)
- Samples: 샘플 어플리케이션
- Documentation: 안드로이드 프레임워크 API 문서
* 개발을 위한 필수선택사항
SDK Tools (이미 설치됨)
SDK Platform-tools
적어도 하나 이상의 Android platforms
USB Driver for Windows (MS Windows를 쓰는 경우)
Step 5. Create ad AVD
이클립스에서 "Window >Android SDK and AVD Manager " 선택
Virtual Devices 탭을 선택하고 New 버튼 클릭
Name: my_avd
Target: 원하는 프레임워크 버전
SD Card: Size: 64MiB
Skin: Built-in: Default
2011년 8월 2일 화요일
안드로이드 개발환경 구축(SDK 2.1)
사전준비사항
JDK1.6
eclipse ganymede
1. 이클립스 실행
2. Android SDK설치
http://developer.android.com/sdk 에서 SDK 다운로드 (2010-02-10 현재 최신버전은 2.1)
다운받은 압축파일을 원하는 디렉토리 푼다.
압축푼 디렉토리 아래에 있는 tools 디렉토리를 PATH에 추가
3. Eclipse Plugin 설치
Help > Software Updates... 누르고 Available Software 탭에서 Add Site... 를 클릭
Location에 아래 주소를 입력하고 OK 클릭
https://dl-ssl.google.com/android/eclipse/
창이 닫히면 좀전에 추가된 google.com 주소를 확장해서 "Developer Tools" 체크하고 Install 클릭4. Installing SDK Components
이클립스를 실행하고 Window > Preferences 메뉴에서 Android 선택하고 (2)에서 저장한 디렉토리로 SDK Location을 지정 -> OK
Window >Android SDK and AVD Manager 메뉴에서 Available Components 클릭
우측항목을 체크하고 Install Selected -> 설치
(1) Create an AVD
쉘에서 다음 명령어를 실행 (Android Virtual Device (AVD)를 생성)
android create avd --target 2 --name my_avd
(2) Create the Project
File > New > Project 실행
- Android Project 선택하고 Next
- New Android Project 화면에 아래 내용을 입력하고 Finish
◦Project name: HelloAndroid
◦Application name: Hello, Android
◦Package name: com.example.helloandroid (or your own private namespace)
◦Create Activity: HelloAndroid
◦Min SDK Version: 2
(3) Construct the UI
HelloAndroid > src > com.example.helloandroid 에서 HelloAndroid.java 파일을 열고 내용을 아래와 같이 변경
package com.android.helloandroid;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class HelloAndroid extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView tv = new TextView(this);
tv.setText("Hello, Android");
setContentView(tv);
}
}
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class HelloAndroid extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView tv = new TextView(this);
tv.setText("Hello, Android");
setContentView(tv);
}
}
(4) Run the Code
현재 Perspective가 DDMS 아니라면 Window > Open Perspective 선택하고 DDMS로 변경
Run > Run Configurations 메뉴를 선택하고 "Android Application" 선택
좌측상단의 New 아이콘을 클릭하고 Name: HelloAndroid, Project: HelloAndroid 입력
우측 하단의 Run 실행 (졸라 오래 걸린다 -.-)
(5) Upgrade the UI to an XML Layout
3에서는 코드로 레이아웃을 지정했지만 xml 파일을 이용해서도 가능하다.
res/layout/main.xml 파일을 열고 에디터 아래 main.xml 탭을 클릭하고 아래와 같이 코드 수정
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
</LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
</LinearLayout>
res/strings/main.xml 파일도 아래와 같이 수정
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello, Android! I am a string resource!</string>
<string name="app_name">Hello, Android</string>
</resources>
<resources>
<string name="hello">Hello, Android! I am a string resource!</string>
<string name="app_name">Hello, Android</string>
</resources>
HelloAndroid.java 파일도 아래와 같이 변경
package com.example.helloandroid;
import android.app.Activity;
import android.os.Bundle;
public class HelloAndroid extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
import android.app.Activity;
import android.os.Bundle;
public class HelloAndroid extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
실행!
(6) Debug Your Project
HelloWorld.java 파일을 아래와 같이 수정해고 실행
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Object o = null;
o.toString();
setContentView(R.layout.main);
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Object o = null;
o.toString();
setContentView(R.layout.main);
}
NullPointException이 발생할 것이다. 이제 이 코드를 이용해 디버깅해 보자.
"Force Quit" 버튼을 누른뒤 에뮬레이터를 종료한다.
좌측 바에 오른쪽 버튼을 클릭하고 break point를 하나 만들고 디버그 모드로 실행
Run > Debug History > Hello, Android
이클립스에서 자바 어플리케이션 개발할 때 처럼 디버깅이 가능하다.
(7) Creating the Project Without Eclipse
패스..
** 참고 URL
- Install the ADT Plugin for Eclipse
http://developer.android.com/sdk/installing.html
- Adding SDK Components
http://developer.android.com/sdk/adding-components.html
- Android HelloWorld Tutirial
http://developer.android.com/resources/tutorials/hello-world.html
피드 구독하기:
글 (Atom)