레이블이 개발인 게시물을 표시합니다. 모든 게시물 표시
레이블이 개발인 게시물을 표시합니다. 모든 게시물 표시

2010년 9월 14일 화요일

c++ 활용, copy 불가 class 만들기 : noncopyable

간만의 글 올리기...

c++ 재미 있는 활용...
중요한 resource를 관리하는데 있어서 single instance로만 되도록, 즉, object copy가 이루어지지 않도록
하는 재미있는 코딩 테크닉...



class noncopyable {
 private:
  noncopyable(const noncopyable& x);
  noncopyable& operator=(const noncopyable& x);
 public:
  noncopyable() {}; // Default constructor
};

* webkit source를 보다보면 많은 class들이 Noncopyable class를 상속 받고 있다...
이렇게나 많이 ?




2010년 4월 6일 화요일

android application debugging with ddms

이런 이런...

ddms가 이런 것이었구나... process, memory 이런거를 다 볼수 있는 기능이 !

* google은 screen capture 좀 해 두지... 글자만 읽어 봐서는 뭔지 알수가 있나... -_-;

2010년 2월 1일 월요일

게임 만들기 #1

잼있는 꺼리를 찾은것 같다.
예전에 일본에서 유행하던, 수십개(수백개?) 총알이 다가오는것을 피하는 ( dodge ) 하는 게임...
몇초 동안 살아 있을까를 내기 하던 그런 게임...

일단 코딩은 시작 !
예전에 java 가지고 코딩해본것은 6~7년전에 WIPI가 다 인데, 기억을 더덤어 다시 익숙해지는것도
꽤나 어렵다. 다행히 eclipse는 타이핑 하는 순간 순간 뭐가 틀렸고 어떻게 고치겠다고 제안대 해 주니
참으로 고맙기도 하지... ^^;

그나 저나, 비행선 이미지, 총알(뭐, 우주 떠도는 돌,바위?) 이런 이미지는 어떻게 할지도 고민되고, sound effect는 또 어떻게 해야 할지 아직 잘 모르겠지만 인터넷 찾아 헤매이다 보면 해결될수도...


2010년 1월 16일 토요일

2010년 1월 4일 월요일

Android memory 정보 보기

역시(?) google groups에 찾아보면 뭔가가 나온다... 다만 뭐라 물어볼지가 문제...-_-;


1-1) command promp> adb shell procrank
  ( Uss is the amount of memory private to your app,
    Pss includes the shared memory weighted across the number of processes it is shared in )

(다음과 같이 나온다... 시간이 좀 걸리네...)
  PID      Vss      Rss      Pss      Uss  cmdline
   53   37100K   36500K   17826K   13784K  system_server
  104   26008K   26008K    8365K    5344K  android.process.acore
   30   25252K   25252K    8082K    5420K  zygote
  101   22108K   22108K    5922K    3672K  com.android.phone
   99   20568K   20568K    4705K    2968K  jp.co.omronsoft.openwnn
  478   19840K   19840K    4492K    2876K  costep.test
  188   19572K   19572K    4094K    2448K  com.android.email
  134   19356K   19356K    4006K    2340K  com.android.mms
  108   19120K   19120K    3947K    2136K  com.android.settings
  156   19192K   19192K    3930K    2392K  android.process.media
  180   18592K   18592K    3321K    1740K  com.android.alarmclock
  212   17348K   17348K    2815K    1448K  com.svox.pico
   31    3272K    3272K     956K     632K  /system/bin/mediaserver
   37     844K     844K     829K     828K  /sbin/adbd
  497     492K     492K     304K     296K  procrank
   29     728K     728K     251K     216K  /system/bin/rild
    1     204K     204K     185K     184K  /init
   27     380K     380K     150K     140K  /system/bin/vold
   35     336K     336K     132K     124K  /system/bin/qemud
   75     328K     328K     119K     108K  logcat
   33     404K     404K     105K      88K  /system/bin/keystore
   32     316K     316K      98K      88K  /system/bin/installd
  496     324K     324K      94K      68K  /system/bin/sh
   74     324K     324K      94K      68K  /system/bin/sh
   34     324K     324K      94K      68K  /system/bin/sh
   45     308K     308K      93K      84K  /system/bin/qemu-props
   26     260K     260K      91K      84K  /system/bin/servicemanager
   25     308K     308K      90K      68K  /system/bin/sh
   28     248K     248K      83K      76K  /system/bin/debuggerd



1-2) command prompt > adb shell dumpsys meminfo <processname>
(다음과 같이 나온다)
** MEMINFO in pid 101 [com.android.phone] **
                    native   dalvik    other    total
            size:     3640     3719      N/A     7359
       allocated:     3616     3161      N/A     6777
            free:       23      558      N/A      581
           (Pss):     1103     2894     2120     6117
  (shared dirty):     1760     4776      792     7328
    (priv dirty):      952     1392      880     3224

 Objects
           Views:        0        ViewRoots:        0
     AppContexts:        5       Activities:        0
          Assets:        3    AssetManagers:        3
   Local Binders:       29    Proxy Binders:       42
Death Recipients:        1
 OpenSSL Sockets:        0

 SQL
            heap:      176          dbFiles:        0
       numPagers:        2   inactivePageKB:       25
    activePageKB:        0


