336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.


1. 안드로이드 빌드를 위한 기본 설정
  • 안드로이드 빌드 환경
    OS : Ubuntu 8.04 또는 상위버전 (저는 10.04 / 10.10 에서 성공했습니다.)
    JAVA Version : Java 5.0 (6.0으로 실행시 빌드가 안되네요)
     자바 5.0 설치하는 방법
  
  • 안드로이드 빌드하기 위한 apk 설치 (32bit 기준)
    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 
     
2. 안드로이드 소스 다운로드 
  • curl을 이용해서 repo 스크립트를 다운로드 
    $ mkdir ~/bin

    $ curl http://android.git.kernel.org/repo >~/bin/repo

    $ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo

    $ chmod 755 ~/bin/repo

    $ cp ~/bin/repo /bin

  • 안드로이드를 받기 위해 폴더를 만들고 버전을 갱신 

    $ mkdir ~/android_froyo

    $ cd ~/android_froyo

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

    $ repo init -u https://android.googlesource.com/platform/manifest


  • 안드로이드 2.2 프로요 소스 트리 다운로드
    $ repo init -u git://android.git.kernel.org/platform/manifest.git -b froyo 
    $ repo init -u https://android.googlesource.com/platform/manifest -b  froyo 

  • 안드로이드 소스 다운로드

    $ cd ~/android_froyo

    $ repo sync 
     
3. 안드로이드 빌드
  • make 실행하여 전체 빌드하기
    $ cd ~/android_froyo

    $ export ANDROID_JAVA_HOME=$JAVA_HOME (자바 경로 안잡힌 분들만)

    $ make 

  • 전체 빌드 후 일부분을 수정하고 부분 빌드하는 방법
    $ cd ~/android_froyo
    $ source ./build/
    envsetup.sh  
        (터미널을 열고 한번만 실행해주면 됩니다.)
    $ mmm 
    packages/apps/Contacts
       (소스의 Contacts 어플을 수정하였을 경우이며, 부분 빌드가 가능한 곳은 수정한 소스의 상위 폴더에 Android.mk 파일이 있는 위치를 예와 같이 실행하면 됩니다.)
    $ make snod
       (부분 빌드가 끝나면 위와 같이 실행하면 system.img 파일이 생성된다) 

 


336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
우연한 기회로 2-3년전 아이팟 1세대를 사용하게 되었다.
처음에는 내가 사용하고, 작년에는 여자친구가 사용하다가.. 올해 다시 내 손으로 돌아왔다. 
이걸 중고로 팔까 생각했지만, 그냥 장난감으로 사용하기로 결정했다. ㅋㅋㅋ 

아이팟터치에 안드로이드 2.2(프로요)를 구동할 수 있다는 소리를 듣고 구동도 해보았지만 역시.. 아직은 완변하지 않아서 그런지 완전 버벅거린다;; 심하게 버버버벅 ;;
그리고 집에서 음악 감상용으로만 사용하다가 성능 향상하는 방법이 없을까? 라는 의문이 들어서 찾아보았다.

역시나 있었다!! 아이팟터치에서 구동하는 데몬서비스들 중 불필요한 서비스를 지워서 쓸때없이 소비되는 메모리를 확보하는 것이다. (물론 아이팟터치 뿐만 아니라 아이폰에서도 불필요한 서비스를 삭제한다면 메모리를 조금 더 확보할 수 있다.)

먼저 아이팟 터치나 아이폰에서 구동되는 서비스들은 어디에 정의되는 알아야 한다. 아이팟 터치나 아이폰에서 iFile 이라는 어플을 이용하거나 iPhone Explorer를 이용하면 된다. 데몬파일들의 위치는 System/Library/LaunchDaemons 이다. 

참고로 여기에 나오는 서비스 목록은 iOS 3.1.2 버전을 토대로 작성된 서비스이다.

서비스 이름

설명

필수
여부

비고

com.apple.accessoryd.plist

액세서리를 사용할 있데 도와주는 서비스

Dock 스테이션같은 액세서리를 사용하지 않는다면 제거

com.apple.AddressBook.plist

주소록 로딩 속도를 빠르게 도와주는 서비스

지우면 주소록 상세보기 로딩 속도가 느려진다.

com.apple.AdminLite.plist

오랜시간동안 응답 없는 프로세서를 강제 종료할 있게하는 서비스

응답없는 어플이 종료될때까지 기다릴꺼라면 제거

com.apple.AOSNotification.plist

Mobile Me 동기화 서비스

Mobile Me 무언지 모른다면 제거

com.apple.apsd.plist

푸싱 서비스

푸시 알림 기능을 사용하지 않는다면 제거

com.apple.aslmanager.plist

시스템 기록 관리

X

 

com.apple.BTServer.plist

?

필수

 

com.apple.chud.chum.plist

애플의 CHUD 관련 있는 서비스

X

개발자가 아니라면 삭제

com.apple.chud.pilotfish.plist

애플의 CHUD 관련 있는 서비스

X

개발자가 아니라면 삭제

com.apple.CommCenter.plist

전화 걸기/받기 서비스

필수

터치사용자도 제거하면 안된다.

com.apple.configd.plist

시스템 설정

필수

 

com.apple.CrashHousekeeping.plist

 크래쉬 로그 관련 서비

X

 

com.apple.daily.plist

?

?

 

com.apple.dataaccess.dataaccessd.plist

마이크로소프트 익스체인지 / 구글 싱크를 통해 동기화 하는 서비스

동기화하지 않는거 하면 제거

com.apple.datamigrator.plist

 USIM에 연락처 저장

X

아이팟 필요 없음

com.apple.DumpPanic.plist

크래쉬 로그 덤핑

X

 

com.apple.fairplayd.plist

