달력

02

« 2012/02 »

  •  
  •  
  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  •  
  •  
  •  
국내 스마트폰OS 시장, 안드로이드 '1위'

602만명이 넘어선 국내 스마트폰 시장 그 중에 353만명이 안드로이드 사용자이다.
1년도 안 된 시점에 이정도의 파급력이면... 그리고 먼저 준비했던 자에겐 기회가 먼저 주어졌을 테고...

그리고, 다음의 기회를 놓치지 않아야 한다!
Posted by korcslewis
드디어 안드로이드 마켓 유료 결제 서비스가 국내에도 시작한다!!
안드로이드 시장이 더욱 활성화될 전망이며 그만큼 경쟁도 심해지겠지?^^;;

안드로이드 마켓에서 유료 응용프로그램(애플리케이션)을 이달 중 사용할 수 있을 전망이다. 당초 ‘3·4분기 중으로 가능할 것’이라는 언급은 있었으나 비교적 이른 시기에 유료화가 되는 것이다. 이에 따라 국내 수십만명에 이르는 안드로이드폰 사용자들이 더 다양한 애플리케이션을 사용할 수 있을 전망이다.




Posted by korcslewis
뜬끔없는 소리가 아니다. 여러 곳의 기사를 통해서 해당 내용을 볼 수 있다.



그냥 보기에는 별다른 문제가 되지 않을거 같으나, 구글이 안드로이드 모바일 플랫폼을 개방한 것과는 너무나도 대조적인 삼성의 행보에 헛웃음이 나온다.
처음 기사를 대했을 때는 너무나도 어이가 없다는 생각이 들었다.
그러면 삼성에서 만든 '바다(bada)' 플랫폼은 삼성이 어떻게 생각하는 것일까?

회사 동료에게 기사의 내용만 소개해 줬더니 "'삼성을 생각한다' 책을 읽어봐야 겠는데요" 라고 했다.
허~ 국외 기업이나 관련 종사자들이 삼성의 행보를 보면 뭐라고 생각할까?

구구절절히 언급하기에도 참 민망할거란 생각이 드는 참에 한 블로거의 좋은 글이 있어 소개한다.
한 번씩 읽어보고 정말로 삼성을 생각해 봤으면 좋겠다.


안드로이드는 개발자 뿐만 아니라, 사용자에게도 새로운 플랫폼(개발자에겐 플랫폼이지만 사용자에겐 생활패턴이라고 하면 좋겠다)이 된다.
그리고 그 속에서 가장 중요한 것은 오픈소스로 말할 수 있는 안드로이드의 개방성이다. 아이폰, WIPI 와 같은 폐쇄적인 플랫폼이 아닌 제조사든, 개발자든, 사용자든 누구나 접근할 수 있는 개방성말이다.

개방성!!!
Posted by korcslewis
2010/02/23 16:28

3D Android Widget UI Application Android2010/02/23 16:28

웬만한 위젯 UI 로는 명함도 내밀기 힘들어질거 같다^^;;

Posted by korcslewis
2009/12/07 16:43

안드로이드의 다양한 이미지 소개 Android2009/12/07 16:43

블로거님께서 어디서 찾으셨는지는 모르지만 정말 많은 안드로이드 이미지들이 있다^^



Posted by korcslewis
이미 구글코드는 상당히 많은 코드를 호스팅하고 있고, 구글이 직접 다양한 오픈소스를 공개한 사이트로 유명하다.
여러 변천이 있은 가운데 각 나라별로 언어를 지원하는 경우에는 약간의 UI를 포함해서 서비스하고 있다.
이 중에서 Android 관련 호스팅과 검색을 해 보자.


적당할 때 찾아보면 되지만 최근엔 자주 들어가게 된다^^

Posted by korcslewis
이전 글 - 안드로이드 전체 소스코드 빌드 - 을 통해서 안드로이드 전체 소스코드를 빌드해 보았다.
이번엔 간단하게 "make sdk" 명령어를 통해서 SDK만 빌드해 보자.

