본문 바로가기

android

[ JAVA ] try catch finally 사용 시 문제점. try{// .. 예외가 발생할 가능성이 있는 구문!}catch(Exception e){// .. 예외 발생시 처리 구문!}finally{// .. 꼭 실행해야하는 구문!} 전 코딩을 할 때 위와 같이 이해 하고 코딩을 하고 있습니다.하지만 여기서 몇가지 생각해야 할 게 있더라구요!1. try 안에 return.2. catch 안에 return.3. finally 안에 return. 한번 생각해보세요....... 결론.1. try 안에 return문 => return은 정상 동작으로 종료가 되었다는 의미이므로 finally 구문을 거쳐 정상 종료2. catch 안에 return 문 => catch 안에 return문은.. 거의 쓸일이 없을듯... 똑같이 finally 구문을 거쳐 정상 종료.3. fina.. 더보기
Socket Interface Name으로 IP 주소 가져오기. 3g,wifi등 인터넷에 interface Name이 있습니다.이 name을 이용하여 IP를 가져오는 방법이 있네요.system 입출력 함수인 ioctl을 이용하여 가져오는 방법입니다. ...#include #include #include #include ...char *getIfToIP(char *ifName){ int fd; struct ifreq ifr; fd = socket(AF_INET, SOCK_DGRAM, 0); /* I want to get an IPv4 IP address */ ifr.ifr_addr.sa_family = AF_INET; /* I want IP address attached to interfaceName */ strncpy(ifr.ifr_name, ifName, IFNAM.. 더보기
[ Android ] AIDL 파일 예제 android 소스를 보다가 aidl 파일이 보여서..무엇인고~ 하고 바로 구글 형님에게 물어보니~ 역시나 한 유능한 분께서 블로그도 써놓고 예제도 올려놓으셨다.http://blog.naver.com/PostView.nhn?blogId=huewu&logNo=110083320332&parentCategoryNo=18&viewDate=&currentPage=1&listtype=0 AIDL ( Android Interface Definition Langage ) 는 IPC의 한 역할로,서로 다른 프로세스 에서 Class를 공유하고자 할 때 사용한다고 정의 하고 싶다. 즉, 일반적으로 Activity에선 Service를 start하고 end의 역할이 끝이다.하지만, AIDL을 이용하면 Service와 bindi.. 더보기
[ Android ] CalledFromWrongThreadException CalledFromWrongThreadException Thread를 써서 UI에 먼가 뿌릴려고 할 때,꼭 한번씩 보게되는 Exception Only the original thread that created a view hierarchy can touch its views. => 축약으로 메인스레드에서 UI 변경해!!! 메인스레드에서 만들었으니!!!라는 의미이다.. 그럼 해결책은~!! 메인 스레드에서 변경이 되도록 해주는 것이다. 이럴 경우, Handler를 이용하여 하는 방법도 있지만 아주 간편한 방법이 있어 소개한다. runOnUiThread(new Runnable() { public void run() { ....// UI 변경 코드 넣자!!! } });UI Thread 에서 Run을 시킨다는 의.. 더보기
[ JNI ] String Array 관리 [ Native -> Java ] 제가 테스트해봄static jobjectArray get_string_arr(JNIEnv* env, jclass){ char *str[5] = {"first","second","third","fourth","fifth"}; jobjectArray joa= (jobjectArray)env->NewObjectArray(count, env->FindClass("java/lang/String"),env->NewStringUTF("")); if (joa == NULL) {jniThrowRuntimeException(env, "Create New jobjectArray is Null");return NULL; } for (int i = 0; i SetO.. 더보기
[ Android ] Read Only File System IOException ( EROFS ) /system 이나 /data 같은 경우는 android 내부의 중요한 폴더 이기 때문에,Application 에서 File을 생성하거나 삭제를 금지 시켰습니다.그래서 제목과 같은EROFS 라는 Exception이 발생하지요.. 하지만, file을 Sdcard가 아닌 내부 메모리에 저장 하고 싶을 경우에!!!무슨 수를 써서라도 Sdcard에는 파일을 쓰지 않겠다 하시는분들! String filePath = getApplicationContext().getFilesDir().getPath().toString() + "/file.txt";java.io.File file = new java.io.File(filePath); 위와 같이 자신의 Application 경로의 file을 생성하세요.이건 허용도 되며~.. 더보기
[ Android ] System property와 관련하여 System property를 Setting 하는 방법은 3가지가 있습니다. 1. Nativeint property_get(const char *key, char *value, const char *default_value);int property_set(const char *key, const char *value);2. JavaString SystemProperties.get(String key);SystemProperties.set(String key,String value);3. adb 명령adb shell root# setprop key valueroot# getprop key 여기서 java 부분을 빨간색으로 해놓았습니다. 그 이유는 SystemProperties.set 함수를 이용할 때는, .. 더보기
[ Android ] Native단 Logcat에서 Log 출력 Java 소스 에서는 손쉽게 Log 클래스만 불러오면, 어디서든 Logcat으로 결과 값을 출력할 수 있습니다. 하지만, Native 단에서는 다른 방법으로 해줘야 합니다. 그 방법을 공유하고자 합니다. 1. Log를 출력하는 소스가 위치하는 Android.mk 파일에 LOCAL_SHARED_LIBRARIES += liblog 위와 같이 Library 추가. (참고 : static 이든 shared 이든 Log 출력하고자 하는 소스에 전부 추가시켜주세요.) 2. Log를 출력하는 소스에 header와 Log 함수 추가. #include … __android_log_print(ANDROID_LOG_INFO, "LogCatTag" , "%s:%d :: Log "\n", __FUNCTION__, __LINE_.. 더보기