다운로드 위치 :
http://www.sencha.com/products/touch/download

개발도구:
자신에게 가장 익숙한 편집기를 사용하라고 함. 흠,,, edit모시기 나 ultra머쉬기 사용하기 바람 ㅋ

테스트 환경:
사파리나 크롬브라우저를 사용하되, 좀더 정밀한 정확한 테스트를 위해서는 모바일 기기를 사용하기 바람.

핵심 라이브러리:
1. sencha-touch.js - sencha touch 코어가 구현된 자바스크립트 파일이다.
2. sencha-touch.css : app 외형을 정의하는 css 파일이다.
3. doc폴더 : api문서를 그대로 옴겨놓은 것이다.
 - http://dev.sencha.com/deploy/touch/docs/
4. example 폴더 : 실제 동작하는 예제 어플을 모아 놓은 폴더 이다.
 - http://dev.sencha.com/deploy/touch/examples/
 
오늘 공부한 내용을 정리해 본다.
간만에 광화문 서점을 가서 책을 사고 공부한 내용을 정리한 것이다.
앞으로 좀더 공부해야 겠다.  
오늘은 아이폰 개발을 하기 위해 서점에 가서 책을 한권사서 공부한 첫날이다.

원래 기존에도 공부를 하기 위해 두권의 책을 샀지만 마음에 들지를 않아서

오늘은 코코아 프레임워크만 집중적으로 다룬 책을 사서 공부할려고 실습을 해본 결과 매우 마음에 든다.

우선적으로 오늘 만들어본 것은 입력과 출력 파트를 배워 보기 위해

딸랑 버튼, 레이블 놓아두고 따라서 만들기 시작했다. 우여곡절 끝에 버튼을 클릭하면 레이블에 값이 표기하는 방법을

하나 배운것 같아서 매우 뿌듯했다. ㅎㅎ

점점 요즘은 맥에 익숙해져 가는것 같아서 내 자신이 뿌듯하다.

맥을 산지도 이제 일주일이 지나간다. 원래는 자주 써야 하는데 회사일과 프로젝트가 겹쳐서 자주 못하는게 매우

아쉽당 ㅋ

 오늘 테스트로 만들어본 위젯들 배치다. ㅋㅋ


개판이다. 그래도 처음에는 모두 시행착오를 격는거니 앞으로 잘될꺼라 믿는다. ㅋㅋ


- AntiStroy 님의 블러그에서 퍼왔음을 알립니다.

프로젝트를 진행하면서 JNI에 대해 알게 되었었다. Java에서 C함수를 호출하거나 C에서 Java의 메소드를 호출할 때 사용하는 것인데, 안드로이드 공부를 하다가 조금 더 파고들게 되었다. 

* 안드로이드는 자바로 프로그래밍을 하는데 왜 JNI에 대해 알아야 할까?
우선 안드로이드 플랫폼은 순수하게 Java로만 구성되어진 것이 아닌 Java 레이어와 C/C++레이어가 서로 상호 작용하면서 동작한다. 이 두 레이어가 유기적으로 동작하게 만들려면 JNI에 대해 알아야 한다. 
그리고 일반적으로 Java는 C/C++에 비해 느리다. 성능이 중요할 경우 C/C++로 작성하고 이를 JNI를 통해 Java에서 호출할 수 있다.

* NDK(Native Development Kit)
안드로이드 애플리케이션에서 사용할 네이티브 라이브러리를 작성하기 위한 도구 모음.
실제로 모듈을 구현하기 위해서는 JNI에 대한 지식 필요

* JNI의 개발 순서
1. Java 코드 작성
2. Java 코드 컴파일
3. C 헤더 파일 생성
4. C 코드 작성
5. C 공유 라이브러리 생성
6. Java 프로그램 실행

1. Java 코드 작성


