블로그 이미지
박공명

카테고리

분류 전체보기 (99)
된장 (7)
Dev (60)
Android (14)
Apache (6)
C (1)
Gauce (1)
Java (8)
Javascript (4)
JSP (3)
Mysql (2)
Oracle (3)
PHP (2)
Weblogic (1)
linux (8)
꼐..꼐임 (6)
식탐 (18)
우리 (0)
Etc (8)
개인자료 (0)
Total
Today
Yesterday
아무이유없다

갑자기 안된다.

유일한 동앗줄인 clean도 안된다.

에러메시지를 보니 이렇다

[2011-09-07 13:46:42 - GatherHere] Error generating final archive: Debug Certificate expired on 11. 7. 30 오후 11:54

권한이 만료됬다라...

찾아보니 의외로 금방 나온다.

debug.keystore 가 만료되었다는 말이다.

해당 정보가있는 경로는 문서/사용자/.android 정도일거같다.

C:\Users\Voltex-Main\.android

파일을 보니 2010년7월30일에 생성되었구나 ㅋㅋㅋ

debug.keystore  만지우고 다시 clean 하니 잘된다.


'Dev > Android' 카테고리의 다른 글

REAL 3D 를 사용한 OpenGL 게임  (2) 2011.07.14
git command , git 명령어  (0) 2011.05.21
android source 브랜치 가져오기  (0) 2011.05.20
android fastboot 사용하기  (0) 2011.05.20
우분투에 안드로이드 프로젝트 세팅  (0) 2011.05.18
Posted by 박공명
, |


얼마전에 Real 3D lib를 사용한 2D 이미지 처리방법을 포스팅 했는데

OpenGL을 공부하느라 3D 이미지 처리방법 포스팅까지 간격이 좀 길었다.

게임 화면부터 공개를 해야할듯 ㅋ ㅋ



뭐 이렇다.

왜 두개냐.. 3D가 원래 이렇다. 양옆이 되던 위아래가 되던 번갈아서 나오던

3D는 양안용 이미지 2개를 모두 가지고 있어야 성립된다.

사실 Real 3D library가 하는일도 이렇게 형식에 마추어 나누어진 화면을

하나로 그리고 양쪽 눈에 맞게 보여주는 역활이다.

열심히 포스팅을 하고있지만 실제 추가되는 처리는 얼마 없다는 것이지.

사실 OpenGL 공부하고 만드는데 3일걸리고 3D로 전환하는데 20분 걸렸다.

ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

OpenGL 강의물도 아니고 내가 전문가도 아닐터이니

3D로 전환하는 핵심부분만 간단히 정리하자.

1. library 선언

2. 전체화면을 반반 나누어 View port를 만든다.

3. 각각 View port의 카메라 x좌표 간격을 조절한다. (여기에서 화면 밖으로 튀어나오거나 들어가게하는걸 조절하게된다.)

    private void setLeftEnv(GL10 gl) {
        gl.glViewport(0, 0, (int) mWidth / 2, (int) mHeight);
 
        gl.glMatrixMode(GL10.GL_MODELVIEW);
        gl.glLoadIdentity();
        GLU.gluLookAt(gl, mEyeDistance, 0.0f, 4.5f, mFocusPoint[0], mFocusPoint[1], mFocusPoint[2], 0.0f, 1.0f, 0.0f);
    }
    private void setRightEnv(GL10 gl) {
        gl.glViewport((int) mWidth / 2, 0, (int) mWidth / 2, (int) mHeight);
        gl.glMatrixMode(GL10.GL_MODELVIEW);
        gl.glLoadIdentity();
        GLU.gluLookAt(gl, - mEyeDistance, 0.0f, 4.5f, mFocusPoint[0], mFocusPoint[1], mFocusPoint[2], 0.0f, 1.0f, 0.0f);
    }



4. 둘다 그린다.

if(mIs3D) {
   setLeftEnv(gl);
   root.draw(gl);
   objectRoot.draw(gl);
   setRightNomalEnv(gl);
   root.draw(gl);
   setRightEnv(gl);
   objectRoot.draw(gl);
  } else {
   setFullEnv(gl);
   root.draw(gl);
   objectRoot.draw(gl);
  }



끝.

object만드는 노가다를 해보니 역시 게임엔진이란게 있어야한다는걸 알았다 ㅠ_ㅠ

