노력과 삽질 퇴적물

안드로이드: 기초정리(4) 본문

프로그래밍note/언어. JAVA & JDK 계열

안드로이드: 기초정리(4)

MTG 2012. 10. 25. 14:45

Android APIs Reference


안드로이드: 기초정리(1)

안드로이드: 기초정리(2)

안드로이드: 기초정리(3)

안드로이드: 기초정리(4)


추천자료: 안드로이드 개발시 100가지 팁

추천자료: [Android] 정보 정리






09. 구글맵과 좌표


Bohemian life :: 구글맵에 마커 표시하기(위치 지정)

구글맵에서 현재위치에 마커 표시하기. :: 네이버 블로그






10. 스레드

 1. 

Thread()

Thread(Runnable runnable)

-> JAVA: 스레드 참조.


* 허니컴부터는 메인스레드에 NW연결을 넣으면 에러가 나기때문에

별도로 Runnable를 정의 하고 스레드에 넣어서 실행하거나, AsyncTask를 상속받은 클래스를 만들어서 해당 클래스 객체를 생성 시키면 됩니다.(UsrAsynk synk = new AsyncTask()처럼)





11. 마크업 문서

 1. 마크업 문서와 HTML

① 마크업 문서란?

마크업 문서 = 내용 + 구조 + 스타일

-> 내용: 실제 문서내용

-> 구조: 문서 구성 정보(제목, 장, 절 각주, 문단 등)

-> 스타일: 문서 표현 정보(글꼴, 글자색, 글자 크기, 여백 등)

② HTML(Hyper Text Markup Language)

-> 웹에서 정보를 표현할 목적으로 제안된 마크업 언어

-> 장점.

     단순한 구조 / 사용의 편리성 / 시스템에 독립적인 웹 브라우저에 의해 해석

-> 단점.

     사용할 수 있는 태그가 제한적 / 정보 표현에만 집중된 기능. / 전체 문서 표현만 가능

     구조화된 정보를 표현/검색, 문서 유효성 검증 어려움

③ XML

-> 미니 데이터 베이스

-> 다른 DBMS에 비해 수월한 데이터 통합

-> 사용환경에 구애되지 않고 사용가능.




 2. XML 개념과 성향

① 기본개념

-> 구조적인 데이터로 표현하여 작성한다. 

-> HTML과 비슷해 보이지만 다르다.

-> 텍스트지만, 읽는 것만 의미하지는 않는다. 

-> 확장할 수 있다. 

-> 기술의 집합이다.

-> 새로운 기술이 아니라, 발전한 기술이다.

-> HTML에서 XHTML로 이끌었다.

-> 모듈식이다.

-> RDF와 시맨틱 웹의 토대다.

-> 라이센스 제약이 없고, 플랫폼 독립적

② 설계 목표

-> 인터넷에서 바로 사용할 수 있어야 한다 

-> 다양한 종류의 애플리케이션을 지원해야 한다. 

-> SGML과 호환되어야 한다. 

-> 문서를 처리하는 프로그램은 사용하기 쉬워야 한다. 

-> 옵션은 최소여야 한다. 

-> 문서는 쉬워야 한다. 

-> 설계는 빠르게 할 수 있어야 한다. 

-> 설계는 정형적이고 간결해야 한다. 

-> 문서는 만들기 쉬워야 한다. 

-> 간결성은 무시될 수 있다.




 3. 구조

<?xml version="1.0" encoding="euc-kr" standalone="yes" ?>     <!--  XML문서 선언부  --> 

<user_profile xmlns="xml_name_space">     <!-- 이 줄부터 사용자 정의 요소, xmlns로 네임스페이스 지정O-->

    <name>리혜</name> 

    <blog>노력과 삽질 퇴적물</blog> 

    <url>http://analog-green.tistory.com/</url>

    <m1:memo>XML요소내 내용에는 특수문자가 불가하므로 개체참조/문자참조를 써야 한다.<br>

        <![CDATA[  CDDATA 명령어 섹션은 해당 범위내에서

           특수문자 < > ' " &등을 여러개 쓰기 편하다.

        ]]>   

    </m1:memo>

    <m2:memo>해당메모는 접두사를 이용한 예시</m2:memo>

    <content m3:id="memo_03">해당메모는 XML요소 속성에 ID를 부여</content>

</user_profile>




 4. 설계

1단계: 표현하려는 객체를 선택한다.

2단계: 객체 분석과 모델링을 통해 요소(element)를 추출해서 정의/분석한다. 

3단계: 분석된 객체 정보로 트리를 만들고 요소에 대한 정형화된 데이터를 작성한다. 

4단계: 분석된 정보를 나타내는 요소명과 속성명을 구분해서 정의한다. 

5단계: 설계한 트리를 보고 XML로 코딩.






12. XML파싱

 1. DOM파싱

① XML 문서를 읽음.

② XML 파서로 문서 트리 구조로 변환.

③ DOM API를 사용해서 XML 문서의 요소/속성/텍스트 내용을 추출후 XML 문서를 조작.(XML 문서 추가, 삭제, 수정 등).

