Android Gradle 다 중 채널 패키지 구현 방법
다 중 채널 포장 과 다 중 채널 포장 이 무엇 을 할 수 있 는 지 여 기 는 소개 하지 않 겠 습 니 다.이 글 을 본 당신 은 이미 알 고 있 을 것 이 라 고 믿 습 니 다.다 중 채널 포장 방식 이 비교적 많 습 니 다.여 기 는 Gradle 다 중 채널 포장 방식 을 사용 합 니 다.
다른 문장 과 무엇이 다 릅 니까?
인터넷 에서 본 대다수의 문장 은 모두 해설 만 했다
1.가방 이름 변경 방법
2.변수의 값 을 어떻게 수정 합 니까?
3.string 의 자원 을 어떻게 바 꿉 니까?
4.AndroidManifest 의 자원 을 어떻게 교체 합 니까?
이 글 은 상술 한 지식 점 에서 증가 할 것 이다.
5.서로 다른 채널 에서 자바 파일 을 어떻게 사용 하 는 지
6.Base 모듈 화 에서 다 중 채널 을 어떻게 사용 합 니까?
새 항목 은 app 에서 build.gradle 에서 android 에 다음 코드 를 추가 합 니 다.
productFlavors{
 baidu{
  applicationId "com.baidu"
  buildConfigField "String","BaseApi",'"http://baidu.com"'
  resValue "string","tip",'"hello this is form baidu"'
  manifestPlaceholders = [
    app_name:"  APP"
  ]
 }
 sougou{
  applicationId "com.sougou"
  buildConfigField "String","BaseApi",'"http://sougou.com"'
  resValue "string","tip",'"hello this is form sugou"'
  manifestPlaceholders = [
    app_name: "  APP"
  ]
 }
}
채널 마다 요청 주소 가 다 릅 니 다.필드 는 BaseApi 입 니 다.buildConfigField 를 통 해 BaseApi 의 값 을 지정 할 수 있 습 니 다.buildConfigField 를 통 해
지정 한 값 은 시스템 에서 생 성 된 BuildConfig 에서 가 져 올 수 있 습 니 다.예 를 들 어 여러 채널 에서 정 의 된 BaseApi 를 가 져 올 수 있 습 니 다.
String baseApi = BuildConfig.BaseApi;
 
 BaseApi 는 우리 가 정의 한 것 이 고 다른 것 은 모두 기본 으로 생 성 된 것 입 니 다.여기 서 볼 수 있 습 니 다.패키지 이름 도 우리 가 지정 한 것 입 니 다.
resValue 우 리 는 변수의 값 을 수정 할 수 있 습 니 다.이 값 은 string.xml 에서 생 성 됩 니 다.예 를 들 어 위 에서 tip 변 수 를 정 의 했 습 니 다.주의해 야 할 것 은 이 변 수 는 string.xml 에 나타 나 면 안 됩 니 다.그렇지 않 으 면 자원 이 중복 되 는 것 을 알려 줍 니 다.
설정 파일 에 사용 할 값 을 정의 하려 면 사용 해 야 합 니 다.
manifestPlaceholders
android:label="${app_name}"
 
 baidu 채널 운행 은 다음 과 같 습 니 다.
 
 sougou 채널 운행 은 다음 과 같 습 니 다.
 
 운행 결과 에서 우 리 는 이미 우리 가 원 하 는 결과 에 이 르 렀 음 을 알 수 있다.
