Android/Development Tips

Android/Development Tips

[Android] Foreground 활용하기, 터치 이벤트 쉽게 적용하기

보통 안드로이드 개발을 하다보면, 사용자가 터치해야 하는 영역을 커스텀하여 개발하는 일이 잦다. 보통 Selecter 같은 것을 활용하여, background(후경)에 적용하여 해결하지만, 가끔 하위 뷰에 터치 이벤트가 가려지는 경우가 있다. 그래서 appcompat-v7 라이브러리 에서 터치 이벤트를 쉽게 적용할 수 있도록 ?attr/selectableItemBackground, ?attr/selectableItemBackgroundBorderless 등 제공하는 속성을 이용하여 Foreground(전경)에 넣어주게 되면 터치 이벤트가 뷰의 가장 앞에 위치하게 되어 해결할 수있다. 참고로 Foreground 속성은 FrameLayout에서 제공하며, 이를 상속 받는 모든 것들에 적용할 수 있습니다.

Android/Development Tips

[펌] Activity 스택 intent flag

FLAG_ACTIVITY_BROUGHT_TO_FRONT시스템에서 설정하는 값이며, 같은 task에 Activity가 존재할 경우에 Activity의 실행모드가 singleTask이면 자동으로 설정됨 FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET테스크가 리셋될 때 플래그가 사용된 액티비티부터 위의 액티비티가 모두 삭제됩니다.예) ABCD -> B call - > AB FLAG_ACTIVITY_RESET_TASK_IF_NEEDED플래그의 설정에 의해 리셋이 이루어지게 됩니다.시스템에 의해 홈에서 사용자에 의해 백그라운드에 있던 태스크가 포그라운드로 전환될때에 항상 붙게 됨니다. FLAG_ACTIVITY_RESET_TASK_IF_NEEDED인텐트를 이용하여 새로운 테스크를 생성하거나 존재하고..

Android/Development Tips

Android NDK

보통 크게 2 가지로 나뉜다. 정적 라이브러리 (.a)동적 라이브러리(.so) 정적 라이브러리는 object file의 모음이며, .a 확장자를 가진다. 컴파일 시 실행 파일에 포함된다.동적 라이브러리는 .so 확장자를 가지며 컴파일 시에 실행 파일에 적재되지 않으며, 런타임에 필요할 때 로드하여 사용한다. 또한 제공하는 ABI(Application Binary Interface)도 armeabi, armeabi-v7a, arm64-v8a, x86, x86_64, mips, mips64로 다양하다.대부분의 안드로이드에서는 ARM 계열의 CPU를 사용하기 때문에 안드이드 NDK를 빌드 시에 armeabi, armeabi-v71, arm64-v8a로 대부분 빌드된다.일부기기에서는 x86용이 적용되기도 한다...

Android/Development Tips

Measuring of String in android

Paint p = new Paint(); Rect bounds = new Rect(); p.getTextBounds(labelString, 0, labelString.length(), bounds); float height = p.measureText(labelString); int width = bounds.width();

Android/Development Tips

안드로이드 프로세스와 스레드

요즘 일하면서 스레드를 정말 많이 사용하는데, 평소에 잘 사용한다고 생각하고 있었는데 Rx에서 제공하는 스레드(AndroidSchedulers.MainThread, Computation.Io 등등 너무 편해요..)를 사용하다보니 예전 기억이 긴가민가해 이번을 기회로 다시 정리 할까 한다. 기본적으로 안드로이드에서의 프로세스와 스레드 개념은 리눅스, 윈도우 등과 같은 운영체제에 배운 것과 크게 차이점이 없다. 하지만 단순히 프로세스와 스레드뿐만 아니라 안드로이드 컴퍼넌트와의 관계까지 함께 이해해야 앱이 어떤식으로 동작하는지 정확히 이해 할 수 있다. 예전에 케이티 하이텔 면접에서 이런 질문을 받았던 것을 기억한다. 혹시 쓰레드와 프로세스의 차이점에 대해 아냐고-그래서 나는 프로세스는 하나의 쓰레드 또는 여..

Android/Development Tips

액티비티와 생명주기

앞선 글에서 액티비티는 사용자와 안드로이드 어플리케이션 간에 인터페이스 역할을 한다고 했었다. 액티비티는 사용자가 보기에는 하나의 화면이지만, 내부적으로는 뷰, 뷰그룹으로 이루어져있다.여기서 뷰란 실제로 사용자에게 보여주는 부분이고, 뷰 그룹은 여러개의 뷰를 묶어 노흔 형태로 보면 된다. 뷰에는 기본적으로 AppcompatImageView, AppcompatTextView, AppcompatEditText 등의 기본적인 화면 구성요소들이 뷰에 포함된다. 또한한 다음 맵, 비디오, 웹 등을 표시하는 고급 구성요소들도 모두 뷰에 포함 된다, 뷰 그룹은 직접적으로 보이지는 않지만 다른 뷰를 담은 컨테이너 역할과 뷰들의 위치를 관리해준다. CoordinatorLayout, ConstrainLayout, Rela..

Android/Development Tips

안드로이드 컴포넌트

실무를 진행하며 안드로이드에 대해 부족한 점이 느껴져 개인 공부를 하며 스스로 중요하다 생각하는 것에 대해서 짧게나마 포스팅 합니다. 안드로이드 컴포넌트는 크게 4가지로 구분됩니다. 1. 액티비티2. 서비스3. 컨텐츠 프로바이더4. 브로드 캐스트/리시버(5. 인텐트를 포함해서 5개로 구분하는 경우도 봤습니다.) 액티비티는 안드로이드를 구성하는 가장 기본적이고, 중요한 컴포넌트로 사용자와 앱 사이의 인터페이스 역할을 담당하고 있습니다.하나의 화면이라고 생각하면 쉽게 이해할 수 있습니다. 앱을 구성하고 있는 "화면" 하나하나가 모두 액티비티라고 볼 수 있습니다. 서비스는 앱을 개발하다보면 가령 사용자의 개입 없이 백그라운드에서 데몬처럼 동작이 필요한 경우가 있는데, 이를 서비스라고 부릅니다.서비스를 설명하는..

Nanamare
'Android/Development Tips' 카테고리의 글 목록 (5 Page)