gamebryo 사용했을때는 대충 그리면 끝났던것을.........

Posted by 박공명
, |

git add file명
 해당 file만 index 영역에 등록한다. Untracked file을 추가할 때도 사용
 
git add .
 수정한 모든 file들을 index 영역에 등록한다.

( Untracked file 들도 모두 commit 되므로 주의가 필요함)
 
git rm file명
 해당 file만 workspace에서 삭제하고 index 영역에 등록한다.
 
git add -u
 임의로 먼저 파일들을 삭제한 다음 git add –u 를 하면 Index영역에 등록 된다.

( Workspace에 modified된 파일들도 Index영역에 등록되므로 주의가 필요함)
 
git commit –m “코멘트”
 현재 Index 영역에 있는 변경 내역을 commit 영역에 등록한다.
 
git commit –a –m “코멘트”
 Index에 등록 안된 변경 내역들도 모두 commit 영역에 등록한다.
 
git push
 Local commit을 Remote repository에 반영 시킨다.
 
git pull
 Remote repository에 반영된 내역을 local repository 및 내 소스에 받아 온다.
 
git status
 현재 Add / Commit 또는 새로 추가된 파일들의 목록을 보여 줌.
 
repo status
 다수의 git 프로젝트로 구성된 경우 각 git 프로젝트를 검색하여 변경파일을 출력함
 
git checkout -f
 변경된 file들을 Head 상태로 원복 시킨다.
 
git reset --hard  commitID
 지정한 commit ID 이후의 commit들을 제거함. (commit ID는 git log 를 통해 확인)
 
git checkout -- file명
 지정한 file을 수정하기 이전 상태로 원복 시킨다.
 
git reset HEAD file명
 지정한 file을 Index stage에서 제거한다.
 
git clean -f
 현재 자신의 Work space에 있는 Untracked file들을 모두 삭제 함
 
git branch
 현재 내가 위치한 Branch를 확인 할 수 있다.
 
git log
 현재까지 Commit된 목록 들을 확인 한다.
 
git tag
 내가 위치한 repository에 생성되어 있는 Tag 목록을 출력한다.
 
repo forall –c git 명령어
 전체 git 프로젝트를 찾아가서 git 명령어를 수행해 준다.변경된 file들을 Head 상태로 원복 시킨다.

Posted by 박공명
, |

앞서 설명한대로 소스를 다 받아와서 그대로 폰에올리면 나처럼 클난다.

master소스를 그대로 sync 하면 최신소스이지만 제정상일리가 없잖은가

소스를 받아왔다면 내가원하는 버젼의 브랜치로 갈아탈 필요가 있다.

$repo start {branch name} --all
$repo forall -c git checkout {tag name}

Source code tags and builds

Starting with Donut, the exact list of tags and builds is in the following table:

Build Tag Notes
DRC83 android-1.6_r1.1 earliest Donut version, ADP1, ADP2
DRC92 android-1.6_r1.2
DRD08 android-1.6_r1.3
DRD20 android-1.6_r1.4
DMD64 android-1.6_r1.5 latest Donut version
ESD20 android-2.0_r1 earliest Eclair version
ESD56 android-2.0.1_r1
ERD79 android-2.1_r1 Nexus One
ERE27 android-2.1_r2 Nexus One
EPE54B android-2.1_r2.1p Nexus One
ESE81 android-2.1_r2.1s
EPF21B android-2.1_r2.1p2 latest Eclair version
FRF85B android-2.2_r1 earliest Froyo version, Nexus One
FRF91 android-2.2_r1.1 Nexus One
FRG01B android-2.2_r1.2
FRG22D android-2.2_r1.3
FRG83 android-2.2.1_r1 Nexus One
FRG83D android-2.2.1_r2 Nexus One
FRG83G android-2.2.2_r1 latest Froyo version, Nexus One
GRH55 android-2.3_r1 earliest Gingerbread version, Nexus S
GRH78 android-2.3.1_r1 Nexus S
GRH78C android-2.3.2_r1 Nexus S
GRI40 android-2.3.3_r1 Nexus One, Nexus S
GRI54 android-2.3.3_r1.1 Nexus S
GRJ06D android-2.3.4_r0.9 Nexus S 4G
GRJ22 android-2.3.4_r1 latest Gingerbread version, Nexus One, Nexus S, Nexus S 4G

