Android 멀티 모듈 개발 및 동적 로드 Android Manifest.xml

2263 단어
1. Android App 프로젝트를 새로 만듭니다. 2.프로젝트를 오른쪽 단추로 누르면 New-module-Android Library - Library Name-finish를 입력하면 됩니다. 여기에서 우리가 만든libraryName이user라고 가정하십시오.
두 번째 단계에서 만든module 의존을 설정하려면 두 가지 방법이 있습니다 (1)androidstudio를 사용하여 오른쪽 키 항목을 설정하고open module setting,Modules/app-Dependences-왼쪽 아래 + 번호를 누르고, 탄창에서 두 번째 단계의 mudule-Ok을 선택하면 오류가 발생할 수 있습니다. 일부 AS가build에 있지 않기 때문입니다.gradle이 코드를 생성할 때 자동으로 줄을 바꿔서build에 대응합니다.gradle은 리턴을 하면 돼요. (2) 앱을 찾은 모듈을 직접 도입하고 맨 뒤에 다음 문장을 붙이면 돼요.
implementation project(':user')

다중 모듈 설정 완료...
이럴 때module 프로젝트의build을 볼 수 있습니다.gradle 파일 맨 위에는
apply plugin: 'com.android.library'

이것은 library입니다. 실행할 수 없는 앱의build를 볼 수 있습니다.gradle 중 첫 번째 줄은
apply plugin: 'com.android.application'

이것은 모듈 프로젝트의build을 실행할 수 있음을 의미합니다.gradle 프로젝트의 첫 줄인 library를 응용 프로그램으로 바꾸면 실행할 수 있습니다. 이럴 때는 안드로이드 매니페스트를 주의해야 합니다.xml 파일은 library의 안드로이드 Manifest입니다.xml 파일에는 테마가 필요하지 않으며 기본적으로 시작되는Activity가 필요하지 않습니다. 정의만 하면 됩니다.


어떻게 한 항목이 응용 프로그램입니까?library입니까?프로젝트 디렉터리 목록에grade가 있습니다.properties 파일
isUserModule = true

그리고 2단계에서 만든library의build입니다.gradle 파일의 시작은 다음과 같습니다.
if (isUserModule.toBoolean()) {
apply plugin: 'com.android.library'
}else {
apply plugin: 'com.android.application'
}

app의build에서 동시에 사용할 수 있습니다.gradle에서 이전에 implementation 프로젝트 (': user') 를 추가한 부분 코드는 다음과 같이 수정되었습니다.
if(isUserModule.toBoolean()) {
implementation project(':user')
} 

작은 확장: debug 모드와release 모드에서 서로 다른 안드로이드 Manifest를 불러오는 방법.xml 파일?이 문제의 응용 장면은 무엇일까요? 이 두 가지 모드에서user 프로젝트는library인지 응용 프로그램인지 구분하기 때문입니다. 이때 안드로이드 매니페스트입니다.xml 파일은 변경이 필요하지만, 발표할 때마다 수정하고 싶지 않기 때문에, 동적으로 다른 안드로이드 Manifest를 불러옵니다.xml은 debug 모드에서user 프로젝트가 실행되어야 하는지를 먼저 확인합니다.release 모드에서user는 하나의 클래스 라이브러리로서 app 프로젝트에 의존하기 때문에user의build입니다.gradle 파일에 추가:
sourceSets {
  main {
    if (isUserModule.toBoolean()) {
      manifest.srcFile 'src/main/release/AndroidManifest.xml'
    }  else {
      manifest.srcFile 'src/main/debug/AndroidManifest.xml'
    }
  }
}

좋은 웹페이지 즐겨찾기