커버팝 coverpop.com
아마존,유투브, 플릭커등에서 제공하는 데이터를 이용해 화려한 모자이크 기법으로 표현한 독특한 사이트

아마존에서 제공하는 api를 이용해 200페이지가 넘지않은 책만 검색하게 만들어놓은 사이트

씸리스웹 seamlessweb.com
뉴요커들이 주로 사용하며 원하는 음식 가장가까운 주문 가능한 곳을 알려줌, 레스토랑의 정보 집합

매쉬업 기술에 대한 길잡이 programmableweb.com
웹에서 제공하는 api 검색 또는 미리 분류해놓은 디렉토리에서 찾게 해놓음.


Posted by 빈솔B
,
TechCrunch(www.techcruch.com)는 이와는 다른 콘텐츠 생산방식과 비즈니스 모델을 가지고 있다. 2005년 변호사 출신의 마이클 아링턴이 창업한 TechCrunch는 IT 업계에서 가장 성공한 블로그 미디어다.

 8020Publishing(www.8020Media.com)이다. 이곳의 비즈니스 모델을 한마디로 말하자면 매쉬업을 이용한 사용자들의 원고와 사진으로 제작되는 잡지다. 즉 사이트를 통해 온라인 커뮤니티 구성원들이 잡지 발간 과정에 참여토록 하는 애플리케이션을 제공한다.


Posted by 빈솔B
,

HTML BASIC

Html 2009. 2. 16. 20:50

 HTML이란?
+ 구성요소: HTML + TAG
+ HTML 전송 프로그램 : HTTPD(http Demon) 즉, 웹서버

 웹서버 작동원리
+ 웹서버 설치시 필요사항 : IP주소, Port 번호 + HTML Dir, CGI Dir
+ HTML, 추가 필요 이미지, 멀티미디어파일 요청 후 다 받으면 서버와의 연결 끊음
+ HTTP1.0 : 요청시마다 conn/disconn 반복 but, HTTP1.1:한번의 요청받아 처리
+ 클라이언트가 CGI 요청경우 -> CGI 실행시 입력정보 : 브라우저 정보, 사용자 입력정보, 브라우저에 저장되어 있던 쿠키 정보
+ Cache: CGI는 출력내용을 따로 보관했다가 한꺼번에 전송함 (CGI 종료 또는 캐시가 꽉찰때)
+ 실행권한: Unix에 웹서버 설치시 서버 사용자 이름을 할당해야 한다.

 서비스 되는 문서   읽기권한
 모든 디렉토리  접근권한
  CGI 파일   실행권한
+ CGI 경우 외부실행이기 때문에 보안신경

 HTML 기초
     - 전체 구조
+ TAG는 대소문자 구별없다. 문서내부 공백,TAB무시, TAG는 시작/끝으로 구성
+ 태그 종류: HTML, HEAD, BODY, TITLE, H1, <!- comment ->
+ HTML = header(저자, 키워드, 설정정보) + body (화면출력)
     - 기본 태그
+ HTML : html 문서포함 의미
+ prologue doc identifier : 맨 상단 분서버전 정보(필수아님)
+ HEAD : 문서정보 
++ <base href="url" target="detail"> 문서url, 대상 frm 지정
++ <title/> 윈도 상단 시스템 메뉴표시
++ <meta> svr/client  에서 사용되는 추가정보(저작, 키워드, client pull, image map)
+ BODY : 내용
++ background, bgcolor, text, link(link + vlink + alink), margin : 이 속성들은 문서 전체적으로 적용된다.
+ 속성(attribute) : 일부 tag에 추가되는 정보
     - 속성 추가
+ Tag속성 : HTML 스펙에 정의되지 않거나 브라우저가 못알아먹는 속성경우 무시된다. " 열고 닫음에 주의.
     - Link/Anchor
