본문 바로가기

안드로이드

Android 인터뷰 20선 - 2

반응형

https://medium.com/@yogitavarsani/top-20-android-interview-question-for-beginners-94e734c62920

 

Top 20 Android Interview Question For Beginners .

1. What is the life cycle of Android activity?

medium.com

11.  애플리케이션 크래쉬 오류가 자주날때 문제를 해결할 수 있는 기술은 무엇입니까?

(what are the troubleshooting techniques you can follow if an application is crashing frequently?)

호환성 체크:

애플리케이션이 OS 와 호환되지 않을 가능성이 있습니다.

메모리 관리:

- 모바일 장치에는 메모리 공간이 제한되어 있으므로 애플리케이션이 제대로 동작하도록 메모리 공간을 확보할 수 있습니다.

 

12. 안드로이드 lanch mode 대해서 설명해보세요.

(Explain different launch modes in Android.)

standard:

시스템은 Activity가 시작된 작업에 활동의 새 인스턴스를 생성하고 인텐트를 인스턴스로 라우팅합니다. Activity는 여러 번 인스턴스화 될 수 있고 각 인스턴스는 서로 다른 작업에 속할 수 있으며 한 작업에는 여러 인스턴스가 있을 수 있습니다.

singleTop:

Activity의 인스턴스가 이미 현재 작업의 맨 위의 있으면 시스템은 활동의 새 인스턴스를 생성하지 않고, onNewIntent() 메서드를 호출하여 인텐트를 기존 인스턴스로 라우팅합니다. Activity는 여러 번 인스턴스화될 수 있고 각 인스턴스는 서로 다른 작업에 속할 수 있으며 한 작업에는 여러 인스턴스가 있을 수 있습니다.

singleTask:

시스템이 새 작업을 생성하고 새 작업의 루트에 있는 활동을 인스턴스화 합니다. 그러나 Activity의 인스턴스가 이미 별도의 작업에 있다면 시스템은 새 인스턴스를 생성하지 않고 onNewIntent() 메서들르 호출하여 인텐트를 기존 인스턴스로 라우팅합니다. Activity 인스턴스가 한 번에 하나만 존재할 수 있습니다.

singleInstance:

singleTask 와 동일하지만 시스템이 인스턴스를 보유한 작업으로는 어떤 다른 Activity 도 실행하지 않는다는 점이 다릅니다. Activity 는 항상 자체 작업의 단 하나의 유일한 멤버입니다. 이 Activity 로 시작된 모든 Activity 는 별도의 작업으로 열립니다.

13. 컨테이너란?

Android 는 View 컨테이너 클래스모음을 제공합니다. 이러한 클래스를 레이아웃이라고 하며 실행 중에 코드에서 변경할 수 없는 XML파일 형식으로 정의됩니다. Android SDK 에서 제공하는 레이아웃 관리자는 LinearLayout, RelativeLayout, FrameLayout, AbsoluteLayout, GridLayout, TableLayout 입니다.

14. 브로드 캐스트 리시버랑 무엇이고 어떻게 구현하나요?

브로드캐스트는 불특정 다수에게 송신을 하고 필요한 사람은 수신하는 구조이다. 

어떤걸 수신할 지 등록하는 과정이 필요하다. IntentFilter 를 통해 지정할 수 있다.

public class MyReceiver extends BroadcastReceiver 
{
    public void onReceive(context,intent){}
}

https://brunch.co.kr/@mystoryg/48

 

브로드캐스트 리시버 (BroadcastReceiver)

4대 컴포넌트 | 브로드캐스트 리시버  (BroadcastReceiver) 브로드캐스트는 단어 그대로 방송을 하는 것이다. 방송의 특징을 생각해보면 방송국은 불특정 다수에게 송신을 하고 필요한 사람은 수신하

brunch.co.kr

 

15. Serializable 과 Parcelable 을 비교해보세요. 어떤 것이 안드로이드에 더 적합한가요?

Serializable

표준 Java 인터페이스
Serializable 은 해당 클래스가 직렬화 대상이라고 알려주기만 할 뿐 어떠한 메서드도 가지지 않는 단순한 마커 인터페이스이기에 사용자는 매우 쉽게 사용할 수 있다.
내부적으로 reflection을 사용하고 이는 처리 과정 중 많은 추가 객체를 생성함을 의미한다. 생성된 추가 객체들은 GC의 타겟이 되고 GC의 과도한 동작으로 성능 저하 및 배터리 소모로 이어진다.

