본문 바로가기

분류 전체보기

국내 안드로이드의 불편한 진실 출처 : http://m.clien.net/cs3/board?bo_style=view&bo_table=park&page=1&wr_id=20562139 안드로이드 앱을 3개 배포하면서 현재 실사용자 17만명 국내용이고 사용자는 10대부터 60대까지 성별 구분없이 사용자 층이 넓습니다. 2년 정도 꾸준히 유지 관리 해왔고 사용자도 꾸준히 늘어나고 있습니다. 그래프상 완만하게 상승합니다. 이정도의 사용자라면 국내 안드로이드 유저의 표본집단이 될수 있으며 여기에서 나오는 통계치는 국내 안드로이드 사용자 집단 즉 모집단의 실제 수치와 유사할것입니다.(통계학적으로 ㅎ) 2년여 동안 이끌어오면서 이곳에서 안드로이드의 장점이라고 하던 사항들이 과연 정말인가? 하는 의구심이 드는 사항 불편한 진실이 있습니다. 몇가지의 .. 더보기
안드로이드 디자인 가이드 안드로이드 디자인 가이드 안드로이드 디자인 방법에 대해 설명해 달라던 디자이너에게 보냈던 메일입니다. 안드로이드 개발자라면 다들 아는 사항이지만 의외로 모르는 디자이너들이 많더군요 ..-_- 모바일앱 디자인 하는 디자이너라면 좀 공부해도 괜찮을텐데..라고 푸념해 봅니다..;;여튼 참고하셔서 디자이너와 커뮤니케이션 할 때 이용하시면 좋겠네요;; 안드로이드 디자인 가이드 1. 디자인은 480*800 해상도를 기준으로 해주세요. : 현재 일반적으로 사용되는 안드로이드 폰의 화면 사이즈는 두가지 입니다. 480 * 800 과 720 * 1280 원칙대로라면 동일한 하나의 디자인을 각 화면 사이즈에 맞게 두벌 제작해 적용을 하는 것이 가장 아름답겠지만 용량이 커지고 로딩속도가 느려지고 메모리에 부하를 줄 수 있기.. 더보기
이클립스 svn 계정변경 Window --> Open Perspective --> SVN Repository Exploring 선택 SVN Repositories 화면에서 해당 SVN Project선택 --> 마우스 오른쪽 클릭 --> Location Properties 선택 하면 팝업이 나옴.. 현재 svn 계정의 ID와 PW가 보이는데.. 그걸 수정하면 됨.. 더보기
ListView에 WebView를 넣었을때 ClickListener 처리 인터넷 검색 하면 많이 나온다 기본적으론... oneHolder.imagePhotoMeet = (WebView) convertView.findViewById(R.id.imagePhotoMeet); oneHolder.imagePhotoMeet.setFocusable(false); oneHolder.imagePhotoMeet.setClickable(false); oneHolder.imagePhotoMeet.setLongClickable(false); oneHolder.imagePhotoMeet.setFocusableInTouchMode(false); oneHolder.imagePhotoMeet.setHorizontalScrollBarEnabled(false); oneHolder.imagePhotoMeet.s.. 더보기
apk 파일 다운로드 후 바로 설치 화면 띄우기 지금 까지는 apk를 파일 첨부 하거나 링크를 걸어두면 사용자가 다운로드후 파일관리자(ex Astro)를 이용해 따로 설치를 해야만 했다. 이게 귀찮아서리 바로 다운 받으면 설치 하게 할 수 없을까? 있다. apk down click 이렇게 하면 되더라... 물론 서버측 에서 설정을 해야 하는 것이지만.. 다운로드 후 자동 설치 되면 좋겠지만 그렇게 까지는 안되고~! 상태바에서 다운로드 완료 되었다는 알림을 선택하면 설치 화면으로 이동을 한다 그리고 나서 바로 설치~~~! 끝~! 전제조건 : 설정 에서 "알 수 없는 소스 설치" 가 체크 되어 있어야함~! 더보기
Video Streaming 이해 RTMP, RTSP에 관하여 조사하다가 괜찮은 자료가 있어서 퍼왔다. 출처 : http://www.sagomi.com/index.php/2011/08/13/understand-videostreamin/ 우리는 하루에도 수없이 많은 비디오를 YouTube, 개인 블로그, 일반 웹사이트, 인터넷 언론사, iPhone 등의 웹에서 보고 있습니다. 웹에서 보는 비디오 는 거의 비슷하게 보이지만 사실 그 안을 들여다 보면 서로 다른 기술이 사용됩니다. 웹상의 비디오 사용은 하루가 다르게 더 편하고, 더 빠르고, 더 효율적인 방향으로 점점 발전하고 있습니다. 그 이유는 비즈니스 목적의 비디오 사용과 소셜미디어의 폭발적인 증가에 기인합니다. 전세계적으로 YouTube, Justin.tv를 포함하여 비디오 서비스를 다.. 더보기
바이너리 XML 을 읽을 수 있는 XML 로 변환하는 방법 안드로이드 언팩을 하다가 알게 되었다. java -jar AXMLPrinter2.jar AndroidManifest.xml >> 1.txt 그런데 디컴파일을 해도 그닥 쓸모 없더라는... 수정이 더 시간이 걸릴듯.. ㅠ.ㅠ 더보기
안드로이드 버전별 특징ppt 안드로이드 버전 발표일 점유율(2012년 9월 4일) 4.1.x (Jelly Bean) 2012년 06월 28일 1.20% 4.0.x (IceCream Sandwich) 2011년 10월 19일 20.90% 3.x.x (Honeycomb) 2011년 02월 22일 2.10% 2.3.x (Gingerbread) 2010년 12월 06일 57.50% 2.2 (Froyo) 2010년 05월 20일 14% 2.0, 2.1(Eclair) 2009년 10월 26일 3.70% 1.6 (Donut) 2009년 09월 15일 0.40% 1.5 (Cupcake) 2009년 04월 30일 0.20% 구분 옵티머스뷰 갤럭시노트 갤럭시S III 갤럭시 노트2 옵티머스G OS 2.3 진저브레드 2.3 진저브레드 4.0 아이스크림.. 더보기
안드로이드 버전별 특징 안드로이드 버전 발표일 API Level 점유율 (2012년 9월 4일) 특징 4.1.x Jelly Bean 2012년 06월 28일 16 1.20% .보이스 서치, 음성 검색 기능, 자연어 검색 (시리와 유사) .구글 클라우드 메시징, 개발자와 사용자간 커뮤니케이션 (아이클리우드와 비슷) .구글 나우(Google NOW) 사용자 위치 스마트 기능 : 이동 동선에 따라 교통정보, 쇼핑정보등을 안내 4.0.x Ice-Cream Sandwich 2011년 10월 19일 14 ~ 15 20.90% .얼굴 인식 잠금 .Android Beam(NFC 를 이용한 공유기능) .잠금상태에서 알림 확인 .음성입력엔진 강화 3.x.x Honeycomb (테블릿 전용) 2011년 02월 22일 11 ~ 13 2.10% . .. 더보기
갤노트1,2 갤스3, 옵티머스G 스펙비교 구분 갤럭시노트 갤럭시SIII 갤럭시 노트2 옵티머스G OS 2.3 진저브레드 4.0 아이스크림 4.1버전 젤리빈 4.0 아이스크림 디스플레이크기 5.3 4.8 5.5 4.7 HD슈퍼아모레드 HD슈퍼아모레드 HD슈퍼아모레드 True HD IPS+ 해상도 1280*800 1280*720 1280*720 1280*768 AP 1.5GHz듀얼코어 1.4GHz 쿼드코어 엑시노스 퀠컴스냅드래곤 스냅드래곤S3 쿼드코어 쿼드코어 배터리 2500mAh 2100mAh 3100mAh 램 1GB 2GB 2GB 2GB 크기(MM) 146.85*82.95*9.65 136.6*70.6*8.6 151.1*80.5*9.4 131.9*68.9*8.45 무게(g) 182 133 180 145 전면카메라 190만 190만 후면카메라(픽셀.. 더보기
탭 버튼에 badge 달기 // 탭 설정 tabHost = (TabHost) findViewById(R.id.tab_host); tabHost.setup(getLocalActivityManager()); TabHost.TabSpec spec; CustomTabBadge mTabWidget1 = new CustomTabBadge(this); mTabWidget1.setImage(getResources().getDrawable(R.drawable.tab_photo_indicator)); mTabWidget1.setCount(0); Intent intent1 = new Intent(this, PhotoMeetGroup.class); spec = tabHost.newTabSpec("메뉴").setIndicator(mTabWidget1)... 더보기
SMS Receiver 출처 : http://blog.naver.com/PostView.nhn?blogId=gigar&logNo=60125551492 안드로이드 폰에서 SMS 메세지를 수신했을때 어플에서 수신된 SMS메세지를 처리 하고 싶다면 BroadcastReceiver를 사용하면 된다. 우선 안드로이드 프로젝트를 하나 생성하자. 그리고 SMS관련 receiver를 사용하기 위해 AndroidManifest.xml 파일에 권한과 receiver 정보를 추가 한다. 더보기
보안서버 웹페이지를 웹뷰에서 보기 private class MyWebViewClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); finish(); } @Override public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { // TODO Auto-generated m.. 더보기
뒤로가기 두번으로 앱 종료 하기 우선 Activity를 하나 만든다 이 엑티비티는 메니페스트에 등록할 필요 없다.. 그냥 하나의 클래스라 생각하자 public class MyBaseActivity extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //백버튼 종료 mHandler = new Handler() { @Override public void handleMessage(Message msg) { if(msg.what == 0) { // mFlag = false; ChatRaderMain.MFLAG = false; } } }; } private Handler mHandler; public void .. 더보기
MapActivity를 호출 할때 꼭 빼먹는것... public class MyMap extends MapActivity { } ## 메니페스트에 이것을 빼먹었을때 발생하는 에러는.. Caused by: java.lang.NoClassDefFoundError: 난 을 추가했는데.. 왜 에러가 나는지 한참을 해맸다 문제는 저 빨간색 부분.. 을 추가 해야 하는것이였다 Activity 자체가 mapActivity이기에... 더보기
c2dm 잘 정리된 post 출처 : http://susemi99.tistory.com/683 이 중에 내가 몰랐던 부분은... 등록 / 해지 부분... 등록만 할 줄 알았지.. 해지는 생각 안해봤다.. 프로그램상으로 막으려고 삽질했던 기억이 ㅠ.ㅠ 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 32 33 34 35 package mint.TestC2dm; import android.app.Activity; import android.app.PendingIntent; import android.content.Intent; import android.os.Bundle; import android.view.View; public cl.. 더보기
웹뷰에서 화면이 약간씩 움직임이 가능 할때 nWebView.setHorizontalScrollBarEnabled(false); nWebView.setVerticalScrollBarEnabled(false); nWebView.getSettings().setJavaScriptEnabled(true); 기본적으로 위의 세게는 정해주는게 좋을듯 하다... 스크롤바가 안보인다는것 뿐이지 기능을 안하는것 아니기 때문에... 스크롤은 되더라~! 더보기
소프트 키보드 확인창 입력후 키보드 사라짐 문제... 채팅을 하려고 만들었다... editText 박스에 문자를 넣고 내가 만든 "보내기" 버튼을 터치 하면... 키보드는 유지되고 이벤트는 실행된다. 텍스트 박스를 다시 선택 안해도 키보드가 유지 되는 것이였다. 문제는... 소프트 키보드에 있는 확인or전송 버튼의 이벤트를 받아서 실행하면....실행은 되는데... 매번 키보드가 사라지는 문제가 있었다. 이를 해결 하려고 별의 별짓을 다해봤다. 텍스트박스에 포커스를 유지시켜보기. 소프트 키보드 다시 띄우기 등등 해결은...editChatMsg.setOnEditorActionListener(new OnEditorActionListener() { public boolean onEditorAction(TextView v, int actionId, KeyEvent .. 더보기
EditText 가로모드 입력시 UI 보이기 세로모드에서는 텍스트 입력하는데... UI를 유지하면서 할 수 있다.. 문제는 가로모드다.... 가로모드에서 입력하려면.. 전화면이 입력창으로 바뀐다... 어찌 세로모드처럼 UI를 유지 하면서 입력 할 수 없을까?? 간단했다.... 이러면 되더라... 더보기
조건문의 '&&' 2개와 '&' 한개의 차이? '&&' 2개일때 선행되는 조건문이 false이면... 뒤의 조건문은 확인하지 않고 그 조건은 false 이다 '&' 1개일때는 무조건 뒤의 조건문까지 확인 한다. class Test { public static void main(String[] args) { if( aa() && bb()){ System.out.println("333"); } else { System.out.println("444"); } System.out.println("########################"); if( aa() & bb()){ System.out.println("333"); } else { System.out.println("444"); } } private static boolean aa(){ System.. 더보기
Customize Gallery ListView는 많이 커스텀해서 사용했다. 이번엔 가로 ListView가 필요해서 찾아보니.. 지원하지 않고 결국 Gallery를 이용해다 한단다... 제일큰 난관은 갤러리가 사진만 받게 되어 있다는것이다... 이걸... ListView처럼 내가 만든 레이아웃으로 넣는것이 문제였다... 모든 문제가 그렇듯 방법을 알면 간단 한것이였다 ㅠ.ㅠ //1개의 이미지를 대신할 1개의 레이아웃 one_home_gal.xml //갤러리를 표시할 레이아웃 (메인임) //실행 엑티비티 public class GalMain extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle save.. 더보기
안드로이드 화면 전환시 이벤트 받기 출처 : http://sugniandroid.springnote.com/pages/6029095 아래 코드와 같이 Activity 코드 내에 onConfigurationChanged() 함수를 오버라이딩하여 사용하면 폰의 가로 or 세로 전환시의 이벤트를 받아, 이에 대응하는 처리를 삽입할 수 있습니다. public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); Log.i(LOGTAG, "=== onConfigurationChanged is called !!! ==="); if (newConfig.orientation == Configuration.ORIENTATION_PORTRA.. 더보기
C2DM 종료~! GCM 시작~! 역시 대단한 사람들이 많다~! 내가 처음으로 GCM 프로젝트를 만들어서 포스팅 하려 했는데... 워낙 잘되어 있는 곳이 있어 그대로 가져왔다~! 저 블로거의 쥔장이 부럽다~! 어찌 저리 빨리도 하는지.... 혹시나 이 포스팅이 문제가 된다면 자삭하겠습니다~! 출처 : http://blog.naver.com/0677haha/60165740039 C2DM 에서 대체된 GCM 샘플 프로젝트를 만들어 봅시다!! 영어를 잘 못하지만 더 못하시는 분들을 위해 한번 한글로 번역해서 작성해 봅니다. http://developer.android.com/guide/google/gcm/gs.html#libs 위의 사이트에서 나온 내용을 토대로 해보면서 작성한 내용이니 더 필요한 정보가 있을 경우 위의 사이트를 방문하세요~ㅋ.. 더보기
E/AndroidRuntime(8068): FATAL EXCEPTION: Thread-12 E/AndroidRuntime(8068): FATAL EXCEPTION: Thread-12 위와 같은 에러가 발생했다 상세 메세지는 아래와 같다. Only the original thread that created a view hierarchy can touch its views. 구글링 해보니 http://binsolb.tistory.com/entry/CalledFromWrongThreadException 이 사이트를 찾았따~! 이를 응용해서 내가 만든건.... 아래와 같다~! 로딩중이라는걸 뱅글 뱅글 돌면서 보여주고 진행과정을 숫자로 보여주는것이다. public void init() { BackRunnable runnable = new BackRunnable(); Thread thread = new .. 더보기
C2DM 관리자key 받기 C2DM을 발송하기 위해선 관리자KEY를 받아야 한다. 이를 위한 소스다 확인된건 아니지만.... 한번 받은 관리자 key는 1년만 유효한거 같다(추측임) 갑자기 "Exception in thread "main" java.io.IOException: Server returned HTTP response code: 401 for URL: https://android.apis.google.com/c2dm/send" 이런 에러가 발생했다... 잘쓰던 넘인데... 하다 하다 안되서리... 관리자KEY를 다시 받고 실행하니.. 잘된다... 대충 따져보니.. 작년이맘때쯤 C2DM을 테스트 한다고 등록했던거 같다... import java.io.BufferedReader; import java.io.InputStre.. 더보기
3G / Wifi 상황에서 IP 가져오기 출처 : http://blog.naver.com/ziippy/120138070384 public String getLocalIpAddress() { final String IP_NONE = "N/A"; final String WIFI_DEVICE_PREFIX = "eth"; String LocalIP = IP_NONE; try { for (Enumeration en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) { NetworkInterface intf = en.nextElement(); for (Enumeration enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements(.. 더보기
Broadcast, SIP, voip관련 조사한 것들 http://www.androidpub.com/60418 sipdroid Free SIP/VoIP client for Android http://blog.acronym.co.kr/125 VoIP를 위한 SIP 프로토콜 http://www.androidpub.com/386322 인터넷 전화 SipDroid 설치 및 사용방법 http://code.google.com/p/open-broadcast-encoder/downloads/list open-broadcast-encoder http://code.google.com/p/spydroid-ipcamera/ spydroid-ipcamera http://code.google.com/p/android-rtmp-broadcaster/ android-rtmp-broad.. 더보기
RTSP 설정할때 조사한 것들 [Encoding 조건] Video Format : H.264 Audio Format : AAC [mp3안됨] http://blog.daum.net/joshuajh/5670935 안드로이드 간의 RSTP/RTP 통신시 소스 미디어에 MP3가 포함되어 있으면 스트리밍이 되지 않는다. 몇몇 안드로이드를 사용하는 장비들에서는 다음의 해상도가 아니면 재생이 안되거나 화면 스큐를 제대로 맞추지 못한다. 800 x 480, 480 x 320, 240 x 160 http://cafe.naver.com/wowzamedia/149 참고로 sk 3g는 bitrate 300k 제한이네요 ...370까지도 되긴하네요 http://cafe.naver.com/wowzamedia/3482 일반적으로 Wowza Media Serve.. 더보기
안드로이드 폰의 화면을 PC로출력 개발한 앱을 회의시 시연할때 유용할듯 하다 그런데 동영상은 안보인다 ㅠ.ㅠ 출처 : http://eternallife.tistory.com/27 파일다운로드 : http://lib.ribomation.com/files/droidAtScreen-0.3.jar 커맨드 창에서 droidAtScreen.jar실행(예: #java -jar c:\droidAtScreen.jar) 창이뜨면 \tools\adb.exe를 찾아 선택해준다. 더보기
안드로이드 위치 주소정보 가져오는 방법 출처 : http://blog.naver.com/PostView.nhn?blogId=free2824&logNo=60154994221 위의 소스에서 약간의 변형과 몇줄만 삭제 했음 public String getGpsToAddress(){ LocationManager locationManager; String context = Context.LOCATION_SERVICE; locationManager = (LocationManager)getSystemService(context); String addressString; Criteria criteria = new Criteria(); criteria.setAccuracy(Criteria.ACCURACY_COARSE);// 정확도 criteria.setPow.. 더보기