+ Link 는 다른 문서보기, Anchor 는 문서 어느 부분에 이름 부여하기(책갈피).
+ Link 는 href 속성, Anchor는 name 속성 지정.
+ 상대경로는 브라우저의 내용 대부분을 자신의 Cache에 가져다 쓰게 되어 빠름(. ..로 시작), 절대경로는 다시 전송 받아서 느림(/로 시작). 
+ <a href="../menu.html#UP"> 경우는 Link와 Anchor를 같이 사용한 경우임. Anchor는 로딩시간 따로 없고 문서안에서 이동된다.
+ <a href="mailto:binsolb@daum.net">  메일보내기(추가기능) : 클릭시 outlook과 같은 메일프로그램이 구동되면서 받는 사람에 설정된다. 실제 메일 전송시에 필요한 세팅은 사용자의 몫이다.
+ <a href="ftp://www.binsolb.com"> anonymous 계정으로 FTP 연결됨. 
+ <a href="ftp://userid:password@www.binsolb.com"> userid사용자 password사용자로 FTP로 연결함
+ 브라우저를 이용한 FTP 연결은 login 지속되지 않기 때문에 많이 느리다는 단점 있음.
     - 목록 Tag
+ 나열형에 주로 쓰는 tag
+ <OL>: Orderde List(자동으로 번호조정됨), <UL>:Unorderde List, <LI>:List Item, <MENU>:단순들여쓰기, <DL>:Definition List(단어정의), <DT>:Definition Term, <DD>:Definition Description
+ <BLOCKQUOTE/> 들여쓰기 수행
     - 문자와 스타일
+ 논리적 스타일(논리적 의미 부여) & 물리적 스타일(화면 출력 모습정의)
+ 논리적 스타일 ( EM, STRONG, CODE, SAMP, KBD, VAR, DFN, CITE )
+ 물리적 스타일 ( B, I, TT, U, PRE, HR, BR, ADDRESS, BLOCKQUOTE )
     - 기타 Tag
+ FONT, DIR, CENTER, BLINK, STRIKE
+ BLINK는 브라우저마다 다르게 동작, IE에서는 옵션이 꺼져있음.
     - 특수 문자 표기
 < 공백  ® © ±
 &lt; &gt;   &amp; &quot;  &nbsp;  &reg;  &copy;  &plusmn; 
     - 이미지 표기
+ <IMG src="url" align=top alt="image title" border=0>
+ SRC:이미지 위치, ALT:이미지 로딩 대신문자, BORDER:테두리 두께, ALIGN:정렬(left, right, top, texttop, middle, absmiddle, baseline, bottom, absbottom), WIDTH,WEIGHT:사이즈(확대/축소/%), HSPACE,VSPACE:이미지 주위요소와의 간격
+ WEB에서 인식되는 이미지 파일: GIF, JPG, PNG 이다. 나머지는 사용자에게 물어봄
+ gif는 gif87, gif89(투명, animation 가능) 형식있다.
+ 서서히 나타나는 이미지 : PSP 저장옵션중에 89a-interlaced로 저장된 gif
+ 압축률 PNG > JPG > GIF 순

 HTML 활용
     - Table

+ CAPTION : 표 타이틀, 실제로 사용 전무함.
+ Table tag 속성(해당 테이블 전체) : border, width/height, background, align, bgcolor, bordercolor, cellspacing, cellpadding
+ TR tag 속성(해당 열전체) : align(수평)=left/center/right/justify/char, valign(수직)=top/middle/bottom/baseline, bgcolor
+ TD tag 속성(해당 셀) : align, valign, bgcolor, nowrap(내용 초과시 자동줄바꾸기 안함), width, height, colspan(가로병합), rowspan(세로병함)
+ Table in Table 가능
+ 큰 이미지 출력시 나누어 table로 보여줄수 있다.
+ Table은 브라우저가 화면과 Table의 요소들을 계산해서 화면에 뿌리기 때문에 많은 계산이 필요하므로 큰 Table 작성시에는 주의가 필요하다.
     - Frame
