getActionBar()는 API Level11. 즉, Android 3.0 Honeycomb 이상에서 부터 사용이 가능 하다.

그 이하에서는 getActionBar()가 null을 리턴한다.

또, 테마설정에서 NoActionbar를 설정하는 경우(예: Theme.Holo.NoActionBar)에도 null이 리턴된다.


테마설정이 아무것도 안되어 있는데 null이 리턴 되는 경우에는 application 테마설정을 Holo계열로 해주면 된다.

현재(2012년 12월 4일), Holo계열 테마는 Theme.Holo과 Theme.Holo.Light 두가지가 있다.


getActionBar()는 Holo테마를 위해 존재하는 듯...


반응형

일반적으로 어플리케이션에서 사용되는 문자열을 정의 해 놓는 string.xml 파일에 임의의 인자값을 정의하여 추후 클래스파일에서 값을 설정할 수 있습니다.

Formatting Strings라고 하며, android에서 정해진 특별한 규칙을 통해 인자값을 줄 수 있습니다.


인자값이 정의된 string resource의 형태는 아래와 같습니다.

 

string.xml

string resource에 줄수 있는 자료형은 숫자형의 d와 문자형의 s가 있습니다.
d는 Double형이고, s는 String형 입니다.


인자값 지정은 %순서$자료형 으로 합니다.
인자를 23개까지 줘 봤는데 이상없이 잘 출력되는 것으로 보아, 인자의 갯수제한은 없는 것 같습니다.
인자에 대한 값 지정은 클래스에서 getString() 메서드를 통해 할 수 있습니다.

 

MainActivity.java

 

MainActivity.java에서 사용하는 Layout은 아래와 같습니다.

 

activity_main.xml

 

위 샘플소스를 첨부하였으니 필요하신 분은 참고하시기 바랍니다.


FormattingStrings.zip



아래는 활용 예 입니다.

string 파일의 인자 순서에따라 결과가 출력 됩니다.

 


 

String형은 문자 뿐만 아니라 숫자도 에러 없이 동일한 결과를 표현 합니다.

 


 

하지만, Double형은 숫자 이외의 값이 오면 에러가 발생합니다.

 


 

string 파일에 정의된 인자의 갯수가 getString()에서 설정하는 인자보다 많으면 에러가 발생합니다.

 


 

getString()에서 설정하는 인자의 갯수가 string 파일에 정의된 인자보다 많으면 정의된 갯수 이외의 인자는 무시됩니다.

 



 

반응형

웹페이지에서 결재나 로그아웃 등 주요 정보를 처리한 후 에는, Back 키를 눌러도 이전 화면으로 이동하지 않도록 캐시를 삭제 한다.


이런식으로..


그런데, 최신 웹브라우저의 경우 Forward/Back에 대한 별도의 캐시를 제공하여 이와같은 방법으로는 처리할 수 없다고 한다.

(나는 이 문제를 사파리에서 만났음...)


해결 방법은 <body> 구문에 onunload="" 구문을 넣어 주는 것.


자세한 내용은 아래 두 사이트를 확인.


http://jfunny.egloos.com/4648571

http://sunsideup.tistory.com/49


모바일 웹 페이지에서 이 문제가 적잖은 영향을 주고 있는 듯 하다.

여러 방법론들이 나오고 있지만, <body onunload="">가 현재로서는 가장 심플한 방법인 듯..

반응형

android 개발을 할 때 여러 디바이스에 대한 테스트를 할 때 가장 좋은 방법은, 필요한 디바이스를 모두 확보 하고 있는 것 이지만..
그 많은 기계를 다 보유 하고 있다는 것은 상당한 부담이다..

그래서, 울며 겨자 먹기로 느려터진 애뮬레이터 AVD(Android Virtual Device Manager)라도 사용을 해야 하는데, 그에 대한 방법을 정리 한다.


AVD 생성 

이클립스에서는, Window > AVD Manager 실행.
직접 실행 할거면, 자신이 설치 해 둔 android sdk 폴더에 있는 AVD Manager.exe를 실행.

New를 눌러 새로운 AVD(애뮬레이터)를 생성한다.




Name에 자신이 원하는 이름을 설정하고, Target에 원하는 API Level을 설정한다.

SD Card의 Size에서 SD 메모리 용량을 적당히 설정하고..

Skin의 Resolution에서 원하는 해상도를 설정한다.
Built-in으로 설정을 하면 애뮬레이터 실행 시 우측에 하드웨어 버튼이 나타나지만, 해상도 조절을 마음대로 할 수 없다.
Resolution으로 설정을 하면 하드웨어 버튼이 나타나지 않기 때문에 키보드 단축키를 알아야 한다.

단축키는 아래 링크를 참조..
http://youngik.tistory.com/39

Hardware에서 Abstracted LCD density를 원하는 dpi로 설정한다.
( ldpi는 120, mdpi는 160, hdpi는 240, xhdpi는 320 )

Max VM application heap size는 애뮬레이터의 최대 heap size 설정이니 적당히 설정..

Device ram size도 적당히..

설정을 마치면 이렇게..



Create AVD를 누르면 새로운  AVD가 생성된다.



AVD 실행 

AVD를 실행하기 위해서는  AVD Manager를 이용하는 것이 일반적이다.

이클립스에서는, Window > AVD Manager 실행 > AVD 선택 > Start 클릭.
(이클립스를 통하지 않고 직접 실행 하는 경우, 자신이 설치 해 둔 android sdk 폴더에 있는 AVD Manager.exe를 실행)

AVD 실행이 안되는 경우도 있다.
대부분 android SDK가 위치한 경로에 공백이 있거나 한글이 포함되어 있는 경우인데, SDK 경로를 변경 하거나 Command 명령어로 직접 실행하면 해결 된다. 

AVD 실행 명령어
emulator -avd [AVD명] -scale [크기값(ex:0.8)]



AVD는 이클립스에서 App 실행시 생성 시켜도 되고, 미리 AVD를 생성 시켜놓고 App 실행을 해도 된다.
하지만, AVD가 로딩되는 속도가 매우(!!) 느리니 가급적 AVD를 먼지 띄워놓고 작업 하는 것이 좋다.

이클립스를 통해서 AVD에 App을 빌드 하다가 여러가지로 실패 하는 경우에는 command창에서 adb 명령어로 직접 apk를 설치 해주는 것이 가장 확실한 방법 이다.
adb는 android sdk 폴더의 tools 폴더에서 실행 가능하다.

command 창을 열고..

