달력

52025  이전 다음

  • 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
  • 30
  • 31

CPU
애플 : 1GHZ ( 애플 설계, 삼성 제조 )
삼성 : 1GHZ ( 삼성 제조 )

GPU
애플 : PowerVR SGX535 - 28 million triangles/sec
삼성 : PowerVR SGX540 - 90 million triangles/sec

해상도
애플 : 960 x 640
삼성 : 800 x 480

패널
애플 : IPS - LCD (LG)
삼성 : Super-AMOLED

화면 크기
애플 : 3.5인치
삼성 : 4인치

두께
애플 : 9.3mm
삼성 : 9.9mm

무게
애플 : 137g
삼성 : 118g

DMB
애플 : 없음
삼성 : 있음

RAM
애플 : 512mb
삼성 : 512mb

카메라
애플 : 5mb (플래쉬 유)
삼성 : 5mb (플래쉬 무)


캠코더
애플 : 720p
삼성 : 720p


내장 메모리
애플 : 16/32GB
삼성 : 8/16GB


외장 메모리
애플 : 불가능
삼성 : 32GB


블루투스
애플 : 2.1
삼성 : 3.0


동영상 변환
애플 : 인코딩 필요
삼성 : 무 인코딩


와이파이
애플 : 802.11 b/g/n
삼성 : 802.11 b/g/n


배터리
애플 : 1450mAh (교체 불가능)
삼성 : 1500mAh (교체 가능)


영상통화
애플 : wifi 연결된 상태에서만 가능
삼성 : 항상 가능


어도비 플래시
애플 : 지원안함 - > 지원
삼성 : 지원

Posted by 와일드_
|

새롭게 추가된 기능중 내게 가장 흥미있는 기능은

 OS4.0에서 새롭게 추가된 기능이라고 할 수 있는

 자이로스코프기능이다.

 물체의 움직임을 입체적으로 감지한다고 하는데,

 기존 iPhone3GS에서는 상하좌우밖에 인식하지 못했던것에 비하면

 상당히 유용한 기능으로 보인다.

'자이로스코프'로 검색하면 이를 이용한 시연영상이 몇몇 있으니 궁금하다면 참고해보길~

'유용한 정보~' 카테고리의 다른 글

DLL 임포트 라이브러리 지정 방법 3가지  (0) 2012.03.28
등과 등등 정확히 어떤 뜻일까??  (0) 2011.02.11
캡슐화  (0) 2010.09.25
갤럭시 vs 아이폰4g 비교사양  (0) 2010.09.14
Posted by 와일드_
|

'Inflation ?? 뭐라구요?? 이게뭐지..'
공부를 하던 도중, 이 부분을 읽다가 깜박 잠이 들었습니다.
휴.. 잠에서 깨고 보니 정리가 필요한 부분같아서 이렇게....

자 그럼, 지금부터 레이아웃 전개가 무엇인지 알아보도록 하죠.


전개란?

XML문서에 있는 레이아웃은 생성할 뷰의 목록, 구조, 속성 등을 상세하게 적어 놓은것입니다.
즉, 뷰의 목록에 대한 정보일 뿐, 실제 뷰가 아니기 때문에
액티비티(화면) 안에 놓이려면 이 정보대로 객체를 생성해야합니다.
레이아웃은 aapt툴에 의해 이진형태로 컴파일되어 실행파일에 내장되게 되고, 프로그램 실행시에 로드되어 실제 객체로 바뀌게 되어 보이는 것입니다.

한마디로, "XML문서에서 정보를 읽어 실제 뷰 객체를 생성해 내는 동작" 이라고 할 수 있습니다.
바로 이러한 동작을 전개(Inflation)이라고 합니다.


이 전개 과정을 우리가 직접 수행할 수 있도록 공개되어있는데, 다음을 보시길 바랍니다.

public class Inflation extends Activity{
public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);

          LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);

          LinearLayout linear = (LinearLayout)inflater.inflate(R.layout.inflation, null);
          setContentView(linear);
}
}

 
LayoutInflater 클래스는 XML 리소스를 전개하여 뷰 객체를 만들어 냅니다.



다음과 같은 코드를 사용하면, 전개와 액티비티에 등록까지 한줄에 끝입니다.
setContentView(View.inflate(this, R.layout.inflation, null));

전개를 하는 여러가지 방법이 제공되는데, 그때 그때 편한 방법을 사용하면 됩니다.

그렇다면 왜..! 사용자가 직접 전개를 하도록 전개자를 제공하는 것일까요.
그냥 setContentView로 ID를 전달하면 알아서 되는데 말이죠..

사실 XML문서를 한번에 전개한다면 전개자가 필요가 없습니다.
특정 뷰 하나만 , 또는 특정 뷰 그룹 하나만 따로 전개하는 것을 지원하기 위해서 전개자가 제공되는 것입니다.

어쩔때 사용할 수 있을까요?

예를들어 EditText를 이곳저곳에서 자주 사용한다면?
매번 XML문서에 EditText를 작성하기도 귀찮고,
코드로 new로 생성하기도 귀찮겠죠.
이럴때 EditText 하나에 대해서만 XML문서를 만들어놓고 전개해서 사용하면 됩니다.
물론 EditText 하나만이 아닌, 복잡한 XML문서를 만들어놓고 전개해서 사용하셔도 되구요~~

'Android Programming > Android Layout' 카테고리의 다른 글

XML로 레이아웃을 지정하는 이유?  (0) 2010.06.03
Posted by 와일드_
|
이클립스를 이용해서 안드로이드 프로젝트를 생성하고 삭제하기를 수십번,
정확한 생성, 삭제 방법은 알고 계시나요??
모르시는분에게 팁을 하나 드리고자 합니다.

파일 탐색기에서 프로젝트 폴더를 지운다고 해서 프로젝트가 바로 삭제되지 않습니다.
즉, 깔끔하게 모든것이 지워지지 않는다는것이죠.

그렇다면 어떻게 지워야할까요?


약간의 주의만 기울인다면, 만사오케이~!!
이클립스의 패키지 탐색기(package ex, 혹은 워크스페이스) 에서
프로젝트를 관리하도록 되어 있으므로 패키지 탐색기에서 삭제할 프로젝트를 선택후 팝업 메뉴를 열고 Delete 항목을 선택하면 됩니다.
그 이후에 프로젝트를 정말 삭제할 것인지를 확인하는 아래와 같은 대화상자에서



체크박스에 체크를 하고 OK버튼을 누르게 되면, 프로젝트 구성파일들이 한꺼번에 삭제되구요,
체크를 선택하지 않으면 목록에서만 빠집니다.


또다른 팁!
그렇다면, 프로젝트를 만들고 누군가에게 이 프로젝트를 주려면??

그냥, 프로젝트 파일을 통째로 압축해버리면 됩니다.
차후, 압축된 파일을 풀어 워크스페이스에 다시 등록하면 이전 프로젝트가 복원이 되니까요.
뭐 좀 풀편하긴하지만, 전통적인 방법이라고하네요.


좀 더 쉬운방법을 찾으시나요??
이클립스에서는 워크스페이스간의 프로젝트 이동을 좀 더 편리하게 처리할 수 있는 Export기능을 제공하는데요,
먼저, 패키지 탐색기의 원하는 프로젝트를 우클릭하면
팝업창이 뜨는데, 여기서 Export를 선택합니다.
어떤식으로 프로젝트를 백업할것이냐~ 묻는데 여기서는 Archive File을 선택하셔서 압축 파일로 만들면 편리합니다.
이렇게 생성된 파일을 가지고 보관하다가 누군가에게 주면 됩니다.

이렇게 받은 파일을 어떻게 사용하느냐..!
이번에는 Export가 아닌 Import를 사용합니다.
팝업메뉴에서 Import를 선택하고 압축 파일과 압축을 해제할 폴더를 지정하면 압축 파일내의 프로젝트가 풀리고 패키지 탐색기에도 등록이 됩니다.


간단하게 몇줄 쓸라했더니, 쓰다보니 길어졌네요.
자신이 만든 프로젝트는 자신이 잘~관리해야겠죠??
모쪼록 도움이 되는 글이었으면 좋겠습니다 ^^
Posted by 와일드_
|
#include <sys/types.h>
#include <sys/socket.h>

int socket(int domain, int type, int protocol);
성공시 파일 디스크립터, 실패 시 -1을 리턴