+ 브라우저 창(client area)를 여러 개로 분리하여 작업가능케 함.
+ body tag 없이 사용. 
+ <FRAMESET rows="num/%" cols="num/%">  
<FRAME src="url" name="name" scrolling="yes|no|auto"> ... </FRAME>
</FRAMESET>
+ rows, cols는 콤마분리자로 여러개의 프레임으로 나눌 수 있다. 프레임별로 여백 or 스크롤 설정가능.
+ FRAMSET tag : rows, cols, frameborder, bordercolor
+ FRAM tag : name(href의 target으로 지정가능), src, scrolling, noresize, marginwidth(프레임과 내용의 좌우여백), marginheight (상하)
+ 장점: 특정부분 reloading으로 빨라질수 있다. 단점: back, forward 버튼 동작이 이상해질수 있다.
+ Link를 현재 화면 아닌 다른 화면에서 로딩하고 싶을때 frame name을 href의 tartget으로 설정하면 됨. 지정된 이름의 frame 없으면 새창열림.
+ target 키워드 : _top (현재 브라우저 창의 최상위 frame), _blank(새창), _self(현재 frame), _parent(한단계 위 frame)
     - Form
+ 버튼, 라디오 버튼, 선택박스 (사용자 입력 받아 ACTION 으로 지정된 서버의 cgi 파일이름 으로 입력정보 전달)
+ METHOD: 웹서버로 전달하는 방식 GET, PUT, HEAD, DELETE ...
+ GET : 코드화 되어 서버에 전달시 환경변수(QUERY_STRING)에 저장되어 서버로 전달된다. but, 길이 한계, 브라우저 창 주소에 입력값이 그대로 노출되어 북마크 될수 있다.
+ POST : 브라우저가 보낸 정보가 표준입력(stdin) 통해 서버로 전달된다. 보편적 방법, 길이제한 없다. 입력값 노출 안됨.
+ INPUT TYPE : text, password, file, radio, button, submit, reset, hidden, image(with src)
+ TEXTAREA, SELECT & OPTION 
+ File Upload : FORM 속성중 ENCTYPE 이 있는데 Default로 application/x-www-form-urlencoded 형태의 MIME Type으로 웹서버로 전달된다. 그러나 INPUT의 TYPE=file 경우는 파일이 브라우저로 전달되기 때문에 그 때는 ENCTYPE을 multipart/form-data로 지정해야 파일전송이 제대로 된다.
     - Element
+ TEXT : type=text, value=디폴트값, size, maxlength
+ RADIO : type=radio, checked, 중첩경우(name으로 그룹지정, 그룹내에는 하나만 지정가능)
+ CHECKBOX : type=checkbox, checked
+ BUTTON/SUBMIT/RESET : type=button | submit | reset, value=버튼표시내용
+ HIDDEN/PASSWORD/FILE : text type의 변형된 형태, hidden 값은 은 화면에 보이지 않고 서버로 form 내용 전달시 뭍어감, password는 사용자 입력값이 전부 *, file은 파일첨부시 사용
+ SELECT : 처음것이 기본값, option selected=선택됨, size(높이), mutiple(다중선택)
+ TEXTAREA : value(기본값), cols, rows
하나의 폼 태그 안에 있는 요소들 내용만 Action tag에 지정된 곳으로 전달된다. 다른 것 존재시 따로 전달됨.
+ textarea 내용은 브라우저마다 길이제한 다르다.
+ radio 경우 서버로 전달시 value라는 특정값 따로 사용해서 구분해야 한다. 같은 이름가진 것이 같은 그룹으로 동작한다.
+ 전달 대상(action)은 폼당 하나이기 때문에 여러가지 작업경우엔 복잡해 질수 있으나 일부 브라우저에서 자바스크립트 이용해 action 항목을 바꿀 수 있다.
+ 서버 전달시 구분을 위해 이름(name)을 꼭 쓴다.
+ image 경우 서버 전달시 이미지 좌표값이 전달된다. 예. 이미지 이름이 img면  img.x, img.y 값 전달됨
 기 타
     - MIME Type
+ 웹서버가 브라우저로 전달할때 브라우저는 파일 확장자로 파일을 구분하게 된다. 이런 구분할 파일의 확장자 형식을 MIME type 이라고 한다.
type 종류: text/html, text/plain(ASCII 타입 txt), image/gif, image/jpeg, application/postscript(ps확장자파일), video/mpeg
+ 비표준화 (x로 시작) : Excel MIME Type 은 x-application/x-xls
     - 이미지 맵
+ image 특정 부분 클릭시 동작 다르게 함 (meta tag이용)
+ <MAP name="abc"> <AREA shape="RECT" coords="10,10,40,40" href="abc.htm"></MAP>
<IMG src="a.gif" usermap="#abc">
+ 요즘은 Table(with border=0)로 대체되는 추세
     - 클라이언트 풀