AVD가 떠 있는지 확인하기 위해 아래 명령어를 실행.
adb devices

AVD 이름이 확인 되면, apk를 설치한다.
adb install [패키지 경로][패키지 명].apk

AVD 사용 중 INSTALL_FAILED_INSUFFICIENT_STORAGE 에러를 만나게 되면, AVD 내부의 App 설치공간이 부족하다는 에러이니 용량을 확보 해 주자.

설치하려는 App이 20MB를 넘었거나, AVD에 App을 너무 많이 설치 했을 때 발생한다.

App을 많이 설치 했으면 지워서 용량 확보를 하면 되고, App 용량이 큰 경우라면 AVD의 SD 메모리 영역에 설치하면 된다.

SD 메모리 영역에 설치하는 명령
adb install -s [패키지 경로][패키지 명].apk

재설치 명령은 -r을 추가하면 됨
adb install -r -s [패키지 경로][패키지 명].apk



이렇게 하면 자신이 테스트 하고 싶은 디바이스의 해상도 대로 AVD를 마음껏 만들어 테스트 할 수 있다.
(하지만, 속도는 엄청 느리다는거..)

adb의 여러가지 명령어 들은 아래 링크를 참조.
http://forum.falinux.com/zbxe/?document_srl=533523


AVD 크기조절

AVD 해상도를 크게 하면 모니터 영역을 벗어나서 실행되기도 한다.
이때는 애뮬레이터를 실행 하기 전 나타나는 창에서 Scale display to real size에 체크 후, 자신의 모니터에 맞춰 조절하면 된다.




반응형

이클립스를 상위 버젼으로 업그레이드 하는 방법

How do I upgrade Eclipse IDE?


반응형

'Information' 카테고리의 다른 글

사파리(Safari)에서의 백버튼 처리  (0) 2012.06.01
CPU에 맞는 메인보드 고르기  (0) 2011.01.21
DDR, DDR2, DDR3 메모리의 분별  (0) 2011.01.21

안드로이드 프로그래밍을 하다가 아래와 같은 에러를 만났다.

Description Resource Path Location Type Error generating final archive:
Debug Certificate expired on 11. 10. 11 오후 3:45 <프로젝트명> Unknown Android Packaging Problem

Debug 인증서 만료에 의한 Error로써, dubug.keystore 파일을 삭제하고 Debug 인증서를 갱신 해 주면 된다.

debug.keystore 파일의 위치는 'Window > Preferences > Android > Build'에서 'Default debug keystore' 항목을 참조하면 된다.
사용자 환경에 따라 다르겠지만, 일반적으로 C:\Documents and Settings\User Name\.android 에 위치해 있다.

Debug 인증서 갱신은 debug.keystore 파일을 삭제하고 프로젝트를 Build 해 줌으로 써 갱신 된다.


이 에러에 대해서 구글신(?)께 여쭤 봤지만 관련 정보가 의외로 안나와서 한참 찾았다.....
2시간 동안 나는 짜증 대마왕이 되버린....
같은 문제로 고생하는 이들이 조금이라도 빨리 해결할 수 있기를 바란다.



반응형


1. *#*#4636#*#*
This code can be used to get some interesting information about your phone and battery. It shows following 4 menus on screen:

* Phone information
* Battery information
* Battery history
* Usage statistics


2. *#*#7780#*#*
This code can be used for a factory data reset. It’ll remove following things:

* Google account settings stored in your phone
* System and application data and settings
* Downloaded applications

It’ll NOT remove:

* Current system software and bundled applications
* SD card files e.g. photos, music files, etc.

Note :-Once you give this code, you get a prompt screen asking you to click on “Reset phone” button. So you get a chance to cancel your operation.


3. *2767*3855#
Think before you give this code. This code is used for factory format. It’ll remove all files and settings including the internal memory storage. It’ll also reinstall the phone firmware.

Note:- Once you give this code, there is no way to cancel the operation unless you remove the battery from the phone. So think twice before giving this code.


4. *#*#34971539#*#*
This code is used to get information about phone camera. It shows following 4 menus:

* Update camera firmware in image (Don’t try this option)
* Update camera firmware in SD card
* Get camera firmware version
* Get firmware update counter

Note:- Never use the first option otherwise your phone camera will stop working and you’ll need to take your phone to service center to reinstall camera firmware.


5. *#*#7594#*#*
This one is my favorite one. This code can be used to change the “End Call / Power” button action in your phone. Be default, if you long press the button, it shows a screen asking you to select any option from Silent mode, Airplane mode and Power off.

You can change this action using this code. You can enable direct power off on this button so you don’t need to waste your time in selecting the option.


6. *#*#273283*255*663282*#*#*
This code opens a File copy screen where you can backup your media files e.g. Images, Sound, Video and Voice memo.


7. *#*#197328640#*#*
This code can be used to enter into Service mode. You can run various tests and change settings in the service mode.


8. *#*#232339#*#* OR *#*#526#*#* OR *#*#528#*#*
WLAN test (Use “Menu” button to start various tests)


9. *#*#232338#*#*
Shows WiFi MAC address


10. *#*#1472365#*#*
GPS test


11. *#*#1575#*#*
Another GPS test


12. *#*#232331#*#*
Bluetooth test


13. *#*#232337#*#
Shows Bluetooth device address


14. *#*#8255#*#*
This code can be used to launch GTalk Service Monitor.


15. Codes to get Firmware version information:

*#*#4986*2650468#*#* – PDA, Phone, H/W, RFCallDate

*#*#1234#*#* – PDA and Phone

*#*#1111#*#* – FTA SW Version

*#*#2222#*#* – FTA HW Version

*#*#44336#*#* – PDA, Phone, CSC, Build Time, Changelist number


16. Codes to launch various Factory Tests:

*#*#0283#*#* – Packet Loopback

*#*#0*#*#* – LCD test

*#*#0673#*#* OR *#*#0289#*#* – Melody test

*#*#0842#*#* – Device test (Vibration test and BackLight test)

*#*#2663#*#* – Touch screen version

*#*#2664#*#* – Touch screen test

*#*#0588#*#* – Proximity sensor test

*#*#3264#*#* – RAM version

Now I’ll reveal 3 hidden modes in the phone:

* Fast Boot mode
* Download mode
* Recovery mode

WARNING: All these modes are used to flash/reset phone firmware. Think twice before entering in these modes.


17. Fast Boot Mode
* Power off your phone.
* Press and hold Call and End Call/Power keys.

This mode is used to flash the phone firmware using command line tools.