'Dev > Android' 카테고리의 다른 글

REAL 3D 를 사용한 OpenGL 게임  (2) 2011.07.14
git command , git 명령어  (0) 2011.05.21
android fastboot 사용하기  (0) 2011.05.20
우분투에 안드로이드 프로젝트 세팅  (0) 2011.05.18
Real 3D - 단순 이미지 3D 구현  (0) 2011.04.20
Posted by 박공명
, |

fastboot란 우리가 빌드한 이미지들을 타겟에 올릴수있게 도와주는 툴이다.

사용하기위해서는 fastboot모드로 부팅해야한다.

Device Keys
crespo Press and hold Volume Up, then press and hold Power
crespo4g Press and hold Volume Up, then press and hold Power
passion Press and hold the trackball, then press Power
sapphire Press and hold Back, then press Power
dream Press and hold Back, then press Power


파티션의 구조
splash1 : 320*480 image
kernel : boot.img
recovery : recovery.img
system : android platform
userdata : application and userdata
cache : temp

fastboot command
usage: fastboot [ <option> ] <command>

commands:
  update <filename>                        reflash device from update.zip
  flashall                                 flash boot + recovery + system
  flash <partition> [ <filename> ]         write a file to a flash partition
  erase <partition>                        erase a flash partition
  getvar <variable>                        display a bootloader variable
  boot <kernel> [ <ramdisk> ]              download and boot kernel
  flash:raw boot <kernel> [ <ramdisk> ]    create bootimage and flash it
  devices                                  list all connected devices
  reboot                                   reboot device normally
  reboot-bootloader                        reboot device into bootloader

options:
  -w                                       erase userdata and cache
  -s <serial number>                       specify device serial number
  -p <product>                             specify product name
  -c <cmdline>                             override kernel commandline
  -i <vendor id>                           specify a custom USB vendor id
  -b <base_addr>                           specify a custom kernel base address
  -n <page size>                           specify the nand page size. default: 2048

예시
$fastboot erase boot
$fastboot erase recovery
$fastboot boot {kernel} {ramdisk}
$fastboot flash:raw boot {kernel} {ramdisk}

ex)fastboot flash 파티션 이미지

'Dev > Android' 카테고리의 다른 글

git command , git 명령어  (0) 2011.05.21
android source 브랜치 가져오기  (0) 2011.05.20
우분투에 안드로이드 프로젝트 세팅  (0) 2011.05.18
Real 3D - 단순 이미지 3D 구현  (0) 2011.04.20
Real 3D 개요  (0) 2011.04.19
Posted by 박공명
, |


생강빵 외 최신버젼(java6)

$ sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
$ sudo add-apt-repository "deb-src http://archive.canonical.com/ubuntu lucid partner"
$ sudo apt-get update
$ sudo apt-get install sun-java6-jdk
 
프로요 하위버젼(java5)
 
$ sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu dapper main multiverse"
$ sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu dapper-updates main multiverse"
$ sudo apt-get update
$ sudo apt-get install sun-java5-jdk
 
필요한 패키지들
 
$ sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev 
  lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev
 
64빗 시스템에서 32빗환경을 구축하기위하여 필요한 패키지
 
$ sudo apt-get install gcc-multilib g++-multilib libc6-i386 libc6-dev-i386
 
 usb 설정
 
root권한으로 /etc/udev/rules.d/51-android.rules  파일을 만든다.
# adb protocol on passion (Nexus One)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e12", MODE="0600", OWNER="<username>"
# fastboot protocol on passion (Nexus One)
SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0fff", MODE="0600", OWNER="<username>"
# adb protocol on crespo (Nexus S)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e22", MODE="0600", OWNER="<username>"
# fastboot protocol on crespo (Nexus S)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e20", MODE="0600", OWNER="<username>"
들입다 복사해다 붙여넣는 병신은 없길바래.
 
소스 다운로드환경
 
$ mkdir ~/bin $ PATH=~/bin:$PATH
$ curl http://android.git.kernel.org/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
세세한 파일경로는 입맛대로 바꾼다.
 
$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY
 
마스터 체크아웃을 가져올때
 
