[안드로이드] Android Debug Bridge

안드로이드 | 2009.10.10 20:11 | Posted by imesu-문경원

http://developer.android.com/guide/developing/tools/adb.html

Shell 명령어를 사용할 수 있다.

안드로이드에서는 tty를 이용한 console출력 없다(?)

이거 사용법에 대해서 알아보자.

나중에 ㅋㅋ

우선 관련 사이트만 링크하고 오늘은 쫑~~



[안드로이드]이클립스에서 C프로젝트 만들기

안드로이드 | 2009.09.02 10:42 | Posted by imesu-문경원

▶ MinGW, gdb 연동하여 사용하기 
  http://wiki.kldp.org/wiki.php/Eclipse/CDT

  http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/eclipse/documents/CDT

▶ 기존 C소스 코드를 포함 시키는 방법
   http://www.ibm.com/developerworks/kr/library/os-ecc/

새로운 프로젝트 만들기

Eclipse에 CDT를 설치한 후에, File > New > Project를 검색한다. 이 곳에서 세 가지 유형의 프로젝트를 찾을 수 있다: C ("Standard C Make Project"), C++ ("Standard C++ Make Project"), "Convert to C or C++ Projects". "Standard Make C++ Project"로 시작하여 프로젝트용 소스 코드 파일을 만든다. C/C++ Projects View에서, 오른쪽 클릭을 하고 New > Simple > File을 선택한다. 파일 이름을 정하고 저장한다. 이러한 방식으로 헤더용 많은 파일들과 C/C++ 구현 코드를 생성하게 될 것이다. 마지막 한 가지 makefile은 바이너리 구현을 위해 GNU Make에 의해 사용될 것이다. 이 makefile에 일반적인 GNU make 신택스를 사용한다. (참고자료) makefile은 스페이스가 아닌 탭을 사용하여 들여쓰기 라인을 만든다는 것을 명심하라.

기존의 소스 코드를 Eclipse로 자주 가져와야 한다. (그림 2) CDT는 Import 마법사를 사용하여 파일 시스템 디렉토리에서 Workbench로 파일들을 복사한다. 메인 메뉴 바로 가서 File > Import > File System을 선택한다. Next를 클릭하고, 소스 디렉토리를 열고 파일을 추가하고 싶은 디렉토리를 선택한다. Select All을 클릭하여 디렉토리에 있는 모든 리소스들을 선택한 다음, 계속 진행하여 추가하고 싶지 않은 것을 해제한다. Import의 목적지가 될 Workbench 프로젝트나 폴더를 지정한다. 파일 시스템에서 폴더와 파일을 가져와서 Navigator 뷰에 두거나(드래그&드롭), 복사와 붙이기를 사용하여 폴더와 파일을 가져올 수 있다.


그림 2. 기존 소스 코드를 CDT 프로젝트로 가져오기
그림 2. 기존 소스 코드를 CDT 프로젝트로 가져오기  


▶ eclipse와 gcc를 이용한 native 만들기
  http://eahn.tistory.com/19
   - dll 만드는 방법과 JNI에 대한 언급이 있다.




[안드로이드] 안드로이드 기본 강좌 링크

안드로이드 | 2009.08.28 11:07 | Posted by imesu-문경원

출장을 나온 관계로 구글링만 하고 있습니다.

이곳저곳 찾아 보다가 좋은 글들 찾아 보고 기쁜 마음에 링크를 합니다.

집에 가서 해봐야지 ㅋㅋ

출처 : 커니의 안드로이드 이야기 , 칸드로이드, 안드로이드 팝


안드로이드 구글맵-API이용하기

안드로이드 포팅하기

안드로이드 소스보기

Media Player를 이용한 음악 재생 어플리케이션 만들어보기(1)

Media Player를 이용한 음악 재생 어플리케이션 만들어보기(2)

ADT(Android Development Tools) 100% 활용하기




[List]기본 다지기

[List]여러가지 ListView 만들어보기

[List]Custom ArrayAdapter를 이용한 ListView



[Tab]TabView 및 FrameLayout을 이용한 탭 이용하기

[문자열]외부 리소스 사용하기




[GUI]예제로 알아보는 GUI 디자인 - (1) 레이아웃 설계하기

[GUI]예제로 알아보는 GUI 디자인 - (2) 코드 작성하기

[GUI]예제로 알아보는 GUI 디자인 - (3) 리스너 추가 및 마무리하기



이클립스에서 안드로이드 액티비티 추가하기

이클립스에서 액티비티 레이아웃을 만드는 쉬운 방법

Toast를 이용한 알림 메시지 표시



