안드로이드 스튜디오 51

5.6 TensorFlow.Lite Mobile IOT Digit Classifier 예제 해설

MNIST 데이터를 사용하여 TensorFlow 손글씨 인식 머신 러닝은 하나의 레이어만을 사용하드라도 92.5% 인식률을 보여주며 뉴럴 네트워크를 사용할 경우 98% 수준으로 향상된 인식률을 보여 준다. 더 나아가 뉴럴네트워크에 CNN 기법이 적용되면 적어도 98.5% 수준의 인식률을 보여 주며 CNN에 Dropout 및 Ensemble 기법을 함께 사용하면 쉽게 99.5%의 정밀도를 얻을 수 있다. 하지만 이러한 머신러닝 코드를 데스크 탑이 아닌 모바일 스마트폰에서 직접 실행하기에는 컴퓨팅 부담으로 인해 실현 가능성이 거의 없다고 봐도 무방하다. 이러한 점에 대한 구글의 대안이 바로 TensorFlow Lite 이다. 직접 모바일에서 빌드하여 실행하는 것이 아닌 학습 결과만을 탑재하여 모바일 상에서의..

5.5 안드로이드 스튜디오 Application Component 중 Broadcast Receivers WiFi 에 관해 알아보자.

Services는 사용자 app(application) 과 함께 실행이 되어도 항상 background Services 와 연결이 되어 실행된다는 점과는 달리 Broadcast Receivers는 사전 등록된 Receiver에 대해서 해당 이벤트가 발생하게 되면 언제든지 사용자 app(application) 에 메시지를 전달 해 준다는 점으로서 asynchronous 한 특성도 갖추고 있다. 실 예로서 스마트폰 앱 작업 중 전화가 걸려오면 즉 전화수신 이벤트가 발생하면 메시지와 함께 전화를 받고 다시 사용자 app(application) 으로 되돌아 갈 수 있다는 점이다 . 한편 배터리가 거의 소모가 되었을 경우 Broadcast Receiver를 통해 사전 경고 및 Alarm 설정기능 및 경보 기능도 ..

5.4 안드로이드 스튜디오 Application Component 중 Service에 관해 알아보자.

Services: 멀티 프로세싱이 가능한 PC 상의 많은 코드 실행에는 사용자와의 interaction 이 없는 상황에서 항상 background 실행이 뒤따르게 마련이다. 스마트폰 사용자가 특정 activity 화면 작업 중에도 이와 무관하게 스마트폰은 내부에서 지속적으로 시간 정보를 체크한다든지 또는 외부로부터 SMS 정보를 수신하기도 한다. 이러한 서비스도 activity에서처럼 특정 서비스가 다음 사례에서처럼 전체 Service에 들어와야 할 필요가 있다. 아울러 AndroidManifest.xml 에서도 다음과 같이 명시되어야 한다. Start Service 버튼을 클릭하면 사용자가 디바이스에서 Default_Ringtone_Uri 선택한 스마트폰 벨소리를 시작하고 Stop Service 버튼을..

5.3 안드로이드 스튜디오 CameraX 코드 구조

스마트폰에서 카메라를 사용하여 Image Caputre 과정을 면밀히 살펴보자. activity_main.xml에 의한 스마트폰에서의 RelativeLayout 화면 구성은 ImageView 하나와 Button 하나로 구성된다. ImageView의 레이아웃 폭(width)과 높이(height)는 fill parent 로 이루어지며 Button 은 ImageView 아래(Bottom)에 위치시킨다. 카메라 이미지 캡춰를 위한 MainActivity 코드 구조를 살펴보자. 2개의 @Overide로 이루어진다. 첫번째 method 인 onCreate에서는 Bundle savedInstanceState에 의해서 모든 Activity들의 Instance 정보(클래스 실행 정보)를 저장하여 필요하면 previous..

5.2 안드로이드 스튜디오 Drawing App의 결정판 Sue Smith의 그림판 복원

안드로이드 스튜디오 그림판 앱의 결정판으로 볼 수 있는 영국의 여류 컨텐츠 작가인 Sue Smith의 2013년 블로그 내용을 Copy & Paste의 기법을 토대로 안드로이드 스튜디오 버전 3.6 수준 코드를 복원 재생해 보자. https://code.tutsplus.com/tutorials/android-sdk-create-a-drawing-app-interface-creation—mobile-19021 202..

5.1 Sylvain Saurel의 안드로이드 스튜디오 MyPaint 예제 Copy & Paste의 예술

앱 인벤터에서 그림판용(Paint) 앱 코드 작성을 고려해 보자. 다음과 같이 색상 선택용 3개의 버튼과 밑판용 Canvas 및 그림판 화면을 지우기 위한 Wipe 버튼으로 구성이 가능하다. Canvas 란 단순히 스케치 북처럼 배경 그림 없이 백색으로도 선택이 가능하며 때로는 특정한 이미지나 사진을 사용할 수도 있는데 그림판이므로 이 Canvas 상에 선을 그을 수 있으며 아울러 일정한 직경의 점을 짝을 수도 있다. 앱 인벤터 코드는 다음과 같이 대단히 간결하여 6개의 이벤트 코드로 구성된다. 즉 색상 선태 버튼 3개, 화면을 지우기 위한 Wipe 버튼, 드래그에 의한 선긋기와 터치로 Dot 찍기 이벤트로 구성된다. 이와 유사하게 안드로이드 스튜디오에서 앱 인벤터 보다 훨씬 간단한 오픈소스를 사용하는 ..