④ 조작한 XML 문서를 애플리케이션에 따라서 생성, 수정, 삭제한 후 결과 문서를 만든다.

 2. 개념

-> DOM은 XML 문서를 하나의 객체 모델로 인식

-> 각 객체를 인터페이스 개념으로 접근

-> 외부 애플리케이션은 객체에 정의된 인터페이스를 통해 해당 객체를 제어

-> 노드 클래스(객체) = 인스턴스1 + 인스턴스2     //인스턴스는 객체 소속 하위클래스

-> 장점과 단점.

     장점: DOM은 XML 문서를 객체트리구조로 다루기 때문에 XML 전체문서를 읽어 들여조작하는 경우 편리다.

     단점: XML 문서가 커질경우에는 메모리 소모가 커진다.

 3. 조작 및 I/O
1)조작

① DOM의 노드들에 대한 인터페이스 속성(타입/이름/값)

② 노드정보에 대한 메소드

③ XML문서에 대한 메소드

④ XML문서 요소에 대한 메소드

등등.

2)I/O

① 자바기반 I/O

XML문서 → 버퍼(스트림) → XML문서

② DOM API기반 I/O

XML문서 → 버퍼(2진 트리) → XML문서

3) 예제

추천링크.

[Android/안드로이드] DOM Parser ( 돔 파서 ) :: 돼지왕왕돼지의 놀이터

Android XML Parsing Tutorial(androidhive)




 2. SAX (Simple API for XML) 파싱

http://www.saxproject.org

http://sax.sourceforge.net


-> 큰 규모의 XML 문서를 분석하기 위해 개발된 파싱법. Serial Access Method로도 불린다.

-> 메모리를 적게 사용하면서 대용량의 XML 문서를 처리하기위해 제안된 API

-> 이벤트기반 API로써 SAX 파서가 XML 문서를 처음부터 끝까지 차례로 읽어가면서 이벤트를 발생시켜 처리하는 구조

① SAX 파서 종류

Xerces-J 아파치그룹(Apache)에서 만듬

Crimpson 자바(sun) 공식 파서

Oracle Oracle회사의 Parser

XP James clerk가 만듬

② 이벤트 소스와 핸들러구조

-> 파서는 XMLReader 인터페이스를  구현하며 이 인터페이스가 제공하는 parse()메소드로 파싱을 시작한다.

-> SAX Parser가 XML 문서 해석도중 시작태그를 만나면 startElement이벤트가발생하고 , 문자데이타를 만나면 characters 이벤트가 발생한다. 그리고 끝태그를 만나면 endElement이벤트를 발생시킨다.

③ 이벤트 핸들어 작성법

-> ContentHandler, DTDHandler, EntityResolver, ErrorHander 인터페이스를 구현하는 클래스 작성

-> 이벤트 핸들러 클래스 SAX 파서에 등록

-> XMLReader 인터페이스의 메쏘드를 이용하여 SAX Parser에등록.


* 참고로 DefaultHandler클래스는ContentHandler, DTDHandler, EntityResolver,ErrorHander 인터페이스의 메쏘드를 모두 오버라이딩(재정의)한 클래스라서 개발자들은 DefaultHandler를 상속받아 필요한 메소드만 구현하면된다.

//SAXParser 예시

import javax.xml.parsers.ParserConfigurationException;

import javax.xml.parsers.SAXParser;

import javax.xml.parsers.SAXParserFactory;

import org.xml.sax.SAXException;

public class SAXParserTest

{

public static void main(String[] args)throws Exception

{

//① . SAX 파서 공장 생성

SAXParserFactory factory = SAXParserFactory.newInstance();


//② . SAX 파서 생성

SAXParser parser = factory.newSAXParser();

System.out.println("SAX 파서 객체 생성 성공");


//③ . 이벤트핸들러생성

SAXParserTestHandler handler =new SAXParserTestHandler();


//④ . 파서에 이벤트핸들러등록 및 파싱

parser.parse("student.xml", handler);

}

}

 예제.

Android: Simple XML SAX Parser Tutorial » the Open Tutorials

Android XML SAX Parser Example
[Android/안드로이드] SAX Parser ( 삭스 파서 ) :: 돼지왕왕돼지의 놀이터
행복 만들기 :: 알면 편리한 SAX Parser






13. 애니메이션

 1. 트위닝 애니메이션

① xml, 애니메이션 속성정의

② java코드, 애니메이션 구현/설정

③ java코드, loadAnimation()

④ java코드, startAnimation()

⑤ java코드, AnimationListener

-> 추천자료: [안드로이드] 에니메이션 처리하기






 2. 프레임 애니메이션








14. 그외


GCM 푸쉬 클라/서버 구현

안드로이드 GCM 이용과 Third party(jsp) 가이드 - 1부

안드로이드 GCM 이용과 Third party(jsp) 가이드 - 2

안드로이드 GCM 이용과 Third party(jsp) 가이드 - 3