7,8월 간 중간보고서
이전에 다른 Activity로 메시지를 전송하기 위해 Intent를 사용하였는데, 새로운 Activity를 시작할 때 Parameter로 주는 것이다. 그러면 이미 실행되고 있는 액티비티에 메시지를 전송하려면 어떻게 해야 할까? C2DM BroadCast Activity에서 C2DM관련 메시지를 받아 처리한다. 이때 TabChat Activity로 메시지를 보내려면 Handler를 사용하면 된다. 메시지를 받고자 하는 쪽에서 Handler를 작성한다. static Handler chatHandler = new Handler(){ @Override public void handleMessage(Message msg) { switch(msg.what){ case 1: ChatItem item = (ChatI..
서버 클라이언트 통신 서버-클라이언트 통신시 소켓을 사용하게 되는데, Input/OutputStream으로는 int나 byte데이터만 전달할 수 있다. 이때 클래스등의 데이터를 전달하려면 ObjectInput/OutputStream을 사용하면 간단하게 데이터를 주고 받을 수 있다. 이전에 사용했던 안드로이드의 Parcel과 비슷하다(애초에 이쪽이 자바 쪽 기능을 가져온거겠지...) 먼저, 전달할 클래스를 직렬화 해야 하는데 Serializable 혹은 Externalizable을 implement 한다. 둘 다 같은 기능을 하고, Externalizable는 데이터를 어떻게 전달할 지 명시적으로 지정하고 싶을 때 사용한다. 이때엔 read/writeExternal 메소드를 오버라이드 해서 직접 read/..
Activity간 데이터를 전송하려면 intent를 생성해서 putExtra()메소드로 데이터를 넣어서 startActivity()메소드를 실행하면 되는데. primitive한 자료형만 가능하고 클래스와 같은 데이터는 전송할 수 없다. 따라서 클래스의 내용물을 하나하나 분해해서 putExtra()해야 하지만, Parcelable인터페이스를 사용하면 깔끔하게 전달할 수 있다. http://arsviator.blogspot.com/2010/10/parcelable%EC%9D%84-%EC%82%AC%EC%9A%A9%ED%95%9C-%EC%98%A4%EB%B8%8C%EC%A0%9D%ED%8A%B8-%EC%A0%84%EB%8B%AC-object.html 먼저 전달하고자 하는 클래스에 Parcelable 인터페이스..
프로그램 특성상 ListView의 사용이 많아서 여기에 정리한다. ListView를 사용하기 위해서는 다음의 재료가 필요하다. 내용이 들어있는 Item의 Array, ListView 객체, 이 둘을 연결해 줄 Adapter, item의 내용이 들어갈 item layout(xml파일) Item은 리스트의 각 줄마다 들어갈 내용으로, 이 Item을 모아놓은 Array가 필요하다.Array는 배열일 수도 있고, List, ArrayList일 수도 있다.(만드는 사람 마음) 내용의 추가삭제가 용의하게 ArrayList를 이용하는 것이 편하다. Adapter는 ArrayAdapter을 extend해서 만든다. 생성자 및 몇 가지 메소드를 override하면 되는데 getCount(), getItem(), getV..
날씨 업데이트 과정 날씨정보는 Google및 기상청의 API를 사용해서 얻을 수 있는데, Google의 API는 현재위치좌표(위도,경도)를 사용해서도 날씨를 얻을 수 있다. 날씨 업데이트 과정 업데이트 요청 –> GPS로 현재 위치좌표 확인 –> google 날씨 api에 요청 –> stream reader로 xml파싱 -> 현재 날씨 부분만 추출 –> 날씨 그림 표시 날씨 업데이트는 상황에 따라 시간이 걸릴 수도 있기 때문에 백그라운드에서 작업하도록 한다. 보통 handler나 thread를 사용하는데, 이 경우 UI를 업데이트 하기 어렵고, 또 UI 업데이트가 제때 되지 않았다. 대신, 안드로이드에서 제공하는 AsyncTask를 사용한다. 1 private class UpdateWeatherJob e..
C2DM Push를 사용하면 서비스를 항상 돌리지 않아도 서버의 메시지를 받을 수 있다.(물론 결국 휴대폰에서 C2DM서비스가 실행중이여야 하지만, 특별한 경우가 아니면 지금도 돌고 있다.) 준비물 : 구글 계정, 3rd party 서버 메시지 전달 과정은 다음과 같다. 1. 단말기에서 3rd party 서버로 메시지 전송을 요청 2. 3rd party 서버에서 C2DM서버로 Push 전송 요청 3. C2DM 서버에서 단말기로 Push 메시지 전송 4. 받은 Push메시지를 단말기에서 처리 3번은 구글 서버에서 알아서 해주므로 1, 2, 4번을 직접 처리해야 한다. 1번은 직접 구현하면 되고, 2번과 4번은 정해진 프로세스에 따라서 구현하면 된다. 간단하게 C2DM메시지를 서버는 메시지 전송만, 어플은 ..
안드로이드 실행파일은 APK파일로, 컴파일 한 결과물을 ZIP으로 묶은 것이다. 파일 내부를 살펴보면 기본적으로 다음과 같은 구조로 되어 있다. o META-INF o res - AndroidManifest.xml - classes.dex - resources.arsc META-INF : 개발자의 키로 APK파일을 사인한 결과값들이 저장되어 있다. 파일마다 SHA1값이 저장되어 있기 때문에 파일 변조시 기기에 설치가 되지 않는다. res : 소스의 그림파일들과 바이너리화된 xml파일들이 저장되어 있다. AndroidManifest.xml : 바이너리화되어 있음 classes.dex : 컴파일된 소스 resources.arsc : 컴파일된 리소스 관련 파일 이 상태에선 파일을 수정할 수 없지만, apkto..
Facebook도 Twitter와 비슷한 방법으로 사용할 수 있다. 다만, Twitter의 경우 Twitter4J와 같은 관련 라이브러리를 사용할 수 있지만, Facebook은 관련 SDK를 오픈 소스로 공개하고 있다. SDK : https://github.com/facebook/facebook-android-sdk 이중 facebook 폴더의 내용을 프로젝트에 포함한 후 몇 몇 부분을 수정해야 한다. Facebook.java에서 아래 내용을 주석처리 1 authorize(...){ 2 ... 3 // Prefer single sign-on, where available. 4 // if (activityCode >= 0) { 5 // singleSignOnStarted = startSingleSignOn..
http://dmclab.hanyang.ac.kr 학교 블로그 서버가 불안정해서 이쪽에도 포스팅 해야겠다.
- Total
- Today
- Yesterday
- 아일랜드
- 2월 29일
- 안드로이드
- NEXUS S
- 요리·레시피
- Leap Year
- U123
- 하이픈
- 레터스 투 줄리엣
- 잠금화면
- ubuntu
- Ubuntu7.10
- dex2jar
- 일상·생각
- 전화번호
- 5초 룰
- GutsyGibbon
- 문학·책
- IT·컴퓨터
- STOP_APP_SWITCH
- 더블린
- Android
- setfsb
- lockscreen
- apktool
- 프로포즈 데이
- 5 sec rule
- Gutsy
- 락스크린
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |