分布式模拟器(Super device)初体验 原创

发布于 2021-6-3 08:54
浏览
2收藏

再简单记录一下。

分布式模拟器(Super device)初体验-开源基础软件社区

zai

昨晚, DevEco Studio 上新了惊喜版本:新增了分布式模拟器,目前还在实验性阶段。

 

先说说,我升级遇到的问题:[DevEco Studio编辑器无法开启模拟器
 ](https://harmonyos.51cto.com/answer/1091)

 

按照报错提示,我重装了SDK 就能跑起来了

 

接着,看看分布式模拟器的文档: 使用分布式模拟器

https://developer.harmonyos.com/cn/docs/documentation/doc-guides/run_simulator-0000001053303709#ZH-CN_TOPIC_0000001057685611__section78884111389

 

我们进到编辑器的实验特性设置,开启相应的能力:

分布式模拟器(Super device)初体验-开源基础软件社区

 

再进到模拟器设备管理就能看到远程的分布式模拟器了:

分布式模拟器(Super device)初体验-开源基础软件社区

目前支持 手机+手机 以及 手机 + 平板。

 

接着,我们拉一下 codelab 的代码体验一下分布式能力。

 

git clone https://gitee.com/openharmony/codelabs/

 

我选用了分布式邮件的案例来体验,不过值得注意的是--先要更新环境,部分配置也需要更改,比如:

"version": {
      "code": 1000000,  // 这里需要修改
      "name": "1.0"
    },
         "formEnabled": false,   // 这里需要删除
        "name": "com.huawei.maildemo.MainAbility",
        "icon": "$media:icon",
        "description": "$string:mainability_description",
        "label": "$string:app_name",
        "type": "page",
        "launchType": "standard"

 

JUST DO IT!

 

分布式模拟器(Super device)初体验-开源基础软件社区

此时需要注意设备类型,我这里选用的 手机 + 平板,

 

鉴于当前(2021-06-03)我的 Super App 没法显示设备列表,我先在手机上运行这个分布式应用:

分布式模拟器(Super device)初体验-开源基础软件社区

 

此时如果我点击右上角按钮进行数据流转时,虽然能够找到隔壁的平板,但此时还不能正常进行流转,我们在平板上再运行一下应用:

分布式模拟器(Super device)初体验-开源基础软件社区

 

接着我们就可以流转了:

分布式模拟器(Super device)初体验-开源基础软件社区

 

接着就是见证分布式模拟器的分布式能力了:

 

分布式模拟器(Super device)初体验-开源基础软件社区

分布式模拟器(Super device)初体验-开源基础软件社区

 

最后,我们去看看核心的代码:

 

public class MainAbility extends Ability implements IAbilityContinuation { 
    ... 
    @Override 
    public void onCompleteContinuation(int code) {} 
 
    @Override 
    public boolean onRestoreData(IntentParams params) { 
        return true; 
    } 
 
    @Override 
    public boolean onSaveData(IntentParams params) { 
        return true; 
    } 
 
    @Override 
    public boolean onStartContinuation() { 
        return true; 
    } 
}
public class MailEditSlice extends AbilitySlice implements IAbilityContinuation { 
    ... 
    @Override 
    public boolean onStartContinuation() { 
        LogUtil.info(TAG, "is start continue"); 
        return true; 
    } 
 
    @Override 
    public boolean onSaveData(IntentParams params) { 
        ... 
        LogUtil.info(TAG, "begin onSaveData:" + mailData); 
        ... 
        LogUtil.info(TAG, "end onSaveData"); 
        return true; 
    } 
 
    @Override 
    public boolean onRestoreData(IntentParams params) { 
        LogUtil.info(TAG, "begin onRestoreData"); 
        ... 
        LogUtil.info(TAG, "end onRestoreData, mail data: " + cachedMailData); 
        return true; 
    } 
 
    @Override 
    public void onCompleteContinuation(int i) { 
        LogUtil.info(TAG, "onCompleteContinuation"); 
        terminateAbility(); 
    } 
}

 

更多详情请移步 codelab : https://developer.huawei.com/consumer/cn/codelabsPortal/carddetails/Distributed-Mail

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
已于2021-6-3 21:08:12修改
4
收藏 2
回复
举报
回复
添加资源
添加资源将有机会获得更多曝光,你也可以直接关联已上传资源 去关联
    相关推荐