18. Download Mode
* Power off your phone.
* Press and hold Volume Down, OK and End Call/Power keys.

This mode is also used to flash the phone firmware. Mostly this mode is used by GUI tools for easier and quicker flashing.


19. Recovery Mode
* Power off your phone.
* Press and hold Volume Down, Call and End Call/Power keys.

This mode is used for recovery purposes like to reset the phone firmware

Note:- Once the alert triangle is shown on screen, press “Menu” key to reset the firmware or press “Home” and “End Call/Power” keys to show recovery menu.

 

반응형

갤럭시탭 10.1을 타켓으로 하는 프로젝트를 하는 중 HoneyComb(API Level 11)에서는 기본 webview 사용 시, html 문서내의 input box에 포커스가 주어졌을 때 Background 가 날아가는(?) 현상이 있다는 것을 발견 했습니다.

Graphic Rendering과 관련있는 문제로, 이를 해결하기 위해서는 Android 3.0 (API Level 11)에서 추가된 2D Graphics Hardware Accelerated 설정을 사용 해야 합니다.


Hardware Acceleration의 사용 방법 

Hardware Acceleration은 AndroidManifest.xml 또는 해당 클래스에서 정의 할 수 있습니다.

1.AndroidManifest.xml을 이용하는 방법
AndroidManifest.xml 의 <application> 태그에 android:hardwareAccelerated="true" 속성 추가 합니다.
application 이나 activity 수준에서 하드웨어 가속 설정을 할 때 사용하며, 특정 activity에서 하드웨어 가속에 대한 설정을 해제 할 때는 아래와 같이 사용 합니다.
<application android:hardwareAccelerated="true">
     <activity android:name="MainActivity" />
     <activity android:name="SubActivity" android:hardwareAccelerated="false" />
</application>


2. 해당 클래스에 정의 하는 방법

하드웨어 가속이 필요한 윈도우에 아래 코드를 추가 합니다.
getWindow().setFlags(
     WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,
     WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);


Hardware Acceleration은 HoneyComb 이상의 SDK 에서만 설정 가능 하므로, Project Build Target을 Android 3.0(API Level 11) 이상으로 설정 해야 합니다.


Hardware Acceleration에 대한 더욱 자세한 정보는 아래 링크를 참조 하시기 바랍니다.
http://android-developers.blogspot.com/2011/03/android-30-hardware-acceleration.html



반응형

안드로이드는 대기 모드로 들어가게 되면 베터리 소모를 줄이기 위해서 wifi 모드를 해제한다.
이때, 인터넷으로 데이터를 주고 받는 중이거나, 스트리밍을 하고 있는 중 이라면 wifi가 꺼지고 3G가 활성화 되고, 3G는 사용자의 요금으로 이어진다.
이런 상황을 위해 백그라운드 실행 중에도 wifi 상태를 유지 해야 할 필요가 있다.

백그라운드 실행 중에도 wifi 상태를 유지하기 위해서는 android.net.wifi.WifiManager.WifiLock 을 이용해서 wifi상태를 유지시켜줘야 한다.

이에 대해 소개한 포스트 링크
http://drcarter.tistory.com/entry/Android-안드로이드-개발-시-주의사항-백그라운드-실행시-주의할-점


wifi 는 디스플레이 다음으로 베터리 소모를 많이 일으키는 요소 TOP5 에 들어간다.
위 포스트에서도 언급하고 있지만, wifi를 유지한다는 것은 베터리 소모를 촉진 시킨다는 것을 의미한다.

그래서, 본 문제는..
wifi 모드를 유지하면 요금은 세이브 되지만, 베터리 소모가 많아지고..
wifi 모드를 해제하면 베터리는 절약 되지만, 요금이 발생 하는..
그런 딜레마가 발생한다..

단순하게 생각하면, 돈 나가는 것 보다 베터리 나가는게 낫지만
상황에 따라서는 아닐수도 있는..
역시, 대세는 데이터 무제한..


반응형
안드로이드에서 가끔 Unable to start activity ComponentInfo 에러가 발생하는 경우가 있다.

시작 Activity와 관련이 있기 때문에 이 경우 시작과 관련된 부분을 검토 해 보면 되는데,
시작 Activity의 setContentView() 부분이나, AndroidManifest.xml 파일의 내용 등을 확인 해 보면 된다.

그런데, 아주 가끔 아무 이유도 없이, 아무 이상도 없는데도 Unable to start activity ComponentInfo 오류가 발생한다.

이럴때는, AndroidManifest.xml 파일에 임의 주석을 추가 한다던지 등의 프로그램과 관련 없는 내용을 수정하여 AndroidManifest 파일에게 변경을 인식하게 해 주고 원상복귀 하여 저장 후 실행하면 정상적으로 작동하기도 한다.

신비한 안드로이드...
반응형

android 3.0~3.1의 Honeycomb 에서 java.lang.IllegalStateException: trying to requery an already closed cursor 에러를 만나게 된다면, startManagingCursor() 사용을 막으십시오.

startManagingCursor()는 Activity의 라이프사이클에 따라 알아서 커서를 관리해주기 때문에 편리한 메소드 이지만, Honeycomb 에서는 이것으로 인해 에러가 발생하는 상황이 있습니다.

Honeycomb의 버그인지, 아니면 무슨 이유가 있는 것인지 알 수는 없으나 android 2.3 디바이스 까지는 아무 문제 없던 소스가 Honeycomb 디바이스에서는 에러를 꾸엑꾸엑 뱉어내면서 죽어버리는 현상이 있습니다.

Honeycomb에서는 Cursor 사용 후 직접 close() 처리를 하는 것이 좋을 것 같습니다.


번역된 외국 사이트를 많이 봐서 그런가..
왠지 말투가 번역기 스럽다...
반응형

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

Unable to start activity ComponentInfo 에러  (3) 2011.08.18
Android Intent 활용 사례  (0) 2011.06.28
웹페이지에서 Activity 호출하기  (0) 2011.06.22

안드로이드에서 Intent로 앱을 호출하는 방법 정리

 

연락처

연락처 조회

Intent intent = new Intent(Intent.ACTION_VIEW,
    Uri.parse("content://contacts/people/" + String.valueOf(contact.getId())));
startActivity(intent);

연락처 등록

Intent intent = new Intent(Intent.ACTION_INSERT,
    Uri.parse("content://contacts/people"));
startActivity(intent);

연락처 수정

Intent intent = new Intent(Intent.ACTION_EDIT,
    Uri.parse("content://contacts/people/" + String.valueOf(contact.getId())));
