Android Studio Gradle 을 사용 하여 동맹 다 중 채널 포장 실현
1.패키지 서명 적용
포장 이 뭐 예요?
포장 은 서명 과 다른 표지 에 따라 설치 패 키 지 를 만 드 는 것 이다.
사인 이 뭐 예요?
1.android 응용 파일(apk)에 저 장 된 특별한 문자열
2.서로 다른 응용 개발 자 를 표시 하 는 데 사용:개발 자 A,개발 자 B
3.한 애플 리 케 이 션 개발 자가 개발 한 여러 애플 리 케 이 션 은 같은 서명 을 사용 합 니 다.
한 사람 이 글 을 쓰 는 것 과 같이 서명 은 작가 의 서명 에 해당 한다.
만약 두 응용 프로그램 이 모두 개발 자가 개발 한 것 이 라면 서명 은 같은 것 이다.
이 개발 자 는 개인 일 수도 있 고 회사,단체 일 수도 있 습 니 다.
왜 사인 을 해요?
원인 1:가장 간단 하고 직접적인 대답:시스템 이 요구 하 는 것.
Android 시스템 은 모든 Android 응용 프로그램 이 디지털 서명 을 거 쳐 야 시스템 에 설치 할 수 있 도록 요구 합 니 다.즉,하나의 Android 응용 프로그램 이 디지털 서명 을 거치 지 않 으 면 시스템 에 설치 할 수 없습니다!
원인 2:
프로그래머 가 개발 한 애플 리 케 이 션 패키지 이름 이 같 을 수 있 으 며,한 애플 리 케 이 션 이 다른 애플 리 케 이 션 을 덮어 쓸 수 있 습 니 다.
패키지 이름 개념 만 있다 면 B 앱 이 설 치 된 A 앱 패키지 이름과 같다 면 덮어 쓰기 가 가능 하 다.불합리 하 다
사실은 B 가 들 어 있 지 않 습 니 다.가방 이름 이 일치 하지만 서명 이 다 릅 니 다.덮어 쓰 지 않 습 니 다.
2.다 중 채널
1.다 중 채널 가방 은 무엇 입 니까?
채널 패 키 지 는 설치 패 키 지 에 채널 정 보 를 추가 하 는 것 이다.즉,channel 이다.서로 다른 채널 에 대응 해 야 한다.예 를 들 어 샤 오미 시장,360 시장,응용 보 시장 등 이다.
2.왜 다 중 채널 가방 을 제공 합 니까?
우 리 는 설치 가방 에 서로 다른 표 지 를 추가 하고 네트워크 를 요청 할 때 채널 정 보 를 휴대 하여 배경 에서 운영 통 계 를 편리 하 게 해 야 한다(이것 이 바로 채널 정 보 를 추가 하 는 용도 이다).
3.다 중 채널 포장 의 원 리 를 실현 한다.
일반적으로 이 채널 의 표 지 는 AndroidManifest.xml 의 Application 의 메타 데이터 에 놓 입 니 다.그리고 자바 에서 API 를 통 해 해당 하 는 데 이 터 를 얻 을 수 있 습 니 다.
4.어떻게 실현 합 니까?
현재 안 드 로 이 드 채널 은 다양 하 다.사실은 채널 은 응용 시장 에 만 국한 되 는 것 이 아니 라 홍보 방식 도 하나의 채널 로 볼 수 있다.예 를 들 어 사람 을 끌 어 당 기 는 방식 으로 홍보 하고 홈 페이지 에서 홍보 하 며 바 이 두 홍보 등 이다.그래서 채널 이 수천 만 에 달 합 니 다.홍 보 를 위해 가끔 은 한 번 에 수천 개의 설치 가방 을 만 들 기도 합 니 다.그러면 반나절 이나 하루 동안 아무것도 하지 마 세 요.그래서 몇 개의 대기업 의 효율 적 인 포장 방식 을 소개 하고 참고 하 세 요.
첫 번 째:우 맹 은 여러 채널 로 포장 하 는 방식 을 제공 하여 채널 통계 등에 사용 할 수 있다.
현재 Android 의 구축 도 구 는 gradle 로 바 뀌 었 습 니 다.gradle 을 통 해 간단하게 설정 하면 모든 채널 패 키 지 를 자동 으로 걸 수 있 습 니 다.
이론 지식 을 다 보고 나 면 어떻게 실현 되 는 지 에 달 려 있 지만,사실은 아주 간단 해서 몇 걸음 만 조작 하면 완성 할 수 있다.
1.AndroidManifest.xml 에 설정
<meta-data
android:name="UMENG_APPKEY"
android:value="xxxxxxxxxxxxxxxxxxx" /><!-- Appkey -->
<meta-data
android:name="UMENG_CHANNEL"
android:value="${UMENG_CHANNEL_VALUE}" /> <!-- , $-->
2.build.gradle(항목 루트 디 렉 터 리 가 아 닙 니 다.)defaultConfig 노드 에 기본 경로 번 호 를 추가 합 니 다.
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "default_channel"]//
defaultConfig 와 같은 노드 에 produtFlavors 노드 를 추가 합 니 다.내용 은 다음 과 같 습 니 다.
productFlavors {
default_channel {}
huawei {}
oppo {}
xiaomi {}
yiyongbao {}
vivo {}
_360 {}
}
productFlavors.all { flavor ->
flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
}
어디 다 놓 을 지 모 르 면 완전 하 게 보 세 요.
apply plugin: 'com.android.application'
android {
compileSdkVersion 26
buildToolsVersion "26.0.2"
defaultConfig {
applicationId "com.dc.xydemo"
minSdkVersion 23
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "default_channel"]//
}
productFlavors {
default_channel {}
huawei {}
oppo {}
xiaomi {}
yiyongbao {}
vivo {}
_360 {}
}
productFlavors.all { flavor ->
flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:26.0.0-alpha1'
compile 'com.umeng.analytics:analytics:latest.integration'
testCompile 'junit:junit:4.12'
compile 'com.squareup.okhttp3:okhttp:3.2.0'
compile 'com.squareup.okio:okio:1.7.0'
compile 'junit:junit:4.12'
compile files('libs/fastjson-1.1.45.android.jar')
compile 'com.squareup.picasso:picasso:2.5.2'
}
3.상기 설정 후 포장 명령 을 실행 하여 포장 할 수 있 습 니 다.3-1
마지막 으로 gradlew assembleRelease 를 사용 하여 생산 가방 을 만 듭 니 다.gradlew assemble Debug 테스트 패키지
앉 아서 포장 이 완 료 될 때 까지 기 다 렸 다가 build-->outputs-->apk 아래 에서 포장 이 성 공 했 는 지 확인 할 수 있 습 니 다.
위의 그림 내용 이 나타 나 면 여러 경로 로 포장 하면 완성 되 는데,매우 간단 하지 않 습 니까?
문제 가 있 으 면 댓 글 을 남기 거나 메 일 을 보 내 주세요[email protected]
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.