ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

鸿蒙-实践课程二 android、ios、HarmonyOS

2022-09-29 13:30:34  阅读:134  来源: 互联网

标签:


Ability可以分为FA(Feature Ability)和PA(Particle Ability)两种类型。

PA支持Service Ability和Data Ability。

以上,需要再config.json 中进行type配置。

android 为activity、fragment,Activity需要在AndroidManifest.xml中进行注册。

harmonyOS 需要在config.json配置。

Ability休要在onStart(Intent intent) 初始化视图 setUIContent。activity在onCreate(@Nullable Bundle savedInstanceState)初始化 setContentView。

原因:

HarmonyOS Page调用onStart()后进入INACTIVE。Android中当 Activity 进入“已开始”状态时,系统会调用onStart() 。onStart() 调用使 Activity 对用户可见,此时只是可见,但不能与用户进行交互,应用通过此方法来初始化维护界面的代码。

HarmonyOS Page会在进入INACTIVE状态后来到前台,然后系统调用onActive()。Page在此之后进入ACTIVE状态,该状态是应用与用户交互的状态。Android Activity 会在进入“已恢复”状态时来到前台,然后系统调用 onResume() 回调。这时,生命周期组件可以启用在组件可见且位于前台时需要运行的任何功能。

对于HarmonyOS Ability Abilityslice中,继承如下:

Ability extends AbilityContext implements ILifecycle && class AbilitySlice extends AbilityContext implements ILifecycle。

对于android 中Activity,继承关系如下:

AppCompatActivity 五层级到ContextWrapper,再到Context,复杂功能链路。

Fragment implements ComponentCallbacks, OnCreateContextMenuListener, LifecycleOwner, ViewModelStoreOwner, HasDefaultViewModelProviderFactory, SavedStateRegistryOwner。

iOS os 中UIviewcontroller :UIResponder 以及各种协议汇总,最终死nsobject类的UIresponderStandardEditactions。

从原理是,ios < harmonyos < android,层层关系递进,这需要编译软件耗时,运行时候更高效的是层级关系简单的链路。

在宣传会议后,有这么一张从使用场景、价值、战略上(来自知乎):

有人这么调侃:如果Apple把自家的watchOS、iPadOS、macOS、tvOS都改名叫AppleOS,就几乎占全了鸿蒙的特长。

我做过一些投屏软件,iosOS开发接触macOS后,痛苦不堪,很多兼容性api差异化很大,所以这个根本无法对等。

OpenHarmony不是HarmonyOS

华为把HarmonyOS中基础功能提取出来,打包成功一个项目叫做“Openharmony” ,把Openharmony捐献给了原子开源基金会。

HarmonyOS 2 并没有捐出,这个商业版本也是基于开源项目 OpenHarmony 2.0 开发的,兼容了 AOSP,增加了 HMS 。

个人认为,这需要国家层面出手或者更高维度的需求落地进行潜移默化的处理。不能一概去除android、ios好坏之分。借助android、ios竞争性进行harmony突破。

AbilitySlice

切片,是单个可视化界面及其交互逻辑的总和,是Feature Ability的组成单元。一个Feature Ability可以包含一组业务关系密切的可视化界面,每一个可视化界面对应一个AbilitySlice。

eg:

AbilitySlice targetSlice = new MyAbilitySlice();

Intent intent = new Intent(); intent.setParam("value", 10); present(targetSlice, intent);

标签:
来源:

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有