+ 웹페이지는 사용자 요구에만 응답하지만, client pull은 주기적으로 페이지를 가져오게 할수 있다.
+ 방법: mata tag 이용
+ 문법: html header 부분에 위치 <META HTTP-EQUIV="Refresh" CONTENT="12;URL://host.domain/index.html">
++ META : html 3.0 표준태그, 12초 주기
++ CONTENT : 지속시간, 단위는 초
++ URL : 가져올 문서
+ 치명적 단점: Refresh는 한번만 유효 하다 다음화면 불려졌을때 그 문서에 클라이언트 풀 문장이 없다면 다시 요청하지 않는다. 계속 자동으로 할려면 META Tag가 계속 존재하게 구성해야 한다. 더 중요한 건 동접수가 늘어날 경우 서버에 부하가 걸릴 수 있다.
 
마치며
+ html은 규약이므로 www.w3.org 참고
+ 특정 브라우저만 지원하는 기능은 자제
+ 참고 html Library Help 참고하자

Posted by 빈솔B
,
Posted by 빈솔B
,

 웹주소에 있는 이미지를 View에 불러와보자.
 예제로 쓸 주소는 http://cfs.see.daum.net/files/admin/20090113/20090113_092517_best_dormitory_090113.jpg 이걸로 하겠다.

 xml UI 설정을 나는 다음과 같이 기술했다.(아래소스는 일부분이다.)
main.xml
<ImageView android:id="@+id/thumnail"
   android:src="@drawable/dog"
   android:background="@drawable/blue"
   android:adjustViewBounds="true"
   android:scaleType="fitXY"
   android:layout_width="70dip"
   android:layout_height="70dip" />

 로컬에 있는 이미지를 불러오는 방법은 android:src="@drawable/dog" 와 같이 android:src 파라미터에 리소스 파일명을 직접 쓰면 된다. 잘 안되는 점이 있다면 R.java 파일에 Drawable 클래스에 자동 등록된 id를 확인해보자.
 덧붙여 간단히 다른 파라미터 설명을 곁들이자면  android:background 파라미터 값은 직접 RGB코드를 넣어도 되고 color 정보를 따로 한곳에 담은 xml에 등록된 아이디로 해도 된다. 필자는 후자 방법으로 한것이다.
 android:adjustViewBounds 은 그려질 이미지의 비율을 유지한다는 의미같다. android:scaleType 은 이미지가 보여질 리사이징 정보인데 필자는 고정으로 정했다. 그러면 위의 파라미터와 상충되는 것 같은데 확인되는 대로 관련들을 포스팅하도록 하겠다.
자세한 내용은 아래 레퍼런스를 참고바란다.
http://code.google.com/intl/ko-KR/android/reference/android/widget/ImageView.html

이제 UI설정을 다 되었다. 나타내고자 하는 Activity 내에서
다음과 같이 호출을 해보자
Uri uri = Uri.parse("http://cfs.see.daum.net/files/admin/20090113/20090113_092517_best_dormitory_090113.jpg");
mThumnail = (ImageView)findViewById(R.id.thumnail);
setImageURI(Uri uri)
findViewById 나 setImageURI 관련해서 자세한 사항은 레퍼런스 참고하길 바란다.
간단히 설명하자면 리소스중 thumnail 이란 id를 가진 ImageView영역에 위의 uri를 가진 이미지를 나타낼 목적이다. 
실행해보자. DDMS를 통해 로그를 보면 에러가 난다;; (혹시 나지 않는 분들은 말씀주시길.. ) 
01-14 01:56:44.274: INFO/System.out(430): resolveUri failed on bad bitmap uri: http://cfs.see.daum.net/files/admin/20090113/20090113_092517_best_dormitory_090113.jpg

간단히 될줄 알았는데 좀 더 구글링 해보니 일반 java 프로그래밍 방법과 비슷한 식이 있었다.
 try {
            URL url = new
            URLConnection conn = url.openConnection();
            conn.connect();
            BufferedInputStream bis = new
BufferedInputStream(conn.getInputStream());
            Bitmap bm = BitmapFactory.decodeStream(bis);
            bis.close();
            mThumnail.setImageBitmap(bm);
        } catch (IOException e) { 
            Log.e(Constants.LOGTAG, " " + CLASSTAG, e);
        }
