框架基础与常见问题整理
Kora 2021-6-8 harmony true 浏览量
# harmonyOS
HarmonyOS 回归本源设计,从浩瀚宇宙中抽象出动态语言,模拟真实世界中的物理动力学,将万有引力融入到动效设计中。引入轻拟物美学风格,以真实生活中的质感,为用户带来全新交互体验。跨设备的超级终端一拖即连,万能卡片轻轻一滑即可获取所需信息,带来全场景智慧生活新体验。
# 传送门
# 同安卓对比
- 微内核、分布式架构
- 底层均为 linux 基础
- 安卓底层代码为 Linux5 倍,代码冗余
- 打包生成 hap 文件,转 zip 会包含兼容性 apk 安卓可运行文件
# 目录结构
- Entry.hap(Module) UI 模块,唯一
- FeatureA(Module) 逻辑模块,可多个
- 轻量级穿戴 JS 工程,只存在一个 module,只存在一个 JS FA,不允许创建新的 JS Component(JS Component 就是一个 JS FA,其包含 htm、css、js)
# ability 结构拆分
- 创建后 config.json 默认配置,不配置无法正常访问
# ability 类型
pageAbility
dataAbility
featureAbility
serviceAbility
mainAbility:
设置自定义启动 setInstanceName("自定义 JS FA 命名");
# 文件创建
# ability 创建
src/main/java/... -> 右击创建 -> Ability
# FA 创建
src/main/js/... -> 右击创建 -> JSComponent
# page 创建
src/main/js/... -> 右击创建 -> JSPage
# module 创建(轻量级穿戴 JS 工程,只存在一个 module,只存在一个 JS FA,不允许创建新的 JS Component(JS Component 就是一个 JS FA,其包含 htm、css、js))
根目录 -> 右击创建 -> Module
# Module 类型
1. library:日志打印,数据字典(build.gradle调用声明:implementation project(":mylibrary"),注意点:一定要点击同步Sync Now)
# 样式布局
# JAVA
- 虚拟像素:vp
- 文字像素:fp
- 关系:默认 1vp == 1fp,但设置字体显示大小:1fp = 1vp * scale
# JS
优点:声明式编程、跨设备、高性能
单位: 智慧屏基准单位:720px (发现未能达到效果) 穿戴设备基准单位:454px
# 媒体样式
```css @media screen and (device-type: tv) {} ```
# UI 开发工具
# 生命周期
# JS
项目:onCreate -> onDestroy
路由:onInit -> onReady -> onShow(后台进入重新调用) -> onDestroy
# JAVA
待整理
# 路由跳转
# JS
# 跳转类型
push | replace | back | clear | getLength | getState
# 跳转示例
import router from '@system.router';
router.push({
uri: 'pages/pages2/pages2',
params: {
name: 'niko',
},
});
# 路由传参
跳转路由可直接获取携带参数
# JAVA
# 跳转类型
intent
# 调试技巧(debug 模式)
- 断点暂停(可增加断点执行逻辑语句,如 for 循环,指定索引为固定值时停止)
# attach(debug 模式)
不影响项目运行记录 debug 位置
# 网络请求权限配置
# 配置位置
/entry/src/config.json
# 配置属性
"reqPermissions": [
{"name": "ohos.permission.INTERNET"},
{"name": "ohos.permission.GET_NETWORK_INFO"},
{"name": "ohos.permission.SET_NETWORK_INFO"}
],