- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 재능이의 돈버는 일기
- StresslessLife
- K_JIN2SM
- 소소한 일상
- My Life Style & Memory a Box
- Blog's generation
- 공감 스토리
- 취객의 프로그래밍 연구실
- Love Me
- Dream Archive
- 세상에 발자취를 남기다 by kongmingu
- hanglesoul
- 카마의 IT 초행길
- 느리게.
- 미친듯이 즐겨보자..
- Joo studio
- Gonna be insane
- 악 다 날아갔어!! 갇대밋! 왓더...
- xopowo05
- 맑은공기희망운동
- 엔지니어 독립운동
- 혁준 블로그
- Simple in Complex with Simple
- 무의식이 의식을 지배한다
목록★─Programing (620)
드럼치는 프로그래머
Java에서 callback function을 이용하려면 어떻게 해야할까? 해답은 매우 간단한데, Swing이나 Android에서 사용자 event를 각각의 component 등에서 처리하기 위해 linstener를 등록하는 데에서 찾아볼 수 있다. 잘 알고 있다시피 모든 listener는 interface로 구현되어 있다. 다음과 같은 간단한 Java 예제를 통해 interface를 이용해 listener(또는 callback)가 어떻게 동작하는지 살펴보자. 아래 예시한 Sum이란 class는 addNumber()란 method를 통해 전달된 값들을 합산하고, getTotal()이란 method를 이용해 그 결과값을 얻을 수 있도록 설계되어 있다. 또한, setMaxNumber()라는 method를 이..
프로그래밍에 친숙한 네트워크 전문가는 프로토콜 문서를 보는 것보다 그 프로토콜이 구현된 API를 들여다 보는 것을 통해 보다 빠르고 정확하게 프로토콜에 대해 이해하기도 한다. - Softgear Ko 본 문서는 http://developer.android.com/sdk/android-4.0.html 의 WiFi Direct 를 번역하였습니다. Wi-Fi Direct 안드로이드는 이제 사용자간 연결(P2P)을 위한 Wi-Fi Direct 를 지원한다. 이 P2P 연결은, 핫스팟이나 인터넷 연결 없이, 안드로이드 장치 또는 다른 디바이스 간의 직접 연결 및 통신을 말한다. 안드로이드 프레임워크는 Wi-Fi P2P API를 제공하여, 당신이 Wi-Fi Direct를 지원하는 다른 디바이스를 찾고 연결할 수 있..
현재 단말기의 버전을 알아오고 싶다면, 다음의 코드를 이용하면 된다. 그리고, 아래와 같이 상황에 맞춰서 대처하여 보자. OS별 코드 버전 넘버는 전의 포스트 참조. (2011/11/17 - [Programming/android] - Android의 역사.) int version = android.os.Build.VERSION.SDK_INT; switch (version) { case 2: Log.d("VERSION", "? 1.1"); break; case 3: Log.d("VERSION", "CUPCAKE 1.5"); break; case 4: Log.d("VERSION", "DONUT 1.6"); break; case 5: Log.d("VERSION", "ECLAIR 2.0"); break; cas..
1. 'DLL'을 Project에 추가 [프로젝트] - [추가] - [참조추가] 를 사용 2. 문제점 1 ) DLL를 참조추가할 때 아래와 같은 오류 발생 "'zzz.dll'에 대한 참조를 추가할 수 없습니다. 파일이 액세스 가능한지, 어셈블리 또는 COM 구성 요소가 올바른지 확인하십시오." 1-1) 해결책 C++ Project에 [프로젝트 속성] - [C/C++] - [일반] - 공용 언어 런타임 지원을 "공영 언어 런타임 지원 (/clr)" 로 설정 2 ) 빌드할때 아래와 같은 오류 발생 /zi' and '/clr' command-line options are incompatible 2-1) 해결책 플랫폼 구성을 [속성] - [구성관리자] - 구성을 "Release"로 변경 후 확인 - 디버그 정보..
오늘은 JNI 의 Exception 에 대해 알아보겠습니다. 이 글은 http://java.sun.com/docs/books/jni/html/exceptions.html#11202 을 요약 정리한 글입니다. Exceptions Introduction. 우리는 지금까지 JNI call 후에 여러가지 error 상황들을 체크해왔습니다. 예제 코드에서 말이죠. 여기서는 어떻게 그런 error 를 detect 하고 recover 하는지를 다룹니다. JNI 의 system call 에서 발생하는 에러는 그저 문서에 기술된 처리만 해주면 됩니다. 하지만, Java API method callback 을 호출한 경우에는 여기서 소개하는 방법에 따라 exception 처리를 해야 합니다. JNI Exceptions O..
sleep(int seconds) : sleep()의 정수는 일반적인 초를 나타냄. 즉 sleep(10)하면 10초후에 다음 작업을 수행. usleep ( int micro_seconds ) : usleep()의 정수는 micro초를 나타냄. 즉 usleep(1)하면1/1000000초를 나타냄. usleep(1000000)하면 1초후에 다음 작업을 수행. usleep은 보다 정밀한 sleep()을 위해서 사용하는 함수. [출처] http://blog.naver.com/hajiheon?Redirect=Log&logNo=19409871
갑자기 잘되던 프로그램이 안된다... 당황하다가 다시 마음을 잡고 천천히 디버깅 해보았다. Native와 JAVA 사이에 연결되는 함수가 호출되다가 죽는다. 아래와 같이 반복문이 15회정도 반복되는 함수였다.float correctCount = 0.0f; for( int i = 0; i < 30; i++ ) { if( jni_GetPUnlocked( s, i ) == true ) { correctCount++; } } jni_GetPUnlocked 함수는 JAVA함수를 C언어로 읽어들여 체크하는 함수였다. 함수 내용은 아래와 같다. bool jni_GetPUnlocked(int game, int question) { JNIEnv *env; jclass jNativesCls; bool pUnlocked =..
제목 : jbyteArray2cstr 메모리 해제가 안됩니다. 글쓴이: 정완호(guest) 2005/05/16 18:17:13 조회수:776 줄수:43 JNI 프로그래밍을 하다보면 김덕태님의 작성하신 NativeStringUtil.c 의 소스를 사용하게 됩니다. 그런데 이함수가 문제가 있습니다. malloc을 하고 free하는 부분이 없네요 (*env)->ReleaseByteArrayElements 에서 JVM이 자동으로 해주는거 같은데 JVM이 신뢰가 가지 않습니다. char *jbyteArray2cstr( JNIEnv *env, jbyteArray javaBytes ) { size_t len = (*env)->GetArrayLength(env, javaBytes); jbyte *nativeBytes ..
안드로이드 쓰레드 종료를 위해 Thread.stop(), Thread.suspend() 다 해보았지만 모두 deprecated 되어서 사용하면 안될 뿐더러, 정상 동작 하지도 않는다. 그럼 남은건 interrupt() 하나 뿐인데.. 이걸 쓴다고 해서 쓰레드가 바로 종료되는건 아니더라.. 보니까 interrupt() 쓴다고 쓰레드가 그냥 죽는게 아니고 쓰레드 내부에 직접 구현을 해줘야 했다. 중복 쓰레드 실행 시 이전 쓰레드를 죽이는 것도 처음에 boolean 변수 만들어서 죽여주는 그런 방법으로 시도했다가, interrupt()와 interrupted()를 활용 하는 것이 훨씬 간결 하다는 것을 알았다. 구현 소스는 다음과 같다. ----------------------------------------..
[Intro] 제가 이전에 세미나에서 발표 했던 내용과도 관련이 있는 내용이긴 합니다. Activity를 안전하게 보호하기 위한 방법 중에서, 태그에 있는 exported 속성을 false로 만들어서 다른 어플리케이션에서 접근 할 수 없게 만들 수 있었습니다. 그런데 exported ="false"속성은 다른 어플리케이션에서 전혀 보이지 않게 숨기는 속성이기 때문에, 재사용을 할 수 없다는, 다소 Activity 철학과는 살짝 거리가 있는 속성이기도 합니다. 뭐... 그래도 재사용 필요없는 Activity에겐 유용한 속성이긴 하지요. [exported="false" 를 쓰면 안되는 상황이 있다고?] 예... 그렇습니다. 모든 상황에서 사용 가능한건 아닙니다. 원래 오늘 별 내용 없습니다. 간단한 메모 수..