android-gradle-심오한 내용-5:build type

기본적으로 안드로이드 플러그인은 프로젝트에 debug와release 버전의 응용 프로그램을 자동으로 구축합니다.이 두 버전의 차이는 주로 비개발기에서의 디버깅 기능과 APK의 서명 방식에 나타난다.debug 버전은 공개된name/password로 만든 키로 서명합니다. (이렇게 구축할 때 비밀번호를 입력할 필요가 없습니다.)release 버전은 구축할 때 서명하지 않고 잠시 후에 합니다.
이것은gradle의 BuildType 대상을 사용하여 설정할 수 있습니다.기본적으로 두 개의 BuildType 실례가 생성됩니다. 하나는 debug, 하나는release입니다.Android 플러그인은 이 두 실례를 사용자 정의할 수 있습니다. 물론 다른build type도 만들 수 있습니다.구성은buildTypes라는 DSL에서 수행됩니다.
android {
    buildTypes {
        debug {
            applicationIdSuffix ".debug"
        }


        jnidebug.initWith(buildTypes.debug)
        jnidebug {
            packageNameSuffix ".jnidebug"
            jniDebuggable true
        }
    }
}
위의 코드는 다음 구성을 완료했습니다.
1. 기본 debug Build Type 구성
debug 버전을 < 응용 id > 로 설정하십시오.debug, 이렇게 하면 장치에 debug와release 버전을 동시에 설치할 수 있습니다.
2. 새 BuildType을 만듭니다. 이름은 jnidebug이고 debug BuildType에서 복사하도록 설정합니다.
jnidebug debug 버전의 JNI 구성 요소를 설정하고 다른 패키지 이름 접미사를 추가합니다.
새 Build Types를 만드는 것은 매우 간단합니다.buildTypes 아래에서 initWith를 호출하거나 클립을 사용하여 새로운 요소를 추가하기만 하면 됩니다.다음 표는 구성 가능한 속성과 기본값입니다.
속성 명debug 버전 기본값release 또는 다른 버전 기본값
 debuggable  true  false
 jniDebuggable   false   false
 renderscriptDebuggable  false   false
 renderscriptOptimLevel  3   3
 applicationIdSuffix   null  null
 versionNameSuffix   null  null
 signingConfig   android.signingConfigs.debug  null
 zipAlignEnabled   false   true
 minifyEnabled   false   false
 proguardFile  N/A (set only)  N/A (set only)
 proguardFiles   N/A (set only)  N/A (set only)
Build Types를 사용하여 코드 및 리소스 파일을 구성할 수도 있습니다.모든 Build Type에 대응하는 새 소스셋이 생성됩니다. 이 소스셋은 기본 경로 src//을 사용합니다.이것은 Build Type의 이름이main이나androidTest가 될 수 없으며, 모든 Build Type의 이름은 유일해야 한다는 것을 의미한다.
다른 source sets와 마찬가지로 Build Type의 source set 경로도 구성할 수 있습니다.
android {
    sourceSets.jnidebug.setRoot('foo/jnidebug')
}

또한 모든 Build Type에 대해 새 assemble 작업이 생성됩니다.앞에서 나는 이미 assemble Debug와 assemble Release 임무를 말했는데, 여기에서 이 두 임무의 출처를 설명할 수 있다.debug와release Build Types가 미리 만들어졌을 때, 그들에 대응하는assemble 작업도 함께 만들어집니다.
위의build.gradle 코드 세션은 assemble Jnidebug 작업을 만들 것입니다. assemble 작업도 assemble Jnidebug 작업에 대한 의존을 추가합니다. assemble Debug와 assemble Release 작업에 대한 의존과 같습니다.
알림: assembleJnidebug 작업을 실행하려면gradle aJ 명령을 사용하십시오.
장면을 사용할 수 있습니다.
debug 모드에서만 사용할 수 있는 권한은release 모드에서 사용하지 않습니다.
debug 시 다른 구현 사용하기
debug 모드에서는 서로 다른 자원을 사용합니다. (예를 들어 자원 값이 서명에 의존할 때)
BuildType의 코드/리소스 파일은 다음과 같이 처리됩니다.
manifest 설정은merge가 app manifest에
코드는merge되지 않으며, 다른 코드 디렉터리 (source folder) 로 사용됩니다
자원 파일은 같은 이름의main의 자원 파일을 덮어씁니다

좋은 웹페이지 즐겨찾기