일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 자바 다형성
- rxjava hot observable
- ar vr 차이
- android retrofit login
- 스택 자바 코드
- 안드로이드 유닛테스트란
- 2022 플러터 설치
- 안드로이드 유닛 테스트
- 안드로이드 레트로핏 사용법
- 안드로이드 라이선스
- 객체
- 서비스 쓰레드 차이
- 서비스 vs 쓰레드
- 2022 플러터 안드로이드 스튜디오
- jvm 작동 원리
- rxjava disposable
- 안드로이드 유닛 테스트 예시
- jvm이란
- 멤버변수
- 클래스
- 큐 자바 코드
- 스택 큐 차이
- ANR이란
- 안드로이드 레트로핏 crud
- 플러터 설치 2022
- 안드로이드 라이선스 종류
- android ar 개발
- Rxjava Observable
- rxjava cold observable
- 안드로이드 os 구조
- Today
- Total
목록전체 글 (1108)
나만을 위한 블로그
코딩 테스트 문제 힌트를 보다가 모듈로 연산과 mod라는 키워드가 나오는데 이 키워드가 생소해서 정리한다. https://en.wikipedia.org/wiki/Modulo Modulo - WikipediaFrom Wikipedia, the free encyclopedia Computational operation In computing and mathematics, the modulo operation returns the remainder or signed remainder of a division, after one number is divided by another, the latter being called the modulus of the opeen.wikipedia.org모듈로 연산은 한 수..
뷰 생명주기는 TextView, Button 등 View가 생성되고 액티비티 / 프래그먼트에 연결되고 최종적으로 소멸되거나 분리되는 동안 거치는 생명주기 이벤트를 나타낸다.뷰 생명주기를 이해하면 개발자가 뷰의 초기화, 렌더링, 소멸을 관리하고 사용자 작업 or 시스템 이벤트에 응답해서 뷰 생명주기에 따라 커스텀 뷰 구현, 적절한 때 리소스를 폐기하는 것에 도움이 된다. View 생성 (onAttachedToWindow) : View가 하드코딩 방식으로 인스턴스화되거나 XML 레이아웃에서 인플레이션되는 단계. 리스너 설정 및 데이터 바인딩과 같은 초기 설정 작업이 수행된다. onAttachedToWindow()는 View가 부모 뷰에 추가되고 화면을 렌더링할 준비를 마쳤을 때 호출됨Layout 단계 (on..
액티비티, 서비스, 브로드캐스트 리시버, 컨텐츠 프로바이더는 안드 앱이 시스템, 다른 앱과 상호작용할 수 있게 하는 필수 구성요소기 때문에 4대 컴포넌트로 불린다이런 컴포넌트는 앱 생명주기를 관리하고 동작을 정의하며 프로세스 간 통신을 가능하게 해서 안드 프로세스, 앱 생명주기 모델과 밀접하게 연결된다해당 컴포넌트들이 4대 컴포넌트로 불리는 이유는 프로세스와 밀접한 관련이 있기 때문이다 액티비티 : Activity는 사용자 인터페이스가 있는 단일 화면을 나타낸다. 사용자 상호 작용의 진입점이며 안드로이드 프로세스 생명주기와 밀접하게 연결되어 있다. 사용자가 앱을 열면 시스템은 앱의 프로세스에서 Activity를 시작한다. 프로세스가 종료되면 Activity는 소멸되고, 앱을 다시 시작하면 새 프로세스가 ..
프로세스 작동 방식 앱이 시작되면 OS는 리눅스 fork() 시스템 함수를 호출해 해당 앱을 위한 새 프로세스를 만든다. 각 프로세스는 달빅 또는 ART 가상 머신의 고유 인스턴스에서 실행돼 안전하고 독립적인 실행을 보장한다.안드로이드는 각 프로세스에 고유한 리눅스 사용자 id(UID)를 할당해 권한 제어, 파일 시스템 격리를 포함한 엄격한 보안 경계를 적용한다. 앱 컴포넌트와 프로세스 연결 기본적으로 앱의 모든 컴포넌트는 같은 프로세스 안에서 실행되며 대부분의 앱은 이 표준을 따른다.개발자는 매니페스트의 android:process 속성을 써서 프로세스 할당을 커스텀 가능하다. 해당 속성은 액티비티, 서비스, 리시버, 프로바이더 같은 컴포넌트에 적용될 수 있어 컴포넌트가 별도 프로세스에서 실행되거나 선..
앱 용량 최적화는 저장 공간이 제한적이거나 인터넷이 느린 유저의 사용자 경험 개선에 필수적이다. 앱 기능, 동작을 손상시키지 않으면서 용량을 줄이기 위해 여러 전략을 쓸 수 있다. 안 쓰는 리소스 제거 이미지, 레이아웃, 문자열 같이 안 쓰는 리소스는 불필요하게 apk, aab 크기를 증가시킨다. 안드로이드 스튜디오의 Lint 같은 도구는 이런 리소스 식별에 도움이 된다.build.gradle 파일에서 shrinkResources를 활성화해서 빌드 프로세스 중에 안 쓰는 리소스를 자동 제거할 수 있다. R8로 코드 축소 활성화 안드로이드의 기본 코드 축소기, 최적화 도구인 R8은 안 쓰는 클래스, 메서드를 제거하며 코드를 난독화해서 더 컴팩트하게 만든다. 프로가드를 적절하게 쓰면 중요 코드나 리플렉션 기..
R8은 안드 빌드 프로세스에서 apk 또는 aab의 크기를 줄이고 런타임 성능을 향상시키기 위해 쓰이는 코드 축소, 최적화 도구다.안드 빌드 시스템에 통합되서 이전의 프로가드를 대체하고 코드 축소, 최적화, 난독화, 리소스 관리를 위한 향상된 기능을 제공한다. 작동 방식 R8은 빌드 단계 중에 앱 코드를 수정해서 아래 목적들을 달성한다코드 축소 : 앱 코드베이스에서 안 쓰이는 클래스, 메서드, 필드, 속성을 없애서 최종 apk 또는 aab 크기 줄임최적화 : 런타임 성능을 향상시키기 위해 코드를 단순화하고 재구성함. 메서드 인라이닝, 중복 코드 제거, 같은 코드 블록 병합 등이 포함됨난독화 : 클래스, 메서드, 필드명을 바꿔서 원래 이름을 모호하게 만들어 리버스 엔지니어링을 더 어렵게 만듬리소스 최적화 ..