안드로이드 1.5 SDK가 릴리즈 되면서 개발 환경에서 변경되어 반드시 알아야할 부분이 Android Virtual Device (AVD) 입니다. 

여러 버전의 안드로이드 단말이 존재할 수 있기 때문에 작성하는 어플리케이션을 각각의 버젼과 SDK Add-On에 맞게 테스트해볼 수 있는 에뮬레이터 환경입니다.

이것은 실제 안드로이드 단말이 다양한 하드웨어로 구성될 수 있고, 서로 다른 플랫폼 버젼, SDK Add-On 등이 존재할 수 있는데 개발자가 이 모든 단말을 가져 있지 않더라도 에뮬레이터 환경에서 관리할 수 있도록 합니다.

예를 들어 카메라가 있는 경우, 쿼티자판이 있는 경우, 1.1 SDK 탑재한 단말, 1.5 SDK를 탑재한 단말들 여러 가지 구성을 가지고 있는 가상의 장치를 만들 수 있는 개념입니다

각각의 가상 단말 (Virtual Device)는 SDK버젼을 지정할 수 있고, 스킨도 지정할 수 있으며, 사용하는 SD Card도 지정할 수 있게 되어 있습니다.  AVD의 관리는 tools 밑에 있는 android 명령어로 할 수 있습니다.


1. 사용 가능한 타켓 이미지 확인하기


아래 명령어를 실행하다 멈춰 있으면 [ENTER]를 누르면 된다.

android list targets






2. AVD 생성하기

아래의 명령을 실행하며 AVD_Default 라는 AVD이미지가 생성됩니다.

android create avd -n AVD_Default -t 2

-n으로  avd이를을 정해줍니다.
-t 로 위의 타켓 리스트웨서 표시된 숫자를 정해줍니다. 


C:\>android create avd -n AVD_Default -t 2
Android 1.5 is a basic Android platform.
Do you wish to create a custom hardware profile [no]

Device ram size: The amount of physical RAM on the device, in megabytes.
hw.ramSize [96]:

Touch-screen support: Whether there is a touch screen or not on the device.
hw.touchScreen [yes]:

Track-ball support: Whether there is a trackball on the device.
hw.trackBall [yes]:

Keyboard support: Whether the device has a QWERTY keyboard.
hw.keyboard [yes]:

DPad support: Whether the device has DPad keys
hw.dPad [yes]:

GSM modem support: Whether there is a GSM modem in the device.
hw.gsmModem [yes]:

Camera support: Whether the device has a camera.
hw.camera [no]:

Maximum horizontal camera pixels
hw.camera.maxHorizontalPixels [640]:

Maximum vertical camera pixels
hw.camera.maxVerticalPixels [480]:

GPS support: Whether there is a GPS in the device.
hw.gps [yes]:

Battery support: Whether the device can run on a battery.
hw.battery [yes]:

Accelerometer: Whether there is an accelerometer in the device.
hw.accelerometer [yes]:

Audio recording support: Whether the device can record audio
hw.audioInput [yes]:

Audio playback support: Whether the device can play audio
hw.audioOutput [yes]:

SD Card support: Whether the device supports insertion/removal of virtual SD Car
ds.
hw.sdCard [yes]:

Cache partition support: Whether we use a /cache partition on the device.
disk.cachePartition [yes]:

Cache partition size
disk.cachePartition.size [66MB]:

Created AVD 'AVD_Default' based on Android 1.5

C:>





3. AVD 위치 확인하기


아래의 명령을 실행하며 AVD가 어디에 생겼는지 확인 할 수 있습니다.

android list avds



윈도우 탐색기를 열어서 다시 한 번 확인해 볼까요.

이렇게 정확히, AVD_Default 가 생겼네요. 
 
여기 까지 과정을 통해 AVD을 생성했습니다.

이 방법은 cmd 창에서 실행한 방법이고 이클립스를 이용하며 만드는 방법도 검색해 보면 많이 나오니까 한번 해보세요.

오늘은 여기까지 하고

다음엔 안드로이드를 진짜로 실행해 보도록 하지요.


colinux를 이용해서 우분투에서 안드로이드 커널 이미지 zImage를 생성했습니다.

다음 작업은 window에서 안드로이드 SDK를 설치하는 작업니다.

1. Window용 안드로이드 SDK설치하기

 
다운로드

  1) Window 용 안드로이드 SDK를 다운로드 받습니다.


2) 동의 버튼을 누르면 파일이 다운로드 됩니다.


3) 다운로드 된 파일을 다음 위치로 옮깁니다. 디렉토리 위치는 어디에 놓던 상관없긴 하지만 “C:\colinux” 밑에 놓기로 합시다.