소스를 보면 알겠지만 소켓 통신으로 이미지를 다운받은후 그 비트맵을 세팅하는 방식이다. 혹시 여기서도 아래와 같은 DDMS상에 에러로그가 발생했다면 설정을 더 해주어야 할것이있다.(단, 에뮬레이터에서 브라우저에 웹페이지 로딩이 이상이 없다는 전제이다.)
01-14 02:03:26.083: ERROR/OSNetworkSystem(466): unknown socket error -1

AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET" />
듣자하니 위 설정이 소켓통신을 허용해는 설정이란다;;; 일부러 막을 필요가 있었나보다;;

지금까지 웹주소로 이미지 나타내기를 해보았다.
궁금 한점이 생겼다. 인터넷이 끊어졌을때 이미지를 로컬파일과 같이 저장해놓을 수는 없을까? 아니면 알아서 템포러리로 저장되는건가?



Posted by 빈솔B
,

Here's 10 tips for Android developers to become productive.

1. Accountability
당신에게 부여된 모든 기능에 대해  4시간 보다 적게 할수 있는 테스크로 주어진 기능을 나누어라. 예로들어 8시간 보다 더 많은 시간을 업무에 할당하지 말아라. 이유는 만약 당신이 당신의 업무를 하루 단위로 할수 있는 더 작은 조작으로 나눌수 없다면 올바르게 작업할수 없을 것이다. 개발자로서 우리는 하루에 2,3개의 작업만 살펴봐야 한다.

2. Commitment
업무 개발 일정을 측정하라
개발자로서 스스로에게 내가 얼마많에 이 일을 수행할수 있을지 자문해보라. 얼마나 걸리니냐는 경력에 따라 다르다. 만약 처음 몇번 일정측정에 실해한다고 해도 걱정말아라 당신은 나아질것이며 측정보다 좀더 많은 시간을 잡는 것이 바람직하다. 절대 얼마나 걸릴지 알수없다는 말은 하지 말아라 그것은 근본적으로는 당신이 코딩을 어떻게 할지 모른다는 말이다.

3. Responsibility
트랙커를 사용하라
업무를 들어가서는 그것들을 트랙화해라. 하루의 업무 끝에 트랙커를 사용해서 당신의 업무를 트랙킹하는 것은
더 나은 개발자가 될 수있게 만들어줄것이다.

4. Credibility
스케줄 마다 업무들을 완료해라.
원래 측정했던 시간에 그 업무들을 완료하도록 노력해라. 완료되지 못한 업무들을 남겨두지 말아라

5. Liability
SVN에 코드를 check해라
매번 작업 완료 후 Subversion에 코드를 체크해라. 만약 충돌이 나면 충돌을 해결하고 다시 체크하라. 매 몇시간으로 SVN으로의 채킹은 당신의 업무를 보호하고 생산성을 높힐 수 있다. 만약 team repository에 코드를 체킹하지 않으면 곧 당신이 책임을 다져야 할것이다.

6. Focus
사소한 혼란주는 모든걸 버리고 코드에만 집중하라. 그 상태에 당신이 있을때 가능한한 오랫동안 지속되도록 해라. 효과적인 코딩을 위한 웜업시간은 매우 중요하다. 그래서 이메일,메신저질은 무시해라.

7. Schedaule your day
이메일, 채팅등을 위한 시간을 따로 정해두어라. 방해받지 않는 코딩을 위해 넉넉한 시간을 배려하자. 만약 당신이 방해받기 쉽다면 당신의 마음은 효과적인 코드를 그리고 쓰지 못하게 된다. 당신의 환경을 가능한한 생산적인 코딩을 위해 편한하게 만들어라

8. Google it
포럼, IRC를 사용하라
버그 생길땐 구글링을 해보라. 정확한 에러를 잘라내어 구글 서치 박스에 붙여넣어라. 당신은 당신이 찾던 해결책을 이렇게 쉽게 얻는지 놀랄것이다. 개발자 그룹과 포럼을 사용해라 IRC의 플래폼 개발자들과 친하게 지낼수 있는 곳을 찾아라. 기억해두도록.. 컴퓨터는 항상 옳다. 당신은 그것과 싸우고 있는 사람중에 한 사람일 뿐이다.

