w3cschool 编程狮,随时随地学编程
下载APP
|
登录
个人中心
首页
入门教程
编程课程
特色实战
畅学全站
首页
/
鸿蒙 ArkTS 应用快速上手手册
/
应用程序包更新流程
应用程序包更新流程
HarmonyOS包管理服务提供了应用程序包更新能力,更新方式如下。
应用市场内更新:新版本应用通过应用市场上架后,应用市场通知终端用户该应用有新版本,终端用户可以根据通知到应用市场(客户端)进行应用升级。
应用内检测升级:终端用户启动应用时,应用市场检测到该应用有新版本会通知终端用户,可以到应用市场进行应用的下载更新。
应用程序包安装和卸载流程
共享包概述
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录
构建第一个ArkTS应用(Stage模型)
Stage模型应用程序包结构
多HAP构建视图
多HAP的开发调试与发布部署流程
多HAP使用规则
多HAP运行机制及数据通信方式
应用程序包安装和卸载流程
应用程序包更新流程
共享包概述
HAR
应用内HSP开发指导
快速修复概述
快速修复命令行调试开发指导
应用配置文件概述(Stage模型)
app.json5配置文件
module.json5配置文件
资源分类与访问
学习ArkTS语言
初识ArkTS语言
基本语法概述
声明式UI描述
@Builder装饰器:自定义构建函数
@BuilderParam装饰器:引用@Builder函数
@Styles装饰器:定义组件重用样式
@Extend装饰器:定义扩展组件样式
stateStyles:多态样式
@State装饰器:组件内状态
@Prop装饰器:父子单向同步
@Link装饰器:父子双向同步
@Provide装饰器和@Consume装饰器:与后代组件双向同步
@Observed装饰器和@ObjectLink装饰器:嵌套类对象属性变化
LocalStorage:页面级UI状态存储
AppStorage:应用全局的UI状态存储
PersistentStorage:持久化存储UI状态
Environment:设备环境查询
@Watch装饰器:状态变量更改通知
$$语法:内置组件双向同步
if/else:条件渲染
ForEach:循环渲染
LazyForEach:数据懒加载
开发
应用模型的构成要素
应用模型解读
Stage模型开发概述
应用/组件级配置
UIAbility组件概述
UIAbility组件生命周期
UIAbility组件启动模式
UIAbility组件基本用法
UIAbility组件与UI的数据同步
UIAbility组件间交互(设备内)
ExtensionAbility组件
ArkTS卡片运行机制
ArkTS卡片相关模块
创建一个ArkTS卡片
配置卡片的配置文件
卡片生命周期管理
卡片页面能力说明
卡片使用动效能力
卡片使用自定义绘制能力
卡片事件能力说明
使用router事件跳转到指定UIAbility
使用call事件拉起指定UIAbility到后台
通过message事件刷新卡片内容
通过router或call事件刷新卡片内容
卡片数据交互说明
定时刷新和定点刷新
刷新本地图片和网络图片
根据卡片状态刷新不同内容
使用方刷新卡片内容(仅对系统应用开放)
AbilityStage组件容器
应用上下文Context
Want概述
显式Want与隐式Want匹配规则
常见action与entities
使用显式Want启动Ability
使用隐式Want打开网址
应用间使用Want分享数据
公共事件简介
动态订阅公共事件
静态订阅公共事件(仅对系统应用开放)
取消动态订阅公共事件
公共事件发布
线程模型概述
使用Emitter进行线程间通信
使用Worker进行线程间通信
UI开发
方舟开发框架(ArkUI)概述
UI开发(ArkTS声明式开发范式)概述
线性布局(Row/Column)
层叠布局(Stack)
弹性布局(Flex)
相对布局(RelativeContainer)
栅格布局(GridRow/GridCol)
媒体查询(mediaquery)
创建列表(List)
创建网格(Grid/GridItem)
创建轮播(Swiper)
改善布局性能
按钮(Button)
单选框(Radio)
切换按钮(Toggle)
进度条(Progress)
文本显示(Text/Span)
文本输入(TextInput/TextArea)
自定义弹窗(CustomDialog)
视频播放(Video)
XComponent(绘制)
气泡提示(Popup)
菜单(Menu)
页面路由(router)
Navigation(页面的根容器)
Tabs(页面导航)
显示图片(Image)
绘制几何图形(Shape)
使用画布绘制自定义图形(Canvas)
布局更新动画
组件内转场动画
弹簧曲线动画
放大缩小视图
页面转场动画
触屏事件
键鼠事件
焦点事件
绑定手势方法
单一手势
组合手势
性能提升的推荐方法
Web
使用Web组件加载页面
设置深色模式
上传文件
在新窗口中打开页面
管理位置权限
应用侧调用前端页面函数
前端页面调用应用侧函数
建立应用侧与前端页面数据通道
管理页面跳转及浏览记录导航
管理Cookie及数据存储
自定义页面请求响应
使用Devtools工具调试前端页面
基础类库
异步并发概述
单次I/O任务开发指导
多线程并发概述
TaskPool和Worker的对比
@Concurrent装饰器:校验并发函数
CPU密集型任务开发指导
I/O密集型任务开发指导
同步任务开发指导
线性容器
非线性容器
XML生成
XML解析
XML转换
通知
发布基础类型通知
发布进度条类型通知
为通知添加行为意图
媒体
使用AVPlayer开发音频播放功能
使用AudioRenderer开发音频播放功能
使用OpenSL ES开发音频播放功能
多音频播放的并发策略
播放音量管理
音频播放流管理
音频输出设备管理
使用AVRecorder开发音频录制功能
使用AudioCapturer开发音频录制功能
使用OpenSL ES开发音频录制功能
管理麦克风
音频录制流管理
音频输入设备管理
开发音频通话功能
视频播放
图片解码
图像变换
位图操作
图片编码
图片工具
关闭
MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }