1. 안드로이드 스튜디오
- Project : 이클립스의 Workspace 개념.
- Module : 이클리스의 Project 개념. 따라서 신규 앱을 생성해야 하는 경우 [마우스우클릭] - [New] - [Module]
--> 신규 앱을 추가하기 위해서는 Module을 만들어야 함.
[모듈 구성 정보]
- Manifests : AndroidManifest.xml 파일을 가지고 있으며, 안드로이드 앱의 패키지명, 앱버전, 앱이름, 앱 권한 등을 설정 할 수 있음.
- Java : 안드로이드 앱의 자바 소스가 위치하며 패키지로 구분하여 구성할 수 있음.
- res : 안드로이드 앱의 리소스에 해당하는 모든 파일이 존재. 이미지(.png), 레이아웃(.xml), 지원언어 설정 등과 같은 것들이 있음.
[빌드 vs 컴파일] 서로 다르므로 주의!!!
안드로이드 스튜디오의 Gradle 빌드 시스템
- 빌드 : 하나의 앱은 단순히 기계어로 변역된 소스로만 구성되지 않음. 기계어로 번역된 소스와 이미지, 레이아웃, 언어 등과 같은 많은 리소스들을 연결시키고, 하나의
설치가 가능한 바이너리 형태의 파일을 만들어 주는 과정. -> 안드로이드 APK(Android Package)파일
- 컴파일 : 소스의 문법을 분석해 컴퓨터가 읽을 수 있는 기게어로 번역.
cf) 이클립스의 Ant, Mavern과 비슷한 쓰임새로 안드로이드 스튜디오에서는 빌드를 자동화할 수 있도록 Gradle을 제공함.
[자주 다룰 그래들 빌드 시스템]
- build.gradle(MyApplication)
- seeting.gradle
- build.gradle(Module:app)
-> Gradle cript를 히용하여 안드로이드 배포인 .APK 파일을 생성할 수 있음.
[AVD 생성]
[디버깅]
- 브레이크 포인터 사용 <- 개발 시에 많이 사용
- 로그캣 사용 : 디버깅을 위해 앱 실행 중에 필요한 정보를 Android Monitor화면에 출력하는 것 <- 앱 배포 후 문제 발생 시에 확인할 수 있는 내용을 사전에 파악하여 남겨 놓을 때 사용.
○ Log.v(String '태그', String '출력할 내용') : 로그레벨(Verbose) - 중요하지 않는 내용을 표시하는 용도로 사용.
○ Log.i(String '태그', String '출력할 내용') : 로그레벨(info) - info의 줄임말로 실행 중인 앱에서 확인이 필요한 정보가 있는 경우에 해당
○ Log.d(String '태그', String '출력할 내용') : 로그레벨(Debug) - debug의 줄임말로 디버깅을 위해 필요한 내용을 표시하기 위해 사용.
○ Log.w(String '태그', String '출력할 내용') : 로그레벨(Warn) - warn의 줄임말로 실행 중인 앱에서 주의가 필요한 위치에 추가.
○ Log.e(String '태그', String '출력할 내용') : 로그레벨(Error) - error의 줄임말로 실행 중인 앱에서 오류가 발생할 수 있는 곳에 추가할 수 있음.
[배포용 설치 파일 = Android Package = APK파일]
- 안드로이드 스튜디오에서 앱을 실행만 시켜주면 안드로이드 기기에서 앱이 설치됨.
why? 각 모듈의 build - outputs 경로 확인.
- Android project -> Compliation and Packaging -> Android Package(.apk) -> Signing -> Device or Emulator
- APK 파일 생성 3단계 : 컴파일 - 패키징 - 서명
※
Signing 단계에서,
JarSigner를 통해 서명이 안료되면, 안드로이드 기기에 설치하는 것은 문제가 없음.
BUT,
구글 플레이 스토어를 통해 배포를 하기 전에는 한 가지 더 진행을 해야 함. 바로 Zipalign.(안드로이드에서 리소스를 읽을 때 좀 더 빠르고 효울적으로 읽기위해서 제공되는 툴)
Zipalign으로 만들어진 .api 파일을 구글 플레이 스토어에 배포하면 됨.
[APK]
1. 실행영역 : dex파일(달빅 실행파일)
2. 설정영역 : AndroidManifest.xml
[AndroidManifest.xml 주요 설정 항목]
○ AndroidManifest 주요 설정
- Package Name : 앱을 구분하는 단위로, 하나의 앱은 중복되지 않은 Package Name을 가져야 함. = 구글 플레이에 중복된 Package Name이 등록될 수 없다.
중복을 일으키지 않기 위해 일반적으로 따르는 Package Name 포맷 ; orgType.orgName.appName.compName
- Version Code : 안드로이드 앱이 단말에 설치될 때, 구글 플레이 스토어에 등록될 때 버전 비교에 사용되는 항목.
1 부터 시작하며.. 앱이 업데이트 버전이 나올 때마다 증가되어야 한다.(예시 : 세자리 추천 4.5.0) [숫자].[숫자].[숫자]
- Version Name : 각 개발사가 가지는 버전 체계로 개발사에서 관리를 위해 사용되는 부분으로, 앱이 업그레이드 되거나 기타 동작을 할 때 영향을 주지 않는다.
- Permission : 안드로이드 앱에 사용할 수 있는 권한을 설정하는 부분. 예시) 인터넷 권한, 연락처 정보,sms 권한 등...
3. 리소스 영역 : 해당 앱이 동작할 때 사용하는 텍스트 문자열, 이미지, 레이아웃을 가리킴.
apk 내의 res 폴더에서 관리됨.
4. 서명 영역 : 파일 정보와 서명 정보가 있음.
- 안드로이드 apk 서명은 공개 키 암호화 방식으로 사용함.(공개 킴 암호화 중 RSA 알고리즘 사용)
'스마트웹앱콘텐츠전문가 > 안드로이드' 카테고리의 다른 글
[안드로이드]프로세스와스레드 (0) | 2018.02.06 |
---|---|
[안드로이드]컴포넌트 (0) | 2018.01.31 |
[6.2]데이터 관리 (0) | 2016.06.02 |
[6.1]액티비티,인텐트 (0) | 2016.06.01 |
[5.31]사용자 알림(토스트, 알림, 다이얼로그) (0) | 2016.05.31 |