开发者学堂课程【开源 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