사실 안드로이드 전체 소스코드를 빌드하는 것은 상당한 많은 시간이 소요된다.
때문에 필요에 따라서 모듈별로 빌드하면 좋은데 이번엔 간단하게 SDK를 빌드해 보는 것이다.

안드로이드 소스를 다운 받은 디렉토리로 이동해서 다음과 같은 커맨드를 내려준다.
만약 mydroid 디렉토리에 소스 코드를 다운받았다면 다음과 같다.

leesh@ubuntu:~/mydroid$make sdk

실제 SDK를 빌드해 본 결과, 듀얼 CPU에서 약 10분이 걸리지 않은 거 같다.

이렇게 SDK를 빌드해 보아야 할 이슈 중에 가장 큰 이유는 SDK에 포함된 Application 들을 분석하기 위함인거 같은데 나 역시 같은 이유로 살펴보고 있는 중이다.

다음엔 모듈별로 빌드하는 것을 조금더 살펴볼 예정이다.

Posted by korcslewis
2009/07/06 17:45

Android MMS Sequence Diagram Android2009/07/06 17:45

안드로이드 패키지에는 디폴트로 MmsApp 가 포함되어 있다.
MMS의 특성상 SMIL를 플레이해 주어야 하는데 안드로이드에서는 이러한 소스를 제공해 준다.
회사 내에서 세미나를 진행해야 할 일이 있어 공부하면서 그려본 Sequence Diagram을 공개한다.

사용자 삽입 이미지

Sequence Diagram을 그린 툴을 잠시 소개하면 "Violet UML Editor" 이다.
Microsoft Visio는 너무 둔탁하기도 하고 많은 내용을 채우기에는 부족한 면이 많아서 이번 기회에 오픈소스로 된 UML 도구를 찾다가 알게된 툴이다.
간단하게 sequence diagram과 class diagram을 그리기에는 좋은 툴이란 평을 받고 있다.

Posted by korcslewis
Android 1.5_r1 자바 소스코드 이클립스에서 보기

안드로이드 개발에 필수적인 작업일 수도 있다. 최근 단순히 안드로이드 Application 개발 이슈가 아닌 이미 잘 만들어진 안드로이드 애플리케이션 소스를 보아야 할 일이 많아졌다.

이전에 찾아놓았던 자료인데 이클립스에 연결만 해 두고 포스팅을 해 두지 않아서 연결해 둔다.

http://anddev.tistory.com/50


Posted by korcslewis
2009/06/16 15:23

Android 전체 소스코드 빌드 Android2009/06/16 15:23

안드로이드 전체 소스를 git에서 다운받아서 빌드하고 테스트 해보자.

개발환경
- OS : Ubuntu 8.10 desktop

구글도 우분투를 권장하고 있을 뿐만 아니라 안드로이드 개발에 있어서는 우분투에서 개발하는 것이 좋은 점이 많다. 특히 에뮬레이터 네트워크 이슈등으로 인해서.

안드로이드 전체 소스코드 빌드 방법에 대해서는 다음의 글을 참고하여 직접 해 본 것이다.
http://www.kandroid.org/board/board.php?board=androidsource&command=body&no=4

1. 환경설정

위의 kandroid.org 의 글에서처럼 필요한 패키지들을 설치해 준다.
다음의 예제들은 우분투 데스트탑 터미널이나 원격 터미널을 통해서 실행할 수 있다.

sudo apt-get install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl
sudo apt-get install valgrind

해당 패키지들을 설치하는 중에 의존성 에러등이 발생할 경우에는 해당 의존 패키지들을 설치해 준다. 대부분은 'yes'를 통해서 설치만 해 주면 된다.