public class AtinJNI {
// 네이티브 메소드 선언 
native void printAtin();
native void printString(String str);
  // 라이브러리 로딩
static {System.loadLibrary("atinjni");}
public static void main(String args[]){
AtinJNI myJNI = new AtinJNI();
  // 네이티브 메소드 호출
myJNI.printAtin();
myJNI.printString("Hello Atin");
}
}

[Source 1] AtinJNI.java

[표 1] 플랫폼별 System.loadLibrary() 메소드가 로딩하는 C라이브러리 형식
 호스트 플랫폼  실제 로드되는 C 라이브러리 
 Window   libname.dll 
 Linux   libname.so 


2. Java 코드 컴파일
javac를 통해서 .java파일을 .class로 컴파일한다.
 javac AtinJNI.java

위와 같은 명령을 실행할 경우 아무 에러가 나지 않는다면 .class로 컴파일 된 것이다.

3. C 헤더 파일 생성
이제 Java 소스를 만들었으니 C 소스를 짜야 한다. 그런데 중요한 점은 어떻게 Java에서 호출되는 C 소스를 짤 것인가이다. 이것을 위해 javah라는 툴이 있다. 이 툴을 사용하면 .class파일을 파싱해서 만들어야 할 C 함수의 헤더를 만들어준다. 

javah <native로 선언된 메소드를 포함한 자바 클래스명>
- <JDK_HOME>\bin에 포함.
- Java 네이티브 메소드와 연결될 수 있는 C함수의 원형 생성

 javah AtinJNI
위와 같은 명령어를 실행하면 AtinJNI.h라는 헤더 파일이 생성됀다.

내용은 아래와 같다.

/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class AtinJNI */

#ifndef _Included_AtinJNI
#define _Included_AtinJNI
#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:     AtinJNI
 * Method:    printHello
 * Signature: ()V
 */
JNIEXPORT void JNICALL Java_AtinJNI_printHello
  (JNIEnv *, jobject);

/*
 * Class:     AtinJNI
 * Method:    printString
 * Signature: (Ljava/lang/String;)V
 */
JNIEXPORT void JNICALL Java_AtinJNI_printString
  (JNIEnv *, jobject, jstring);

#ifdef __cplusplus
}
#endif
#endif

[Source 2] AtinJNI.h

4. C 코드 작성
위에서 생성한 AtinJNI.h의 헤더를 기준으로 C 소스를 작성하면 됀다. 


#include "HelloJNI.h"
#include <stdio.h>

JNIEXPORT void JNICALL Java_AtinJNI_printAtin
  (JNIEnv *env, jobject obj)
{
printf("Hello Atin \n");
return;
}

JNIEXPORT void JNICALL Java_AtinJNI_printString
  (JNIEnv *env, jobject obj, jstring string)
{
const char *str = (*env)->GetStringUTFChars(env, string, 0);
printf("%s! \n", str);
return;
}

[Source 3] atinjni.c

5. C 공유 라이브러리 생성
중요한건 Window는 dll, Linux는 so파일을 만들어야 한다. 책에서는 C 소스를 작성 후 cl명령을 통해 dll을 만들었다.