9. Get Help
당신이 이상하게도 오랫동안 문제를 고민하고 있다면 스스로에게 호의를 배풀자. 도움을 구하라! 진심으로 조용히 있지 말아라 침묵을 지키는 것은 개발자가 어려움에 쳐할때 할 수있는 최악의 짓이다. 목소리를 높히고 당신의 문제를 사람들이 듣게 하라. 한번 당신이 세상이 당신이 심각한 문제가 있다는 걸 알게 만들면 당신은 당신의 컴에 속속히 해결책들이 쉽게 오는 것에 놀랄것이다.
 
10. Collaborate
팀으로 일해라 공유하고 의견을 나누어라 똑똑한 사람들 동료사이에 있어라 역병같이 부정적인 사람들과 비관론자들을 피하라. 생산적인 프로그래머가 되기 위한 비밀의 레서피는 생산적인 프로그래머들과 동료가 되는 것이다.


원문: 10 tips for developers to become productive

Posted by 빈솔B
,

안드로이드 어플에는 네가지 설계요소가 있다.
- Activity
- Broadcast Intent Receiver
- Service
- Content Provider

모든 어플이 네가지 요소 다 필요한건 아니다. 그러나 당신의 어플은 이 네가지 요소의 조합으로 이루어질 것이다.

일단 당신의 어플에 필요한 컴포넌트를 정해야 한다. AndroidManifest.xml 파일안에 그것들을 리스트화 해야한다. 이것은 당신이 어플의 구성요서를 정의하고 컴포넡트들의 특성과 요구사항을 선언해 놓는 xml파일이다. Android manifest file document 에 더 자세히 나와있다.

Activity
Activites는 안드로이드 네가지 설계구성중 가장 일반적인 요소이다. activity는 대개 어플에 단일 스크린이다. 각 activity는 Activity 기본 클래스를 확장한 단일 클래스이다. 클래스는 Views 로 구성된 사용자 인터페이지를 보여주고 이벤트에 응한다. 많은 어플들이 다중 스크린으로 구성되는데 예로들면, 텍스트 메시징 어플은 메세지 보내기 위한 컨택 리스트들을 보여주는 하나의 스크린, 선택된 컨택에 메세지를 쓰기위한 두번째 스크린, 설정변경 또는 이전 메세지 다시보기 위한 다른 스크린들을 가지고 있다. 이러한 각각의 스크린들은 Activity로서 구현된다. 다른 스크린으로의 이동은 새로운 activity를 구동함으로서 이루어진다.  일부 경우에는 activity가 이전 activity에 값을 리턴할 수도 있다 (예로, activity 사용자에게 사진을 선택하게 하는 activity는 호출자에게 선택된 사진을 리턴해준다.)

Intent and Intent Filters
안드로이드는 스크린에서 다른 스크린으로 이동하기 위한 Intent라는 특별한 클래스를 사용한다. intent는 어플이 하고싶은 것를 서술한다. intent data struct의 두가지 가장 중요한 점은 action 과 연동되는 data이다. action 위한 전형적인 값들은 MAIN(어플의 대문이라고 할수있는), VIEW, PICK, EDIT,등이있다. 이 데이터는 URI로 표현된다. 예로, 인물의 컨택정보를 보여주기 위해 VIEW action를 가진 intent, 인물을을 표현하기 위한 URI에 data set을 만들어야 한다. 

IntentFilter라 불리는 관련 클래스들이 있다. intent는 어떤일을 하기 위해 효과적인 요청방법인 반면에 intent filter는 activity(또는 BroadcastReceiver, 나중에 나옴)가 무엇을 다룰것인지 의도하는 것의 기술한 것이다. 인물 컨택 정보를 나타낼 수 있는 activity 는 인물을 나타내는 정보에 적용되는 action VIEW를 어떻게 다룰것인지 알고 있는 걸 말해주는 intentFilter를 만들어낸다. Activites는 그들의 intentFilters를 AndroidManifest.xml 파일에 써놓는다.