4) 압축을 풀고 window에서 path를 잡아 줍니다. Path는 android-sdk-window-1.5_r3 이 설치된 위치로 합니다.
 
C:\colinux\android-sdk-windows-1.5_r3\android-sdk-windows-1.5_r3\tools


5) 에뮬레이터를 실행합니다. 
 
C:\>emulator sdcard card.img avd AVD_Default-debug-init



헐!! 에러 발생 !!

자세히 살펴보니
AVD_Default-debug-init 가 없어서 그러네요.

내일은 AVD 문제를 해결하고 다시 진행해보지요.!


제 PC에는 Window XP 가 설치되어 있습니다.

리눅스는 colinux에서 우분투를 설치해서 사용하고요.

이전 과정에서 리눅스에서 안드로이드 SDK를 설치했고, goldfish커널도 다운로드 받아 컴파일 했습니다.

컴파일 결과 zImage도 만들어 졌구요.

goldfish는 에뮬레이팅이 가능한 커널 버젼입니다.

그런데 여기서 갈등이 생깁니다. linux용으로 컴파일 하기는 했는데 이거 어떻게 실행시키지!!!

이런 걱정을 왜 하냐면, 앞에서도 말했지만 제 PC에는 window XP를 사용하기 때문입니다.

리눅스에서 만든 zImage를 어떻게 실행할까?

colinux에 GUI환경을 만들고 리눅스용 에뮬레이터를 사용할까요?

방법이 없을까? 고민하다가!!!!!!!

저의 FSP21 의 이일렬씨가 아주 좋은 방법을 가르쳐 주었습니다.

Window용 안드로이드를 설치한 후 에뮬레이터를 실행하는 거지요!!!

진행과정은 내일 다시 올려 드릴께요.

오늘은 우선 맛배기로 실행결과입니다. ㅋㅋ


[안드로이드]goldfish는 여기에 있다.

안드로이드 | 2009.08.14 13:29 | Posted by imesu-문경원


많은 분들이 요즘 안드로이드를 하고 있어서

좋은 자료들이 많이 있습니다.

그런데 가끔 보면 남들은 된다는데 나는 안되는 경우가 많지요.

이번 경우가 그러더둔요.

"안드로이드 패키지" 다운로드 받아 컴파일 하고 , 안드로이드 커널 다운 로드 받은다음에

s2c6410, msm 관련된 커널(2.6.29) 컴파일은 되는데

한 놈이 문제 더군요.

goldfish!!

다행이도 fsp21 이일렬님, 장정숙님이 방법을 가르쳐 주셔서 해보니까 되네요.

문제가 뭐였냐면

예전에 goldfish가 포함되어 배포되었는데. 지금(2.6.29)은 goldfish용 별도의 커널이 있더라구요. ㅠㅠ

그래서 새로 다운로드 받고 zImage 까지 만들 었습니다.


●  전제 조건 


안드로이드 패키지가 먼저 컴파일 되어 있어야합니다.



커널 다운로드


$cd /project/abobo/                                                
$git clone git://android.git.kernel.org/kernel/common.git kernel_goldfish ← goldfish 용 커널 디렉토리(kernel_goldfish)를 만들어집니다.
$cd kernel_goldfish
$git checkout --track -b android-goldfish-2.6.29 origin/android-goldfish-2.6.29
$git branch



●  컴파일 하기

$cd /project/abobo/goldfish_kernel
$make goldfish_defconfig ARCH=arm
$vi Makefile                                                     ← Makefile을 아래와 같이 수정하세요.
   193   ARCH                         := arm
   194   CROSS_COMPILE       :=/project/abobo/android/prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi-
$make zImage


요렇게 하면 zImage 가 arch/arm/boot/zImage 가 생성됩니다.

SO~COOL!!!!

안드로이드 커널 소스를 다운로드 받은 후

우리는 msm, goldfish, s3c6410 에 대한 menuconfig 를 아래와 같은 방법으로 얻어 올 수 있습니다.

그렇게 믿었습니다.

그래서 제 블러그에서 그냥 그렇게 적어 놨는데

두둥!! goldfish 는 없네요.

커널 소스는 android-2.6.29 를 다운로드 받았는데, 이 버젼 부터 없는 걸까요??

지금 구글링으로 검색중입니다. 아직까진 명쾌한 답을 못 구했는데

한가지 확실한건 커널 android-2.6.29  소스에 "arch/arm/configs/goldfish_defconfig" 가 없다는 거지요.



ps)나머지 두 개 msm, s3c6410 은 컴파일 잘 되네요.~~



[안드로이드]커널 소스 다운로드 방법

안드로이드 | 2009.08.03 17:34 | Posted by imesu-문경원