$ repo init -u git://android.git.kernel.org/platform/manifest.git
특정 브랜치를 가져올떈 -b옵션을 사용하자
$ repo init -u git://android.git.kernel.org/platform/manifest.git -b gingerbread
 
파일가져오기
 
$ repo sync
 
태그작업 패스
 
빌드하기
 
최초 환경설정
$ source build/envsetup.sh
or
$ . build/envsetup.sh
. 왜찍는지 궁금하지? ㅋ ㅋ
 
타겟설정
 
$ lunch full-eng
argument 는 DEVICE-BUILDTYPE
 
DeviceBuild configuration
crespofull_crespo-userdebug
crespo4gfull_crespo4g-userdebug
passionfull_passion-userdebug
sapphirefull_sapphire-userdebug
dreamfull_dream-userdebug
 
BuildtypeUse
userlimited access; suited for production
userdebuglike "user" but with su access; preferred for debugging
engunrestricted access
 
대망의 빌드
몇개의 스레드를 사용해서 병렬빌드할지 정함.
make -j4
 
 
adb,fastboot build
$make adb fasboot
 
fastboot mode booting
DeviceKeys
crespoPress and hold Volume Up, then press and hold Power
crespo4gPress and hold Volume Up, then press and hold Power
passionPress and hold the trackball, then press Power
sapphirePress and hold Back, then press Power
dreamPress and hold Back, then press Power
 
Unlocking the bootloader
$ fastboot oem unlock
 
언락시 넥서스원은 복구가 불가능하다고 나와있네
넥서스s , 4g 는 다음명령어로 가능
$fastboot oem lock
 
Flashing a device
사용자 데이터는 일반적으로 호환되지않기때문에 싹다 지우는게 좋다
$ fastboot erase cache
$ fastboot erase userdata
 
그리고 한방에 싹올린다
#fastboot flashall
 
crespo,4g,sapphire는 단일명령으로 수행가능하다(넥서스원passion은 안됨)
$fastboot -w flashall
 
 
 
 사실 공식홈 나온대로하면 아무 무리 없다.
http://source.android.com/source/initializing.html

'Dev > Android' 카테고리의 다른 글

android source 브랜치 가져오기  (0) 2011.05.20
android fastboot 사용하기  (0) 2011.05.20
Real 3D - 단순 이미지 3D 구현  (0) 2011.04.20
Real 3D 개요  (0) 2011.04.19
LG Real 3D SDK  (1) 2011.04.13
Posted by 박공명
, |

진짜 별게없어서 쓰기 난감하다.

사실상 그림 한장이면 설명 가능한데

진짜 그런데...

그래서 그렸다.



화면을 반으로 나누고 왼쪽엔 왼쪽눈에 보여야 할 이미지 오른쪽엔 오른쪽 눈에 보여야 할 이미지를 뿌려준다.

3d 옵션이 켜져있다면 저 두개는 한 화면으로 합쳐져서 보이게되며 각각 보여야할 눈에 보여준다.

그리고 양안에 보이는 위치가 틀리기 때문에 원근감이 생기고 눈이 아프다 ㅋ ㅋ ㅋ

소스로 보면 더 간단함.


3D 객체를 따고 SurfaceView의 Holder를 넘겨주고 기본옵션(3d여부,이미지의 순서) 만 정해주면 알아서 나온다.


난 그저 그림을 두개 그려 줬을뿐.(mCanvasWidth = getWidth() / 2;)

에뮬로 돌리면 이렇게 된다.


참고로 옵티머스3D와 에뮬은 3d 구현방식이 전혀 틀리다.

에뮬은 짝짝이 안경끼고 확인할수 있도록 만들어져있다.

3D(?)를 3D(?)로 구현하는 방법은 조금 틀린거같다.

일단 OpenGL부터 공부하고 옴.

'Dev > Android' 카테고리의 다른 글

android fastboot 사용하기  (0) 2011.05.20
우분투에 안드로이드 프로젝트 세팅  (0) 2011.05.18
Real 3D 개요  (0) 2011.04.19
LG Real 3D SDK  (1) 2011.04.13
JNI ?  (1) 2010.10.28
Posted by 박공명
, |

Real 3D 개요

Dev/Android / 2011. 4. 19. 16:55

3D를 구현하기위해서는 먼저 구동방식을 이해하는것이 먼저라고 해야겠다.

