Fundamental Notes/Android 58

Android: 배경지식

안드로이드 2.2 프로요 기능 추가사항 JIT compiler Better RAM management OpenGL ES 2.0 enhancements Flash 10.1 support Fixed problem with "crazy screen"/Resolution of cross multitouch Activation of Colort Tracball Enable FM radio Gallery with 24-bit support for images USB tethering, WiFi hotspot application을 만드는 데 사용될 수 있는 풍부하고 확장가능한 뷰 집합, 이것은 리스트, 그리드, 텍스트 박스, 버튼, 임베딩 가능한 웹 브라우저까지도 포함하고 있다. application이 다른 app..

Android : 이진 데이터를 위한 데이터 저장

이진 데이터를 위한 데이터 저장 안드로이드 SDK 문서는 컨텐트 프로바이더가 비트맵이나 음악 클립 같은 바이너리 데이터를 저장할 때 데이터는 데이터베이스 외부에 파일로 저장돼야만 하고, 컨텐트 프로바이더는 파일을 가리키는 데이터베이스의 content:// URI를 저장하라고 제안한다. 클라이언트 애플리케이션은 컨텐트 프로바이더에 content:// URI를 찾기위해 질의를 하고, URI가 가리키는 파일에서 실제의 바이트 스트림을 추출할 것이다. 이런 간접 방식을 사용하는 이유는 다음 몇 가지 사항을 살펴보면 이해하기 쉽다. 파일시스템은 SQLite blob를 다루는 것보다 훨씬 빠르고 다재다능하기 때문에, SQL blob보다 유닉스 파일시스템을 사용하는 편이 더 낫다. 그러나 안드로이드 애플리케이션은 다..

Android : Sensor base

1. 좌표 시스템 센서는 x, y, z 의 좌표에 대해서 각각에 해당하는 값을 배열로 받아와서 처리할 수 있다. 좌표축 x 축 : 화면에 수평축(portrait 모드에서 짧은 가로, landscape 모드에서 긴 가로). 오른쪽을 가리킨다. y 축 : 화면에 수직축. 화면 위쪽을 가리킨다. (원점은 기존 그래프에서 0,0 상상하면 됨) z 축 : 단말기가 테이블에 올려 있다고 가정할 때, 천장을 가리킨다. 2. Orientation SENSOR_ORIENTATION (방향 센서) : 각 배열의 값은 각도를 나타냄. 단말기 화면이 하늘을 향한 상태로 테이블 위에 수평으로 놓여있는 상태를 기준으로 각 축을 중심으로 회전시키는 것을 생각하면된다. values[0] : Z 축을 중심으로 회전 (0

Android : Screen rotation Issue

Thread를 만들어 돌아가는 중, 화면 회전을 한 후에는 사라지는 현상 해결책 /** Activity소스코드를 보면, 타입이 HashMap이고, null 을 리턴하고 있다. 유지해야할 데이터가 한개라면 그 Object를 바로 리턴해도 된다. */ @Override public Object onRetainNonConfigurationInstance() { HashMap map = new HashMap(); map.put("worker", worker); map.put("var1", var1); map.put("var2", var2); return map; } } /** onCreate의 적당한 부분에 이전 데이터를 복원하는 코드를 넣어준다. 여기에서는 restore() 를 따로 정의했다. */ @Over..

Android : 애니메이트

애니메이트가 되기 위해서는 게임 루프를 구현해야 함. Snake 게임에서는 게임 루프를 구현하기 위해 Handler 클래스로부터 상속받은 RefreshHandler 클래스를 사용. private RefreshHandler mRedrawHandler = new RefreshHandler(); class RefreshHandler extends Handler { @Override public void handleMessage(Message msg) { SnakeView.this.update(); SnakeView.this.invalidate(); } public void sleep(long delayMillis) { this.removeMessages(0); sendMessageDelayed(obtainMe..

Android : 안드로이드에서 SQLite DB 사용하기

SQLiteOpenHelper Class SQLite DB를 사용하기 위해서는 일단 이 클래스를 상속하여 구현해야 한다. 이 클래스는 DB 생성하고 버전 관리를 하는 클래스이다. 그러므로 DB생성을 위해 필요하다. 따라서 이 클래스의 멤버함수인 onCreate(SQLiteDatabase), onUpgrade(SQLiteDatabase, int, int) 함수를 오버라이딩 해야 한다. 즉 이 클래스는 DB가 있으면 열고, 없으면 새로 만든다. 또한 필요하면 DB를 업그레이드 한다. 이 클래스를 생성할 때는 생성자에 Context 클래스가 필요하며, Activity Class 가 바로 컨텍스트 클래스를 구현한 것이므로 , Activity Class를 구현한 this 를 넘겨준다. SQLiteDatabase ..