<참고>http://bmfrog.tistory.com/
역시~ 유영창님이 먼서 알아 냈다.
즐거운 마음으로 실행해 보니 아주 , 잘 되더군요. 그래서 정리할 겸 몇 개 긁어서 쬐금 수정해서 올려 봅니다.


1. 안드로이드 설치하기



 $sudo
apt-get install git-core gnupg sun-java5-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev
 $sudo apt-get install valgrind

 $cd   /
 $mkdir  project
 $cd   project
 $mkdir  abobo
 $cd   abobo
 $mkdir  bin
 $mkdir  android
 
 $cd bin
 $wget  http://android.git.kernel.org/repo
 
 $chmod  755 repo
 $cp  repo   /bin
 
 $cd ../android
 $repo  init -u git://android.git.kernel.org/platform/manifest.git
 
 $repo    sync
 
 $export  ANDROID_JAVA_HOME=$JAVA_HOME
 
 $make




약 2시간이 지난 후 컴파일이 완료되면 아래의 파일 및 디렉토리가 생성됩니다.

pt_intermediates/system.img
Install system fs image: out/target/product/generic/system.img
Target ram disk: out/target/product/generic/ramdisk.img
Target userdata fs image: out/target/product/generic/userdata.img
Installed file list: out/target/product/generic/installed-files.txt
$





2. 안드로이드 커널 다운로드 받기


$cd /project/abobo/
$git clone git://android.git.kernel.org/kernel/common.git kernel
$cd kernel
$git checkout --track -b android-2.6.29 origin/android-2.6.29
$git branch




3. 개발 toolchain이 있는 곳 


개발 toolchain은 안드로이드 SDK를 컴파일 하면 하위 디렉토리에 자동으로 생성됩니다.
 

$cd /project/abobo/android/prebuilt/linux-x86/toolchain
$ls

3.1. 커널 빌드 참고

make menuconfig 을 이용해서 커널을 내 보드에 맞게 수정해야한다.
그런데 처음부터 어떤 메뉴을 선택하기 망설여 지고, 잘 모르는 경우가 대부분이다.

다행이도 안드로이드용 커널에서는 몇가지 메뉴에 대해 자동으로 menuconfig 값을 가지고 있다.
이 설정을 참조하여 a-bobo프로젝트에 맞는 menuconfig 구성을 해보자!!


3.1.1. msm (퀄컴 커널)

$make msm_defconfig ARCH=arm
$make ARCH=arm CROSS_COMPILE=../prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi-


3.1.2. goldfish (에뮬레이터 커널)

$make goldfish_defconfig ARCH=arm
$make ARCH=arm CROSS_COMPILE=../prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi-

 

3.1.3. s3c6400  (삼성 s3c6410 커널)

$make s3c6400_defconfig ARCH=arm
$make zImage ARCH=arm CROSS_COMPILE=../prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi-

 

[안드로이드]샘풀코드 Hello Fsp21

안드로이드 | 2009.04.08 14:20 | Posted by imesu-문경원


안드로이드 설치를 마쳤다.
그럼 프로그램을 시작 "Hello World~" 를 찍어보자.
이거 찍으면 절반을 된거잖아. ㅋㅋ


1. 안드로이드 프로젝트 만들기

1) File → Project → Android Project


2) Project name: 에 생성할 프로젝트 이름을 넣는다 → Finush를 누른다.
   난 "HelloFspAndroid" 라도 프로젝트를 생성했다.


3) 위에서 Finush를 누르면 나오는 화면이다. Android Application을 선택한 후 OK버튼을 누른다.

4) 샘플 코드를 작성한다.

아래의 소스는 화면에 Hello,Fsp21 Andoid 를 출력하는 샘플 코드이다.
코드에 대한 설명을 여기선 생략한다.

package androidwave.hello;

import android.app.Activity;
import android.os.Bundle;

import android.widget.TextView;

public class HelloFspAndroid extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);       
        TextView tv =new TextView(this);
        tv.setText("Hello, Fsp21 Android");
        setContentView(tv);
    }
}


5) 실행하기-1
소스코드를 작성이 완료되면 Run → Run Configurations 를 선택한 후 몇가지 추가작업을 하자  



5) 실행하기-2
Andorid Applicaion 을 선택 → Launch에서 andoridware.hello.HelloFspAndroid 를 선택 →
Apply → Run

6) 실행 결과
아래는 샘플코드가 실행된 결과이다. RUN버튼을 누른 후 생각보다 많은 시간이 지난 후 아래의 화면이 나오니까 기달려 보자! 체감으로는 3분정도 기다린거 같다. 시간을 재보지 않아서~^^:



다음에 할일
 - 소스코드 분석 및 안드로이드 구조