首页 > 其他分享 >鸿蒙卡片开发-总结篇

鸿蒙卡片开发-总结篇

时间:2023-01-02 21:31:25浏览次数:59  
标签:总结 鸿蒙 卡片 p12 Android Page Ability


1.鸿蒙卡片概念

官方描述:服务卡片(以下简称“卡片”)是​​FA​​的一种界面展示形式,将FA的重要信息或操作前置到卡片,以达到服务直达,减少体验层级的目的。

开发文档:​​harmonyos应用开发-卡片开发​

左下角或右下角往上滑呼出。

  • 没有App的widget
  • 鸿蒙手机里的小程序

2.开发语言,JAVA/JS

  • Java :适用于Android开发,
  • 直接引入​​BASE64.jar​​ 在项目中使用
  • 放入​​WebView​​加载一个url
  • 开发流程及Api和Android非常相似
  • JS :适用h5前端开发

3.卡片布局

鸿蒙卡片开发-总结篇_harmonyos

默认尺寸​​2*2​​,可扩展多个卡片和尺寸。

  • 简单绘制UI
  • 复杂交互 - 音乐播放器,根据状态启动服务改变卡片样式

折叠屏适配
华为新出的Mate V折叠屏手机需要将卡片显示在折叠之后的外屏上,需要在卡片form上配置​​​customizeData​​ :

"metaData": {
"customizeData": [
{
"name": "exteCoverFACard",
"value": "com.xxx.xx"
}
]
}

如果内屏和外屏显示的UI是不一样的,需要额外处理。

现在遇到的问题:点击外屏会无反应(进入到程序会被禁止),通过服务改变卡片的ui并启动内屏的Ability。

UI方面:

  • 图片指定固定宽高后模,可能的正确示例:
<Image
ohos:height="65vp"
ohos:width="match_parent"
ohos:horizontal_center="true"
ohos:image_src="$media:card_book_text_icon"
ohos:scale_mode="zoom_center"/>

4.Ability/AbilitySlice

  • Ability:应用的重要组成部分,是应用所具备能力的抽象。Ability分为两种类型,Feature Ability和Particle Ability。
  • FA支持Page Ability:
  • Page模板是FA唯一支持的模板,用于提供与用户交互的能力。类似于android的Activity。一个Page实例可以包含一组相关页面,每个页面用一个AbilitySlice实例表示。
  • PA支持Service Ability和Data Ability:
  • Service模板:用于提供后台运行任务的能力。
  • Data模板:用于对外部提供统一的数据访问抽象。
  • AbilitySlice:切片,是单个可视化界面及其交互逻辑的总和,是Feature Ability的组成单元。一个Feature Ability可以包含一组业务关系密切的可视化界面,每一个可视化界面对应一个AbilitySlice。
  • Page Ability:用于提供与用户交互的能力。一个应用可以由多个Page组成,一个Page可以由一个或多个AbilitySlice构成,AbilitySlice是指应用的单个页面及其控制逻辑的总和。

Activity 用户与应用互动的入口点。一个应用可以由一个或多个Activity组成,一个Activity可以由零个,一个或多个Fragment构成。Fragment是FragmentActivity行为或界面的一部分。

生命周期 : Page Ability和Activity的比较相似

Page Ability

Activity

鸿蒙卡片开发-总结篇_1024程序员节_02

鸿蒙卡片开发-总结篇_1024程序员节_03

Page Ability启动模式

  • standard:在任何情况下,无论Page Ability被显示多少次,都会创建一个新的Page Ability实例;
  • singleton:表示该Ability在所有任务栈中仅可以有一个实例。例如,具有全局唯一性的呼叫来电界面即采用“singleton”模式。
  • singleMission:表示此Ability在每个任务栈中只能有一个实例。

standard相对于是Actvity的​​standard​​​。
singleton相对于是Actvity的​​​singleInstance​​。

singleMission相当于是Actvity的​​singleTask​​。


5.项目架构,主要三方组件

