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

目前ide对于js调试还是如其它android、ios一样,存在较多缺陷,config.json配置导致中间调试的断层。建议初学者如果是java或者语言类转入,可以先用java语言进行学习。

首先,你需要理清楚

Ability、AceAbility、AbilityPackage 三者关系:

AbitityPackage 继承 AbilityContext 并且对接接口callback。context顾名思义:Context初始化,android也是上下文包括继承于Context的ContextWrapper,ios 是controller中self、weakself等等。

harmonyOS中的context除了初始化函数,attachBaseContext(Context context)也是极尽相识,

android该类主要是获取:

getResource、getAsset、PackManager信息、也能获取一些系统操作类如:sharedPreference、File文件操作、广播操作、配置configuration等信息,为我们打通系统信息、初始化相关句柄做了最原始的操作。

harmonyOS该类简单很多,定义:安全警告、运行包代码标识等外,MODE_APPEND 数据处理方式,文件存在加入尾部特征,数据共享模式设置常量。另外,TaskDispatcher的初始化函数,对于任务分发,同步、异步、串行和并行任务这个类似于ios、macos等gcd、queue设计模式。特别是:getGlobalTaskDispatcher()相似与grobleQueue。其它与android相似,文件、数据库、权限、生命周期管理、app常规消息处理。使用使用:UITaskDispatcher 这个主线程ui处理回调,也是ios 实际理念。

AbilityPackage 对于hormonyOS是初始化app一个单例通类。如果没有创建,默认也是系统自动生成,这点就是android一样,未继承application就是系统application,android activity也可以从context获取到。HarmonyOS 通过getApplicationContext()进行转化。

对于ios就是:Appdelegate实现协议:UIResponder<UIApplicationDelegate>,当然objective-c的类可以扩展,扩展类可以增加很多主类没有能力, 编译时候合并对应,所以无法添加新的实例变量。

AceAbility是js代码Js UI框架 区别与 java代码Java UI框架的ability

 ACE: 结合了OpenHarmony系统的基础组件Ability,开源jsframework框架,开源js引擎quickjs,开源跨平台UI框架flutter,开源渲染引擎skia以及各种平台能力API等共同构筑了OpenHarmony标准系统javacript应用开发的基础。 启动:setInstanceName(String name)的参数“name”指实例名称,实例名称与config.json 文件中 profile.application.js.name 的值对应。若开发者未修改实例名,而使用了缺省值 default,则无需调用此接口。若开发者修改了实例名,则需在应用 Ability 实例的 onStart()中调用此接口,并将参数“name”设置为修改后的实例名称。

当然,ios有swifiui、objectivie-c ui控件本质不同。hormonyos主要在于编译器强大,能进行linux等平台跨越,另一方面也是由于开辟了软总线优势所在。整个理念是采用“闭圈管理”,但是区别是严格模式的ios设计、android权限限制设计理念,个人觉得hormonyOS更加具有中国的文化功底,采用更大圈的设计理念,在数据层等共享性做了突破。

另外,在这纠正下刚学习朋友,HarmonyOS 包括三个系统级别称呼:

支持android apk、支持HarmonyOS apk;仅仅支持HarmonyOS apk;软总线解析TTL功能模块系统。

并非不支持android apk安装或者片面理解android copy者。

说到ui,少不了单位适配

px、dp、sp  google定义如下:

  • dpi,dots per inch,代表屏幕像素密度。
  • dp,device independent pixels(设备独立像素,等同于dip),不依赖于像素
  • sp,scale-independent pixels(缩放独立像素,等同于sip),和dp类似,允许由用户自定义文字尺寸大小(如小、正常、大、超大等)

px、vp、fp  harmonyOS提供AttrHelper工具类进行处理基本够用了,

vp 虚拟像素(virtual pixel)是一台设备针对应用而言所具有的虚拟尺寸(区别于屏幕硬件本身的像素单位)。它提供了一种灵活的方式来适应不同屏幕密度的显示效果。

fp,font-size pixels,字体像素单位,其大小规范默认情况下与vp相同,但如果开发者在设置中修改了字体显示大小,就会在vp的基础上乘以scale系数。即默认情况下 1 fp = 1vp,如果设置了字体显示大小,则会根据实际情况自动设置 1fp = 1vp * scale。

px、ppi、pt appleOS在硬件设备有自己对应的换算,需要根据屏幕密度进行,主要以视觉效果判断:

@1x,163ppi(iphone3gs)

@2x,326ppi(iphone4、4s、5、5s、6)

@3x,   401ppi(iphone6+)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值