Android2011. 1. 24. 13:49

Bump란?
가속도 센서가 있는 두 개의 단말기를 서로 부딪혀 양 단말기를 인식한 후, 다양한 형태의 데이터(연락처, 이미지, 사용자 데이터 등)를 교환할 수 있는 서비스입니다.

동작방식
1. Bump는 블루투스나 적외선 통신이 아닌, Wifi, 3G 등을 이용합니다.
2. 서로의 단말기를 인식하기 위해, 각각의 단말기의 부딪힌 시간, 위치, 각도를 Bump 서버로 송신을 합니다.
Bump서버는 두 개의 단말기에서 받은 정보를 매칭 알고리즘을 사용하여 인지한 후, 각각의 단말기에 매칭3. 결과가 옳은지 서로의 단말기에 질의를 합니다.
4. 질의를 받은 두 사용자 모두 커넥션을 허가할 경우 통신을 시작합니다.
5. 주고 받는 데이터는 모두 Bump 서버를 통합니다.



Licence
Bump는 무료다. 
Bump아이콘과 Bump Trademark를 사용하는 몇몇 제약들이 있지만, 이러한 간단한 요소들만 침해하지 않으면 무료로 사용할 수 있습니다. Bump 홈페이지에는 아래와 같이 무료 사용 라이센스와 관련된 문구가 있습니다.

 
We Can…
아이폰과 안드로이드폰 간에 통신이 가능하다. 
아이폰과 안드로이드 폰에 동일한 API Key를 사용하는 App.을 개발 및 설치를 한다면 서로 매칭 및 통신이 가능합니다. 개발 시, 전송하는 Data의 Format만 고민하면 됩니다.

Binary Data도 전송이 가능하다. 
이미지 및 사용자가 정의한 Binary형식도 전송이 가능합니다. 모든 데이터는 Byte Array형식으로 전송합니다.

We Cannot…

256KB보다 큰 사이즈는 송수신할 수 없다. 
256KB를 넘는 이미지를 전송하면, 에러가 발생합니다. 안드로이드에서는 아래와 같은 에러메시지가 출력됩니다.



실제로 Bump 공식 App에서 2MB를 넘는 이미지를 전송하면, 수신측으로 전송되는 이미지는 100KB 안 팎으로 압축(JPEG)되어 있음을 확인했습니다.
 
Bump API는 SDK 형태로 제공되고, 웹 URL형식으로는 제공되지 않기 때문에 SDK가 제공되는 플랫폼에서만 개발이 가능합니다. 즉, iOS, Android OS에서만 개발이 가능합니다.

실제 샘플 코드는 다음에 정리해서 올리겠습니다. ^^

참고자료
Bump 공식 사이트 : http://bu.mp

Posted by 데브로망스
Tips2011. 1. 11. 11:54

원인은 모르겠지만, 몇 일전부터 구글 크롬으로 Youtube 등의 플래시 동영상을 볼때,

동영상이 플레이 되지 않고 "Missing Plug-in"이라는 메시지가 떳습니다.

이런 저런 관련글을 찾아봤지만, 대부분 해결을 못하고 있습니다.

그러던 중, Vimeo 사이트의 Help란에 포스팅된 내용이 있었는데, 간단했습니다.

"플래시 플러그인을 삭제하고 다시 설치해라." ^^;;;

저의 경우에는 이 방법이 효과가 있었습니다.

1. 아래 링크에서 파일을 다운 받아 플래시를 삭제하고, 
   (Click and Run this Uninstaller)

2. 다시 아래 파일로 재설치를 하면 됩니다. 
   (And Click and Run this Installer)

3. 이제 크롬에서 동영상을 정상적으로 볼 수 있습니다. 
   (Now You can see all the flash movies on Youtube, Vimeo etc.)

간단한 내용인데, 네이버에서 검색해도 잘 안나와서 정리해 둡니다.

도움이 되셨길 바랍니다. ^^
Posted by 데브로망스
Android2011. 1. 4. 18:22
구글 개발자 페이지에는 Reference 페이지가 있습니다.

마이크로소프트의 MSDN 페이지처럼 사용할 수 있는 패키지, 클래스 등등의 스펙을 확인 할 수 있습니다.

아직 예제코드가 빈약해서 투덜투덜하게 되지만, 아래에 소개할 간단한 Tip은 상당히 유용합니다.

Android API Level은 벌써 9까지 존재합니다.

버전이 높아지면서 패키지, 클래스, 멤버함수 등이 추가되거나 변경되는데,

항상 버전관리를 염두에 둬야 하는 상황이라면 이를 하나하나 체크하는 것도 쉽지 않을 것 같습니다.

그래서, 구글 개발자 페이지에서는 이를 Filtering 할 수 기능을 제공하고 있습니다.

사용방법은 간단합니다.

페이지 우측 상단에는 "[√] Filter by API Level"이라는 체크박스가 있습니다.

체크[√] 를 하면, 활성화 되는데, 여기서 개발중인 App의 API Level을 선택하면 됩니다.

(그 밑에는 "Since:API Level 1"이라고 적혀있는데, 이는 VideoView 위젯이 API Level 1 시절에 추가되었다는 의미입니다. Reference 페이지를 보다 보면, 클래스마다, 함수마다 각각의 API Level을 적어 두었습니다.)



아래 그림과 같이 Filter Level을 4로 설정하면, 사용할 수 없는 함수명이 비활성화됩니다.
확인해보니, VideoView의 resume() API Level 8 에서 추가된 기능이네요.



다음은 Filter Level을 7로 설정했을 때, 사용할 수 없는 패키지명이 비활성화되는 예제입니다.
역시, 확인해 보니, ..admin과 ..backup 패키지는 API Level 8에서 추가된 녀석들이네요.



Filter Level을 8로 설정했을 때, 비활성화된 클래스입니다.
OverScroller는 API Level 9에서 추가된 녀석이라고 하네요.


도움이 되셨길 바랍니다. ^^


Posted by 데브로망스