第三方框架

Atlas加载Facebook登录的远程Bundle设计

Atlas加载Facebook登录的远程Bundle设计

RemoteFragment 使用RemoteFragment方式,在onActivityResult回调时报错 @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { N

Joe.Ye Joe.Ye 2023-03-18
0 0 1
微信官方轻量级键值对存储框架MMKV

微信官方轻量级键值对存储框架MMKV

GitHub:https://github.com/Tencent/MMKV Android 文档:https://github.com/Tencent/MMKV/wiki/android_tutorial MMKV与SharedPreferences性能对比: 初始化MMKV 在APP启动时初

Joe.Ye Joe.Ye 2023-03-18
0 0 0
Atlas开发总结

Atlas开发总结

1、本地bundle的性能会稍受影响,特别是第一次加载时,因此必需模块可采用host装载而非bundle 2、为兼容Android P,ViewGroup加载bundle务必使用RemoteFragment,而不要使用Activity 3、远程bundle最好静默下载,等待下载完毕再显示前端入口,现

Joe.Ye Joe.Ye 2023-03-18
0 0 1
Android P阻止调用非sdk api后,Atlas的影响及适配

Android P阻止调用非sdk api后,Atlas的影响及适配

自从Android P/9.0后,Android就已经开始着手阻止App开发调用非sdk的api,也就是被标记为@hide的变量、函数、类不可以通过反射调用,否则会提示NoSuchMethod异常 对Atlas影响 Atlas有许多调用都是通过反射系统api来完成的,其中不乏被标记为@hide的类

Joe.Ye Joe.Ye 2023-03-18
0 0 1
Atlas配置bundle打包产物至assets目录

Atlas配置bundle打包产物至assets目录

Atlas支持配置一个开关,将所有bundle打包到assets目录下。这样就不会导致bundle的apk产物被认为是动态链接库so。 atlas.tBuildConfig.keepInLibSoNames = null 附:Android获取手机cpu架构,支持的指令集 String[] abi

Joe.Ye Joe.Ye 2023-03-18
0 0 1
Atlas插件调用so动态链接库报错libxxx.so is 32-bit instead of 64-bit解决

Atlas插件调用so动态链接库报错libxxx.so is 32-bit instead of 64-bit解决

在64位的Android机器上,会有32位的虚拟机和64位的虚拟机,启动apk的时候,虚拟机会根据apk中的so的位数启动对应的虚拟机。 参考:https://github.com/singwhatiwanna/dynamic-load-apk/issues/113 错误原因:Atlas host中

Joe.Ye Joe.Ye 2023-03-18
0 0 1
Atlas插件Bundle间的通信方式RemoteTransactor、RemoteView、RemoteFragment

Atlas插件Bundle间的通信方式RemoteTransactor、RemoteView、RemoteFragment

Atlas提供了3种Bundle与Bundle之间的通信方式:RemoteTransactor、RemoteView、RemoteFragment。RemoteTransactor是RemoteView、RemoteFragment通讯方式的简化版,仅仅为了Bundle和Bundle之间的通讯而存在

Joe.Ye Joe.Ye 2023-03-18
0 0 1
Atlas通过RemoteTransactor加载并运行远程Bundle

Atlas通过RemoteTransactor加载并运行远程Bundle

Bundle间通信RemoteTransactor 以调用图片及视频预览插件为例 定义PreviewRemote实现IRemote接口 public class PreviewRemote implements IRemote { public PreviewRemote() {

Joe.Ye Joe.Ye 2023-03-18
0 0 1
Atlas Dex分包配置

Atlas Dex分包配置

Dex分包只对Host生效,对Bundle不生效。也就是在Bundle内不能做Dex分包处理,若方法数超过65536,只能拆分Bundle。 android { defaultConfig { multiDexEnabled true } } atlas {

Joe.Ye Joe.Ye 2023-03-18
0 0 1
Atlas框架下通过ViewPager+Fragment加载Bundle的Activity不能回调onActivityResult问题解决

Atlas框架下通过ViewPager+Fragment加载Bundle的Activity不能回调onActivityResult问题解决

现象:MainActivity通过ViewPager+Fragment加载装载HomeActivity、SearchActivity、CategoryActivity、CartActivity、MineActivity。若在HomeActivity内部的Fragment启动新的Bundle Acti

Joe.Ye Joe.Ye 2023-03-18
0 0 1
Atlas远程bundle配置及更新

Atlas远程bundle配置及更新

远程bundle配置 tBuildConfig { //autoStartBundles = ['cn.appblog.example.home'] //自启动bundle配置 outOfApkBundles = ['qrcode'] //配

Joe.Ye Joe.Ye 2023-03-18
0 0 1
Atlas DexPatch调试记录

Atlas DexPatch调试记录

DexPatch简介 DexPatch是以动态部署技术方案为基础,以快速解决线上故障为唯一目的的动态化方案。 简单来说,动态部署是针对Apk级别的动态升级,DexPatch是针对Bundle级别的动态修复(主dex可以认为是一个Bundle) 打包DexPatch 基于ap所属的版本(1.0.0)

Joe.Ye Joe.Ye 2023-03-18
0 0 1
基于Atlas的APP更新服务器设计

基于Atlas的APP更新服务器设计

表结构设计 apps: APP app_versions: 版本 app_version_patchs: Update Patch app_version_dexpatchs: Dex Patch app_bundles: 远程Bundle alter table `app_versions`

Joe.Ye Joe.Ye 2023-03-18
0 0 1
Atlas插件bundle与host通信之RxBus

Atlas插件bundle与host通信之RxBus

在bundle中注册RxBus public class HomeActivity extends TabMainActivity<HomePresenter> implements IHomeView { @Override protected voi

Joe.Ye Joe.Ye 2023-03-18
0 0 1
Atlas技巧

Atlas技巧

资源文件合并 Host:app\build\intermediates\res\merged\debug Bundle:app\build\intermediates\awb-res\merged\debug

Joe.Ye Joe.Ye 2023-03-18
0 0 1
1 2 3 4 6