프로그래밍 543

펌자료) 안드로이드의 파일 입/출력에 필요한 경로를 얻는 방법 총정리!

애플리케이션을 제작하다 보면 파일을 입/출력 기능을 구현해야 하는 경우가 있습니다. 파일 입/출력을 수행하려면 파일의 경로를 꼭 알아야 하는데, 안드로이드에서 파일을 저장할 수 있는 경로는 다양합니다. 가장 크게 애플리케이션 데이터가 저장되는 영역(일반적으로 '내부 저장소(Internal Storage)'라 불림)와 사진, 비디오, 데이터 등을 저장하는 영역(일반적으로 '외부 저장소(External Storage)(주1)'라 불림)으로 나뉠 수 있으며, 각 영역별로 다시 캐시 데이터가 저장되는 영역, 데이터베이스가 저장되는 영역 등으로 나뉩니다. (주1) 외부 저장소는 사용자 데이터(사진, 동영상, 등)이 저장되는 영역입니다. 일반적으로 이는 단말기의 외장 SD카드를 지칭하지만, 단말기에 따라서는 이 영..

펌자료) 안드로이드 로그관리.

프로젝트를 진행하다보면 거의 모든 매소드에 로그를 사용하는데 개발중엔 상관없지만 배포 할 때 로그를 안나오게 하는것이 바람직합니다. 이 때, 수 십개의 클래스를 돌아다니며 로그를 지우는 것도 일이지만 만약 배포 후 버그가 나온다면 지웠던 로그를 다시 작성해야 되는 일이 생깁니다. 이런 불상사를 방지하는 방법이 로그 클래스를 만들어 관리를 해주는 것입니다. public class RbLog { /** Disable Debug */ // public static boolean D = false; /** Enable Debug */ public static final boolean D = true; public static void d(String tag, String msg) { if (D && tag !=..

[안드로이드] Binary XML file line #13: Error inflating class fragment 해결 방법

이 에러는 해결할 첫번째 방법 xml Layout에 커스텀 뷰를 넣을 경우는 대부분은 아시겠지만.. Packgage : com.test Class : CustomComponent 위를 main.xml에 넣을려구 할 경우 다음과 같이 작성 한다.. 하!지!만! 이렇게 작성할 경우 가장 많이 보이는 이런 비슷한 에러를 볼 수 있다. Caused by: android.view.InflateException: Binary XML file line #13: Error inflating class com.test.Com~~~~~ 열심히 구글링을 해본 결과... 역시나 답은 있었다. 생성자에 꼭 AttributeSet을 넣어야 하는것이다. public CustomComponent (Context context) { ..

안드로이드 Touch 이벤트 처리하기

안드로이드 터치 이벤트가 발생시 처리하는 방법 package com.example.touchex; import android.os.Bundle; import android.app.Activity; import android.content.Context; import android.view.MotionEvent; import android.view.View; import android.widget.Toast; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); View v = new MyView(this..

디자인패턴 Interpreter 패턴

Interpreter 패턴 이번 패턴은 도스나 리눅스에서 명령어를 치게되는데 shell> ls –a 이런식으로 치죠? 이때 shell>은 무시하고 ls는 명령어고 –a는 옵션이란 것을 인식하게됩니다. 이런식으로 여러 클래스를 만들어서 shell>만 인식하는 클래스 ls만 인식하는 클래스 –a만 인식하는 클래스는 만들어서 각자 할 수 있는 것만 처리하게 해봅시다. 여기서 나오는 명령어는 자동차를 움직입니다. program go end 이런식입니다. program은 위의 shell>과 같이 그냥 시작을 알리는 것이고 go는 명령어 end는 끝을 알립니다. 만약 program repeat 4 go right end end 면 repeat 4는 4번 반복하라는 뜻이고 어떤 것이면 go right를 4번 반복하라..

안드로이드 핸들러로 UI처리하고 쓰레드에서 실작업 처리하기

이번에는 쓰레드와 핸들러 동시에 이용해서 구현해봅시다. 쓰레드에서 실제 작업만 처리하고 UI 관련 작업은 핸들러에게 메시지를 보내서 다 처리합니다. main.xml MainActivity.java 파일 package com.example.longtime4; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.app.Activity; import android.app.Dialog; import android.app.ProgressDialog; import android.content.DialogInterface; import android.view.Menu; import android.vi..

안드로이드 작업스케쥴링 sendMessageDelayed를 언제 쓰지

boolean sendMessageAtTime(Message msg, long uptimeMillis) // 이 메소드는 부팅후 경과시간을 사용하여 지정할 수 있습니다 boolean sendMessageDelayed(Message msg, long delayMillis) //지금 시간으로 경과한 시간으로 지정한다 단위는 둘다 밀리초 러너블도 다음메소드를 이용해서 지연시간을 둘 수 있습니다 boolean postAtTime(Runnable r, long uptimeMillis) boolean postDelayed(Runnable r, long delayMillis) 일단 이런것을 왜 쓰는 건지 이해하기위해서 다음 예제를 실행해봅시다. 일단은 delayed메시지를 안썼을때입니다. main.xml