안드로이드 네트워킹
개발시 네트워크 기능을 포함하려면 초기 설계 단계부터 반드시 고려해야한다.
[JSON]
자바스크립트를 객체화해서 통신 (엔터테인먼트 앱, 아이폰에서 많이 사용)
무겁기 때문에 웬만하면 사용하지않는 것을 권장
[XML]
XML 데이터를 주고받으면서 통신 (정형화된 방식이 있음)
파서가 필요함 (웹은 대부분 DOM ,앱은 대부분 SAX)
[SOAP]
WSDL (KSOAP2 라이브러리 임포트가 필요함)
원격에 있는 프로그램을 실행시키는 원리
웹 + 앱 = 하이브리드 앱
android.net 패키지에 있는 API는 내부 통신을 위해서만 사용된다.
accept 클라이언트 요청 대기 (세마포어 기반)'
CBD (component Based Development)
component : 소프트웨어 구성 요소 (액티비티, 브로드캐스트 리시버, 서비스, 컨텐츠 프로바이더)
Declaration : 선언 기반
늦은 바인딩 : 런타임 환경을 잘 다루어야한다.
설계 / 디자인 패턴
달빅(어플리케이션마다 달빅 인스턴스가 하나씩)
리눅스
하드웨어
명시적 인텐트는 같은 어플리케이션 내에서만 쓰인다.
어플은 36MB를 넘어갈 수 없다 ( 그 이상은 쪼개어서 제작)
자바의 직렬화 = 안드로이드 Parcel
자신이 만든 객체를 인텐트화 하려면 Parcel를 인터페이스로 포함해야한다.
[로컬 네트워크]
엔드포인트를 포트 번호 대신 사용
Marshalling : 객체의 힙 메모리를 바이트화
시리얼라이저블 인터페이스를 임플리먼츠를 해주어야 직렬화와 역직렬화가 가능
HTTP 규약 = RFC2616
JAVA 진영 = JCP
printwrite 는 많은 량의 데이터를 전송할때 쓰인다.
안드로이드에서는 getter setter 함수를 사용하는것은 많은 부하를 주기 때문에 public으로 설정하고 사용하는것이 좋다.
[XML]
DOM : 문서를 트리구조로 변환한다. 많은 메모리를 요구하고 재귀호출을 사용하기 때문에 느리다. SAX보다 직관적이고 사용이 쉽다. 웬만하면 사용하지 않는 것이 좋다.
SAX :
ArrayList는 기본적으로 20개 가량이 생성이되고 제한 용량을 넘을경우 그 2배 길이의 힙 메모리를 할당하고 모두 복사한뒤 기존 힙 메모리를 해제하기때문에 많은 양의 데이터를 계속 쓰는 경우 미리 사이즈를 크게 잡는 것이 좋다.
갈비지 콜렉터가 가동할때는 다른 것은 전혀 작동을 하지 않는다.
[과제]
xml에서 필요한 4~5개 먼저 어뎁터로 연결해서 보여주고 상세히 보기 누르면 다이어로그 박스 띄우면서 전부 다 띄우기
442 위치에 XmlResourceParser xmp = getResources().getXml(R.xml.asdfa.xml); (PullParser와 같음)
'기타 > DMZ' 카테고리의 다른 글
2011.09.28 Tacademy 안드로이드 8일차 메모 (0) | 2011.09.28 |
---|---|
2011.09.27 Tacademy 안드로이드 7일차 메모 (0) | 2011.09.27 |
2011.09.24 KOSR 악성코드 세미나 메모 (0) | 2011.09.24 |
2011.09.23 Tacademy 안드로이드 5일차 메모 (0) | 2011.09.24 |
2011.09.22 Tacademy 안드로이드 4일차 메모 (0) | 2011.09.22 |