Android 의 몇 가지 다 중 채널 포장 절차 에 대한 상세 한 설명

1.다 중 채널 포장 이란 무엇 인가
서로 다른 응용 시장 에서 서로 다른 통계 수요 가 있 을 수 있 기 때문에 모든 응용 시장 에 설치 패 키 지 를 발표 해 야 한다.여기 서 안 드 로 이 드 의 다 중 채널 포장 을 이 끌 어 냈 다.설치 패키지 에 서로 다른 표 지 를 추가 하여 각 경 로 를 구분 하여 app 이 시장 에서 의 각종 통 계 를 편리 하 게 통계 할 수 있 습 니 다.
2.몇 가지 포장 방식
우호 동맹 UmengAndroid Studio 자체 테이프미 단 월3、사용 시작
3.1 우 맹 Umeng
STEP 1:Android Manifest 에 추가

<meta-data 
 android:name="UMENG_CHANNEL" 
 android:value="${channel}" />
두 번 째 단계:build.gradle 에 baidu{}을 지정 한 채널 이름 으로 약자 로 추가 합 니 다.

build {
 ......
 productFlavors {
 baidu {}
 xiaomi {}
 qihu360 {}
 yingyongbao {}
 huawei {}
 }
 productFlavors.all {
 flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL: name]
 } 
}
세 번 째 단계:출력 APK 이름 설정
Android Studio 2.3 버 전:

build {
 ......
 applicationVariants.all { variant ->
 variant.outputs.each { output ->
 def outputFile = output.outputFile
 if (outputFile != null && outputFile.name.endsWith('.apk')) {
  def fileName = "driver_${variant.productFlavors[0].name}_v${defaultConfig.versionName}.apk"
  output.outputFile = new File(outputFile.parent, fileName)
 }
 }
 }
}
Android Studio 3.0 버 전:

build {
 ......
 applicationVariants.all { variant ->
 variant.outputs.all {
 outputFileName = "driver_${variant.productFlavors[0].name}_v${variant.versionName}.apk"
 }
 }
}
Gradle 이후 다음 과 같은 오류 가 발생 하면

flavor dimension 의 차원 을 설정 해 야 합 니 다.이 차원 은 모두 통 일 된 것 입 니 다.

build {
 ......
 defaultConfig {
 ......
 flavorDimensions "versionCode"
 }
}
STEP 4:컴 파일 패키지
Build-Generate Signed Bundle or APK-Release 또는 Debug 선택

3.2 Android Studio 자체
Android Studio 다 중 형태 패 키 지 는 동맹 패키지 방식 과 같 지만 태그에서 name 은 스스로 정의 할 수 있 으 며"UMENG"로 제한 되 지 않 습 니 다.CHANNEL"

<meta-data 
 android:name="UMENG_CHANNEL" //      
 android:value="${channel}" />
3.3 미 단 월
첫 번 째 단계:루트 build.gradle 설정

buildscript {
 dependencies {
 classpath 'com.mcxiaoke.packer-ng:plugin:2.0.1'
 }
}
두 번 째 단계:App build.gradle 설정

apply plugin: 'packer'
dependencies {
 ......
 implementation 'com.mcxiaoke.packer-ng:helper:2.0.1'
}
세 번 째 단계:플러그 인 설정

build {
 ......
 packer {
 archiveNameFormat = '${buildType}-v${versionName}-${channel}' //     APK  
 archiveOutput = new File(project.rootProject.buildDir, "apks") //   APK    
 channelFile = new File(project.rootDir, "channel.txt") //         
 }
}
네 번 째 단계:새 채널 설정 파일 channel.txt
프로젝트 루트 디 렉 터 리 에 channel.txt 파일 을 새로 만 듭 니 다.그림 참조

파일 내용 은 채널 이름 입 니 다.요구:줄 마다 채널 이 있어 야 합 니 다.
다섯 번 째 단계:컴 파일 패키지
터미널 명령 사용:gradlew clean apkRelease
참고 가능:[미 단 다 중 채널 공식 문서 포장](https://github.com/mcxiaoke/packer-ng-plugin)
4.채널 정보 획득
1.동맹 과 Android Studio 가 져 오 는 방법
Android Manifest 의탭 읽 기

private String getChannel() {
 try { 
   PackageManager pm = getPackageManager(); 
   ApplicationInfo appInfo = pm.getApplicationInfo(getPackageName(), PackageManager.GET_META_DATA); 
   String channel = appInfo.metaData.getString(key); // key <meta-data>    name 
   if (!TextUtils.isEmpty(channel)) {  
   return channel;
   }
  } catch (Exception e) { 
   e.printStackTrace();
  }
  return null;
}
2,미 단 Walle 획득 방법
미 단 통합 자체 획득 방법

private String getChannel() {
 try { 
   PackageManager pm = getPackageManager(); 
   ApplicationInfo appInfo = pm.getApplicationInfo(getPackageName(), PackageManager.GET_META_DATA); 
   String channel = appInfo.metaData.getString(key); // key <meta-data>    name 
   if (!TextUtils.isEmpty(channel)) {  
   return channel;
   }
  } catch (Exception e) { 
   e.printStackTrace();
  }
  return null;
}
총결산
위 에서 말 한 것 은 소 편 이 여러분 에 게 소개 한 안 드 로 이 드 의 몇 가지 다 중 채널 포장 절차 에 대한 상세 한 설명 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.만약 에 궁금 한 점 이 있 으 면 저 에 게 메 시 지 를 남 겨 주세요.소 편 은 제때에 여러분 에 게 답 할 것 입 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
만약 당신 이 본문 이 당신 에 게 도움 이 된다 고 생각한다 면,전 재 를 환영 합 니 다.번 거 로 우 시 겠 지만 출처 를 밝 혀 주 십시오.감사합니다!

좋은 웹페이지 즐겨찾기