분류 전체보기
-
Anr 예제안드로이드 학습/Android 기술면접 대비 코드 2024. 1. 23. 10:48
Anr 설명 : https://from-android-to-server.tistory.com/41 github : https://github.com/tvroom88/AIO_Android_Kotlin_Support_Material/tree/main/AnrTest/AnrTest 안드로이드 개발자 페이지에서 보면 다음 조건 중 하나가 발생하면 앱과 관련한 ANR이 트리거됩니다. 입력 전달 타임아웃: 앱이 입력 이벤트(예: 키 누름 또는 화면 터치)에 5초 이내에 응답하지 않은 경우 서비스 실행: 앱에서 선언한 서비스가 몇 초 이내에 Service.onCreate() 및 Service.onStartCommand()/Service.onBind() 실행을 완료할 수 없는 경우 Service.startForegrou..
-
안드로이드 프로세스 및 어플리케이션 생명주기안드로이드 학습/Android 기술면접 대비 2024. 1. 18. 16:30
안드로이드에서 앱을 다운받고 실행되는 과정에서 여러 앱이 동시에 사용되거나 캐시 및 데이터가 추척되는 이유 등으로 메모리가 부족할 수 있다. 안드로이드에서는 메모리가 부족할 경우 기존에 실행되고 있던 앱을 종료시키는 과정을 거쳐 메모리를 확보한다. 앱을 종료시키는 기준은 각 앱별로 프로세스의 중요도를 기준으로 중요도가 낮은순부터 앱을 종료시킨다. 그래서 안드로이드 프로세스에 대해 공부할 필요성이 있다. 프로세스의 4가지 유형1. Foreground process (포그라운드 프로세스)사용자가 현재 하고 있는 작업에 필요한 프로세스입니다. 다음 조건 중 하나라도 해당하면 프로세스가 포그라운드에 있는 것으로 간주됩니다. 현재 유저가 사용하고 있는 process이며, 가장 높은 우선순위를 가진다. 화면 상단..
-
Activity and Activity LifeCycle (생명주기)안드로이드 학습/Android 기술면접 대비 2024. 1. 8. 11:38
참고 : https://developer.android.com/guide/components/activities/activity-lifecycle?hl=ko 사용자가 앱을 켜고, 앱을 벗어난 이후 다시 돌아오거나 떠는 앱을 종료하는 다양한 활동의 과정에서 Activity 인스턴스는 라이플 사이클에서 다양한 상태를 거친다. Activity 클래스는 활동이 상태 변화를 알아차릴 수 있는 여러 콜백을 제공합니다. 예를 들어 스트리밍 동영상 플레이어를 빌드하는 경우, 사용자가 다른 앱으로 전환할 때 동영상을 일시중지하고 네트워크 연결을 종료할 수 있습니다.사용자가 돌아오면 네트워크를 다시 연결하고, 사용자가 일시중지한 지점에서 동영상을 다시 시작하도록 허용합니다.즉, 각 콜백은 상태 변화에 적합한 특정 작업을..
-
Activity와 Fragment의 차이점 및 사용 이유안드로이드 학습/Android 기술면접 대비 2024. 1. 8. 09:03
1. Activity : Activity는 Android의 4대 Component중 하나로 사용자에게 실제로 보이며, 사용자와 상호 작용하는 화면을 말한다. Activity는 하나 이상의 View또는 ViewGroup을 반드시 가지고 있어야 하며, 한 번에 하나의 Activity만 Disaplay할 수 있다.더보기ViewGroup 과 View 란???? ViewGroup :ViewGroup은 n개의 View를 포함할 수 있는 Container이다.우리가 자주 쓰는 레이아웃이 ViewGroup에 해당한다. ex) LinearLayout, ConstraintLayout ...View :안드로이드에서 사용자가 눈으로 보는 모든 것은 View이다. 화면의 기본적인 컴포넌트라고 얘기 할 수 있다. TextView..
-
Rxjava안드로이드 학습/Android 기술면접 대비 2024. 1. 5. 17:13
RxJava란? RxJava란 ReactiveX(Reactive Extension)를 자바로 구현한 라이브러리다. RxJava는이벤트 처리 및 비동기 처리의 구성에 최적화된 라이브러리이다. RxJava는 반응형 프로그래밍(Reative Programming)을 하기 위해 만들어졌습니다. 그럼 반응형 프로그래밍은 무엇일까부터 시작해야겠습니다. ReactiveX: ReactiveX는 관찰 가능한(Observable) 스트림을 사용하는 비동기 프로그래밍을 위한 API이다. 반응형 프로그래밍이란? 반응형 프로그래밍(Reactive Programming)이란 주변 환경과 끊임없이 상호 작용을 하는 프로그래밍을 의미한다. 환경이 변하면 이벤트를 받아 동작하도록 만드는 프로그래밍 기법을 말한다. 반응형 프로그램은 외..
-
오버라이딩과 오버로딩안드로이드 학습/자바 2024. 1. 4. 11:19
오버라이딩(Overriding) 부모 클래스의 메서드를 하위 클래스가 재정의 하는 것이다. 메서드의 이름은 물론 파라메터의 갯수나 타입도 동일해야 하며, 주로 부모 클래스의 동작을 상속받은 자식 클래스에서 변경하기 위해 사용된다. class Animal { public void makeSound() { System.out.println("동물이 소리를 낸다"); } } class Dog extends Animal { // 부모 클래스의 makeSound 메서드를 오버라이딩 @Override public void makeSound() { System.out.println("멍멍"); } } class Cat extends Animal { // 부모 클래스의 makeSound 메서드를 오버라이딩 @Overr..
-
자바 접근 제어자안드로이드 학습/자바 2024. 1. 4. 10:48
제어자란(modifier)? 제어자란 클래스와 맴버의 선언 시부가적인 의미를 부여하는 키워드를 의미합니다. 접근 제어자(access modifier) - 1개만 사용 가능 기타 제어자 - 2개 이상 조합해서 사용 가능 접근 제어자란? 자바에서는 정보 은닉을 위해 접근 제어자라는 기능을 제공하고 있습니다. 접근 제어자에 따라 클래스 외부에서 접근을 막을 수도 허용할 수도 있습니다. private: 같은 클래스 내에서만 접근 가능합니다. default: 같은 패키지 내에서만 접근할 수 있습니다. protected: 같은 패키지 내의 클래스나 다른 패키지의 상속 관계에 있는 하위 클래스에서 접근할 수 있습니다. 그 외에 다른 패키지에서 접근이 제한됩니다. public: 가장 넓은 범위의 접근 제어자로, 어떤 ..
-
[코틀린 완벽 가이드] 5.1 코틀린을 활용한 함수형 프로그래밍코틀린 공부/코틀린 2024. 1. 3. 08:14
차례 : 5.1.1 고차함수 5.1.2 함수 타입 5.1.3 람다와 익명 함수 함수형 프로그래밍은 프로그램 코드를 불변 값을 반환하는 함수의 합성으로 구성할 수 있다는 아이디어를 바탕으로 한다. 함수형 언어는 함수를 일급 시민(first class) 값으로 취급한다. 이 말은 함수를 다른 일반적인 타입의 값과 똑같이 취급한다는 뜻이다. 특히 일급 시민이라는 말에는 변수에 값을 대입하거나 변수에서 값을 읽을 수 있고 함수에 값을 전달하거나 함수가 값을 반환할 수 있다는 뜻이 들어있다. 이런 성질은 함수인 값을 데이터와 마찬가지로 조작할 수 있는 고차 함수라는 함수를 정의할 수 있게 해주며, 코드 추상화와 합성(Composition)이 더 쉽게 가능한 유연성을 제공해준다. 5.1.1 고차함수 앞에서 이미 람..
-
[코틀린 완벽 가이드] 4장 클래스와 객체 다루기 (4.4 객체)코틀린 공부/코틀린 2023. 12. 30. 22:27
4.4 객체 코틀린에서 객체 선언은 클래스와 상수를 합한 것이며 객체 선언을 통해 싱글턴, 즉 인스턴스가 단 하나만 존재하는 클래스를 만들 수 있다. 그리고 자바 익명 클래스와 비슷한 역할을 하는 객체 식도 살펴본다. 4.4.1 객체 선언 코틀린은 어떤 클래스에 인스턴스가 오직 하나만 존재하게 보장하는 싱글턴 패턴을 내장하고 있다. 코틀린에서는 클래스와 비슷한 방법으로 싱글턴을 선언한다. 다만 class 대신 object라는 키워드를 사용한다. object Application { val name = "My Application" override fun toString() = name fun exit() {} } 이런 객체 선언은 클래스를 정의하는 동시에 클래스의 인스턴스를 정의하는 것이기도 하다. fu..
-
[코틀린 완벽 가이드] 4장 클래스와 객체 다루기 (4.3 단순한 변수 이상 인 프로퍼티)코틀린 공부/코틀린 2023. 12. 30. 13:13
4.3 단순한 변수 이상 인 프로퍼티 4.3.1 최상위 프로퍼티 클래스나 함수와 마찬가지로 최상위 수준의 프로퍼티를 정의할 수 도 있다. 이런 경우 프로퍼티는 전역 변수나 상수와 비슷한 역할을 한다. val prefix = "Hello, " // 최상위 불변 프로퍼티 fun main(){ val name = readLine() ?: return println("$prefix$name") } 이런 프로퍼티에 최상위 가시성(public / internal / private)을 지정할 수 있다. 4.3.2 늦은 초기화 클래스를 인스턴스화할 때 프로퍼티를 초기화해야 한다는 요구 사항이 불필요하게 엄격할 때가 있었다. 그러나 어떤 프로퍼티는 클래스 인스턴스가 생성된 뒤에, 그리고 사용되는 시점보다 이전에 초기화되..