常见库:http://www.androidchina.net/11863.html
三方库:https://bbs.elecfans.com/jishu_2075216_1_1.html

  • 项目架构
  • MVC
  • MVP
  • MVVM (databinding/MVVM)
  • 主要三方组件
  1. 下拉刷新 XRecyclerView
  • 小bug:加载更多功能,“没有很多数据”布局有时会出现在头部。
  • 一定要加item点击事件
  • 系统自带可长按拖动功能,要设置禁止
  1. add HeaderView/FooterView
  • XRecyclerView没看到可以添加FooterView的功能
  1. 图片加载 glide
  • 加载圆形图片,加载中的图片不能设置缩放模式或者是设置后无效?
  1. 网络请求 jianjia
  • 封装程序较低,设置cookie不方便,不过够用
  • 基本的使用:
/**
* 搜索
*/
@POST("/search")
@FormUrlEncoded
Call<BaseResultBean<GoodsBean>> search(@Header("Cookie") String cookie,@Field("keywords") String keywords);

和Android里使用基本一致,Cookie可以直接通过这样的形式添加,​​@Header("Cookie") String Cookie​​,也可以通过插值器添加,不过插值器方式还没跑通。

ApiUtil.getApiService().search(cookie,keywords).enqueue(new Callback<BaseResultBean<GoodsBean>>() {
@Override
public void onResponse(Call<BaseResultBean<GoodsBean>> call, Response<BaseResultBean<GoodsBean>> response) {
if (response.isSuccessful()) {
if (response.body() != null) {
callBack.onSuccess(response.body().getData());
} else {
callBack.onError(response.message());
}
} else {
callBack.onError("");
}
}

@Override
public void onFailure(Call<BaseResultBean<GoodsBean>> call, Throwable t) {
callBack.onError(t.getMessage());
}
});

6.打包调试

signingConfigs {
debug {
// 使用正式的p12,用正式的p12生成测试的p7b/cer
storeFile file('/Users/gcc/Documents/devecostudio-0908/workspace-huawei/hm-xxxx/key/xxxxRelease.p12')
storePassword '00000019965xxxxx024B0747A83xxxxxDE6E6E'
keyAlias = 'xxxxx'
keyPassword '000000194364CCE179C9BCAB021AD3DxxxxxA'
signAlg = 'SHA256withECDSA'
profile file('/Users/gcc/Documents/devecostudio-0908/workspace-huawei/hm-xxxx/key/release2Debug.p7b')
certpath file('/Users/gcc/Documents/devecostudio-0908/workspace-huawei/hm-xxxx/key/release2Debug.cer')
}
}
  • 华为登录需要使用固定的​​p12​​​文件,再用这个p12文件生成测试需要的​​p7b​​​/​​cer​​文件
  • 测试设备有效期为​​一年​​。
  • 默认打包时会​​清空应用数据​​,可更改。

真机调试配置需要获取udid

cd /Users/gcc/Documents/devecostudio-0908/huawei-sdk/toolchains
hdc shell bm get -udid

在HarmonyOS SDK的toolchains文件夹下 有一个​​hdc.exe​​​​前提要将hdc的路径配置到环境变量​​:

鸿蒙卡片开发-总结篇_Android_04

混淆

  • 可以的话集成SDK或三方组件后使用​​release​​运行一下

7.遇到的问题,优缺点

鸿蒙相对于Android开发的优点是:

  • ​国产​
  • 鸿蒙卡片在鸿蒙设备上​​免安装​​,就相当于小程序。且鸿蒙折叠屏手机为卡片提供更多有趣的功能。
  • 鸿蒙App在鸿蒙的手机上能上滑出卡片,有更好的​​交互​​效果。得益于鸿蒙生态的优势,能在多个设备上互传。
  • ​状态栏处理方便​​,透明或去掉标题栏很简单就可以实现等
  • ​兼容性​​会很好,不用考虑很多机型适配问题。
  • 提供了​​卡片​​,相当于Android可玩性更强。

