[Android] 하드웨어
programming/android

[Android] 하드웨어

12. 하드웨어

 

12.1 실습 예제

12.1.1 build.gradle

12.1.2 AndroidManifest.xml

12.1.3 main.xml

12.1.4 MainActivity.java

12.1.5 sound.xml

12.1.6 SoundActivity.java

12.1.7 video.xml

12.1.8 VideoActivity.java

12.1.9 camera.xml

12.1.10 CameraActivity.java

12.1.10.1 SurfaceView

비디오, 게임 등 빈번하게 View를 조작해야 하는 경우에 사용하는 고속의 View

 

안드로이드 SurfaceView . (2011). Retrieved from http://brinpage.blogspot.com/2011/12/surfaceview.html.

 

12.1.10.2 일반 뷰의 단점

속도가 느리고 응답성이 약함

메인 스레드에서 그려야 하므로 속도가 느림

그리기를 하는 동안에는 사용자의 입력을 받을 수 없으므로 반응성이 좋지 않음

화면 전환 속도가 빠른 게임, 그리기를 위한 연산이 복잡한 지도 등의 경우 onDraw()를 실행하는 동안 스레드가 잠시 멈춘 것처럼 보이며 일시적으로 입력에 반응하지 못함

그리기 동작을 다른 쓰레드로 분리할 수도 없음(메인이 아닌 쓰레드는 뷰나 캔버스를 직접적으로 건드릴 수 없음)

 

12.1.10.3 서피스뷰의 구현

extends SurfaceView implements SurfaceHolder.Callback

 

서피스뷰가 처음 만들어질 때

public void surfaceCreated(SurfaceHolder holder);

 

서피스뷰가 변경될 때

public void surfaceChanged(SurfaceHolder holder, int format, int width, int height);

 

서피스뷰가 사라질 때

public void surfaceDestroyed(SurfaceHolder holder);

 

12.1.11 sensor.xml

12.1.12 SensorActivity.java

12.1.13 wake_lock.xml

12.1.14 WakeLockActivity.java

12.1.15 tel_state.xml

12.1.16 TelStateActivity.java

12.1.17 call.xml

12.1.18 CallActivity.java

12.1.19 sms.xml

12.1.20 SmsActivity.java

12.1.21 SmsRecevier.java

12.1.22 tts.xml

12.1.23 TtsActivity.java

12.1.24 voice.xml

12.1.25 VoiceActivity.java