다음으로는 Java SDK가 설치되어 있지 않다면 Java SDK를 설치해 주어야 한다. kandroid.org 글에서는 우분투 apt-get을 통한 SUN SDK를 설치하도록 되어 있는데 여기서는 아래의 링크를 통해서 SUN Java SDK 버전을 다운받아서 설치하도록 한다.

우분투에서 Java 설치하기

여기서 잠시 살펴볼 것은 현재 버전이 JDK1.6.0_14 임으로 update-alternatives를 다음과 같이 실행해 준다.

sudo update-alternatives --install "/usr/bin/java" "java" "/usr/local/jdk1.6.0_14/bin/java" 1
sudo update-alternatives --config java

기존에 기설치된 JDK가 존재할 경우 -config 옵션을 통해서 선택하게 해 준다. 방금 설치한 JDK1.6.0_14 버전을 선택해 준다.

java -version
java version "1.6.0_14"
Java(TM) SE Runtime Environment (build 1.6.0_14-b08)
Java HotSpot(TM) Client VM (build 14.0-b16, mixed mode, sharing)

"java -version" 커맨드를 통해서 자바 버전을 확인해 본다.

다음은 repo 명령어를 실행하기 위해서 계정 내에서 bin 디렉토리를 만들어 준다.

mkdir bin

지금까지 설정한 환경에 대한 셋팅을 마무리한다.

vi ~/.bashrc


해당 파일에 다음을 추가한다.

export LANG=c
export PATH=/home/<user_home>/bin:$PATH:.
export JAVA_HOME=/usr/local/jdk1.6.0_14
export ANDROID_JAVA_HOME=$JAVA_HOME

시스템을 재로그인 하거나 원격일 경우 로그아웃 한 후 재접속해 준다.


2. git 설치

git는 최근의 연구대상이다. 인터넷을 통해서 많은 자료를 찾을 수 있다. 다음의 자료를 통해서 대략적인 것을 이해할 수 있다.

git 사용자 설명서

우분투 터미널에서 다음과 같은 명령어를 통해서 git 를 설치하고, android.git의 repo를 로컬로 옮겨온다.

sudo apt-get install git-core gnupg
curl http://android.git.kernel.org/repo >/home/<user_home>/bin/repo
repo 커맨드를 실행할 수 있는 파일로 변경해 준다.

chmod a+x ~/bin/repo


3. Android 소스 다운로드 하기

안드로이드 소스를 다운로드하기 위한 로컬의 저장소를 만들어주고, 해당 디렉토리로 이동한다.

mkdir mydroid & cd mydroid

android 소스가 존재하는 git 주소로 초기화 해 준다.

repo init -u git://android.git.kernel.org/platform/manifest.git

원격 git 주소와 로컬의 저장소를 동기화 해 준다. 이 과정이 안드로이드 소스를 다운로드 받는 것이다.

repo sync

이 과정을 통해서 안드로이드 소스를 다운받게 되는데 다운로드를 받아보니 현재(2009.06.16) 기존으로 1.4GB 이다. 따라서 식사시간 전에 sync를 걸어주는 게 좋다.
간혹 네트워크 상태가 좋치 않거나 서버와의 접속이 끊어지는 경우가 있다. repo sync 명령어를 계속해서 입력해 주면 된다.

사용자 삽입 이미지

4. Android 소스 빌드

안드로이드 소스 코드를 다 받게 되면 make 명령어를 통해서 빌드하게 된다.

cd mydroid
make


현재 테스트해 본 결과로는 별도의 에러가 발생하지 않는다. 하지만 Java 관련 명령어의 링크가 제대로 동작하지 않아 에러를 발생하는 경우를 볼 수 있었다. 예를 들면 다음의 에러와 같다.

