맥 폰트 흐릿한 문제
http://clien.career.co.kr/cs2/bbs/board.php?bo_table=cm_mac&wr_id=458305
2012년 6월 25일 월요일
2012년 6월 24일 일요일
[MAC] MAC에 PATH 추가 하기
MAC에 PATH 추가 하기
http://underclub.tistory.com/454
그리고 좋은거 배웠다~
open XXX
명령어로 텍스트 편집기를 열 수 있다는 사실~
http://underclub.tistory.com/454
그리고 좋은거 배웠다~
open XXX
명령어로 텍스트 편집기를 열 수 있다는 사실~
2012년 5월 24일 목요일
[안드로이드] /system 디렉토리를 쓰기용으로 마운트 하기
당연히 루팅되어 있어야 합니다.
그리고 커맨드 창에서 adb shell로 쉘 진입후,
su 등으로 루트권한 확보 후
mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
요래 하면 됩니다.
2012년 5월 8일 화요일
[안드로이드] 부팅시간? 켜진시간??
public static final String ACTION_BOOT_COMPLETED
안드로이드가 껐다 켜지면 위와 같은 액션을 브로드케스트 리시버를 달아 받을 수 있다.
하지만 피치 못할 사정으로 브로드케스트 리시버를 사용 할 수 없다면?
SystemClock에 다음과 같은 두 메쏘드가 있다.
static long elapsedRealtime()
딥슬립 시간을 포함한 부팅 후 경과한 시간을 밀리초 단위로 리턴함.
static long uptimeMillis()
딥슬립 시간을 제외한 부팅 후 경과한 시간을 밀리초 단위로 리턴함.
uptimeMillis()의 경우는 딥슬립 시간을 제외 하니 다른 용도로 써야겠고..
elapsedRealtime()을 쓰면 될듯 하다. System.currentTimeMillis() - elapsedRealtime()하면 부팅 시간이니 말이다.
가령 shared_prefernce 등에 시간을 저장해 두고
OnCreate()에서 그값을 읽어와 부팅시간과 비교해
값이 적다면 새로 부팅한거니 그에 따른 처리를 한뒤 shared_prefernce에 다시 값을 넣어 주고,
값이 더 크다면 아무 것도 하지 않으면 된다.
물론 BOOT_COMPLETED를 받아야만 하는 경우도 있겠지만, 단순히 우리 어플리케이션이 안드로이드가 부팅되고 처음 실행 되는 건지 아닌지 정도는 구분할수 있다.
2012년 4월 17일 화요일
[안드로이드] SD 마운트-탈착에 관한 인텐트
SD 카드에 관련한 작업을 하다보면 예외적인 상황을 고려하지 않을 수 없다. 작업중에 강제로 SD카드가 뽑히거나, USB 연결등으로 마운트 해제가 될수도 있기 때문이다. 그러한 경우 다행히 Broadcast가 날라 오므로 필요에 맞게 받아 처리 할 수 있다.
- Intent.ACTION_MEDIA_MOUNTED
SD 카드가 마운트 되면 날라옴
- Intent.ACTION_MEDIA_EJECT
SD 카드가 강제로 뽑히거나 유저가 마운트 해제 하였을때 날라옴
- Intent.ACTION_MEDIA_UNMOUNTED
유저가 마운트 해제 하였을때 날라옴
- Intent.ACTION_MEDIA_REMOVED
SD 카드가 장치에서 제거 되었을때 날라옴
- Intent.ACTION_MEDIA_BAD_REMOVAL
유저가 마운트 해제 하지 않은체 SD 카드가 강제로 뽑혔을때 날라옴
실제로 SD카드를 강제로 뽑아 보면 다음 순으로 발생 함
Intent.ACTION_MEDIA_BAD_REMOVAL -> Intent.ACTION_MEDIA_EJECT
마운트 해제 하면 다음 순으로 발생함
Intent.ACTION_MEDIA_EJECT -> Intent.ACTION_MEDIA_UNMOUNTED
SD 카드를 새로 꼽으면 다음 순으로 발생함
Intent.ACTION_MEDIA_UNMOUNTED -> Intent.ACTION_MEDIA_MOUNTED
희안하게도 언마운트가 먼저 호출되니 처리시 주의가 필요함
참고로 위 인텐트들을 등록 할 때는 아래와 같이 Data scheme을 지정해 줘야 한다.
<receiver android:name=".TestBroadcastReceiver">
<intent-filter>
<action android:name="android.intent.action.MEDIA_EJECT" />
<action android:name="android.intent.action.MEDIA_BAD_REMOVAL" />
<action android:name="android.intent.action.MEDIA_MOUNTED" />
<action android:name="android.intent.action.MEDIA_REMOVED" />
<action android:name="android.intent.action.MEDIA_UNMOUNTED" />
<data android:scheme="file"></data>
</intent-filter>
</receiver>
피드 구독하기:
글 (Atom)