반응형
Notice
Recent Posts
Recent Comments
Link
NOW OR NEVER
[Android] Application 개발의 개요 본문
반응형
Application
- 안드로이드 스튜디오 최신버전 다운로드 사이트 : https://developer.android.com/?hl=ko
모바일 발전 역사
- 1995년 부터 모바일 컨텐츠 개발 시작
- 컨텐츠 개발 시 각 기업이 사용했던 언어: J2ME(java 기반) :LG telecom, Brew(C 기반) : KT, SKVM(J2ME 확장) - SKT
- 컨텐츠 개발 완료 후 단말기를 맞추는 작업을 해야 했다.
- 1997년대
- 한국
- 김대중 정부 당시 손정의가 중요하다고 한 인터넷, 벤처, 모바일을 중심으로 IT정책 시작
- 김대중 정부 당시처음으로 전국 각지에 인터넷 망이 설치 됨(KT가 설치)
- 일본
- 일본 개발 점유율 가장 높은 것은 도코모 NTT(J2ME)였다
- COC 게임을 일본의 소프트 뱅크가 사가서 안드로이드 버전을 사서 중국에 또 팜
- 한국
- 모바일이 큰 힘을 갖게 된 이유 : 모바일 컨텐츠 시장을 활발하기 위해서 김대중 정부에서 TDMA(통신방식, 직선 방식) ,WIPI(모바일 컨텐츠 보조금), 고사양의 핸드폰을 살 수 있는 정부보조금 정책을 해서 모바일 시장이 변화하면서 한국의 게임 시장이 급성장하게 된다.
- 전세계 27개 국가에서 WIPI 사용 중
- Apple-1이 개인용 피씨 시장을 염
- 스티브 잡스가 세계 최초로 아이 맥 만듦
관련 단어
- TDMA 통신 방식 : 직선 방식이여서 한국의 경우 산과 건물이 많아서 사용 불가 했음
- CDMA 통신 방식: 정부, KT, SKT가 모여 TDMA를 연구해서 CDMA를 만들어냄, 장애물이 있으면 전파를 휘게 만들어서 통신이 가능한 통신 방식
- WIPI : 한국형 3개 통신사 통합 모바일 플랫폼, 원래 한국의 모든 단말기에 있어야 한다는 법안이 있어 해외 휴대폰 브랜드가 팔지 않는다고 거부했었다. 스마트폰이 한국에 들어오는 데 방해가 됐었다. 이후 법안이 폐지되면서 아이폰이 들어와 안드로이드와 함께 사용할 수 있어짐
앱 개발 방식
- Native
- 애플, 구글에서 사용
- 성능이 좋고 만들지 못하는 게 없다.
- hybrid보단 비용 증가
- Hybrid
- codova, Asure(MS), React Native, Flutter 등
- native로 만들어진 후(앱스토어에 올라올 수 있고 사용자가 단말기에 설치 가능) 웹페이지를 통해서 보여줌
- native보다 웹페이지를 통해서 보여주는 것이기 때문에 성능면에서 떨어져서 애니메이션와 컨텐츠 등을 넣지 못하는 제약이 있다.
- 한번만 만들면 모든 서비스 가능
- native를 잘 알아야지만 개발 가능
- 개발 시간과 개발 비용이 줄어듦
Android
개요
- 정해진 방식대로 작업을 해야함
- 여러 양식의 음원들과 동영상 포맷 지원(기본은 음악 mp3, 영상은 mp4)
- 안드로이드 스튜디오라는 개발도구 제공
- 보안 상의 이유로 아무 디바이스나 통신이 가능하지는 않다.
구조
- H/W -application - VM(가상머신) - > OS/Linux
- 숫자가 높아질 수록 하단 단계이다
- 시스템 앱
- 단말기에 기본 탑재되어 있는 것들
- 해당 기능들 뿐만 아니라 다른 어플리케이션의 기능들을 어플리케이션에서 가져다 쓸 수 있다.
- 쉽고 편하게 개발할 수 있게 도와준다.
- 시스템 앱
- Java/Kotlin API
- 개발하기 위한 라이브러리
- Java/Kotlin API
- 3.ART
- 가상머신
- 계속해서 설치하지 않아도 돼서 속도가 빠름
- 단점 : 컨텐츠의 용량이 증가
- 3.Native C/C++
- 구동하기 위한 라이브러리
- 4.HAL
- 구글이 만든 하드웨어 규격
- OS영역(구글이 만듦)과 하드웨어 영역(단말기 회사가 만듦)을 나눠진다
- 안드로이드 뿐만 아니라 컴퓨터, 냉장고 등에 장착되어 있음
- 컴퓨터의 드라이버 역할을 한다고 생각하면 됨
- 애플의 경우는 하드웨어부터 OS부분을 다 만들기 때문에 이부분이 없다.
- 단말기의 하드웨어가 전달하는 명령어를 받아서 변환해서 전달하여 어플리케이션에 사용할 수 있게 함
- 단말기 제조사와 OS를 만든 곳이 다르기 때문에 존재해야 하는 것이다.
- 윈도우의 경우 드라이버라고 생각하면 된다
- 리눅스 커널
- 단말기의 하드웨어를 직접 제어
- OS 부분이라고 생각하면 됨
- 안드로이드에서 컨텐츠를 운영할 수 있는 플랫폼이라고 생각 하면 됨, 하드웨어를 컨트롤하는 부분은 구글이 만들어서 배포
- 리눅스 커널
Android X 라이브러리
- supported Library였다가 변화
- 어플을 만들 때 라이브러리를 포함시켜서 사용자가 다운로드 받으면 단말기 하위 버전도 다 지원하게 할 수 있게 함
- OS를 업데이트 하지 않아도 똑같은 모습으로 앱 서비스를 제공할 수 있게 도와주는 라이브러리
Android Studio
Activity : 눈에 보이는 화면을 관리하는 요소
- Activity 여러 개 = 화면이 여러 개
- 수많은 activity 중 가장 먼저 뜨는 게 알아야 한다
- 이름을 자유롭게 정할 수 있다.
- AndroidManifest.xml에서 activity들 중 android.intent.action.main이 붙어져 있는 intent filter인 activity를 찾아 첫 화면으로 띄운다 - 찾은 클래스의 객체를 생성하여 onCreate 메서드를 호출
패키지 이름
- 구글 플레이 스토어 어플리케이션의 중복된 이름으로 하면 안된다.
- 보통 패키지 이름은 회사 도메인으로 한다.(도메인은 겹칠 수 없으므로)
Minimum SDK : 지원 할 수 있는 최소의 하위 버전
activityMain.xml : 화면 디자인 왼쪽이 눈에 보이는 모양, 오른쪽이 설계도(배치도)
- linear layout - vertical
- id : 화면에 배치된 요소들을 지칭하기 위한 이름(R.id.button : 배치된 요소들 중 id가 button이라는 요소를 지칭)
device manager
- virtual에 있는 기본으로 추가 되어있는 emulator 점 세개 버튼 눌러서 지우기(속도가 느려서 별로 안좋음)
- create Device - pixel2(플레이스토어 표시 있는 걸로 선택 - Triramisu(API Level 보기) 옆 다운로드 버튼 누르기
- physical : 단말기
- virtual에 있는 기본으로 추가 되어있는 emulator 점 세개 버튼 눌러서 지우기(속도가 느려서 별로 안좋음)
settings - tool - emulator - Launch in a tool window를 체크 해제 : emulator가 별도의 창으로 실행한다.
manifest 폴더 - AndroidManifest.xml : ART 가상머신한테 정보를 알려주기 위한 파일 , 안드로이드 4대 구성 요소는 무조건 여기 기록이 되어 있어야 실행이 가능하다.
res 폴더 : 어플리케이션에 사용되는 음악, 이미지 등이 들어 가 있는 리소스 폴더
ETC
- lateinit : 변수 앞에 작성해놓으면 일단 초기화 해놓고 나중에 값을 넣어놓는 것
- 안드로이드 어플리케이션은 독립된 개체가 아니어서 가상머신 art를 실행시켜야 한다.
'Android' 카테고리의 다른 글
[Android] UI 요소 - View 2 (0) | 2023.06.14 |
---|---|
[Android] Compound Component (0) | 2023.06.12 |
[Android] UI 요소 - View (0) | 2023.06.11 |
[Android] LogCat & UI 요소 - Widget (0) | 2023.06.08 |
[Android] UI 요소 (1) | 2023.06.07 |