음악/어플에 대한 DRM 검사

필수

 

com.apple.gmmd.plist

디버깅 서비스

필수

 

com.apple.graphicsservices.sample.plist

앨범 아트윅 표시

필수

 

com.apple.iapd.plist

?

 

com.apple.installd.plist

어플 설치

필수

 

com.apple.iqagent.plist

?

 

com.apple.itdbprep.server.plist

?

 

com.apple.itunesstored.plist

 

 

 

com.apple.locationd.plist

위치 정보 서비스

필수

 

com.apple.mDNSResponder.plist

DNS

필수

제거하면 인터넷 사용 불가

com.apple.mDNSResponderHelper.plist

DNS

필수

제거하면 인터넷 사용 불가

com.apple.mediaserverd.plist

미디어 재생

필수

 

com.apple.mobile.lockbot.plist

 

 

 

com.apple.mobile.lockdown.plist

 

 

 

com.apple.mobile.obliteration.plist

기기의 데이터를 삭제하는 것과 관련된 서비스로 익스체인지 나 Mobile Me의 데이터를 삭제하거나 기기 자체의 데이터 리셋에 대한 서비스 


com.apple.mobile.profile_janitor.plist

?

 

com.apple.MobileFileIntegrity.plist

 

 

 

com.apple.MobileInternetSharing.plist

인터넷 쉐어링(테더링) 서비스

X

아이팟 터치로 테더링에 관심없으면 제거

com.apple.mtmergeprops.plist

 

 

 

com.apple.nmbd.plist

 

 

 

com.apple.notifyd.plist

 

 

 

com.apple.powerlog.plist

3사의 충전기와의 비호환성 감시

X

 

com.apple.psctl.plist

외부 장치와 연결하는데 관련된 서비스

 

com.apple.racoon.plist

VPN 서비스

VPN 무슨말인지 모르면 제거

com.apple.ReportCrash.DirectoryService.plist

오류보고

X

 

com.apple.ReportCrash.Jetsam

오류보고

X

 

com.apple.ReportCrash

오류보고

X

 

com.apple.ReportCrash.SafetyNet

오류보고

X

 

com.apple.ReportCrash.SimulateCrash

오류보고

X

 

com.apple.SCHelper-embedded.plist

 

 

 

com.apple.searchd.plist

 

 

 

com.apple.securekeyvaultd.plist

 

 

 

com.apple.securityd.plist

 

 

 

com.apple.smbd.plist

 

 

 

com.apple.SpringBoard.plist

 

 

 

com.apple.stackshot.server.plist

?

 

com.apple.syslogd.plist

시스템 로고 서비스

X

 

com.apple.tcpdump.server.plist

?

 

com.apple.UIKit.pasteboardd.plist

 

 

 

com.apple.usbptpd.plist

USB 컴퓨터 연결 . 충전

필수

 

com.apple.wifiFirmwareLoader.plist

 

 

 


위의 내용을 보고 사용자가 불필요하다가 생각되는 서비스를 제거하면 된다. 하지만 서비스를 완전히 삭제하는 것보다 파일 이름을 바꾸어서 작동하지 않게 하는 방법을 추천한다. (혹시 모를 오작동을 대비하기 위해서...)

파일명은 다음과 같이 변경한다. 
예) com.apple.accessoryd.plist -> com.apple.accessoryd.plist_


336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
자바에는 AWT, Swing 과 SWT라는 GUI 툴킷이 존재한다. 다양한 종류가 있는 만큼 각 툴킷의 장단점이 존재한다. 

1. AWT (Abstract Windows Toolkit)
 Java에서 기본적으로 지원하는 GUI 툴킷이다. AWT는 모든 자바 버전에서 제공하는 표준으로 가장 안정적이다 그리고 AWT를 사용하기 위한 별도의 설치 없이도 자바 런타임 환경이 있는 곳 어디에서나 사용할 수 있다.
 반면에 제한된 GUI 컴포넌트, 레이아웃, 이벤트를 가진 매우 단순한 툴킷이다. 그래서 더 많은 컴포넌트가 필요하다면 처음부터 구현해야 한다는 문제가 있다. 
 AWT 컴포넌트는 "쓰레드 보안"이 되어있다. 따라서 애플리케이션에서 어떤 쓰레드가 GUI를 업데이트 하는지 신경 쓰지 않아도 된다. 이로써 GUI 업데이트 문제가 없어진다. 하지만 AWT GUI는 느리게 실행된다. 

2. Swing
 AWT의 단점을 보완하기 위해서 만든 툴킷이다. Swibg은 매우 유연하고 강력한 GUI 툴킷이지만, 복잡한 구조로 사용하기 위해서 많은 학습이 필요하다. Swing은 AWT를 기반으로 구현된다. 모든 Swing들의 부분은 AWT의 일부이기도 한다. Swingd은 AWT의 이벤트를 사용하며 Colors, Images, Graphics와 같은 클래스를 지원한다. 
 Swing은 하드웨어 GUI 가속장치와 특별한 호스트 GUI 연산을 활용하지 못할 수도 있다. 따라서 Swing 애플리케이션은 원시 GUI 보다 느리다. AWT와는 달리 Swing 컴포넌트는 쓰레드 보안이 되지 않는다. 어떤 쓰레드가 GUI 업데이트 하는지를 신경 써야 한다. 쓰레드 사용을 잘못 할 경우 사용자 인터페이스 고장 같은 예외상황이 발생한다. 

3. SWT
 SWT는 저수준 GUI 툴킷이다. JFace라는 향상된 컴포넌트와 유틸리티 서비스 세트로 SWT 구현이 쉽다. SWT는 AWT와 Swing의 단점을 제거하고 장점만을 가진 시스템을 구현하였다.