다른 app 아이콘 을 사용 하 는 방법
그러면 서로 다른 채널 의 app 아이콘 을 어떻게 수정 합 니까?물론 우 리 는 manifestPlaceholders 에 아이콘 자원 의 대체 자 를 추가 할 수 있 습 니 다.그러나 우 리 는 다른 방법 을 사용 합 니 다.
때때로 우 리 는 아이콘 을 교체 해 야 할 뿐만 아니 라 raw 의 자원 이나 assets 의 자원 을 교체 해 야 할 수도 있 습 니 다.이런 상황 에서 우 리 는 필요 합 니 다.
다음 방법 사용 하기:
src 디 렉 터 리 에 main 과 같은 등급 이 고 채널 이름과 같은 파일 패키지 이름 을 새로 만 들 고 res 자원 디 렉 터 리 를 새로 만 들 고 아이콘 에 사용 할 그림 자원 을 넣 으 려 면 main 의 이름과 같 아야 덮어 쓸 수 있 습 니 다.그림 참조:
 
 그리고 gradle 에 sourceSet 을 설정 합 니 다.
sourceSets{
 baidu{
  res.srcDirs = ['src/baidu/res','src/baidu/res']
 }
 sougou{
  res.srcDirs = ['src/sougou/res','src/sougou/res']
 }
}
 
  
 두 개의 app 을 실행 한 결 과 는 다음 과 같 습 니 다.
 
 moudle 에서 다 중 채널 을 어떻게 설정 합 니까?
실제 개발 에서 우 리 는 base 모듈 이 있 을 수 있 습 니 다.서로 다른 채널 base 모듈 에서 인용 한 자원 도 다 릅 니 다.우 리 는 어떻게 설정 해 야 합 니까?
우 리 는 basemoudle 모듈 을 새로 만 들 었 습 니 다.app 은 basemodule 모듈 에 의존 합 니 다.
마찬가지 로 우 리 는 모듈 의 gradl 에서 다음 과 같이 설정 합 니 다.
productFlavors {
 baidu {
  buildConfigField "String", "BaseMoudeDesc", '"  base       "'
  resValue "string", "basetip", '"i come form base_baidu"'
 }
 sougou {
  buildConfigField "String", "BaseMoudeDesc", '"  base       "'
  resValue "string", "basetip", '"i come form base_baidu"'
 }
}
baiduCompile project(path:':basemodule',configuration:'baiduRelease')
sougouCompile project(path: ':basemodule',configuration:'sougouRelease')
publishNonDefault true
서로 다른 채널 에서 서로 다른 자바 파일 을 어떻게 사용 합 니까?
서로 다른 채널 에서 자원 파일 을 사용 하 는 것 과 마찬가지 로 주의해 야 할 것 은 main 파일 에 교체 할 자바 파일 을 저장 할 수 없습니다.그렇지 않 으 면 자원 이 중복 되 는 오 류 를 보고 할 수 있 습 니 다.마찬가지 로 저 희 는 base 모듈 에 각각 baidu 와 sougou 채널 패 키 지 를 새로 만 들 고 각각 MainActivity 를 새로 만 듭 니 다.그림 과 같 습 니 다.
 
 자바 자원 디 렉 터 리 설정
sourceSets {
  baidu {
    res.srcDirs = ['src/baidu/res', 'src/baidu/res']
    java.srcDirs = ['src/baidu/java','src/baidu/java']
  }
  sougou {
    res.srcDirs = ['src/sougou/res', 'src/sougou/res']
    java.srcDirs = ['src/sougou/java','src/sougou/java']
  }
}
실행 효 과 는 다음 과 같 습 니 다.
 
  
 여기까지 자주 사용 하 는 다 중 채널 포장 에 필요 한 설정 이 끝 났 습 니 다.오류 가 있 으 면 지적 해 주 십시오.
총결산
안 드 로 이 드 Gradle 멀 티 채널 패키지 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.안 드 로 이 드 Gradle 멀 티 채널 패키지 에 관 한 더 많은 내용 은 저희 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 저 희 를 많이 사랑 해 주세요!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Groupie의 ViewHolder를 사용해 보았습니다.Groupie는 Android의 recycler-view를 쉽게 사용할 수있는 라이브러리이지만 groupie-databinding은 deprecated되었습니다. 이번에는 권장되는 (Poi) groupie-viewb...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.