缺点:

  • 开源生态​​不成熟​​,没有很成熟的架子。每个分类只有少数几个可用,且基本没有人维护或频次较低。
  • 有一些​​系统Api待完善​​。例如跳转到App,还会使用Android的部分代码,官方没有一个确认的方案;
  • ​滚动布局​​还需要具体的高度或宽度等
  • ​布局预览​​需要每次都点击刷新,不是实时更新,当然也有好坏,但是希望有个控制键
  • 学习资料不那么完全,例如想要Android的​​tools​​那样的预览效果,现在没找到怎么实现或者不能实现。
  • 图片​​Image​​固定大小后会变模糊,暂时没找到原因。
  • 和Android对比,没有丰富的Api
  • 不是apk文件,不能直接发给别人安装。

上架遇到的问题,key

  • 秘钥可用一个p12,然后生成不同的测试和正式的证书,好处是用来华为登录(需要p12一致)
  • 隐私合规,进入第一个页面就需要弹框告诉用户
  • 卡片和icon启动图标有严格要求
  • 只有通过邀请的企业才能发布
  • p12等秘钥配置生成麻烦,不能直接发给别人安装,需要adb?
  • 不授权也要可以使用基础的功能

8.总结

  • 对于Android开发,鸿蒙开发会很好上手,不清楚的查资料就可以得到解决,思路和进行Android开发基本类似。

附录:

​华为鸿蒙系统应用 OpenHarmony JS 前端开发 基础入门教程-完结​

​时钟卡片示例​


标签:总结,鸿蒙,卡片,p12,Android,Page,Ability
From: https://blog.51cto.com/jinbeen/5984165

相关文章

  • (数学分析复习)含参量积分总结
    文章目录写在前面总结一下含参量正常积分、含参量反常积分、Euler积分,这部分内容主要为曲线积分曲面积分以及多重积分做铺垫。主要参考《数学分析(第四版)下册》(华东师范大......
  • 实践总结:云原生技术与大数据技术在企业的体系性落地
    一、背景:期待解决的问题一年多之前,在经历了不成功的创业之旅后,回到了之前的企业,负责集团互联网业务的产研工作。彼时,在产研层面我们面临着以下问题:(一)在企业视角期待解决......
  • CSS的总结1
    1.CSS的行内样式2.CSS的内部样式表3.CSS的外部连接式在头部用link的方式进行连接外部的CSS样式。将外部CSS的路径输入到href里。4.CSS的字体样式属性4.1font-size:字......
  • 前端技术-总结列表
    ------------------------------------------------------------------------------------------------------------------------------------------------------------......
  • Redis 中ZSET数据类型命令使用及对应场景总结
    转载请注明出处:目录1.zadd添加元素2.zrem从有序集合key中删除元素3.zscore返回有序集合key中元素member的分值4.zincrby为......
  • 阿里面试总结(复盘)
    1、一个键值对如何插入hashmap?方法一:使用hashmap的put()方法hashmap.put(key, value);方法二:使用hashmap的putIfAbsent()方法hashmap.putIfAbsent(key, value);2、哈希......
  • 1月2日内容总结——bbs仿博客园项目(开发流程、注册登陆功能)
    目录项目开发基本流程项目流程注册功能登录功能作业项目开发基本流程1.需求分析2.架构设计3.分组开发4.提交测试5.交付上线项目流程仿造博客园项目 核心:文章的......
  • 公众号文章总结
    从2015年开通公众号后,到目前为止已经陆陆续续分享了近200篇文章,为方便各位热情的学习者与交流者,我把公众号中所有的历史文章的链接目录进行了汇总,汇总的方式按文章的编辑时......
  • 2022年终总结
    波澜不惊的2022上半年在学校准备毕设相关的内容,以及参加春招找工作,因为个人不想当北漂,加上父母在成都的原因,所以目标定在成都,具体的面经可以看安全岗春招面经总结,最后选择......
  • 精华总结 |「跨越疫情之境,迈向新的征程」盘点一下2022年度我们开发团队对于云原生的技
    世界上并没有完美的程序,但是我们并不因此而沮丧,因为写程序就是一个不断追求完美的过程。「新的挑战已开启,回顾2022年最开心的两件事」一转眼,2022年就这么悄无声息的过去了,对......