cl 명령은 Visual Studio 2008 명령 프롬프트에서 실행해야 하며 VC 2008 Express Editions(http://www.microsoft.com/express/download/)가 설치되어 있어야 한다.

cl -I"<JDK_HOME>\include" -I"<JDK_HOME>\include\win32" -LD atinjni.c -Featinjni.dll
cl : vc++ 컴파일 명령어
-I<dir> : 헤더 파일을 검색할 디렉토리 경로 <dir> 추가
-LD : DLL 생성
-FE<파일명> : 컴파일 결과 파일 이름 지정

나는 VC에서 직접하고 싶어서 [1]과 같이 dll을 만들었다.
그런데 다음과 같은 문제에 직면했다.


Can't load IA 32-bit .dll on a AMD 64-bit platform
그래. 나는 64비트용 윈도우 7 운영체제였다. 32비트 dll이 문제가 되는 것이었다. 구글링해보니 32비트용으로 Java를 다시 까니 실행 명령어에 옵션을 주는 몇 방법들이 있었는데 마음에 들지 않았다. dll을 64비트용으로 하면 될 것 같았다. 그래서 [2]와 같은 방법으로 dll을 64비트용으로 만들어주었고 문제를 해결했다.

6. Java 프로그램 실행
이클립스라면 그냥 실행하면 되고 콘솔에서라면 "java AtinJNI"로 실행하면 결과를 볼 수 있다.

Reference
[1] VC에서 DLL 만드는 방법 (http://sol9501.blog.me/70102942944)
[2] 64비트용 컴파일 (http://blog.naver.com/PostView.nhn?blogId=honnak&logNo=70085595801&viewDate=&currentPage=1&listtype=0
[3] 인사이드 안드로이드(Inside the Android Framework, 위키북스)


1. 이미지와 텍스트가 같이 들어간 버튼 만들기
 http://www.androidpub.com/15765
 
2. 버튼 색깔 바꾸기
 http://stackoverflow.com/questions/1521640/standard-android-button-with-a-different-color
 
3. 전체화면 사용하기 (Status bar, Title bar 숨기기)
 http://www.androidpub.com/4710
 
4. ImageButton의 투명 효과 사용하기
 http://joywoni.egloos.com/2847047
 
5. Android 정리문서
 http://sgap.springnote.com/pages/5076381
 
6. 네이티브 안드로이드 개발 관련 블로그
 http://hybridego.net/
 
7. 안드로이드 개발 각종 예제 소스
 http://www.androidpeople.com/2010/01/
 
8. 메뉴별 이미지 처리
 http://stackoverflow.com/questions/2065430/fixed-android-detecting-focus-pressed-color
 
9. 객체 Style 처리
 http://www.anddev.org/viewtopic.php?p=37330
 
10. Button Highlight
 http://www.androidpeople.com/category/android-tutorial/
 
11. SurfaceView
 http://vissel.tistory.com/92
 
12. android:configChanges
 http://www.androidpub.com/52338
 
13. 전원관리
 http://samse.tistory.com/entry/AlarmManager-PowerManager
 
14. 하드웨어 콘트롤 관련 PDF 문서
 http://mikechen.com/classes/2009-11-27%20NTU%20Mobile%20Phone%20Programming%20-%20Mike%20Chen%20-%2010%20-%20Security,%20Camera,%20Audio%20and%20Video.pdf
 
15. unique device ID 고유값 가져오기
 http://developer.android.com/reference/android/telephony/TelephonyManager.html#getDeviceId%28%29
 
16. 안드로이드 네이티브 라이브러리
 http://www.imaso.co.kr/?doc=bbs/gnuboard.php&bo_table=article&wr_id=34284
 [다른블로그] http://infodev.tistory.com/322
 
17. Introduction android
 http://yotteum.tistory.com/entry/Introduction-Android
 
18. 안드로이드 - 버튼 OnClickListener 인터페이스 구현
 http://woosa7.tistory.com/entry/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EB%B2%84%ED%8A%BC-OnClickListener-%EC%9D%B8%ED%84%B0%ED%8E%98%EC%9D%B4%EC%8A%A4-%EA%B5%AC%ED%98%84
 http://www.cyworld.com/kkjw1801/3222534
 
19. Android - Change Tab Background
 http://escomic.net/218
 
20. KH5200 드라이버 설치
 http://kil.imradriss.co.cc:8000/tc/30
 
21. DrawableTop 이미지 변경하기
 http://www.androidpub.com/10154
 
22. Layout 사이즈 동적변경
 http://www.androidpub.com/40481
 http://gall.dcinside.com/list.php?id=accident2&no=1195485
 
23. Android UI 개발기: XML 안쓰고 UI 코딩하기
 http://xrath.com/2009/11/android-ui-%EA%B0%9C%EB%B0%9C%EA%B8%B0-xml-%EC%95%88%EC%93%B0%EA%B3%A0-ui-%EC%BD%94%EB%94%A9%ED%95%98%EA%B8%B0/
 
24. 전화상태 변화감지 리스너
 PhoneStateListener 예제
 http://www.kandroid.org/board/board.php?board=AndroidTechQnA&page=124&command=body&no=432
 
25. 안드로이드 하드웨어관련 자료(통화,폰상태,네트워크,카메라,센서)
 http://gtko.springnote.com/pages/5396297
 http://developer.android.com/reference/android/content/Intent.html
 http://developer.android.com/reference/android/net/ConnectivityManager.html
 
26. sms 수신해서 요약내용 보여주기
 http://www.anddev.org/recognize-react_on_incoming_sms-t295.html
 http://flytop.tistory.com/62
 
27. BroadcastReceiver XML설정하기
 http://www.androidpub.com/186727
 
28. 각종 Management 클래스
 http://www.imaso.co.kr/?doc=bbs/gnuboard.php&bo_table=article&page=10&wr_id=34565
 
29. Dialog 구조 분석
 (아이콘,텍스트 위치등)
 http://sgap.springnote.com/pages/5235569
 
30. SMS 수신시 Toast 메시지 출력
 http://www.androidpub.com/138352
 
31. Broadcast Receiver :네트워크상태 체크
 http://www.anddev.org/viewtopic.php?p=32088
 
32. 안드로이드 API기능 설명
 http://www.jopenbusiness.com/mediawiki/index.php/Android
 
33. Actions for BroadcastReceiver
 http://www.dearsoft.org/tag/broadcastreceiver/
 
34. Layout.out.xml 생성되는 문제
 http://www.androidpub.com/101585
 
35. Multi Touch
 http://www.mentby.com/naya/multitouch-support-in-android-20.html
 http://gist.github.com/324166
 
36. ScrollView 스크롤 하단으로 내리기
 http://www.anddev.org/viewtopic.php?p=36823
 
37. Timer 만들기
 http://developer.android.com/intl/de/resources/articles/timed-ui-updates.html
 http://www.developer.com/java/ent/print.php/3589961
 http://www.androidpub.com/4374
 http://blog.inculab.net/25
 
38. Logcat 동작안하는 에러 발생시 처리
 (Could not create the view: For input string: "")
 http://www.mail-archive.com/android-developers@googlegroups.com/msg60683.html
 
39. SSL 인증서 등록하기
 http://www.java2go.net/blog/197?TSSESSION=1202a1a23fa67bae15ce3ab15a5a0cea
 http://www.virgo81.net/70
 http://crazybob.org/2010/02/android-trusting-ssl-certificates.html
 http://www.bouncycastle.org/latest_releases.html
 
40. Signing By Private Key
 http://www.devx.com/wireless/Article/39972/1954
 
41. 영상 녹화하기
 http://www.anddev.org/viewtopic.php?p=24723#24723
 
42. SurfaceView 의 이해
 http://androidhuman.tistory.com/entry/카메라를-이용하자-SurfaceView에-대한-이해
 http://androidhuman.tistory.com/entry/카메라를-이용하자-카메라-프리뷰-띄우기
 
43. 안드로이드 JAVA 소스
 http://anddev.tistory.com/77
 http://anddev.tistory.com/50
 http://anddev.tistory.com/42
 
44. SSL 인증서 우회하기
 http://www.experts-exchange.com/Programming/Languages/Java/Q_23063074.html
 http://7bee.j2ee.us/blog/2008/03/28/1206704820000.html
 
45. JAVA SSL 관련 공식문서
 http://java.sun.com/javase/6/docs/technotes/guides/security/jsse/JSSERefGuide.html
 http://java.sun.com/javase/6/docs/technotes/guides/security/jsse/JSSERefGuide.html#CreateKeystore
 http://java.sun.com/javase/6/docs/technotes/guides/security/jsse/JSSERefGuide.html#CodeExamples
 http://java.sun.com/javase/6/docs/technotes/guides/security/jsse/samples/sockets/client/SSLSocketClient.java
 
46. SSL 인증서 증명에러 해결하기
 http://blog.naver.com/PostView.nhn?blogId=fidelis98&logNo=140103425406&redirect=Dlog&widgetTypeCall=true
 http://code.google.com/p/android/issues/detail?id=1946
 http://developer.android.com/intl/de/reference/javax/net/ssl/TrustManager.html
 http://mail-archives.apache.org/mod_mbox/hc-httpclient-users/200906.mbox/
 http://www.exampledepot.com/egs/javax.net.ssl/GetCert.html?l=rel
 http://www.android-portal.com/2007/12/20/secure-server-socket-with-tlsssl-on-android-fails/
 http://www.exampledepot.com/egs/javax.net.ssl/TrustAll.html?
 http://blog.keduall.co.kr/lsb76/entry/자바-SSL-접속-오류
 해결방법: http://www.exampledepot.com/egs/javax.net.ssl/TrustAll.html
 
47. 안드로이드 Service 에서 Activity 를 실행하는 방법
 http://blog.naver.com/huewu/110084868855
 
48. 안드로이드 이미지(사진) 불러오기
 http://shinluckyarchive.tistory.com/469
 http://developer.android.com/reference/android/graphics/BitmapFactory.Options.html
 
49. SSL 인증키 무조건 우회하기
 http://groups.google.com/group/android-developers/browse_thread/thread/62d856cdcfa9f16e
 
50. 효과음 관련 자료(Creating Sound Effects in Android)
 http://www.androidpub.com/257540#4
 
51. 안드로이드(Android) 분석 스프링노트
 http://fanpro.springnote.com/pages/4789459
 
52. BaseAdapter 활용
 http://udroid.blogspot.com/2009/04/customized-list-adapter.html
 
53. ListView에서 Selector 배경을 특정색으로 변경할려면?
 http://kippee.dothost.co.kr/kurt/entry/팁-ListView에서-Selector-배경을-특정색으로-변경할려면
 
54. Tab Focuse에 따른 아이콘 변경하기
 http://www.androidpub.com/155974
 
55. SoundPool 사용(MediaPlayer 관련)
 http://www.droidnova.com/creating-sound-effects-in-android-part-1,570.html
 http://www.androidpub.com/257540#1
 http://www.androidpub.com/257336
 
56. MediaPlayer 버퍼 캐쉬 만들어 쓰기
 http://blog.pocketjourney.com/2008/04/04/tutorial-custom-media-streaming-for-androids-mediaplayer/
 
57. Android Tutorial 3: Custom Audio Streaming with MediaPlayer
 http://blog.pocketjourney.com/2008/04/04/tutorial-custom-media-streaming-for-androids-mediaplayer/
 
58. SufaceView , MediaPlayer 만들기
 http://groups.google.com/group/android-developers/msg/52618aafc7d82156
 http://www.kandroid.org/board/board.php?board=AndroidTechQnA&page=2&sort=hit&command=body&no=312
 http://kippee.dothost.co.kr/kurt/entry/팁SufaceView-SufraceHolder-MediaPlayer-MediaPlayerControll를-이용한-동영상화면
 
59. Get the size of the screen.
 http://www.anddev.org/viewtopic.php?p=36355
 
60. Dialog 의 다른 출력방식
 http://code.google.com/p/android/issues/detail?id=6225
 
61. 안드로이드에서 볼륨조절하기.
 1.볼륨 조절 버튼으로 조절 하기.
 2.화면에서 SeekBar를 통해서 조절하기
 http://drcarter.tistory.com/entry/Android-안드로이드에서-볼륨조절하기
 
62. AudioTrack 활용하기
 http://www.google.com/search?rlz=1C1GGLS_koKR311KR313&sourceid=chrome&ie=UTF-8&q=AudioTrack+start+안드로이드
 http://apistudios.com/hosted/marzec/badlogic/wordpress/?p=228
 
63. Memory leak 방지
 올바른 Context 사용
 http://samse.tistory.com/tag/Activity%20context
 http://developer.android.com/intl/de/resources/articles/avoiding-memory-leaks.html
 http://www.androidpub.com/258470
 
64. Bitmap image resizing source
 http://skyswim42.egloos.com/3477279
 
65. MediaPlayer 재생시 특정시간후 소리가 Closing stereo device 현상
 http://www.androidpub.com/387458
 
66. Android 에서 현재 화면 top 에 있는 activity 알아내기.
 http://shadowxx.egloos.com/10489531
 
67. Custom Media Streaming with MediaPlayer
 http://whyandroid.com/android/92-android-tutorial-3-custom-media-streaming-with-mediaplayer.html
 
68. SDK상에서 MediaMetadataRetriever를 이용한 Video thumbnail 얻는 방법?
 http://www.suppul.com/blog/main/202
 
69. android mediaplayer deadlock
 http://www.google.co.kr/search?complete=1&hl=ko&q=android+mediaplayer+deadlock&aq=f&aqi=&aql=&oq=&gs_rfai=
 http://code.google.com/p/android/issues/detail?id=959
 
70. AsyncTask
 http://tigerwoods.tistory.com/28
 
71. MySql, Json, Android 연동
 http://www.android-center.com/TB/?P=11871
 
72. PVMF Return Codes
 http://www.netmite.com/android/mydroid/1.5/external/opencore/doc/pvmf_return_codes.pdf
 http://www.netmite.com/android/mydroid/1.5/external/opencore/doc/
 
73. Java에서 동영상 변환
 http://naingyo.springnote.com/pages/1606686.xhtml
 http://blog.zemzem.kr/121
 
74. android-jni-examples
 http://www.codeweblog.com/change-android-jni-examples/
 
75. How to take pictures in Android
 http://snippets.dzone.com/posts/show/8683
 
76. JMF 2.1.1 - Supported Formats
 http://java.sun.com/javase/technologies/desktop/media/jmf/2.1.1/formats.html
 
77. Android Camera Preview Filter Using Camera.PreviewCallback.onPrevi ewFrame
 http://groups.google.com/group/android-developers/browse_thread/thread/c85e829ab209ceea/3f180a16a4872b58?lnk=gst&q=onpreviewframe#3f180a16a4872b58
 http://stackoverflow.com/questions/1893072/getting-frames-from-video-image-in-android
 
78. How to use WebView & WebViewClient
 http://earendil75.egloos.com/2584204
 http://nuninaya.tistory.com/536
 
79. BitmapFactory.decodeByteArray gives pixelated bitmap
 http://stackoverflow.com/questions/2183808/android-bitmapfactory-decodebytearray-gives-pixelated-bitmap
 
80. Android Bitmap Object Resizing Tip
 http://blog.naver.com/PostView.nhn?blogId=visualc98&logNo=79874750
 
81.
 
82. Byte to File (Image)
 http://stackoverflow.com/questions/649154/android-bitmap-save-to-location
 http://stackoverflow.com/questions/2183808/android-bitmapfactory-decodebytearray-gives-pixelated-bitmap
 http://developer.android.com/intl/de/resources/samples/ApiDemos/src/com/example/android/apis/graphics/CreateBitmap.html
 http://developer.android.com/intl/de/reference/android/provider/MediaStore.Images.Media.html
 http://www.androidpub.com/233509
 
83. BITMAP 사이즈 줄이고 늘리기
 http://vissel.tistory.com/63
 
84. byte[]->bitmap변환시, Factory returned null메시지
 http://www.androidpub.com/370300
 http://code.google.com/p/android/issues/detail?id=823
 
85. Android Supported Media Formats
 http://developer.android.com/intl/de/guide/appendix/media-formats.html
 
86. Mastering_the_Android_Media_Framework
 (MediaPlayer Problems And Solutions 포함)
 http://docs.huihoo.com/google/io/2009/Mastering_the_Android_Media_Framework.pdf
 
87. YUV420 to RGB565 conversion in Android
 http://blog.tomgibara.com/post/132956174/yuv420-to-rgb565-conversion-in-android
 
88. Ffmpeg for android
 http://gitorious.org/~olvaffe/ffmpeg/ffmpeg-android
 http://zimly.tistory.com/entry/FFMPEG-on-Android
 http://slworkthings.wordpress.com/2010/02/23/ffmpeg-and-android-mk/
 http://groups.google.com/group/prajnashi
 
89. H.264 Stream 분석
 http://blog.daum.net/_blog/BlogTypeView.do?blogid=0LwKe&articleno=6633262&categoryId=697812&regdt=20100412175346#ajax_history_home
 http://blog.naver.com/onlyou_4ever/40048828597
 
90. Broadcasting video with Android - without writing to local files
 http://www.mattakis.com/blog/kisg/20090708/broadcasting-video-with-android-without-writing-to-the-file-system
 
91. 자바 튜토리얼
 http://www.javadom.com/tutorial/
 http://www.javadom.com/tutorial/serialize/
 http://www.javadom.com/tutorial/serialize/htonl.html
 http://www.passncool.com/tt/entry/New-IO-Buffers
 
92. 자바와 C 사이의 SOCKET 통신 (BYTE로 통신,보너스로 LITTLE ENDIAN까지)
 http://shonm.tistory.com/category/JAVA/C와%20JAVA%20의%20SOCKET%20통신%20(LITTLE%20ENDIAN)
 
93. 자바 1.4의 새로운 입출력, NIO API 1부 - 버퍼와 채널
 http://javacan.tistory.com/entry/73
 
94. 안드로이드 내장 APKs 개발방법(초안)
 http://www.kandroid.org/board/board.php?board=androidsource&command=body&no=64
 
95. byte[] image data in onPreviewFrame can Cause out of memory
 http://code.google.com/p/android/issues/detail?id=4360
 
96. [안드로이드] Bitmap , Byte 간의 변환
 http://blog.ehxm.net/91
 
97. Android PC Remote Control
 http://androidpcremotecontrol.googlecode.com/files/image01.pdf
 
98. How to restart video preview after the surfaceDestroyed()?
 http://stackoverflow.com/questions/1073293/android-how-to-restart-video-preview-after-the-surfacedestroyed
 
99. Google Android Camera Focusing Issue
 http://everyjoe.com/technology/google-android-camera-focusing-issue/
 
100. 안드로이드 소스를 보고 싶으면??
 http://androidhuman.tistory.com/232
 http://hightin.tistory.com/16
 http://mokiya.tistory.com/51

다음내용은 여기서 'http://blog.teamsm.com/3' 여기서 발취 하였습니다.
 

package kyy.tt.test;

import java.util.Timer;
import java.util.TimerTask;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.widget.Toast;

public class TimerTest extends Activity {
/** Called when the activity is first created. */
private Timer testtimer;
private myTask mtask = null;
private Handler handler;
private Runnable run;

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        handler = new Handler();
        run = new Runnable(){
        @Override
            public void run()   
            {
            Log.i("test","run");
            Toast.makeText(TimerTest.this, "3초후에 뜹니다.!!!", 0).show();
            }    
        };
         
testtimer = new Timer();
mtask = new myTask();
testtimer.schedule(mtask,3000, 3000);  // 0.1 초의 시간뒤 0.1초 마다 mtask의 run 을 호출함

    }
    @Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
testtimer.cancel(); // 타이머를 멈춤
 
}
    
    class myTask extends TimerTask
    {
    @Override
    public void run()    
    {
    handler.post(run);  
    } //Handler 을 이용하여 Runnable 를 실행함 상황에 맞게 사용할것
    }
}

본소스에 제작권은 라플에 있습니다.
안드로이드폰을 처음 사용하시는분들을 위한 정말 유용한 어플같아서 이렇게 소개를 할까 한다.
스마트폰을 처음 접하게 되면 노래는 어떻게 넣을까? 벨소리는 어떻게 하지? USB이거 모야, WIFI아 모르겠다.
하면서 한탄하면서 주의사람들에게 어디서 배우냐 카페는 어디로 가입해야하냐 하면서 하시는분들 있을것이다.
이제 고민끝 이 어플 하나면 땡인것 같다.

1. 메인화면


2. 메뉴화면

초급, 중급, 고급, 환경설정, 추천웹, 추천어플로 메뉴가 구성되어 있어 직관적이고 처음사서 모르는부분들을 세세히 알수도 있고 가끔모르는 기능도 스샷으로잘 찍어두어서 두고두고 사용할수 있을것 같음.




3. 초급화면

초급화면에 일부분인데 초보자 가이드에 주인공 안박사가 나와서 하나하나 강의를 하는식으로 되어 있어 처음하는 사람들도 금방 친해질 수 있는것 같아서 좋은것 같음.


4. 추천어플

추천어플 메뉴는 안드로이드를 사용하면서 가장 많이쓰는 필수어플을 나열해 두어서 클릭하여 바로바로 받을 수 있게 되어 정말 좋은것 같다. 또한 항목을 클릭하면 받을것 인지 물어보는 부분도 사용자에 대한 작은배려 인것 같아서 너무 좋았던거 같다.


이외 메뉴도 괜찮은 기능들이 많았는데 스샷을 제공하지 않아서 적지 못한점이 아쉽다. 아래QR코드를 스캔하여 얼릉 다운받아 보자. 후회하지 않은 선택이 될 것이다.






Network ( 지원 프로토콜 ) - Android / iPhone

- http (웹)

- tcp / ip (소켓)

- soap (XML 웹서비스)

cf) 하이브리드 앱