인자가 3개인데,
1) domain은 프로토콜 체계
2) type은 소켓의 전송 타입
3) protocol은 호스트대 호스트가 사용할 프로토콜을 설정하기 위해 사용


1)
프로토콜 체계라는것은 다음과 같은것들이 있다.
아래 표대로라면 PF_INET을 소켓의 첫번째 인자로 전달하는 경우에 생성되는 소켓은 주소 체계를 IPv4 기반으로 하는 인터넷 프로토콜에  적합하다.

PF_INET                 :     IPv4 인터넷 프로토콜
PF_INET6               :     IPv6 인터넷 프로토콜
PF_LOCAL             :     Local 통신을 위한 UNIX프로토콜
PF_PACKET           :     Low level socket을 위한 인터페이스
PR_IPX                  :    IPX 노벨 프로토콜

-소켓은 프로토콜에 독립적이다.
-소켓은 이러한 모든 경우에 좋은 통신 도구가 될 수 있다.


2)
프로토콜 체계를 지정했음에도 불구하고,
소켓의 전송 타입을 지정해야 하는 것은, 하나의 프로토콜 체계에서도 데이터 전송방법이 여러가지가 있음을 말하는 것이다.
예를들어 IPv4 기반으로 하는 인터넷 프로토콜에서는 다음과 같은 두가지 전송 타입이 있다.
SOCK_STREAM     :     연결 지향형 소켓
SOCK_DGRAM      :     비연결 지향형 소켓



3)
이 인자는 호스트대 호스트가 사용할 프로토콜을 설정하기 위해 사용된다.

프로토콜 체계를 PF_INET으로 줬다.
전송 타입을 SOCK_STREAM으로 줬다.
그렇다면  TCP소켓의 생성을 의미하는 것이 아닌가?
프로토콜 체계를 PF_INET으로 줬다.
전송 타입을 SOCK_DGRAM으로 줬다.
그렇다면 UDP소켓의 생성을 의미하는 것이 아닌가?

사실 맞다.
그래서 이 세번째 인자는 0을 넣어줘도 정상적으로 동작한다.
그렇다면 쓸데없는 이 세번째 인자는 왜 만들어놓은것인가?

예를 들어, 하나의 프로토콜 체계 안에서 데이터 전송 타입까지 같으면서도 최종적으로는 통신하는 형태가 다른 여러개의 프로토콜이 존재하는 경우에는, 이 세번째 인자가 유용한 인자가 된다. 즉 세번째 인자는 프로토콜을 조금 더 구체화하기 위해서 사용된다.
IPPROTO_TCP : TCP소켓을 생성하고자 할 경우에는 이 값을 넣어도되고 0을 넣어도 된다.
IPPROTO_UDP : UDP 소켓을 생성하고자 할 경우에는 이 값을 넣어도되고 0을 넣어도 된다.


Posted by 와일드_
|

자바 코드로도 XML로 레이아웃 지정하는 모든 기능을 완벽하게 처리할 수 있다.
더군다나 XML파일은 독립된 파일이므로 화면이 바뀌면 계속 따로 변경해줘야한다.
이런 불편함이 있는데도 XML 레이아웃 파일을 사용하는 이유는 뭘까?


결과적으로 가장 큰 이유는
GUI 화면 디자인 프로그램에서 화면을 좀 더 쉽게 생성하고 관리하겠다는 목표가 아닐까한다.

이클립스와 같은 GUI구성 프로그램으로도 XML 파일 대신 코드를 직접 생성할 수 있지만, 아직 불완전하고
자바 코드로만 생성가능하지만,
이미 만들어진 자바 코드는 코드를 다시 읽어 변경할 수 있게 지원하기가 어렵다는 점이다.

XML 파일을 실제 기능이 들어가는 자바 코드와 분리하고 있으므로
자바 코드에서 변경된 부분 때문에 구성해둔 화면이 깨지거나, 반대로 화면이 변경되면서 기능에 오류가 생기는 등의 문제가 크게 줄어든다.
또한, 자바 코드를 직접 작성하는 개발자 역시 구성된 화면을 쉽게 가져와 사용할 수 있는 장점이 있다.

이러한 장점들때문에 XML로 레이아웃을 지정하려는 움직임이 활발하다.


