본문 바로가기

나의 SW개발 이야기/안드로이드

[Android] Virtual Reality 개발 - 기본 동작 방식 0. Overview VR Player의 기본 동작 방식에 대한 설명 기존에 촬영된 VR Source(동영상)을 구(Sphere)에 Texture Mapping 후, Camera를 구의 한가운데 놓고 핸드폰(안드로이드)의 Gyro-Sensor입력을 받아 Camera를 움직여 VR를 구현하는 방식 1. Texture Mapping to Sphere VR Player에서 Play를 하기 위해서, 위와 같이 기존에 촬영된 VR Source(동영상)이 필요하다. (Googling을 하면 많이 나와 있으니 참고하시길. ) 영상은 가로-새로 360도로 동시에 촬영되다 보니 위와 같이 왜곡된 형태를 보인다. 이 영상은 적당한 크기의 사각형으로 나눈뒤 이를 Non-Ridig Prespective Transform 방식..
[Android] SurfaceView로 구현한 App에 Appium 사용하기 Android에서 Appium을 이용한 UI Automation User Custom Canvas 혹은 SurfaceView를 이용한 Application을 개발한 경우, 자동화 테스트를 위해 OpenCV를 많이 이용한다. (이미지를 비교하여 일정 이상의 확률 Threshold → Element를 찾고, 이를 이용하여 테스트하는 방법) SurfaceView를 이용하는 게임이나 혹은 NativeUI를 직접 그리는 Application의 경우가 그렇다. 반면 Android Native UI를 이용한 APP의 경우 Appium을 이용하여 자동화 테스트를 진행하기 위해 특별히 추가해야할 작업은 없다. Android에서는 Native UI를 사용하거나 Webview를 이용한 Hybrid App인 경우, 접근성(A..
Android Minimum API 별 버전 빌드하기 0. Java의 Pre-Processing 전처리기 부재 기본적으로 자바에서는 전처리기를 지원하지 않는다. 물론 다른 여러가지 방법을 이용하여 전처리기와 유사한 동작을 끌어낼 순 있지만, 전반적인 프로젝트 관리를 위해서는 자바가 원래 지향하고자 하는 방식(Virtual Machine/ Bytecode) 을 따르는 것이 맞다. 그럼에도 불구하고 안드로이드 스튜디오에서 작업을 할 때 전처리기는 아니지만 버전을 분리하기 위한 방법을 소개한다. 1. Android Module추가, sourceSets 이용하여 코드 분리 각각 Android Module은 개별적인 Build.gradle 을 가지고 있기 때문에 끌어오는 Source도 분리해 낼 수 있다. 예제) Minimum API19와 16을 분리하는 경우 아래..
AndroidX Runtime Exception on Android 4.4.2 AndroidX Runtime Exception 해결 (Multidex / API19 / Android 4.4.2) 1. Pre-Condictions - AndroidX로 Migration https://developer.android.com/jetpack/androidx/migrate - 해당 Application에서 Multidex를 사용 Multidex의 버전이 2.0.0 으로 Refactoring 됨 - Device가 4.4.2(JellyBean) API19 를 사용 API20부터는 Dalvik이 아닌 ART를 사용하기 때문에 MultiDex를 사용할 필요가 없음. 따라서 API20 이후에는 본 Runtime Exception이 발생하지 않음. 2. 발생하는 Runtime Exception jav..
V8 안드로이드 버전 빌드 V8 안드로이드 버전 빌드 소스를 받아온다 (gclient) 1.1 기본 소스를 받는다. Git과 Depot tool을 설치하고 GIT을 이용해 받는다. > gclient V8소스를 받을 위치로 이동한 뒤 -> 여기까지는 기본적인 소스만 받게 됨. Android(+종속되어 있는 NDK 등 추가파일) && 5.5 버전을 받기 위해서 추가적인 작업이 필요함 현재 Branch는 Master이기 때문에 최신버전(5.9)를 빌드하게 됨 따라서 Branch를 5.5로 변경 > git reset --hard (필요하면) > git checkout -B 5.5-lkgr 1.2 Dependency가 있는 소스를 추가로 받는다. .gclient에 target os 설정한다. ['android'] (.gclient 파일은 ..