위 챗 안 드 로 이 드 핫 업데이트 팅 커 사용 설명(성공 무 형)

팅 커 가 뭐야?
Tinker 는작은 편지공식 적 인Android핫 패 치 솔 루 션 으로 동적 으로 코드,So 라 이브 러 리 와 자원 을 보 내 고 응용 프로그램 이 다시 설치 하지 않 아 도 업 데 이 트 를 실현 할 수 있 도록 지원 합 니 다.물론,당신 도 Tinker 를 사용 하여 플러그 인 을 업데이트 할 수 있 습 니 다.
그것 은 주로 다음 과 같은 몇 가지 부분 을 포함한다.
gradle 컴 파일 플러그 인:tinker-patch-gradle-plugin
핵심 sdk 라 이브 러 리:tinker-android-lib
비 gradle 컴 파일 사용자 의 명령 행 버 전:tinker-patch-cli.jar
팅 커 를 왜 써 요?
현재 시장의 핫 패 치 방안 은 매우 많은 데 그 중에서 비교적 유명한 것 은 알 리 의 앤 드 픽 스,미 단의 Robust 와 QZone 의 슈퍼 패 치 방안 이다.하지만 이들 모두 해결 할 수 없 는 문제 가 존재 하 는 것 도 우리 가 팅 커 를 내 놓 은 이유 다.