Parcelizable

직렬화를 위한 인터페이스
Android SDK 인터페이스
reflection 을 사용하지 않음.
IPC 에 최적화된 기능 제공

https://velog.io/@jaeyunn_15/Android-Parcelable-vs-Serializable

 

[Android] Parcelable vs Serializable 우린 뭘 써야할까?

차이를 알고 쓰자.이 글은 Parcelable vs Serializable , 정말 Serializable은 느릴까? 해당 글을 읽고 작성 되었으며 일부를 참고하고 있습니다.평소 Object를 Intent를 통해 넘길 때 너무 자연스럽게도 parcelable

velog.io

 

16. Android 에서 사용하는 Database 는 무엇이며, 클라이언트-서버 Database 관리 시스템과 어떻게 다릅니까?

Android 에서 사용하는 DB는 SQLite입니다. SQLite 엔진은 서버리스, 트렌잭션 및 자체 포함형입니다. 서버가 아니라 응용프로그램에 넣어 사용하는 비교적 가벼운 데이터베이스이다. 데이터를 저장하는데 하나의 파일만을 사용하는 것이 특징이다.

17. Content Provider 는 무엇이고 어떻게 구현하나요?

앱이 데이터를 다른 앱과 공유하는 것을 도와줍니다. Content Provider 는 DB 와 유사하게 query, insert, update, delete 등의 API를 제공한다. 물론 내부적으로 SQLite와 같은 DB 를 사용하여 데이터를 관리해야 합니다.

public class MyContentprovider extends ContentProvider 
{
 public void onCreate(){}
}

18. JobScheduler 란 무엇인가?

백그라운드 동작을 최적화하기 위해 소개됨.
JobInfo를 통해 Job의 실행 조건을 설정해 JobScheduler 에 등록
Jobscheduler 의 새로운 대안은 WorkManager 로, 앱 프로세스 유무 상관없이 완료가 보장되어야하는 백그라운드 작업을 예약할 수 있는 API 입니다.

19. Android 센서 사용과 관련된 Java 클래스에 대해 설명하시오.

Sensor class : 

이 클래스는 특정 센서의 인스턴스를 만드는 데 도움이 됩니다. 센서의 기능을 결정할 수 있는 방법을 제공하니다.

SensorManager 클래스:

이 클래스는 센서 서비스의 인스턴스를 만드는데 사용됩니다. 센서 접근 및 나열, 센서 리스너 등록 및 등록 해제등의 방법을 제공합니다.

SensorEvent 클래스: 

이 Java 클래스는 센서 이벤트 개체를 만드는데 사용됩니다. 원시 센서 데이터, 데이터의 정확도, 센서 유형, 이벤트 타임 스탬프 등 센서 이벤트에 대한 정보를 제공합니다.

SensorEventListener 인터페이스 :

이 인터페이스는 센서 값이 변경되거나 센서 정확도가 변경될 때 센서 이벤트 알림을 수신하는 두개의 콜백 메서드를 만드는데 사용됩니다. 정확도가 변경될 때 호출되는

void onAccuracyChanged(Sensor sensor, int accuracy)

와 센서값이 변경될 때 호출되는 

void onSensorChanged(SensorEvent event)

가 있습니다.

20. dex파일의 의미는 무엇입니까?

Android 프로그램은 DVM에 의해 .dex 파일로 컴파일된 다음 장치의 .apk 파일로 압축됩니다. dex 파일은 자바로 작성된 컴파일된 애플리케이션을 번역하여 생성됩니다. dex 는 효과적인 저장 및 메모리 매핑가능 실행에 최적화된 형식입니다.

반응형

'안드로이드' 카테고리의 다른 글

Compose 성능 최적화 (Donut hole, 도넛홀)  (1) 2023.10.04
Android의 Touch Event 전달  (0) 2023.01.25
안드로이드 인터뷰 면접 질문 20선! - 1  (0) 2022.09.18
Android, Compose 왜 생겼을까?  (0) 2022.07.29
AttributeSet  (0) 2022.07.09