앱 > 웹

- 앱과 웹 차이점

Application(10%) -----> Web Application(90%)

구분

속도

빠르다.

느리다.(장소마다)

제약사항

적다.

많다.

의존성

많다.

적다.(HTML5[통일/RIA]) by W3C

적다.

많다.

유지보수

어렵다.

쉽다.

W3C : 인터넷의 표준을 만드는 단체(곳,ORG)

3G -> 4G(40배/디바이스 성능 향상)

클라이언트 <-> 서버(웹/어플리케이션) <-> DB

Android <-> [V - C - M] <-> DBMS

Android [V] <-> [C - M] <-> DBMS

V -> XXX.jsp

C -> XXX.java (Servlet)

M -> XXX.java (Bean)

(My Platform / trutsform / 가우스)Struts, Spring, Ejb,

iBATIS, Hybernate, JQuery

웹브라우져는 해석기(html/javascript/css)다.

html/javascript/css -> 상품 (Client side language)

자바 웹서버(Tomcat)은 jsp/servlet(java) 해석기다.

jsp/servlet -> 공장 ( servlet side language )

1. 지시어

2. 스크립팅 엘리먼트

3. JSP액션 = 표준태그 = 액션원소

4. EL

5. JSTL

6. CTL

토요일/일요일
Android 예제 - 분석 

NetWork (월~화)

1. tcp/ip

2. map(LBS)

3. sqlite, preference

4. 팀구성

Market 개발자/등록 ( $25 비자/마스터) - 수

기획서 발표 -> 금요일

+ Recent posts