안드로이드 쓰레드 종료를 위해 Thread.stop(), Thread.suspend() 다 해보았지만 모두 deprecated 되어서 사용하면 안될 뿐더러, 정상 동작 하지도 않는다. 그럼 남은건 interrupt() 하나 뿐인데.. 이걸 쓴다고 해서 쓰레드가 바로 종료되는건 아니더라.. 보니까 interrupt() 쓴다고 쓰레드가 그냥 죽는게 아니고 쓰레드 내부에 직접 구현을 해줘야 했다. 중복 쓰레드 실행 시 이전 쓰레드를 죽이는 것도 처음에 boolean 변수 만들어서 죽여주는 그런 방법으로 시도했다가, interrupt()와 interrupted()를 활용 하는 것이 훨씬 간결 하다는 것을 알았다. 구현 소스는 다음과 같다. public class ThreadKillDemo extends Acti..
Kernel Module 뼈대 소스 #include #include #include #include #include #include #include #define CALL_DEV_NAME "calldev" #define CALL_DEV_MAJOR 240 static int onevalue = 1; static char *twostring = NULL; module_param(onevalue,int,0); module_param(twostring,charp,0); /** * module_param(variable,type,property) * * type / variable * * short : short * ushort : unsigned short * int : int * uint : unsigned ..
함수를 처리한 결과가 제대로 나오지 않는다면 그건 뭘까. 분명 제대로 함수 사용했는데 값이 null로 나오면 그것은 무엇일까... 이 심오한 것의 해답은 메소드의 sync/async(동기/비동기) 비슷하게 생각하믄 되겠다.. 전에 Android에서 MyLocationOverlay를 쓰려던 적이 있었다. 뻔한 소스지만 MyLocationOverlay myLocationOverlay = new MyLocationOverlay(this,mapView); myLocationOverlay.enableMyLocation(); mc.animateTo(myLocationOverlay.getMyLocation()); 하면.. 내 좌표를 못 구해온다... 왜일까... 잘 한거 같은데 왜 못 구해올까.. 그것은.. enab..
이 글은 아래 링크의 내용을 발췌한 글 입니다. (http://technet.microsoft.com/ko-kr/library/cc700775.aspx) . . . UAC의 기본적인 형태는 간단합니다. 명시적인 Administrator 계정을 제외하고, 로그온 사용자를 일단 표준 사용자 권한(Users)으로 보는 것입니다. 기술적 표현으로는 Split Access Token(분리된 접근 토큰)이라고 합니다. Split Access Token은 모든 권한을 가진 보안 토큰을 생성한 후, 관리자 권한과 그룹을 뺀 다른 UAC 접근 토큰을 생성합니다. 이를 Linked Token이라고 합니다. Linked Token을 사용하던 사용자가 모든 권한이 필요한 경우, 이를 확인하는 절차를 밟은 후, 권한을 부여받게..
InputStream을 String으로 변환해 주는 예제 package org.kodejava.example.io; import java.io.IOException; import java.io.InputStream; import java.io.StringWriter; import java.io.Writer; import java.io.Reader; import java.io.BufferedReader; import java.io.InputStreamReader; public class StreamToString { public static void main(String[] args) throws Exception { StreamToString sts = new StreamToString(); /* * G..
문자열을 사전 순으로 정렬하기 char d[5][10] = {"dcabe","abdce","abcde","baffg","abcfg"}; std::vector v; for(int i = 0;i < 5;i++) { v.push_back(d[i]); } sort(v.begin(), v.end()); for(int i = 0;i < 5;i++) { printf("%s\n",v[i].c_str()); //printf("%s\n",v.at(i).c_str()); } 설명은 생략~
1. < 를 오버로딩 하는 방법 algorithm 헤더에 정의돼 있는 sort() 펑션은 < 로 정렬한다. 즉 < 를 오버로딩 해주면 된다. struct edge{ int value; bool operator value < b.value; } }; 위 처럼 하면 edge e가 안의 value값으로 정렬 가능하다. edge e[100]; e[0].value = 10; e[1].value = 110; e[2].value = 150; e[3].value = 160; e[4].value = 30; e[5].value = 40; e[6].value = 60; e[7].value = 50; e[8].value = 40; e[9].value = 180; sort(e,e+10); for(int i = 0;i < 10;..
안드로이드 어플리케이션을 다 제작했으면 마켓에 올리기 위해 release 버전으로 만들어 줘야 한다. 그냥 하는것은 아니고, 여러 과정을 거쳐야 하는데 아래 과정을 따라오면 된다. 1. keytool을 이용하여 key를 만든다. cmd창 들어가서 keytool -genkey -alias 키이름.keystore -keyalg RSA -validity 20000 -keystore 경로/키이름.keystore ex) keytool -genkey -alias roter.keystore -keyalg RSA -validity 20000 -keystore roter.keystore (마지막에 경로를 안써 주면 현재 cmd가 위치해 있는 폴더에 keystore를 만든다.) 엔터를 치면 암호 입력하라고 나온다. 암호 ..
- Total
- Today
- Yesterday
- Visual C++
- algorithm
- linux
- it
- android
- jni
- Quiz
- Cloud
- database
- NDK
- Troubleshooting
- driver
- C++
- C
- kering
- API
- java
- 안드로이드
- jni강좌
- MFC
- source
- db
- 음악
- AWS
- Python
- 리눅스
- 드라이버
- 프로그래밍
- winapi
- gcc
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |