动态部署、远程 bundle 、单模块部署演示 | 学习笔记

简介: 简介:快速学习动态部署、远程 bundle 、单模块部署演示

开发者学堂课程【开源 Android 容器化框架 Atlas 开发者指南: 动态部署、远程 bundle 、单模块部署演示】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/392/detail/5021


动态部署、远程 bundle、单模块部署演示


内容介绍:

一、Atlas Demo Tpatch 构建

二、Atlas Demo 远程 bundle

三、Atlas Demo 单模块部署

一、Atlas Demo Tpatch 构建

参照 Tpatch.txt 文档

1、 app 的 build.gradle 的语句" version =

getEnWalue(""versionName"l"1.0.0");

"中修改想要生成的 app 的 versionName (默认为1.0.0)

app目录下执行./gradlew clean assembleDebug publish

(生成 apk 同时将跟 apk 同目录的 ap 文件发布到仓库)

2、 手机上安装 apk ,同时进到动态部署界面(侧边栏里面划开点击进入),且手机连接电脑 adb(确保 adb devices 可见)

3、 进行一些想要的修改(暂时不支持 manifest 的修改,会在近期上线)

4、 app工程目录下执行./gradlew clean assembleDebug -DapVersion=apVersion -DversionName=newVersion ,其中 apVersion 为之前打的完整apk的版本,newNersion为此次动态部署要生成的新的版本号

5、检查 build/output/tpatch-debug 目录下文件是否生成,然后执行下面的命令(以下为 mac 下的命令, windows 请修改文件分隔符)

adb push build/outputs/tpatch-debug/update.

json. /sdcard/Android/data/com.taobao.demo/cache/update.

json adb push build/outputs/tpatch-debug/patch-*.

tpatch /sdcard/Android/data/com. taobao . demo/cache

6、点击动态部署页面红色按钮执行动态部署

在 FirstBundleActivity 中添加一行

@Override

protected void onResume() {

super.onResume();

Toast.makeText(this,"first bundle. has .changed", Toast.LENGTH_LONG). show();

}

输入命令

ouiwatekiMacBook-Pro:app wangyan$ ../gradlew clean assembleDebug -DapVersion=1.0.0 -DversionName=1.0.1

base.apk 文件表示之前发布得机械版本的 apk 文件, new.apk 文件表示改动后生成的 apk 文件

在 update.json 文件

{

"baseVersion": "1.0.0",

"updateBundles": [

{

"dependency": [],

"isMainDex" : false,

"name" : " com.taobao-firstbundle",

"version" : ""1.0.0@unspecified"

},

{

"isMainDex":true,

"name"' : "com.taobao-maindex",

"version" : "1.0.0@1.0.1"

}

],

"updateVersion": "1.0.1"

}

输入命令调试:

ouiwatekiMacBook-Pro:tpatch-debug wangyan$ unzip patch-1.0.1\@1.0.0.tpatch -d unzippatch

输入命令,将文件推送到手机:

ouiwatekiMacBook-Pro:app wangyan$ adb push build/outputs/tpatch-debugfupdate.json/sdcard/Android/data/com.taobro.deno/ cache/update. Json

ouiwatekilacBook-Proapp wangyans adb push build/outputs/ tpatch-debug/patch-1.0.1\1.0.8.tpatch/sdcard/Android/data/com.taobao.demo/cache)


二、Atlas Demo 远程 bundle

远程 bundle 不会打包进 apk 中

adb push build/outputs/remote-bundles-debug/libcom_taobao_remote

bundle.so /sdcard/Android/dat

输入命令,将 Demo 推送到移动设备

ouinateailacEook-Prozapp wanyans adb push build/outputs/renote-tundles-debug/libcon_taobeo_remotebunle. so /sdcrd/Aadroid/data/com.taobo.demno/cache


三、Atlas Demo 单模块部署

营营可要重言 APP 生效

cd firstbundle

lgradlew.bat clean assemblePatchDebug

修改 Toast 提示:

@Override

protected void onResume(){

super.onResume();

Toast.makeText(this,"sigle bundle. publish",Toast.LENGTH_LONG).show();

}

输入命令并执行:

ouiwatekiMacBook-Pro:app wangyan$ cd ..

ouiwatekiMacBook-Pro:AtlasDemo wangyan$ cd firstbundle/

ouiwatekiMacBook-Pro:firstbundle wangyan$ ../gradlew clean assemblePatchDebug

将 firstbundle 发布,修改 build.gradle 文件,拷贝命令文件并修改:

group = "com.tabao.android.atlasdemo '

version = "1.0.0";

apply plugin:'maven

