- 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 | 29 | 30 | 31 |
- 재능이의 돈버는 일기
- 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
- 무의식이 의식을 지배한다
목록android (171)
드럼치는 프로그래머
이번 컬럼에서는 JNI 코드를 작성하는데 도움을 주는 툴 사용법과 JNI API 중 사용빈도가 높은 타입변환, Java 객체 생성, Java 메소드 호출 및 필드를 다루는 방법에 대해 정리 하고 네이티브 라이브러리를 손쉽게 이클립스 IDE 환경을 이용하여 개발하는 방법에 대해 알아보도록 하겠다. 지난 컬럼부터 제시된 가상시나리오의완결판인 이번 컬럼은 실제 프로젝트 진행중에 벌어질 수 있는 문제상황을 제시하고, 동시에 이 문제를 해결해 나가는 과정을 중심으로 이야기를 진행하고자 한다. 등장인물 ● 허우대 대리 : 몇 달 전 경력사원 공채로 새로 입사한 인물로 Java를 사용해봤다는 이유만으로 난생 처음으로 안드로이드 플랫폼에 기존에 c++로 작성한 소스를 마이그레이션 하는 업무를 맡는다. 허우대는 멀쩡하지..
안드로이드 Activity life 사이클이 끝나면 해당 Activity는 안드로드 Activity Stack으로 부터 삭제되고, 다시 해당 Activity를 시작하면 onCreate부터 다시 시작된다. 그렇다면, 내가만든 엑티비티가 종료되어도 백그라운에서 동작하게 하고 싶다면 어떻게 할까?? 방법은 여러가지 있지만~ 일반적으로 생각해 낼수 있는 방법은 역시 Service를 실행 시키는 방법이다~ Service는 Activity와 다른 프로세스이다. 다시 말하면 전혀 다른 프로그램이라고 봐도된다. 단지 interface가 동일해 RPC로 서로 통신할 수 있는 것 뿐이다. 많은 분들이 패키지 내에 Activity와 Service를 같이 만든다해서 같은 프로세스(프로그램)으로 보는 분들이 많은데.. 절대 아..
컴파일 될 코드 ■ C로 제작할 때 #include #include jstring Java_com_example_hellojni_HelloJni_stringFromJNI( JNIEnv* env, jobject thiz ) { return (*env)->NewStringUTF(env, "Hello from JNI !"); } ■ C++로 제작할 때 #include #include extern "C" { JNIEXPORT jstring JNICALL Java_com_example_hellojni_HelloJni_stringFromJNI( JNIEnv* env, jobject thiz ) { return env->NewStringUTF("Hello, NDK!"); } } mk 파일 ■ C로 제작할 때 LOCA..
현재 액티비티가 실행 중이라면, true를 반환하고, 실행중이 아니라면, false를 반환합니다. private boolean isActivityTop(){ ActivityManager activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE); List info; info = activityManager.getRunningTasks(1); if(info.get(0).topActivity.getClassName().equals(PhoneStateReceiverTestActivity.this.getClass().getName())) { return true; } else { return false; } } info = activityMan..
Android에서 Toast를 사용할 때, 메시지가 중복해서 뜨면서 오랫동안 지속되는 경우가 있습니다. 기존 메시지는 삭제하고, 현재 메시지만 보이도록 하는 방법을 공유합니다. 1. Toast 객체 선언 public static Toast mToast; 2. onCreate() 에서 Toast.makeText()를 이용하여 Toast 객체 초기화 mToast = Toast.makeText(this, "null", Toast.LENGTH_SHORT); 3. 이 후, Toast를 보여주는 코드에 있는 Toast.makeText().show() 대신 다음으로 변경 mToast.setText(“show this text”); mToast.show(); 이렇게 수정하면, l mToast가 보여지지 않던 상황에는,..
// parameter jobject YourJObjectRepresentingArrayList; // I suppose you have the JNIEnv somehow JNIEnv* env; // use the Array list ArrayList_class = env->FindClass( "java/util/ArrayList" ); // to conver jobject to jstring jmethodID caster = env->GetMethodID(ArrayList_class, "toString", "()Ljava/lang/String;"); // get two methods Get_method = env->GetMethodID( ArrayList_class, "get", "(I)Ljava/la..
오늘은 JNI 중 Local Reference 와 Global Reference 에 대해 알아보겠습니다. 이 글은 http://java.sun.com/docs/books/jni/html/refs.html#27423 내용을 요약 정리한 내용입니다. Local and Global References JNI는 jobject, jclass, jstring, jarray 등을 지원을 하는데 그것들은 opaque reference 입니다. 그래서 이녀석들은 JNI 함수를 통해서 opaque reference 의 내용물들을 받아와야 합니다. 이 opaque reference 의 장점은 JVM 의 내부구현에 상관없이 native code 를 구현할 수 있다는 것입니다. 프로그래머는 JNI 가 지원하는 다음의 refer..
InputStream 은 2번 읽을 수 없다. InputStream 을 이용해서 Cache 저장하고, 해당 Stream 을 BitmapFactory 를 이용해서 decoding 을 했더니, BitmapFactory 에서 항상 null Bitmap 을 return 하더이다. 그래서 알아보니, InputStream 은 사실 한번만 사용할 수 있다. 한번 read 로 position 이 이동된다면, 다시 원점으로 돌릴 수 없다. mark 와 reset 을 이용한 방법이 있다고 하나, 이는 추가 구현이 필요하다. 그래서 보통 copy 를 하는 방법을 사용하곤 하는데, 이 역시도 추가 library 가 필요하다. 결국 잘 생각해서 input stream 을 한번만 사용하던지 memory 상 array 에 cach..
File.createNewFile() 호출시 발생하는 InvalidArgumentException - File.createNewFile() 호출시 InvalidArgumentException 이 발생할 수 있습니다. 이 Invalid Argument 예외가 발생하는 이유는 file 이름에 / : 등 특수문자가 들어가 있을 때 발생합니다. 파일이름에서 특수기호를 최대한 빼 주시면 해당 예외를 막을 수 있습니다. [출처] http://aroundck.tistory.com/1230
아이폰에서는 옵션값을 주어 변경할수 있는 리스트뷰인데 안드로이드에서는 기본으로 해줄수 있는 메서드나 클래스가 없어서 이를 만들어줘야 한다. 아래 스샷화며처럼 착한 외국인이 처리한 로직을 보면,,, 위치 변경할 아이콘을 클릭하여 드래그 할때 선택된 인덱스의 리스트 아이템은 지워지고 해당 아이템은 손의 위치에 따라 ondraw하면서 따라간다. 그리고 선택하여 actionup하면 그자리에 지워진 아이템이 위치되고 위의 아이템들은 하나씩 위로 올라간다. 글이 어려우면 아래 이미지들을 순서대로 보세요^^; 아래 이미지는 1번 아이콘을 드래그하여 4번 밑에다가 놓았습니다.~ 실행 Activity 소스 public class TouchListViewDemo extends ListActivity { private st..