startActivity(intent);

연락처 삭제

Intent intent = new Intent(Intent.ACTION_DELETE,
    Uri.parse("content://contacts/people/" + String.valueOf(contact.getId())));
startActivity(intent);

 

전화

* 권한 설정 (AndroidManifest.xml)
전화 걸기 : CALL_PHONE = "android.permission.CALL_PHONE"
긴급 통화 : CALL_PRIVILEGED = "android.permission.CALL_PRIVILEGED"
폰 상태 읽기 : READ_PHONE_STATE = "android.permission.READ_PHONE_STATE"
폰 상태 수정 : MODIFY_PHONE_STATE = "android.permission.MODIFY_PHONE_STATE"
브로드케스팅 수신 : PROCESS_OUTGOING_CALLS = "android.permission.PROCESS_OUTGOING_CALLS"
전화 걸기 이전 : ACTION_NEW_OUTGOING_CALL = "android.intent.action.NEW_OUTGOING_CALL"

전화걸기 화면

Intent intent = new Intent(Intent.ACTION_DIAL,
    Uri.parse("tel:" + TelNumber));
startActivity(intent);

전화걸기

Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + TelNumber));
startActivity(intent);

 

SMS

* 권한 설정 (AndroidManifest.xml)
수신 모니터링 : RECEIVE_SMS = "android.permission.RECEIVE_SMS"
읽기 가능 : READ_SMS = "android.permission.READ_SMS"
발송 가능 : SEND_SMS = "android.permission.SEND_SMS"
SMS Provider로 전송 : WRITE_SMS = "android.permission.WRITE_SMS"
                            : BROADCAST_SMS = "android.permission.BROADCAST"

SMS 발송 화면

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.putExtra("sms_body", "The SMS text");
intent.setType("vnd.android-dir/mms-sms");
startActivity(intent);

SMS 보내기

Intent intent = new Intent(Intent.ACTION_SENDTO,
    Uri.parse("smsto://01012341234"));
intent.putExtra("sms_body", "The SMS text");
intent.setType("vnd.android-dir/mms-sms");
startActivity(intent);

 

이메일

이메일 발송 화면

Intent intent = new Intent(Intent.ACTION_SENDTO,
    Uri.parse("mailto:" + contact.getEmail()));
startActivity(intent);

 

브라우저

Browser에서 URL 호출하기

Intent intent = new Intent(Intent.ACTION_VIEW,
    Uri.parse("http://www.google.com/"));
startActivity(intent);

브라우저에서 검색

Intent intent = new Intent(Intent.ACT ION_WEB_SEARCH);
intent.putExtra(SearchManager.QUERY, "검색어");
startActivity(intent);

 

지도

지도 보기

Uri uri = Uri.parse ("geo: 38.00, -35.03");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);

 

안드로이드 마켓

안드로이드 마켓에서 Apps 검색

Uri uri = Uri.parse("market://search?q=pname:전제_패키지_명");  
//--- 예) market://search?q=pname:com.jopenbusiness.android.smartsearch
Intent intent = new Intent(Intent.ACTION_VIEW, uri);  
startActivity(intent); 

안드로이드 마켓의 App 상세 화면

Uri uri = Uri.parse("market://details?id=전제_패키지_명");
//--- 예) market://details?id=com.jopenbusiness.android.smartsearch
Intent intent = new Intent(Intent.ACTION_VIEW, uri);  
startActivity(intent);

 

설정화면

각 설정별 Activity Action : http://developer.android.com/reference/android/provider/Settings.html

 

* Activity Action 예시
WiFi : android.provider.Settings.ACTION_WIFI_SETTINGS
Bluetooth : android.provider.Settings.ACTION_BLUETOOTH_SETTINGS
디스플레이 : android.provider.Settings.ACTION_DISPLAY_SETTINGS

설정화면 부르기 (WiFi의 예)

Intent intent = new Intent(android.provider.Settings.ACTION_WIFI_SETTINGS);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

 

반응형

WebView를 이용하는 프로그램이 웹페이지에서 Activity를 호출하는 방법

아래와 같은 html 문서가 있을 때

test.html
<html>
	<body>
		<a href="app://application">Activity 호출</a>		
	</body>
</html>

app://application 링크를 통해 Activity를 호출하기 위해서 java 파일을 아래와 같이 작성한다
MainActivity.java

url.startsWith 메소드를 통해 url 시작 정보를 읽어 오는 방법이다.
같은 기능을 indexOf 메소드를 이용해서도 구현할 수 있다.
if 구문을 아래와 같이 변경 하면 된다.
indexOf 사용

검색하다 보니 AndroidManifest.xml 파일에 intent-filter를 추가해야 한다는 글이 많았는데, 난 추가 안해도 잘 돼서 패스.. (난, Android 2.3 에서 테스트 했음)
어쨌든 intent-filter는 TargetActivity에 추가해야 하며, 내용은 아래와 같다.
AndroidManifest.xml

마지막으로 MainActivity.java 파일에서 사용한 main Layout 파일은 아래와 같다.
main.xml





반응형

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

Android Intent 활용 사례  (0) 2011.06.28
AndroidManifest.xml 구조  (0) 2011.05.09
Android 외장메모리 경로 추출  (0) 2011.04.26
반응형

'Software' 카테고리의 다른 글

크롬 브라우저에서 네이버 동영상 다운로드 하기  (0) 2014.03.31
Firefox Add-Ons  (0) 2010.04.12
Visual Studio Express  (1) 2010.04.08

책을 읽을 수 있는 환경과 분위기를 만든다.

책을 항상 휴대한다.
아침 시간을 활용한다.
방해 요인을 제거한다. (TV, 게임, 인터넷 등)

책에 대한 흥미를 잃기 전에 읽는다.

책을 살때는 한권씩 산다.
구입한지 3일 이내에 읽는다. (구입 후 3일이 지나면 흥미가 떨어진다.)
책장에 꽃혀진 책은 장식 효과 외에는 아무런 쓸모가 없다.
한번 시작한 책은 반드시 끝낸다.

모두 다 읽어야 한다는 강박 관념은 버린다. 

필요한 부분만 발췌해서 읽는 훈련도 필요하다.
책을 읽는 목적이 명확해야 한다.
목적에 따라 정독, 속독, 발췌독 등 적당한 방법을 선택한다.

기타 지침 

