기술(Tech, IT)/안드로이드(Android) 8

[Android] HAL (Hardware Abstraction Layer)

Android HAL은 Hardware abstraction의 한 유형이다. 안드로이드 운영체제에서 HAL은 하드웨어 구성요소에 대한 표준화된 인터페이스를 제공해 안드로이드 운영체제와 해당 애플리케이션을 기본 하드웨어의 세부 사항으로부터 효과적으러 분리한다. Android HAL의 작동 방식을 알아보자. 표준화된 인터페이스 : HAL은 카메라, 블루투스 모듈, 센서 등 각 유형의 하드웨어 구성 요소에 대한 표준 인터페이스를 정의한다. 이 인터페이스는 기본 하드웨어의 특정 구현에 관계없이 모든 장치에 일관되게 적용된다. 모듈화 : 각 유형의 하드웨어 구성 요소에는 고유한 HAL 모듈이 있다. 이러한 모듈식 접근 방식은 디바이스 제조업체가 안드로이드 시스템의 다른 부분에 영향을 주지 않고 특정 하드웨어와 인..

[Android] Android SDK(Software Development Kit)

위키에 따르면 : The Android SDK is a software development kit that includes a comprehensive set of development tools. These include a debugger, libraries, a handset emulator based on QEMU, documentation, sample code, and tutorials. : Android SDK는 소프트웨어 개발 도구로 포괄적인 개발 도구들은 포함하고 있다. 여기에는 디버거, 라이브러리, 에뮬레이터, 문서, 샘플 코드, 튜토리얼이 포함돼 있다. SDK라는 용어 자체는 Android에서 많이 쓰이지만 Android에 국한된 용어는 아니다. JDK의 경우 Java Develop..

[Android] Soong Build System

Soong이란? : Build 도구 중 하나인 Make를 대체하기 위해 Android 7.0(누가) 때 소개됨. Android의 build 속도를 높이기 위해 Kati GNU Make clone과 Ninja build system component를 사용. Android 7.0 배포 전까지, Android는 build rule을 형성하고 실행하기 위해 GNU Make를 사용. Make build system은 폭넓게 지원되고 사용됐지만, Android의 규모에선 느리고, 오류체 취약하며(error prone), 유연하지 못하며(unscalable), 테스트하기 어렵다. Soong build system은 Android build에 요규되는 유연함(flexibility)를 제공. Make와 Soong 비교..

[Android] Lean back mode(린백 모드) - 전체 화면 모드 (2)

Lean back 모드는 전체화면 모드 중 하나로 사용자가 비디오 시청을 하는 등의 화면과의 많은 상호 작용이 없는 시나리오를 지원하는 모드다. 같은 전체 화면 모드인 Immersive, Sticky immersive 모드와의 차이점은 상태표시줄이나 내비게이션 바 같은 시스템 바의 사용을 원하면 화면 아무 곳이나 터치하면 된다. Lean back 모드를 활성화하기 위해선, setSystemUiVisibility() 메소드를 호출해 SYSTEM_UI_FLAG_FULLSCREEN flag와 SYSTEM_UI_FLAG_HIDE_NAVIGATION flag를 전달하면 된다. 시스템 바가 다시 나타날 때, 당신은 다른 적절한 UI를 업데이트하는 콜백을 받을 수 있다. 이는 Responding to UI VIsib..

[Android] Immersive mode(이머시브 모드) - 전체 화면 모드 (1)

안드로이드 전체 화면 모드는 Lean back, Immersive, Sticky immersive 3가지를 지원한다. 이 중 Immersive 모드에 대해 알아보겠다. Immersive 모드는 게임이나 갤러리에서 사진 보기, 책이나 발표 슬라이드 같은 페이지가 매겨진 내용물을 보는 것과 같은 사용자가 화면에 많은 몰두를 필요로 하는 상황을 위한 모드다. Lean back 모드와의 차이점은 사용자가 상태표시줄이나 내비게이션 바 같은 시스템 바를 화면에 다시 가져오려면, 기기의 모서리를 훑도록 한 것이다. 화면 임의의 지점이 아닌 모소리를 훑은 의도적인 제스처로 시스템 바 복원을 하도록 한 것은, 사용자가 앱에 집중하는 것을 임의의 터치 등으로부터 방해받지 않도록 하기 윈한 것이다. Immersive 모드를..

[Android] isInMultiWindowMode() 멀티 윈도우 모드 확인 메소드

public boolean isInMultiWindowMode () 액티비티가 현재 멀티 윈도우 모드면 true를 반환한다. Returns true if the activity is currently in multi-window mode. 멀티 윈도우 모드 활성화 여부에 따라 동작이 달라질 때 isInMultiWindowMode()의 반환값을 조건으로 분기 처리가 가능하다. * 멀티 윈도우 모드(Multi-window mode) : 안드로이드에서 지원하는 화면 분할 모드로 아래와 같이 한 화면을 둘로 나누어 사용하는 기능. 출처 - https://developer.android.com/reference/android/app/Activity#isInMultiWindowMode() - https://deve..

[Android] 모션이벤트(MotionEvent)

public final class MotionEvent extends InputEvent implements Parcelable java.lang.Object ↳ android.view.InputEvent ↳ android.view.MotionEvent 움직이는 이벤트(마우스, 펜, 손가락, 트랙볼) 처리에 사용되는 객체. 모션 이벤트는 장치의 종류에 따라 절대 혹은 상대적인 움직임과 같은 데이터를 담고있다. Object used to report movement (mouse, pen, finger, trackball) events. Motion events may hold either absolute or relative movements and other data, depending on the ty..