采用startActivity方式 AppBundleHelper.bundleExplicitly(mActivity, "google", "me.yezhou.lib", new AtlasBundleLoadedListener() {
Google开发文档:https://developers.google.com/identity/sign-in/android/sign-in Google移动平台:https://firebase.google.com/ Google Service:https://developers.go
RemoteFragment 使用RemoteFragment方式,在onActivityResult回调时报错 @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { N
1、本地bundle的性能会稍受影响,特别是第一次加载时,因此必需模块可采用host装载而非bundle 2、为兼容Android P,ViewGroup加载bundle务必使用RemoteFragment,而不要使用Activity 3、远程bundle最好静默下载,等待下载完毕再显示前端入口,现
自从Android P/9.0后,Android就已经开始着手阻止App开发调用非sdk的api,也就是被标记为@hide的变量、函数、类不可以通过反射调用,否则会提示NoSuchMethod异常 对Atlas影响 Atlas有许多调用都是通过反射系统api来完成的,其中不乏被标记为@hide的类
Atlas支持配置一个开关,将所有bundle打包到assets目录下。这样就不会导致bundle的apk产物被认为是动态链接库so。 atlas.tBuildConfig.keepInLibSoNames = null 附:Android获取手机cpu架构,支持的指令集 String[] abi
在64位的Android机器上,会有32位的虚拟机和64位的虚拟机,启动apk的时候,虚拟机会根据apk中的so的位数启动对应的虚拟机。 参考:https://github.com/singwhatiwanna/dynamic-load-apk/issues/113 错误原因:Atlas host中
Atlas提供了3种Bundle与Bundle之间的通信方式:RemoteTransactor、RemoteView、RemoteFragment。RemoteTransactor是RemoteView、RemoteFragment通讯方式的简化版,仅仅为了Bundle和Bundle之间的通讯而存在
Bundle间通信RemoteTransactor 以调用图片及视频预览插件为例 定义PreviewRemote实现IRemote接口 public class PreviewRemote implements IRemote { public PreviewRemote() {
Dex分包只对Host生效,对Bundle不生效。也就是在Bundle内不能做Dex分包处理,若方法数超过65536,只能拆分Bundle。 android { defaultConfig { multiDexEnabled true } } atlas {
现象:MainActivity通过ViewPager+Fragment加载装载HomeActivity、SearchActivity、CategoryActivity、CartActivity、MineActivity。若在HomeActivity内部的Fragment启动新的Bundle Acti
远程bundle配置 tBuildConfig { //autoStartBundles = ['cn.appblog.example.home'] //自启动bundle配置 outOfApkBundles = ['qrcode'] //配
DexPatch简介 DexPatch是以动态部署技术方案为基础,以快速解决线上故障为唯一目的的动态化方案。 简单来说,动态部署是针对Apk级别的动态升级,DexPatch是针对Bundle级别的动态修复(主dex可以认为是一个Bundle) 打包DexPatch 基于ap所属的版本(1.0.0)
表结构设计 apps: APP app_versions: 版本 app_version_patchs: Update Patch app_version_dexpatchs: Dex Patch app_bundles: 远程Bundle alter table `app_versions`
在bundle中注册RxBus public class HomeActivity extends TabMainActivity<HomePresenter> implements IHomeView { @Override protected voi