"Analyzing the memory usage of your Android application"
( '10-01-04 : 아직은 이해를 못하고 있는 java의 hprof... -_-; )


3) target은 방법이 좀 어렵겠지만, emul에서는...

C:\android-sdk-windows\tools> mode con: cols=120
( 보기 편하게 column을 좀 넓힌다)
C:\android-sdk-windows\tools> adb shell
# ps
또는
# top
(다 되는지는 모르겠네... -_-; )

* 우째 내가 지금 뭔가를 하려는 것이(정리? 아니면...) "blog"로 되려나 모르겠네...maybe wiki ?


2010년 1월 1일 금요일

android emulator 활용 - 전화걸기 emulation

android emulator는 call 이나 sms emulation 기능이 있긴 한데, gui가 없이 telnet으로 가능하다.
>telnet localhost 5554
5554는 emulator에 보이는 port 번호이다. (PuTTY 같은 무료 terminal을 사용하면 편하다... )
접속이 되면 다음과 같은 메시지가 나온다.

Android Console: type 'help' for a list of commands
OK

- 전화 걸기 ( from 외부 to emulator )
gsm call 123456780

- sms 보내기
sms send 123456 hello this is a sms text message



@ 누군가가 gui front end 만들어 두었을 듯 한데... -_-;

2009년 12월 30일 수요일

"삼성은 IBM에게 길을 물어야 한다" 글...

"제조는 기계를 움직여 만들 수 있으나 소프트웨어는 사람의 마음을 움직여야 만들 수 있다."


마음이 가는 글입니다...

2009년 12월 27일 일요일

android sample source 활용

sample source svn checkout 참고 URL

1) eclipse svn pluging 추가하기 : subclipse : http://subclipse.tigris.org/update
2) svn 받기 :http://apps-for-android.googlecode.com/svn/trunk
3) file-project-new 로 받은 source를 android project로 만들어서 build/run

2009년 12월 20일 일요일

Android 빌드하기

첫번째 빌드 기록.

$ make

============================================
PLATFORM_VERSION_CODENAME=AOSP
PLATFORM_VERSION=AOSP
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=MASTER
============================================
Checking build tools versions...
************************************************************
You are attempting to build with the incorrect version
of java.

Your version is: java version "1.6.0_15".
The correct version is: 1.5.

Please follow the machine setup instructions at
    http://source.android.com/download
************************************************************
build/core/main.mk:111: *** stop.  Stop.

음...

> sun에 가서 JDK5를 다운로드 받아서,
> /usr/lib/jvm/jdk1.5.0_22
> 에 파일을 풀어 놓고, PATH를 /usr/lib/jvm/jdk1.5.0_22/bin 이 앞이 되도록 순서를 둔다.
> $ java -version
> 으로 버전이 1.5인지 확인하고 빌드...



2009년 12월 19일 토요일

개발 환경 설정하기


Eclipse 설정하기
1. Eclipse를 다운로드 받아 둡니다. 3.5.1 Classic을 받았습니다 ( '09-12 )
2. JDK 6를 설치 합니다.
3. Elipse를 실행하고 ADT (Android Development Tools)를 설치한다.
4. AVD Manager에서 target을 하나 만든다.


Linux 설정하기 ( Linux from scratch 실행하기 위해 필요한 것들 )
  > sudo apt-get install ssh
2. ubuntu에서 더 설치 할것들...
  > sudo apt-get install build-essential m4 ssh autogen autoconf gettext texinfo flex bison
 
- 한참동안 오류를 인지 못했는데, texinfo 였다. 계속 textinfo 라고 typing 하고 있었는데...
- yacc, lex 설치는 flex, bison 으로 된다.

 

2009년 12월 13일 일요일

Android 소스 받기

http://source.android.com/download 페이지에 의하면 ( 2009-12 )
$ 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

문제 : E: Couldn't find package sun-java5-jdk
이건 또 어떻게 행결하나...
git로 소스 받는데는 별 다른 문제가 아직까진 없긴한데...

> kandroid에 보니,
> sudo apt-get install sun-java6-jdk
> 이런... 중간에 죽였다니 apt 지 뭔지 이놈이 꼬여 버렸다...

> sun java6 text로 된 copy right 동의 문서는 마지막까지 내려가서(scroll) TAB을 "" button focus 주고 Enter !
> 평소 GUI Mouse click에 익숙하다가 Text UI 방법을 잊어버렸다... ㅎㅎ

Ubuntu root 암호 바꾸기

(2009-12-12)
Ubuntu를 처음 설치하면 root 계정의 암호는 지정되어 있지 않다.
설치할때의 계정에서
sudo passwd
로 root 계정 암호를 바꿀 수 있다.
그 다음 부터는 su로 들어간다.

Android 공부 시작하기

(2009-12-12)
개발을 직접적으로 하지 못해서 시작하는 일이지만, 시간이 좀 오래 걸릴것 같다.
뭐, 재미로 하는것이니 뭔 상관이 있으려고...
아무래도 linux에서 시작하는것이 좋겠지 ?

우선 android sdk 사이트 http://developer.android.com/... 여기 sdk 보인다.
android 자체 build는 http://source.android.com/download
적절한 linux가 뭔지는 모르겠지만 사이트에 나오는 건
ubuntu .... http://www.ubuntu.com/getubuntu/download

이제 받아 놓고 linux부터 설치를... 오늘은 일단 여기 까지...