Android ProductFlavor 사용 에 대한 자세 한 설명
4406 단어 AndroidProductFlavor
최근 에 안 드 로 이 드 Gradle 에 관 한 지식 을 배우 고 있 습 니 다.오늘 은 ProductFlavor 라 는 절 을 보 았 습 니 다.ProductFlavor 는 제품 의 맛 을 나타 내 고 구 글 과 관련 된 문 서 는 Android developers ProductFlavor 을 볼 수 있 습 니 다.제품 의 맛 이라는 단 어 는 아주 재 미 있 습 니 다.언뜻 보기 에는 이것 이 무엇 인지 이해 가 되 지 않 습 니 다.포장 을 구분 하 는 데 사용 된다 면 제 gradle 파일 에 있 는 buildTypes 만으로 도 충분 하지 않 습 니까?그래서 제 가 시간 을 좀 들 여 다시 봤 습 니 다.제 이해 로 는 중 소형 프로젝트 일 뿐 지역 별 사용자 가 사용 하지 않 는 가방 을 구분 하지 않 는 다 면 ProductFlavor 는 기본적으로 쓸모 가 없습니다.그러나 만약 에 프로젝트 에서 국내 판 과 외국 판 을 구분 하고 심지어 사용자 가 VIP 회원 인지 아 닌 지 에 따라 유 료 와 무료 버 전 을 추가 해 야 한다 면 이런 상황 에서 국내 유 료,무료 외국 유 료,무료 버 전이 나타 날 것 이다.극단 적 인 점 에서 저 는 유 료 와 무료 버 전이 같은 페이지 에 표 시 된 UI 구조 와 icon 아이콘 자원 이 다 릅 니 다.이런 상황 은 어떻게 처리 해 야 합 니까?ProductFlavor 의 등장 은 우리 개발 자 들 이 상기 버 전 구분 을 해결 하 는 데 매우 우호 적 입 니 다.
productFlavors
produtFlavors 의 용법 은 매우 간단 합 니 다.주로 여러 채널 로 포장 해서 사용 합 니 다.안 드 로 이 드 에서 produtFlavors 를 정의 하면 됩 니 다.제 예 에서 제 APP 는 유 료 와 무료 버 전 으로 정 의 했 기 때문에 저 는 2 곳 에서 제'제품 의 맛',즉 제 가 포장 하고 자 하 는 채널(유 료 와 무료 버 전의 두 개의 서로 다른 APP 채널)을 정의 해 야 합 니 다.주의 하 세 요.현재 AS 에서 코드 2 만 정의 했다 면 구축 할 때 반드시 3 곳 의 오 류 를 보고 하고 제품 의 위 도 를 정의 하지 않 을 것 입 니 다.그래서 이 문 제 를 해결 하기 위해 우 리 는 코드 1 곳 에서'유 료 isPaying 여부'의 위 도 를 정 의 했 습 니 다.
그림 에서 보 듯 이 우리 가 비용 을 지불 하 는 위도 와 비용 지불 과 무료 제품 의 맛 을 정의 한 후에 당신 은 현재 4 개의 구축 변 체 를 구축 했다 는 것 을 알 게 될 것 입 니 다.즉,free 와 charge 의 맛 에서 각각 debug 와 release 의 변 체 를 구축 한 것 입 니 다.지금 우 리 는 두 가지 다른 맛 이 생 겼 습 니 다.만약 에 제 가 핸드폰 에 설치 하고 싶 은 것 이 두 개의 서로 다른 APK 라면 어떻게 처리 해 야 합 니까?우선 우리 의 가방 이름 은 같 을 수 없습니다.free 와 charge 폐쇄 에서 정의 합 니 다.
productFlavors{
free{
applicationId 'com.example.gradle.free'
}
charge{
applicationId 'com.example.gradle.charge'
}
}
위의 설정 에 따라 마지막 으로 핸드폰 에서 두 개의 APK 를 달 렸 습 니 다.이것 은 제 가 검 증 했 습 니 다.그럼 에 도 불구 하고 출장 의 이질 화 를 나타 내지 않 았 습 니 다.우 리 는 다음 에 코드 의 논 리 를 바 꾸 었 습 니 다.그들의 app 이름과 홈 페이지 에서 수정 하 겠 습 니 다.우리 의 빨 간 상 자 를 보 세 요.나 는 이미 그들의 app 이름 을 모두 바 꾸 었 습 니 다.어떻게 처리 합 니까?
productFlavors{
free{
applicationId 'com.example.gradle.free'
resValue "string",'appName',' '
}
charge{
applicationId 'com.example.gradle.charge'
resValue "string",'appName',' '
}
}
먼저 저 는 produtFlavors 의 코드 를 수정 하고 resValue 를 정 의 했 습 니 다.이 매개 변 수 는 서로 다른 맛 에서 라벨 을 정의 한 다 는 뜻 으로 이해 할 수 있 습 니 다.예 를 들 어 제 가 코드 에서 각각 free 와 charge 맛 으로 resValue 라벨 을 정 의 했 습 니 다.그러면 그들의 변 체 를 구축 할 때 이 라벨 을 참조 할 수 있 습 니 다.그림 에서 보 듯 이 저 는 두 개의 폴 더'free'와'charge'를 새로 정 의 했 습 니 다.차별 화 를 하려 면 제품 의 맛 에 따라 폴 더 를 정의 해 야 합 니 다.여 기 는 응용 이름 이 목록 파일 에 설정 되 어 있 기 때문에 각각 copy 를 한 부 만 들 었 습 니 다.저 는 어쨌든 차별 화 된 이상 main 에서 차이 가 있 는 파일 copy 를 수정 하면 된다 는 것 을 이해 합 니 다.물론 안에 있 는 가방 이름,경로 등 은 일치 해 야 합 니 다.이것 을 말 하면 여러분 도 알 수 있 습 니 다.만약 에 서로 다른 앱 페이지 에서 차별 화 를 하려 면 이 방식 대로 하면 됩 니 다.그래서'첫 페이지 수정(MainActivity)'의 임 무 는 여러분 에 게 맡 기 고 직접 체험 해 보 세 요.
flavorDimensions 다 위도
다 위도 란 무엇 입 니까?비용 을 지불 하 는 것 이 위도 인지,국 가 는 위도 입 니 다.위의 그림 에서 저 는 또 하나의 nation 위 도 를 정 의 했 습 니 다.만약 에 위 도 를 정의 했다 면 반드시 사용 해 야 합 니 다.각 제품 의 맛 에서 dimension 을 통 해 당신 의 맛 이 사용 하 는 위도,free 와 charge 는 isPaying 을 사 용 했 습 니 다.china 와 france 는 nation 을 사 용 했 습 니 다.그 많은 위도 의 역할 은 바로 당신 의 APP 를 더욱 세밀 하 게 구분 하기 위해 서 입 니 다.예 를 들 어 3 이런 방식 을 통 해 저 는 서로 다른 나라 의 차별 화 된 APP 를 포장 할 수 있 습 니 다.유연성 이 있 지 않 습 니까?하지만 일반적인 상황 에서 도 그렇게 정교 하 게 사용 할 수 없습니다.그렇지 않 으 면 이 프로젝트 는 유지 만 해도 머리 가 아 픕 니 다.좋 습 니 다.마지막 으로 우 리 는 공식[위도 1 의 제품 풍미 수량]*[위도 2 의 제품 풍미 수량]*buildType 수량=최종 APK 변체 수량 을 얻 을 수 있다.
이상 은 안 드 로 이 드 프로 덕 트 Flavor 의 사용 에 대한 상세 한 내용 입 니 다.안 드 로 이 드 프로 덕 트 Flavor 의 사용 에 관 한 자 료 는 다른 관련 글 을 주목 하 세 요!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.