전문 영역에 관한 책과 쉽게 읽을 수 있는 책을 함께 가지고 다닌다.
집중할 수 있는 시간대에 따라 다른 책을 읽는다.
책의 핵심은 저자의 의도를 파악하는 것이다.
저자의 의도는 서론과 후기에 담겨 있다.
역자 서문이나 추천사도 매우 중요한 부분이다.

반응형

'Etc' 카테고리의 다른 글

역사란 무엇인가?  (0) 2013.12.09
무한도전 유재석  (0) 2010.09.05
검찰 스폰서에 대한 20년전 만평  (0) 2010.04.24

manifest 파일은 작성된 안드로이드 어플리케이션에 대한 주요 정보들을 가지고 있다.
때문에, 프로그램을 분석할 때 가장 먼저 보게 되는 곳이 manifest 파일이다.
이때, 구조를 잘 이해하고 있으면 manifest 파일을 해석 하는데 많은 도움이 된다.

출처 : http://developer.android.com/guide/topics/manifest/manifest-intro.html

AndroidManifest.xml


반응형

getExternalStorageDirectory() 메서드는 external storage directory를 가져온다.
그리고, getAbsolutePath() 메서드는 경로의 Root를 가져온다.
이 두가지를 조합해서 아래와 같이 사용하면 된다.

안드로이드에서 SD카드를 이용한 외장메모리 영역 뿐만 아니라 내부의 확장메모리영역의 주소값을 가져 올 때도 사용 가능.

import java.io.File;
import android.os.Environment;

public String getSDPath() {
    File extSt = Environment.getExternalStorageDirectory();
    String SDPath = extSt.getAbsolutePath();
    return SDPath;
}

 

반응형

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

AndroidManifest.xml 구조  (0) 2011.05.09
Android 2.3(Gingerbread) 에서 추가된 기능  (0) 2011.04.18
TabActivity 구현  (0) 2011.01.17
Froyo는 Java5 기반이었으나 Gingerbread는 Java6 기반으로 Java API를 업그레이드하여 일부 java.*, javax.* 패키지의 API가 변경됨
그 외 일부 Android 개선사항이 반영되어 android.* 패키지의 API가 변경됨
변경된 메소드는 Android Developers의 Android API Differences Report 문서 참조

아래는 Tstore Developer Center에서 제공하는 내용임.

NFC 관련

가) NfcAdapter, NdefMessage, NdefRecord 로 구성된 android.nfc 패키지가 추가됨.
NfcAdapter는 NFC H/W에 대한 핸들을 제공하며,NDEF(NFC Data Exchange Format)의 개별 레코드는 NdefRecord, 레코드의 셋은 NdefMessage로 표현됨

나) NFC 지원 단말은 NFC Service가 백그라운드에서 구동되며 NFC 태그를 읽으면 읽혀진 NDEFMessage를 extra data로 하는 ACTION_TAG_DISCOVERED intent를 브로드캐스트하므로 NFC 기능을 활용하는 App은 AndroidManifest.xml에 아래의 intent-filter 엘리먼트를 포함해야 함
<action android:name="android.nfc.action.TAG_DISCOVERED"/>
<category android:name="android.intent.category.DEFAULT"/>

다) NFC 기능을 활용하는 App은 아래 퍼미션을 AndroidManifest.xml에 명시해야 하며, 구동 시 NfcAdapter의 isEnabled() 메소드를 호출해서 단말의 NFC 지원여부를 확인해야 함
<uses-permission android:name="android.permission.NFC">

라) NFC 기능을 활용하는 App은 구글마켓에서 NFC 미지원 단말에게 노출되지 않기 위해 AndroidManifest.xml에 아래 엘리먼트를 포함해야 함
<uses-permission android:name="android.permission.NFC">


센서 관련

자이로를 포함한 신규 센서를 활용하는 App은 구글마켓에서 미지원 단말에게 노출되지 않기 위해 AndroidManifest.xml에 아래 엘리먼트 중 필요한 항목을 포함해야 함
<uses-feature android:name="android.hardware.sensor.gyroscope" android:required="true">
<uses-feature android:name="android.hardware.sensor.barometer" android:required="true">


카메라 관련

단말의 특정 카메라를 선택하기 위해 Camera 클래스에 카메라의 개수를 확인하고, 특정 카메라의 정보를 획득하고, 특정 카메라를 선택하는 메소드들이 추가되고, 각 카메라의 캠코더 기능 또한 선택해서 확인할 수 있음


음향효과 관련 

음향효과를 제공하기 위해 android.media.audiofx 패키지가 추가되었으며, Equalizer, Virtualizer, BassBoost, PresetReverb, EnvironmentalReverb 등 음향효과 클래스가 추가됨
각 음향효과는 트랙별 또는 전체에 적용될 수 있으며, 트랙별로 음향효과를 적용하기 위해 AutioTrack 클래스와 MediaPlayer 클래스가 수정됨


멀티미디어 프레임웍 관련

가) 멀티미디어 프레임웍이 Opencore가 완전히 제거되고 Stagefright로 대체됨.
일반 App에는 영향이 없으나 DRM 등 멀티미디어 프레임웍의 플러그인 형태의 App은 수정 개발해야 함

나) JPEG 메타데이터의 위치정보 중 위도/경도 외에 고도 태그를 읽을 수 있는 API가 추가됨


다운로더 관련 

가) HTTP 기반의 파일 다운로드를 제공하는 DownloadManager 백그라운드 서비스가 추가됨.
App은 바인더를 통해 DownloadManager에게 다운로드를 요청,쿼리,취소할 수 있음

나) 각 다운로드 항목은 인디케이터에 표시되며 사용자가 항목을 클릭하면 DownloadManager가 AC-TION_NOTIFICATION_CLICKED intent를 브로드캐스트하므로,  다운로드를 요청한 App은 broadcast receiver를 통해 필요한 동작을 할 수 있음

다) 단말이 재부팅되거나 네트워크 연결상태가 변경되면 DownloadManager가 자동으로 이어받기를 진행하며 다운로드 파일은 디폴트로 공용 폴더에 저장되나 다운로드 요청 시 다른 폴더를 저장폴더로 설정할 수 있음


StrictMode 관련 

가) Android App의 메인 쓰레드는 반응성을 높이기 위해 UI관련 이벤트를 주로 처리하며 파일 I/O 또는 네트워크 I/O는 별도 쓰레드에서 처리하는 것이 좋음.
또한, DB접속을 명시적으로 종료하지 않으면 일시적인 메모리 leak이 발생하며 DB접속에 부하가 발생하므로 DB접속을 명시적으로 종료해야 함