스크린에서 다른 스크핀으로의 이동은 intents 결정으로 실행된다. 앞으로 갈때 activity는 startActivity(myIntent)를 호출한다. 시스템은 모든 설치된 어플을 위한 intent filter들을 확인하고 intent filter들이 myintent에 최적으로 매치되는 activity를 골라낸다. 그 새로운 activity가 구동되기 위해 연관된 intent로부터 알게 된다. intent 결정의 단계는 startActivity이 호출되는 실행시에 일어나며, 두가지 장점을 제공한다. 
- Activities는 Intent 형식으로 요청함으로서 쉽게 다른 컴포넌트로 부터 재사용성이 가능하다.
- Activities는 동등한 IntentFilter를 가진 새로운 Activity의해 언제든 대체 가능하다.

Broadcast Intent Receiver
여러분이 외부 이벤트 즉, 예로들어 폰이 울릴때나 데이터 네트웍이 사용가능할 때 또는 한밤중일때 등의 대응을 수행하기 위해 어플에 코딩할때 BroadcastReceiver를 사용해라. 비록 만약 관심끌 무슨일이 일어난다면 사용자에게 경고하기 위해 NotificationManager를 사용한다고 해도 BroadcastReceivers 는 UI를 나타내는 것이 아니다. BroadcastReceivers는 AndroidManifest.xml에 등록되지만 context.registerReceiver() 를 사용한 코드로 부터 BroadcastReceiver를 등록할 수도 있다. BroadcastReceivers가 호출되기 위해 어플이 실행할 필요는 없다. 그 시스템은 어플을 구동시킬 것이며, 만약 필요하다면 BroadcastReceiver가 시작될 때 어플은 자신의 intent broadcasts 를 Context.sendBroadcast()를 가지고 역시 다른 곳으로 보낼 것이다.

Service
Servide는 UI없이 오랫동안 살이있고 실행되는 코드들이다. 좋은 예로는 재생리스트로부터 음악을 재생하는 media player를 들 수 있다. media player 어플에는 사용자에서 노래를 선택하고 재생을 허용하는 하나또는 그이상의 activitie들로 되어있을 것이다. 그러나 음악 자체 재생은 activity의해 다루어지면 안된다. 왜냐면 사용자는 음악이 새로운 스크린으로 이동후에도 계속적으로 재생되길 바랄것이다. 이런경우, media player activity는 Context.startService()를 사용해 배경으로 음악이 계속 재생되는 서비스를 구동할 수 있다. 그 시스템은 끝날때 까지 실행중인 음악 재생 서비스를 계속 유지할 것이다.(Life Cycle of an Android Application 을 읽어보면 시스템에서 서비스에 주어진 우선순위에 대해 더 알수 있다.)  Context.bindService() 로 서비스(만약 이미 실행중이 아니라도 시작하는)에 접근할 수있다. 여러분이 서비스에 접근할 때, 여러분은 서비스에 의해 나타난 인터페이스를 통해 서비스와 통신할 수 있다. 뮤직 서비스를 위해 pause, rewind, 그외도 될 것이다.

Content Provider
어플은 파일, SQLite 데이터베이스, 또는 가능한 여타 다른 장치에 데이터를 저장할 수 있다. 그러나 content Provider는 만약 여러분이 어플의 데이터를 다른 어플과 공유하고 싶다면 매우 유용하다. content provider는 다른 어플이 content provider 의해 다뤄지는 데이터의 타입을 저장하고 불러내기 위해 일련의 표준 메소드를 구현해 놓은 클래스이다.

content Provider에 대해 더 알고 싶으면 Accessing Content Proviers 문서를 보아라.
 
Posted by 빈솔B
,

AMF

카테고리 없음 2007. 12. 27. 14:50
- MXML(Magic eXtensible Markup Language) : 매크로미디어사에서 발표한 XML기반의 사용자인터페이스 생성언어이다. 웹 어플개발자들은 액션스크립트 같이 MXML을 사용하여 리치 어플리케이션을 개발한다.
- MXML은 FDS(Flex Data Services) LCDS(LiveCycle Data Services)에서 서버단에서 런타임시 표준 바이너리 SWF 파일로 변환하는데 쓰인다.
Posted by 빈솔B
,