덧1) XML은다음과 같은 이점을 제공한다.
    1. 코드와 데이터가 완벽하게 분리 됨으로써 개발자와 디자이너의 역할분담.
    2. 조건에 따라 레이아웃을 교체 가능, 호환성도 확보되고 국제화에 유리.
    3. 레이아웃만 수정시에 코드를 컴파일하지 않아도 되므로 개발 속도 향상.
    4. 구조와 속성을 함축해서 표현할 수 있고, 레이아웃 재활용도 가능.


~

'Android Programming > Android Layout' 카테고리의 다른 글

레이아웃 전개(Layout Inflation)  (0) 2010.07.04
Posted by 와일드_
|
/* 2010.5.09 최종수정*/
시스템을 포맷하거나 새로운 컴퓨터에 안드로이드 환경 구축을 할때,
초보땐 매번 하는게 여간 까다로운게 아니더군요.

안드로이드 개발환경 구축 과정을 간략하게 그림없이 글로만 정리해봅니다.

그럼 지금부터~
같이 개발환경을 설정해보도록 합시다.



#1. 경로설정.

동일한 환경을 구축하기 위해서, 설치 경로는 다음과 같이 한다.

C:\dev
   ㄴ\sdk
      \java
      \eclipse
         ㄴworkspace


#2. Android 설치

필요 설치 파일들 :
최신버전의 JDK, Eclipse, Android SDK(최신버전)
 * http://developer.android.com/ 에서 최신 SDK를 받으실 수 있습니다.

아래 글 순서대로 하시면 됩니다.
- Eclipse를 압축을 풀어서 경로에 잘 옮겨주기만하면 끝
- Android sdk(최신버전) ->압축 풀어서 dev-sdk 경로에 옮겨주기만하면 끝
- jdk를 java에 설치한다. (단, 경로는 #1에서와 같이 맞춰주고, jre는 기본위치로 설치)
- ADT(Android Developer Toolkit) 설치 :
         이클립스(Eclipse) 열어서
         Help -> Install New Software.. -> Add.. -> Name 에 "Android Plugin"과 같이 입력
         그아래 홈페이지 주소에는 http://dl-ssl.google.com/android/eclipse/ 입력(최신 ADT 설치)

- Android 대응 Eclipse 설정
     eclipse를 열어서 window -> preferences -> Android클릭
     SDK Location 창에 C:\dev\sdk 입력하고 클릭

- 위에까지 다 따라왔으면 AVD(Android Virtual Device)를 만들어주어야 함
     * java 환경변수 설정 :          [새로만들기] name : JAVA_HOME, path : C:\dev\java
                                          [시스템 Path 뒤에] “;%JAVA_HOME%\bin"을 추가
     * Android 환경변수 설정 :     [시스템 Path 뒤에] ",C:\dev\sdk\tools" 추가



 

#3. AVD(Android Virtual Device) 만들기

android 1.5부터 하위버전과의 호환성을 위해 각 AVD를 만들어주어야 함
(아래 나오는 방법은 cmd에서 할 수 있는 방법인데,
Android sdk AVD Manager로 손쉽게 avd를 만들수가 있으므로 굳이 아래 방법을 몰라도 좋다.)

- AVD 생성방법

     * cmd에서 다음과 같은 명령어로 만들 수 있다. 또는 Android SDK & AVD Manager에서 설치할 수 있다.

        android create avd -n <가상 기기 이름> -t <대상 ID 번호> [--<추가 설정><설정값>]...



이제 안드로이드 에뮬레이터를 실행해보자!
떳다면, 환경설정 성공이다. 실패했다면 위에 과정을 다시한번 차근차근보고 틀리게 한건 없는지 보도록하자.




#4. 참고자료(시간이 지남에 따라 바뀔수도 있기 때문에 참조만 하세요~)

안드로이드 에뮬레이터 API버전

·avd1.5- API Level 3
·avd1.6- API Level 4
·avd2.0- API Level 5
·avd2.0.1- API Level 6
·avd2.1- API Level 7
            ...



Tip1) 커맨드상에서 avd 리스트 확인하는 커맨드
c:/dev/sdk/tools> android list avd

Tip2) 커맨드상에서 에뮬레이터 기동(실행) 방법 :
c:/dev/sdk/tools>emulator - avd [avd이름]
          예1)emulator -avd avd1.1
          예2)emulator -avd avd1.5




Posted by 와일드_
|