먼저 사람의 눈이 어떠한 방식으로 원근감을 얻게되는지 알아야 하는데

사람은 어떠한 물체를 좌우의 눈으로 다른 방향에서 바라보면서 이를 통하여

입체감을 얻을수가 있는데 이걸 양안시차 라고 부른다고 한다.

한쪽 눈의 시력을 상실한 사람이 원근감을 잃는것도 이와 같은 맥락인거같다.

그렇다면 각각의 눈에 다른 상을 맺이게 할수있다면 원근감을 조작하는것이

가능하단 이야기가 되는데 그것이 3d display의 요체인거같다.

자료를 좀 찾아보니 현재 무안경 3d display 구현방법은 두가지 정도로 보인다.

Lenticular lens 방식과 Parallax barrier 방식이라고 부르는거같은데

전자는 화면앞에 이름과같은 렌즈가 있어서 빛의 굴절을 통하여 각각의 눈이

원하는 상을 보게 만든다.

후자는 화면 앞에 Film Barrier , LC Shutter (정확하게 뭔진 모른다) 등을 통해서

반대쪽 눈이 보고있는 영상을 가리고 자기가 봐야하는것만 보여주는거다.

결론적으로 무슨 편법을 쓰던간에 각각의 눈에 다른 영상이 보이기만 하면

3D 화면이 구현이 가능하다.

한가지 알아둬야 할건 아직은 기술적인 문제인지 아주 한정적인 각도로만

구현이 가능하다. 현재 가로모드로만 3d를 구현하고 있으며 시야각에따라서

화면에 많은 문제가 있으며 세로로 보면 아까 설명한 3d의 원리를 두눈으로 확인할 수 있다. ㅋ ㅋ

아무튼 중요한건 전문가들이 다 해줄테니 개발자는 사용법만 알면 오케이

다음화에서 구현을 해보겠다.

'Dev > Android' 카테고리의 다른 글

우분투에 안드로이드 프로젝트 세팅  (0) 2011.05.18
Real 3D - 단순 이미지 3D 구현  (0) 2011.04.20
LG Real 3D SDK  (1) 2011.04.13
JNI ?  (1) 2010.10.28
안드로이드 교육내용  (0) 2010.09.13
Posted by 박공명
, |

LG Real 3D SDK

Dev/Android / 2011. 4. 13. 22:23

엘지전자에서 3D 개발용 SDK를 공개했네요.

검색해보니 안나와 ㅋ ㅋ

링크부터 공개

http://developer.lgmobile.com/lge.mdn.tnd.RetrieveDocAndTools.dev?objectType=T#none

이번에 전략모델이라는 옵티머스 3D 를 출시하면서 여러모로 기대감이 많은 것 같습니다.

물밑으로 많은 3D 컨텐츠가 확보되야 뭔가 경쟁이라도 해볼거 같네요.

3D 가계부나 만들까봐여

네 금전 현황을 '입체적으로' 파악할수있는 매우 실용적인 ㅋㅋㅋ

'Dev > Android' 카테고리의 다른 글

Real 3D - 단순 이미지 3D 구현  (0) 2011.04.20
Real 3D 개요  (0) 2011.04.19
JNI ?  (1) 2010.10.28
안드로이드 교육내용  (0) 2010.09.13
이클립스에서 안드로이드 프로젝트에 이유없는 에러표시  (0) 2010.06.16
Posted by 박공명
, |

JNI ?

Dev/Android / 2010. 10. 28. 11:38

1. native 메소드 선언(ex: public native helloworldPrint();
2. javah 를사용하여 헤더파일 생성
3. 헤더파일에 선언된 함수명을 참조하여 cpp 작성
4. so파일 생성

참조하는법
static {
    System.loadLibrary("생성된so파일에서 맨앞lib제거된이름");
}

개념 잡히면 다시정리함

'Dev > Android' 카테고리의 다른 글

Real 3D 개요  (0) 2011.04.19
LG Real 3D SDK  (1) 2011.04.13
안드로이드 교육내용  (0) 2010.09.13
이클립스에서 안드로이드 프로젝트에 이유없는 에러표시  (0) 2010.06.16
안드로이드 세팅  (0) 2010.04.13
Posted by 박공명
, |

최근에 달린 댓글

최근에 받은 트랙백

글 보관함