나) StrictMode는 App의 메인 쓰레드에서 I/O가 발생하는지, DB접속이 명시적으로 종료되지 않는지 검출하기 위해 신규 제공되는 디버깅 목적의 클래스임


UI 프레임웍 관련 

가) View와 Widget에서 오버스크롤링 지원 추가

나) Touch spoofing을 막기 위해 Toast 등에 가려진 View가 터치 이벤트를 받지 않는 기능 추가

다) 입력이벤트와 입력장치에 대한 베이스클래스를 정의하여 일관된 이벤트 hierarchy를 구성하여 입력이벤트와 입력장치에 대한 속성을 확인할 수 있도록 함

라) 멀티포인트 멀티터치 트래킹이 가능하도록 MotionEvent 클래스 확장함. 각 터치포인트는 “pointer ID”로 관리됨.

마) 텍스트 선택 컨트롤을 일반 App에서 활용 가능하도록 BaseInputConnection, InputConnection, In-putConnectionWrapper 클래스 확장

바) ActivityInfo에 화면 orientation 항목이 추가되고, RunningAppProcessInfo에 empty, background, service, foreground, visible 외에 perceptible 항목이 추가됨 (백그라운드 뮤직 플레이어 등의 용도)

사) Notification 텍스트와 아이콘 스타일을 정의하기 위한 항목 추가함


대(xlarge) 화면 지원 관련 

가) Froyo의 고해상도(xhdpi) 지원에 이어 7인치 이상의 대화면(xlarge) 지원을 추가함.

나) App은 AndroidManifest.xml에 아래 엘리먼트를 추가하여 대화면 지원 여부를 명시할 수 있음
<supports-screens android:xlargeScreens=”true”/”false”>

다) App 패키징 시 대화면용 App 리소스는 xlarge 폴더에 두어야 함


그래픽 관련 

가) OpenGL ES 2.0 메소드 중 Froyo에서 지원되지 않은 glDrawElements()와 glVertexAttribPointer()를 추가함

나) YV12 픽셀포맷 지원을 추가함


Content Provider 관련 

가) 검색 결과를 바로 재생하기 위한 PLAY_FROM_SEARCH intent가 MediaStore에 추가됨. 음성인식을 통한 미디어 재생에 활용함.

나) 특정 App의 관리화면과 응용프로그램관리 초기화면으로 바로 진입할 수 있도록 Settings에 APPLICATION_DETAILS_SETTINGS intent와 MANAGE_ALL_APPLI CATIONS_SETTINGS intent가 추가됨

다) SIP 주소를 저장할 수 있도록 ContactsContract에 ContactsContract.CommonData Kinds.SipAddress 타입 추가됨


Location 관련 

가) LocationManager에게 위치정보를 요청해서 wake lock이나 WiFi lock을 유발한 App을 트랙킹하여 응용프로그램관리 메뉴의 App별 배터리 사용 정보에 반영함

나) Activity는 LocationManager의 requestLocationUpdates() 또는 requestSingleUpdate() 메소드를 통해 위치정보를 주기적 또는 일회성으로 업데이트받도록 등록할 수 있음.
위치정보 제공자는 명시적으로 선택하거나, Criteria 클래스를 통해 특정 조건 (정확도, 전력소모량, 속도, 비용 등)에 맞는 제공자 선택 가능


Storage 관련 

가) OBB(Opaque Binary Blob) 지원을 위한 StorageManager 클래스 추가됨.
OBB 파일은 마운트해서 사용하는 별도의 파티션이고 StorageManager는 특정 OBB의 마운트여부 확인, 마운트, 언마운트를 수행함

나) Android 2.3은 외장SD가 없는 단말도 허용함.
외장SD를 필요로하는 App은 isExternalStorageRe-movable() 메소드를 통해 외장SD 존재 여부 확인 가능


Package Manager 관련 

가) 패키지정보에 최초설치시간과 최종업데이트시간 필드 추가됨

나) 특정 컨텐츠 프로바이더에 대한 정보를 제공하는 getProviderInfo() 메소드 추가됨

추가된 screenOrientation 속성 값

설명

reverseLandscape

상하가 뒤집힌 Landscape 화면

reversePortait

상하가 뒤집힌 Portrait 화면

sensorLandscape

Landscape 모드이되 상하 선택은 센서 활용

sensorPortrait

Portrait 모드이되 상하 선택은 센서 활용

fullSensor

Landscape, Portrait, 상하 선택에 센서 활용



반응형

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

Android 외장메모리 경로 추출  (0) 2011.04.26
TabActivity 구현  (0) 2011.01.17
삼성 갤럭시탭 AVD Add-on Link  (0) 2010.11.08

PC를 업그레이드 할 때 가장 중요한 것은 뭐니뭐니해도 CPU와 메인보드.

"CPU를 살때 메인보드도 같이 사야 한다."는 것이 일반론 이지만, 내 메인보드가 CPU 스펙을 지원하면 궂이 안사도 되잖아?

근데, 초보자들은 메인보드의 어떤 부분을 봐야 하는지 잘 모르는 것이 사실.

그런데 마침, 'CPU에 맞는 메인보드 고르기' 라는 아티클을 발견ㅋ

정말 잘 정리된 글이라 참고하면 많은 도움이 될 듯.

반응형

DDR, DDR2, DDR3 메모리는 서로 호환이 안된다.

각 메모리 마다 전압, 핀 수, 신호 방식 등이 다르기 때문인데, 이런 내용은 외관상으로는 직접 구분이 안되기 때문에 '메모리 키' 라고 하는 구멍(홈? 틈?)를 메모리에 낸다.

Intel에 정말 잘 설명해 둔 그림이 있어서 올려봄ㅋ

DDR 과 DDR2 때는 홈이 별로 차이가 안나서 가끔 헷갈릴 때가 있곤 했는데, DDR3는 정말 명확하군.



반응형

'Information' 카테고리의 다른 글

CPU에 맞는 메인보드 고르기  (0) 2011.01.21
Web Browser 세계시장 점유율 (2010년8월 기준)  (0) 2010.09.02
인터넷의 역사  (0) 2010.08.23

TabActivity의 내용을 구현하는 방법에는 일반적으로 다음과 같은 방법이 있다.

1. Layout xml을 이용하는 방법
2. 다른 java class를 이용하는 방법
3. TabActivity class에서 직접 생성하는 방법

Layout xml을 TabActivity에서 호출

아래와 같은 내용의 xml Layout이 있는 경우

layout_tab1.xml

해당 id를 호출

testTab1.java


class를 TabActivity에서 호출

java파일 testTab2_1, testTab2_2, testTab2_3 이 아래와 같이 있는 경우

testTab2_1.java

testTab2_2.java

testTab2_3.java

intent로 해당 class를 호출

testTab2.java


TabActivity에서 직접 내용 생성

TabContentFactory 인터페이스를 이용.
TabContentFactory 인터페이스는 createTabContent를 정의하며, 탭 호스트로부터 전달된 태그명으로부터 뷰를 생성해 리턴하는 역할을 한다.

testTab3.java

반응형

Android 기반의 태블릿 PC인 삼성 갤럭탭 AVD (Android Virtual Devices) 입니다.
이클립스에 ADT(Android Development Tool)가 설치된 상태에서
Window > Android SDK and AVD Manager > Available Packages > Add Add-on Site
를 눌러 아래주소를 입력하면 삼성 갤럭시탭 AVD를 생성할 수 있습니다.

follow @AndroidDev: http://twitter.com/AndroidDev#
GALAXY Tab Info: http://galaxytab.samsungmobile.com/

사용자 삽입 이미지




반응형

meta tag가 갑자기 생각나서 정리해 둠

<meta http-equiv="content-type" content="text/html; charset=euc-kr" /> :웹문서의 언어를 설정 (euc-kr)
<meta http-equiv="content-type" content="text/html; charset=utf-8" />    :웹문서의 언어를 설정 (utf-8)
<meta http-equiv="imagetoolbar" content="no" /> :그림위에 마우스 오버시 이미지 관련 툴바가 생기지 않음
<meta http-equiv="refresh" content="0; url=http://이동주소" /> :0초후 해당 페이지이동
<meta http-equiv="refresh" content="60" /> :60초마다 새로고침
<meta http-equiv="pragma" content="no-cache" />  : 캐쉬에서 해당페이지 읽어들이는 걸 방지

<meta name="subject" content="홈페이지주제" />
<meta name="title" content="홈페이지이름" />
<meta name="description" content="홈페이지 설명" />
<meta name="keywords" content="홈페이지 키워드" />
<meta name="author" content="홈페이지 주인 or 작성자" />
<meta name="publisher" content="만든단체나회사" />
<meta name="other Agent" content="웹책임자" />
<meta name="classification" content="카테고리위치(분류)" />
<meta name="generator" content="홈페이지 제작도구" />
<meta name="reply-to" content="메일주소" />
<meta name="filename" content="파일이름" />
<meta name="author-date" content="제작일" /> 
<meta name="location" content="홈페이지 위치(소속국가)" />
<meta name="distribution" content="배포자" />
<meta name="copyright" content="저작권" />
<meta NAME="content-language" content="kr" /> : 기술된 언어

메타태그의 검색로봇 관련
<meta name="robots" content="all" />                        : 로봇 검색을 허가함
<meta name="robots" content="none" />                    : 로봇 검색을 허가하지 않음
<meta name="robots" content="index,follow" />          : 이 문서도 긁어가고 링크된 문서도 긁어감.
<meta name="robots" content="noindex,follow" />       : 이 문서는 긁어가지 말고 링크된 문서만 긁어감.
<meta name="robots" content="index,nofollow" />       : 이 문서는 긁어가되, 링크는 무시함.
<meta name="robots" content="noindex,nofollow" />   : 이 문서도 긁지 않고, 링크도 무시함.


반응형

'Developer > CSS & HTML' 카테고리의 다른 글

Tistory CSS  (0) 2008.02.19
검색엔진 노출방지 robots.txt & meata tag  (0) 2008.02.04
DOCTYPE 선언  (0) 2007.11.22


항상 겸손한 마음으로 감사하며...
1분 5초부터 유재석 시작..


반응형

'Etc' 카테고리의 다른 글

책 읽기의 방법  (0) 2011.05.16
검찰 스폰서에 대한 20년전 만평  (0) 2010.04.24
Google Translate's easter egg??  (4) 2009.07.30
오랫만에 MarketShare 에서 Browser Versions Trend 를 보았다

사용자 삽입 이미지

IE8 이 가장 많은 점유율을 차지하고는 있지만 그 뒤를 FF가 쫓고 있고,
Chrome이 무섭게 성장 하고 있다!!

공공의 적 IE6 는 아직도 16%나 차지!!
재밌는건 문제 덩어리 IE6 보다 IE7의 점유율이 더 많이 줄었다는 것!!

IE6 과 IE7의 줄어드는 점유율을 누가 가져가게 될지 궁금하다.

4%를 차지하고 있는 IE8은 Internet Explorer 8.0 - Compatibility Mode 라고 한다.

위 자료의 세부 정보는 아래 링크에서 자세히 볼 수 있다.
http://marketshare.hitslink.com/browser-market-share.aspx?qprid=2
반응형

'Information' 카테고리의 다른 글

DDR, DDR2, DDR3 메모리의 분별  (0) 2011.01.21
인터넷의 역사  (0) 2010.08.23
USB 바이러스 예방법  (2) 2010.08.01
MBA Online

Via: MBA Online


반응형

'Information' 카테고리의 다른 글

Web Browser 세계시장 점유율 (2010년8월 기준)  (0) 2010.09.02
USB 바이러스 예방법  (2) 2010.08.01
스타크래프트2, 최종 PC 사양  (0) 2010.07.26
Android는 기본 개발 언어가 JAVA이기 때문에 JAVA 개발시 기본적으로 설치 하는 Tool 위에 Android 개발에 필요한 Tool을 설치한다.

Android는 오픈소스로, 통합된 개발 환경을 한 회사에서 주도적으로 만든 것이 아니기 때문에 이것저것 설치해야 하며, 설치 초보자는 순서를 잘 지켜 차례대로 설치 하는 것이 좋다.

1. JDK(Java Development Kit) 설치
http://www.oracle.com/technetwork/java/javase/downloads/index.html


2. 이클립스 설치
http://www.eclipse.org/downloads/