전반적 으로 말 하면:
AndFix 는 native 솔 루 션 으로서 먼저 안정성 과 호환성 문제 에 직면 하고 더욱 중요 한 것 은 유형 교 체 를 실현 하지 못 하 는 것 이다.이것 은 대량의 추가 개발 원가 가 필요 하 다.
Robust 호환성 과 성 공률 이 비교적 높 지만 AndFix 와 마찬가지 로 변수 와 클래스 만 사용 할 수 있 는 bugFix 방안 을 추가 할 수 없습니다.
Qzone 방안 은 제품 기능 을 발표 할 수 있 지만 그 주요 문 제 는 말뚝 을 꽂 아 Dalvik 의 성능 문 제 를 가 져 오고 Art 에서 메모리 주소 문 제 를 해결 하기 위해 패 치 백 이 급 격 히 커지 는 것 이다.
특히 안 드 로 이 드 N 이후 혼합 컴 파일 된 inline 전략 수정 으로 인해 시중 의 각종 방안 이 쉽게 해결 되 지 않 았 다.한편,Tinker 핫 패 치 방안 은 클래스,So 와 자원 의 교 체 를 지원 할 뿐만 아니 라 2.X-7.X 의 전체 플랫폼 도 지원 합 니 다.Tinker 를 이용 하면 bugfix 뿐만 아니 라 대체 기능 의 발표 도 사용 할 수 있 습 니 다.Tinker 는 위 챗 의 수 억 안 드 로 이 드 장치 에서 실행 되 고 있 습 니 다.그런데 왜 Tinker 를 사용 하지 않 습 니까?
질문
원리 와 시스템 제한 으로 인해 Tinker 는 다음 과 같은 이미 알 고 있 는 문제 가 있 습 니 다.
Tinker 는 AndroidManifest.xml 을 수정 하 는 것 을 지원 하지 않 습 니 다.Tinker 는 4 대 구성 요 소 를 추가 하 는 것 을 지원 하지 않 습 니 다.
Google Play 의 개발 자 약관 제한 으로 인해 GP 채널 에서 코드 를 동적 으로 업데이트 하 는 것 을 권장 하지 않 습 니 다.
Android N 에서 패 치 는 시작 시간 에 가 벼 운 영향 을 줍 니 다.
일부 삼 성 안 드 로 이 드-21 모델 은 지원 되 지 않 으 며 패 치 를 불 러 올 때"TinkerRuntime Exception:checkDex Install failed"를 자발적으로 던 집 니 다.
각 업 체 의 보강 실현 이 일치 하지 않 기 때문에 1.7.6 과 그 후의 버 전에 서 tinker 는 보강 의 동적 업 데 이 트 를 지원 하지 않 습 니 다.
자원 교체 에 대해 서 는 reoteView 수정 이 지원 되 지 않 습 니 다.예 를 들 어 transition 애니메이션,notification icon,데스크 톱 아이콘 등 이 있 습 니 다.
Tinker 를 어떻게 사용 합 니까?
다음은 Bugly Tinker 의 사용법 에 대해 소개 하 겠 습 니 다.
왜 Bugly 핫 업 데 이 트 를 사용 합 니까?
bugly 가 이미 tinker 를 집성 했 기 때 문 입 니 다.
팅 커 가 어떻게 패 치 를 합성 하 는 지 신경 쓰 지 마 세 요.
스스로 패 치 관리 백 스테이지 를 만 들 필요 가 없다.
백 스테이지 아래 패 치 정책 을 고려 할 필요 가 없습니다.
패 치 다운로드 합성 시 기 를 고려 하지 않 고 배경 에서 보 내 는 전략 을 처리 합 니 다.
저희 가 더 편리 하 게 팅 커 를 통합 할 수 있 는 방법 을 제 공 했 습 니 다.
저 희 는 HTTPS 및 서명 검사 등 메커니즘 을 통 해 패 치 에서 보 내 는 안전성 을 보장 합 니 다.
풍부 한 하 발 차원 제어,패 치 영향 범위 효과적으로 제어
우 리 는 응용 업그레이드 원 스 톱 솔 루 션 을 제공 했다.
Bugly 핫 업 데 이 트 를 어떻게 사용 하 는 지 에 대해 서 는 문 서 를 보면 됩 니 다.오늘 은 홈 페이지 문서 의 다 중 채널 패 치 오류(오늘 은 Bugly 1.2.2(tinker 1.7.6)를 예 로 들 겠 습 니 다.
프로젝트 의 build.gradle 에 의존 도 를 추가 합 니 다.

앱 build.gradle 설정
공식 적 으로 제 시 된 procject.tinkerPatch.oldapk,procject.tinkerPatch.buildConfig.apply Mapping,procject.tinkerPatch.buildConfig.apply Resource Mapping 세 가지 설정 경로 가 잘못 되 었 습 니 다.tinker 1.7.6 에 도 여러 채널 로 bug 가 있 습 니 다.
우 리 는 여러 채널 로 포장 할 때 다음 명령 을 수행 합 니 다.그 가 내 놓 은 패 치 는 모두 같 습 니 다.패 치 가방 안의 YAPATCH.MF 파일 을 보면 다음 버 전에 서 복구 하 겠 다 고 홈 페이지 에서 밝 혔 습 니 다.

여기 서명 방식 을 모 르 면 이 글 을 볼 수 있 습 니 다.
이 설정 의 config.gradle 을 모 르 겠 습 니 다.이 글 을 볼 수 있 습 니 다https://www.jb51.net/article/122745.htm
tinker-support.gradle 설정,

config.gradle 설정

기타 설정
헷 갈 리 는 것 을 잊 지 마 세 요.그리고 안 드 로 이 드 7.0 시스템 에 맞 는 설정 도 있 습 니 다.여 기 는 말 하지 않 겠 습 니 다.
다음 에 우 리 는 아래 명령 을 실행 하여 기준 패 키 지 를 생 성하 기 시작 합 니 다.(기준 패 키 지 를 반드시 보존 해 야 합 니 다.)
tinkerPatchAllFlavorRelease

생산 버 전의 apk 를 생 성 한 후 버그 를 발견 하면 버그 를 복구 하고 패 치 패 키 지 를 생 성 할 수 있 습 니 다.

패 치 팩 을 생 성 한 후 Bugly 의 핫 업 데 이 트 를 통 해 복원 할 수 있 습 니 다.저희 가 등 록 된 app 을 찾 아 패 치 팩 을 업로드 할 수 있 습 니 다.


tinker 는 우리 가 app 을 열 때 서버 에 패 치 백 이 있 는 지,로 컬 에 패 치 백 이 있 는 지 확인 하고 감지 되면 다운로드 한 다음 에 app 을 시작 하여 패 치 복 구 를 할 것 입 니 다.이렇게 Bugly 를 통 해 우 리 는 패 치 백 을 보 내 는 서버 를 만 들 지 않 아 도 되 고 매우 편리 하 다.
소스 코드:https://www.jb51.net/article/122746.htm

좋은 웹페이지 즐겨찾기