본문 바로가기

나의 플랫폼

[ 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_.. 더보기
[ Android.mk ] Android.mk Setting 후, Compile이 안되는 현상. Android.mk 파일은 현재 폴더에서 어떤 소스를 어떤 용도로 빌드할지 지정해주는 Makefile이죠.다름이 아니라, 분명 Android.mk의 Setting이 완벽한데 Compile이 일어나지도 않고,Library 파일도 생성이 안되는 경우가 있습니다. 경험에서 얻은 정본데요. Android.mk파일을 추가하고 Src를 Setting했다고 Library로 바로 생성해 주지 않습니다.꼭!!! 그 생성하고자 하는 Library 모듈을 사용하는 곳이 있어야만 빌드가 진행됩니다. 예를 들어,Android.mk 에...LOCAL_MODULE := TestModule...include $(BUILD_SHARED_LIBRARY)모듈을 생성하고, 어딘가에서 위 Shared Library를 호출해야만 Build가 .. 더보기
[ Kernel ] system 디버깅 printk라는 함수를 사용하여 kernel단에 디버깅을 한다. 이 로그를 보기 위해서는 다음과 같이 하면 된다. 1)prompt창 띄운 후 adb shell -> dmesg 를 하면 부팅 후 현재까지의 로그를 전부 보여줌2)adb shell -> dmesg -c 를 하면 현재까지 다 보여주고 로그 버퍼 삭제 -> dmesg3)adb shell -> cat /proc/kmsg 실시간 로그 보여줌 ( path가 안되어 있을 경우, sdk/platform-tools 에 보면 있다.) 더보기
[ Kernel ] System call 추가 방법 ( ICS ) 안드로이드에 Systemc call을 추가하여 user 단에서 사용 하는 법을 해볼까 한다.이 내용은 ICS를 기초로 하는 거다. 참고로, 대부분의 안드로이드 폰이 arm기반으로 되어있기 때문에 아래 추가내요은 x86이 아닌 arm에서의 추가방법임. 그럼 차근차근 하나씩 수정해보도록 해보겠다.1. System Call 등록 - Unistd.h에 System Call 번호 추가 위치 : android/kernel/arch/arm/include/asm/unistd.h#define __NR_sendmmsg (__NR_SYSCALL_BASE+374)#define __NR_setns(__NR_SYSCALL_BASE+375)#define __NR_set_add_function(__NR_SYSCALL_BASE+376.. 더보기
[ C언어 ] 기초 공부 저희 회사 차장님한테 수업을 들었는데...기초중의 기초도 대답을 제대로 말 못했던 적이 많았던 것 같아요.그래서 그 순간 혼났던 내용들을 적어볼까 합니다. 먼저 2의 0승은??????????? 1이죠...( 전 이걸 몰랐다능;;; 진짜 제가 한심스럽더군요;;)그럼 2의0승 부터 16승까지 나열하실 수 있으신분??? 0 5 10 151 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768 65536 그다음...IDE(Integrated Development Environment) 란??(Compiler + Debugger + Editor )와 같이 개발을 하기 위한 통합 환경을 말합니다. 안드로이드 같은 경우 , java Compiler + vm + ec.. 더보기
[ Virutal Box ] 사용시 메모리 에러 VirtualBox를 사용하다가 가장 많이 본 에러가 메모리 관련 오류 였던 것 같다. 너무 사용량이 많아 돌릴 수 없다는 내용이었다. 현재 8기가 램을 사용하지만, 보안 때문에 32Bit를 깔아놓았더니.... 4기가밖에 제어가 되지 않는 상황이다. [ 메모리 오류가떳을 경우 ]Virtualbox의 [Ubuntu 선택] -> [설정] -> [시스템 탭] -> [마더보드] 에서 기본 메모리를 녹색으로 위치 시킵니다. 기본적으로 OS에서도 사용하는 메모리와 충돌이 나서 오류가 자주 발생하는 것으로 보입니다. 현재, Android 소스를 공유폴더로 cp를 통해 옮길 때 , 위 메모리 오류가 발생 해서 기본 메모리를 낮췄더니 문제없이 돌아갑니다. 참고하시면 될듯^^ 더보기