
1.안드로이드는 리눅스 운영체제 안에서 동작한다.
안드로이드는 리눅스 기반의 오픈소스 소프트웨어 스택이다.
안드로이드 플랫폼의 기초는 리눅스 커널이다.
2.안드로이드는 사용하는 플랫폼 버전이랑 API 레벨이 존재한다.
API 레벨에 따라서 새로운 기능이 추가되거나 코드 전체를 변경해야 할 수도 있다.
1.코드는 간단하게 소스코드 작성 => 설치 파일 생성 => 업로드 => 앱 등록 => 앱 설치 => 실행 을 거쳐 스파트폰에서 실행된다.
2.안드로이드 스튜디오에서 소스 코드를 작성하고 > 빌드를 통해 소스코드를 바이트코드로 변환하고 APK 매니저에서 키 스토어와 조합해서 최종 설치파일을 생성한 뒤 > 플레이스토어에 업로드를 하고, 앱을 검수 > 플랫폼 버전체크 > AOT, JIT 컴파일
3. 리눅스에서의 빌드는 컴파일 + 링크
4. 안드로이드에서의 빌드는 1단계 바이트코드 (어플리케이션모듈<소스코드,리소스>) + (디펜던시<라이브러리모듈>) 을 한번에 Dex로 컴파일 2단계 APK 생성 (1단계에서 만들어진 Dex파일 + 패스워드 조합해서 APK로 만듦) 으로 구성되어있다.
4-1 안드로이드가 두번 컴파일 하는 이유 : AOT 컴파일하면 설치 시 모두 컴파일 되어서 사용 속도가 빠르지만 용량 많이 차지
1.안드로이드가 제공하는 모든 버전과 기기에서 동작하는 라이브러리
2.많은 버전으로 코드를 여러번 작성해야하는 문제를 해결하기위해 만들어짐
3.약 90개 정도의 라이브러리 제공
4.Collection, ConstraintLayout, Fragment, RecyclerView, Viewpager2, Perference, Room < 입문단계에서 꼭 필요한 라이브러리
단어장
리눅스 커널 (Linux kernel) : 리눅스 운영체제의 주요 구성요소이자 컴퓨터 하드웨어와 프로세스를 잇는 핵심 인터페이스
빌드 : 소스 코드를 APK파일로 만드는 것 (소스코드를 기계어로 변환한 다음에 라이브러리와 연결해서 실제 실행 파일로 만드는 과정)
바이트 코드 : 우리가 작성한 코드를 AOT에서 이해 할 수있도록 변환한 코드
오늘은 내배캠 사전캠프 첫번째날
본 캠프 시작하면 최소 12시간씩 공부해야되는데 미리 습관을 들이자.
입시 할 때 하루 열네시간 피아노 치던거 끔찍했는데 다시 할 수 있을까?
벌써 엉덩이 아픈듯
아직 승인이 덜 나서 강의 못듣고 제공된 자료만 읽으면서 공부했는데 글로만 읽으니까 생소한 단어들이 대부분이라 거의 뭐 영어로 된 글 소리만 내서 읽는 것 처럼 바로 이해가 잘 안돼서 하나하나 검색하면서 다시 읽고 또 읽고 해야돼서 많지 않은 양인데도 엄청 오래걸린다.
일단은 다 이해하려고 하기보단 편하게 읽고 이해 되는 것만 이해하면서 넘어가고 나중에 더 배우고 다시 읽고 해야될 것 같다.