* 이클립스 지원에 대한 Android 공식 공지 (http://developer.android.com/sdk/requirements.html)
2014.04.29. 현재 : Eclipse 3.7.2 (Indigo) 나 그 상위 버전을 사용 할 것. 이클립스 3.6 (Helios)는 더 이상 최신 버전의 ADT(Android Development Tools)를 지원하지 않음.
2012.01.05. 현재 : Eclipse 3.6 (Helios) 나 그 상위 버전을 사용 할 것. 이클립스 3.5 (Galileo)는 더 이상 최신 버전의 ADT(Android Development Tools)를 지원하지 않음.
2010.08.19. 현재 : 최신 버젼은 3.6 (Helios) 이지만, Android SDK 구동에 3.5가 안정적이다. 


3. ADT(Android Development Tool) 플러그인 설치
이클립스에서 Help > Install New Software 에서 'Add' 버튼을 눌러 android ADT 경로(https://dl-ssl.google.com/android/eclipse/)를 입력하여 설치한다.
설치중에 서명이 없는 소프트웨어가 있다는 경고가 뜨더라도 계속 설치한다.

ADT 공식 설명서는 아래 경로에 있다.(영문)
http://developer.android.com/sdk/eclipse-adt.html
ADT가 설치 됐는지 여부는 Help > About Eclipse > Installation Details 에서 확인 하면 된다.


4. Android SDK 설치
http://developer.android.com/sdk/index.html
SDK는 따로 설치할 필요 없이 압축만 풀어 두면 된다.
압축 해제 후, 이클립스의 Window > Preference > Android 에서 SDK의 Location을 압축을 푼 경로로 지정하고, Window > Android SDK and AVD Manager > Available Packages 에서 추가 SDK요소들을 다운 받는다.

뭘 설치 해야 할지 모를 때는 전부 선택해서 전부 설치 하는 것이 낫다.

SDK를 설치하기 전에 시스템 요구사항(영문) http://developer.android.com/sdk/requirements.html 을 읽어 보는 것이 좋다.
(2010.08.19일 현재 SDK가 이클립스 3.6에서 실행에 문제가 있으니 3.5에서 실행 해 달라는 내용의 경고가 있다.)

"Caution: There are known issues with the ADT plugin running with Eclipse 3.6. Please stay on 3.5 until further notice."


5. AVD(Android Virtual Device) 생성 및 옵션 조정
이클립스의 Window > Android SDK and AVD Manager 의 Virtual Devices 에서 New 버튼으로 AVD를 생성한다.
SD Card 설정은 최소한 9MB 보다 크게 설정해야 한다.
Android 화면은 HVGA가 표준 해상도 이다.
AVD 생성후 Start 버튼을 누르면 에뮬레이터가 작동한다.

AVD 경로에 영문이 아닌 문자가 있으면 이클립스가 에뮬레이터를 제대로 기동시키지 못한다.
윈도우 계정명을 한글로 쓰는 사람들은 에뮬레이터 기동시 에러가 발생 할 수 있다.
이런 경우 .android\avd 폴더 내의 'AVD명.avd' 폴더(ini 파일은 유지)를 영문만 있는 경로(예를 들면 C:\ 같은..)로 옮겨주고
avd 폴더에 있는 AVD명.ini 파일의 path 값을 해당 경로로 수정 해 준다.

 
이것으로 Android 프로그래밍을 위한 준비가 끝났다.


반응형

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

Android 2.3(Gingerbread) 에서 추가된 기능  (0) 2011.04.18
TabActivity 구현  (0) 2011.01.17
삼성 갤럭시탭 AVD Add-on Link  (0) 2010.11.08
USB 메모리 저장장치에 자주 감염되는 오토런 바이러스는 autorun.inf 파일에 바이러스 정보를 심어두어 USB를 PC에 삽입하는 순간 자동으로 실행되어 감염시키는 형식입니다.

머니홀릭님이 이에 대한 예방 법을 아주 쉽게 소개한 내용이 있어 공유 하고자 합니다.
원본 내용에서 아주 조금만 수정해서 올립니다.
(원본 : http://www.cyworld.com/dr_moo/3903861)

쉽게 예방하는 법은 다음과 같습니다.

USB 드라이브가 H 라고 가정했을 경우

Command 창에서

H:

을 입력해서 USB 저장장치로 이동합니다.

아래 방법으로 루트에 autorun.inf를 폴더명으로 생성합니다.
(md 는 Make Directory의 약자로 폴더를 생성하는 Command 명령어 입니다. mkdir 과 동일합니다.)

md autorun.inf

그리고 다음 방법으로 autorun.inf 폴더에 숨김속성과 시스템속성을 주어서 삭제를 못하게 합니다.

attrib +s +h +r autorun.inf

autorun.inf 폴더가 잘 생성되어 있는지 확인합니다.

dir autorun.inf



이렇게 해놓으면 바이러스가 autorun.inf 파일을 생성할 수 없으므로 바이러스 파일이 감염이 되어도  USB 저장장치를 꽂아서 바로 감염되는 일은 막을 수 있습니다.


반응형

'Information' 카테고리의 다른 글

인터넷의 역사  (0) 2010.08.23
스타크래프트2, 최종 PC 사양  (0) 2010.07.26
구글서치엔진의 작동원리  (0) 2010.07.01
사용자 삽입 이미지


최저동작환경

OS

Windows XP/ Windows Vista/ Windows 7/
Mac OS 10.5.8, 10.6.2

CPU

Pentium4 2.6GHz/ AMD Athlon/
Intel프로세서(Mac)

GPU

128MB PCIe NVIDIA GeForce 6600 GT/ ATI Radeon 9800 PRO

GPU (for Mac)

NVIDIA GeForce 8600M GT/ ATI Radeon X1600

메모리

1GB(Windows XP)/ 1.5GB(Windows Vista or 7)/
2GB (Mac OS)

HDD

12GB 이상의 하드디스크 공간

디스플레이

1024 x 720 이상의 디스플레이


추천동작환경

OS

Windows Vista/ Windows 7/ Mac OS 10.5.8, 10.6.2

CPU

인텔 듀얼코어 2.4GHz 이상/ 인텔 코어2듀오(Mac)

GPU

512MB NVIDIA GeForce 8800 GTX/ ATI Radeon HD 3870

GPU (for Mac)

NVIDIA GeForce 9600M GT/ ATI Radeon HD 4670

메모리

2GB(Windows 계열)/ 4GB (Mac OS)

HDD

12GB 이상의 하드디스크 공간

디스플레이

1024 x 720 이상의 디스플레이


반응형

'Information' 카테고리의 다른 글

USB 바이러스 예방법  (2) 2010.08.01
구글서치엔진의 작동원리  (0) 2010.07.01
무료 QR코드 생성 사이트  (4) 2010.06.29

How Does Google Work?

Infographic by PPC Blog

반응형

'Information' 카테고리의 다른 글

스타크래프트2, 최종 PC 사양  (0) 2010.07.26
무료 QR코드 생성 사이트  (4) 2010.06.29
iPhone4 분해 동영상  (0) 2010.06.29

+ Recent posts