apply plugin: " maven-publish'

publishing {

repositories i

mavenLocal()

}

}

publishing {

publications {

maven(MavenPublication) {

Artifact" $project.buildDir}/outputs/awb/siproject.name}-debug.awb"

artifactId "firstbundle"

}

}

}

执行发布命令:

ouiwatekiMacBook-Pro:firstbundle wangyan$ ../gradlew build publish

打开本地仓库查看:

ouiwatekiMacBook-Pro:firstbundle wangyan$ open ~/.m2/repository/

输入命令,进入到 APP 目录下执行构建:

ouiwatekiMacBook-Pro:firstbundle wangyan$ cd ..

ouiwatekiMacBook-Pro:AtlasDemo wangyan$ cd app/

ouiwatekiMacBook-Pro:app wangyan$ ../gradlew clean

执行构建

ouiwatekiMacBook-Pro:app wangyan$ ../gradlew assembleDebug

相关文章
|
数据可视化 Go 数据库
性能分析神器:pprof命令详解与实战
性能分析神器:pprof命令详解与实战
1712 0
性能分析神器:pprof命令详解与实战
|
敏捷开发 Devops 测试技术
构建软件质量保障体系
构建软件质量保障体系
730 0
|
API 数据库 开发者
Python微服务框架:Flask与FastAPI的融合创新
在当今高度互联的世界中,构建可扩展、灵活和高效的微服务架构变得至关重要。Python作为一种广泛应用于Web开发的编程语言,其微服务框架Flask和FastAPI的概念与实践日益受到关注。本文将介绍这两个框架的核心概念,并探讨它们在实际应用中的强大功能和优势。
|
10月前
|
人工智能 API 语音技术
VideoCaptioner:北大推出视频字幕处理神器,AI自动生成+断句+翻译,1小时工作量5分钟搞定
VideoCaptioner 是一款基于大语言模型的智能视频字幕处理工具,支持语音识别、字幕断句、优化、翻译全流程处理,并提供多种字幕样式和格式导出。
1939 89
VideoCaptioner:北大推出视频字幕处理神器,AI自动生成+断句+翻译,1小时工作量5分钟搞定
|
5月前
|
安全 Linux 网络安全
ssh-server配置文件参数PermitRootLogin介绍
**PermitRootLogin** 是 SSH 服务(sshd)配置文件 /etc/ssh/sshd_config 中的一个参数,用于控制是否允许通过 SSH 直接以 root 用户身份 登录到服务器。这个设置是为了增强系统的安全性,特别是在远程访问和管理服务器时。
500 0
|
Oracle 关系型数据库 MySQL
实时计算 Flink版操作报错合集之采集oracle的时候报ORA-65040:不允许从可插入数据库内部执行该操作如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
646 3
|
人工智能 算法 物联网
Lyra:SmartMore 联合香港多所高校推出的多模态大型语言模型,专注于提升语音、视觉和语言模态的交互能力
Lyra是由香港中文大学、SmartMore和香港科技大学联合推出的高效多模态大型语言模型,专注于提升语音、视觉和语言模态的交互能力。Lyra基于开源大型模型和多模态LoRA模块,减少训练成本和数据需求,支持多种模态理解和推理任务。
419 33
Lyra:SmartMore 联合香港多所高校推出的多模态大型语言模型,专注于提升语音、视觉和语言模态的交互能力
|
8月前
|
SQL 小程序 API
如何运用C#.NET技术快速开发一套掌上医院系统?
本方案基于C#.NET技术快速构建掌上医院系统,结合模块化开发理念与医院信息化需求。核心功能涵盖用户端的预约挂号、在线问诊、报告查询等,以及管理端的排班管理和数据统计。采用.NET Core Web API与uni-app实现前后端分离,支持跨平台小程序开发。数据库选用SQL Server 2012,并通过读写分离与索引优化提升性能。部署方案包括Windows Server与负载均衡设计,确保高可用性。同时针对API差异、数据库老化及高并发等问题制定应对措施,保障系统稳定运行。推荐使用Postman、Redgate等工具辅助开发,提升效率与质量。
330 0
|
JavaScript 安全 数据安全/隐私保护
去哪儿旅行JS逆向:__m__加密和请求头键值对加密(上篇)
去哪儿旅行JS逆向:__m__加密和请求头键值对加密(上篇)
333 0
去哪儿旅行JS逆向:__m__加密和请求头键值对加密(上篇)
|
移动开发 小程序 API
uniapp中uview组件库丰富的CountTo 数字滚动使用方法
uniapp中uview组件库丰富的CountTo 数字滚动使用方法
349 2