build/core/product_config.mk:261: WARNING: adding test OTA key
============================================
TARGET_PRODUCT=generic
TARGET_BUILD_VARIANT=eng
TARGET_SIMULATOR=
TARGET_BUILD_TYPE=release
TARGET_ARCH=arm
HOST_ARCH=x86
HOST_OS=linux
HOST_BUILD_TYPE=release
BUILD_ID=
============================================
build/core/copy_headers.mk:15: warning: overriding commands for target `out/target/product/generic/obj/include/libpv/getactualaacconfig.h'
build/core/copy_headers.mk:15: warning: ignoring old commands for target `out/target/product/generic/obj/include/libpv/getactualaacconfig.h'
make: execvp: /bin/bash: Argument list too long
host Java: clearsilver (out/host/common/obj/JAVA_LIBRARIES/clearsilver_intermediates/classes)
/bin/bash: javac: command not found
make: *** [out/host/common/obj/JAVA_LIBRARIES/clearsilver_intermediates/javalib.jar] Error 41


javac 커맨드를 찾을 수 없다는 말이니깐 "sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/local/jdk1.6.0_14/bin/javac 1" 명령어를 통해서 해결할 수 있다.

javah, javadoc, jar 에 대해서도 동일한 에러가 발생하였음으로 위의 명령어를 통해서 해결할 수 있다.

빌드 시간이 2시간 남짓 걸렸다...ㅡㅡ;; 암튼 많은 시간을 투자해야 하니 처음부터 긴 시간을 각오하는게 좋다^^


5. 빌드 테스트

전체 소스 빌드를 성공하였다면 img 파일이 정상적으로 동작하는 지 살펴보아야 한다. "mydroid/out/target/product/generic" 디렉토리를 살펴보자. 아래의 그림과 같이 system.img, ramdisk.img, userdata.img 파일을 포함한 다양한 파일, 폴더가 생성되어져 있어야 한다.

사용자 삽입 이미지


이제 ramdisk.img, system.img, userdata.img 파일들을 이용하여 실제로 SDK의 에뮬레이터를 구동해 보면 된다.
이를 위해서 Android SDK1.5_r2 를 설치해 주어야 한다.

http://developer.android.com/sdk/1.5_r2/index.html

각 플랫폼에 맞는 SDK를 설치해 주면 된다. 만약 SDK1.5 버전을 최초로 설치하였다면 AVD(Android Virtual Device)를 생성해 주어야 한다. 다음과 같이 해 준다. 이 때 Android SDK 설치 디렉토리의 "ANDROID_HOME/tools" 디렉토리에서 해 주어야 한다.

./android create avd -n <device_name> -t 2

위의 명령어 옵션 중에 -n 다음에 붙는 것은 이미지의 이름이고, -t 다음에 붙는 것은 SDK 버전을 뜻한다. 인터넷 상에 Android SDK 1.5 설치 관련된 자료가 많으니 참고하길 바란다.

이제 모든 준비가 되었다. 에뮬레이터를 먼저 구동해 보고 Android SDK 1.5가 정상적으로 설치되었는지 확인해 본 다음 위에서 빌드한 파일로 테스트해 보자.

./emulator -avd <device_name>


위의 명령어를 통해서 에뮬레이터를 실행하면 SDK로 설치한 img 파일로 실행된다. App 들이 정상적으로 동작하는지 확인해 보자.

다음은 에뮬레이터를 종료시키고 빌드한 img 파일을 이용하여 에뮬레이터를 동작시켜 보자.

./emulator -adv <device_name> -ramdisk <file> -system <file> -initdata <file>


형태로 실행하면 되는데 <file> 에 해당하는 img 파일들을 절대경로로 지정해 주면 된다.
-ramdisk 다음의 파일을 "ramdisk.img", -system 다음의 파일은 "system.img", -initdata 다음의 파일은 "userdata.img" 이다.

Android SDK 1.x 에서는 -system 옵션이 -image 였다. 이전의 자료들을 보면 -image 옵션으로 설명한 곳들이 있으니 주의하기 바란다.

에뮬레이터가 정상적으로 구동하고 application 들이 정상적으로 구동되면 안드로이드 전체 소스 빌드를 성공한 것이다.

Posted by korcslewis