본문 바로가기

Android

[2일차]안드로이드 빌드과정

Domain Specific Language


환경변수에 관한 명세. 이것도 랭귀지다.



apk 빌더.


믈래스 파일 들을 dex로 변환 apk빌더가 리소스들을 같이 합쳐서 

jar 파일은 menifest를 만든다. 



달빅 vm이 아니라 바이너리코드로 변환해서 올라간다. 

누군가 빌드뭐 하라고 해줘야 한다고 알려줘야 한다. 그게 gradle이다. 이 빌드 툴을 이욯해서 build 한다. 


gradle

gradle은 한개만 있는게 아니라

프로젝트에 대한 gradle
모듈에 대한 gradle 
두개가 있다. 

프로젝트에 대한 gradle

 - buildscript 빌드할때사용하는 스크립트 안에 repositories(저장소)에서 dependecies에 있는 걸 빌드할거야 allprojects에 j center()에 있는건 다 이용할 수 있어 .

module.app 구성 ㅋㅋㅋ
apply plugin: 'com.android.application'//얘를 가지고 구동을 하자

android {//이 안드로이드 정보를 apply안에 줘야한다. 이렇게 android{ ...} 이런식으로 정의하는 것은 domain specific languge라고 하는 DSL이라 한다. 결국 환경변수 정의 .
compileSdkVersion 23 // 일반적으로는 가장 높은 버전을 쓴다. import가 안될때, 다운받지 말고, 이걸 수정하자. compile할때, 어떤 버전을 기반으로 할 것인가.
buildToolsVersion "24.0.0" //버전을 바꿀때,

defaultConfig {
applicationId "com.example.tacademy.myapplication"//패키지명, andorid application Id
minSdkVersion 15
targetSdkVersion 23 //안드로이드 단말한테 api버전이 상위 버전이어도 설정한 값처럼 돌아가도록 설정하는거. 6.0은 런타임 퍼미션 설정법이 다르다. 이 버전을 낮추면 된다.
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}

dependencies { //이 앱이 사용하는 것은 이러이러한 것이다.
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.4.0'
}