鸿蒙launcher浅析

鸿蒙launcher浅析

鸿蒙launcher源码下载

下载地址如下:
https://gitee.com/openharmony/applications_launcher

鸿蒙launcher模块

下载页面已经有相关文件结构的介绍了

使用鸿蒙编辑器DevEco Studio打开,我使用的版本是渠道版本。官网版本应该也可以,不影响阅读源码。

结构如图

  • product 业务形态层:区分不同产品、不同屏幕的各形态桌面,含有桌面窗口、个性化业务,组件的配置,以及个性化资源包。

  • feature 公共特性层:抽象的公共特性组件集合,可以被各桌面形态引用。

  • common 公共能力层:基础能力集,每个桌面形态都必须依赖的模块。

    /applications/standard/launcher/
    ├── common # 公共能力层目录
    ├── docs # 开发指南
    ├── feature # 公共特性层目录
    │ └── appcenter # 应用中心
    │ └── bigfolder # 智能文件夹
    │ ├── form # 桌面卡片管理功能
    │ ├── gesturenavigation # 手势导航
    │ ├── pagedesktop # 工作区
    │ ├── recents # 最近任务
    │ ├── settings # 桌面设置
    │ ├── smartdock # dock工具栏
    ├── product # 业务形态层目录
    ├── signature # 签名证书

launcher和普通的应用ui展示的区别

之前做过Android launcher,所以对鸿蒙的launcher挺好奇的,看看和普通鸿蒙应用有何区别

新建demo,ui加载是在此生命周期onWindowStageCreate,设置的通过
windowStage.loadContent设置

ts 复制代码
export default class EntryAbility extends UIAbility{

	onWindowStageCreate(windowStage: window.WindowStage): void {

    	windowStage.loadContent('pages/Index', (err) => {
   
    	});
  	}
}

product/phone目录下

launcher的ui加载 是这样的,使用的不是UIAbility,而是没见过的ServiceExtension.,如此,添加的UI

ts 复制代码
export default class MainAbility extends ServiceExtension{
	
  	onCreate(want: Want): void {
		....
    	this.initLauncher();
 	 }
 	 
 	 async initLauncher(): Promise<void> {
 	 	....
   		// create Launcher entry view
    	windowManager.createWindow(globalThis.desktopContext, windowManager.DESKTOP_WINDOW_NAME,
     		windowManager.DESKTOP_RANK, 'pages/' + windowManager.DESKTOP_WINDOW_NAME, true, registerWinEvent);
		....
	}

}
相关推荐
Dream-Y.ocean3 小时前
鸿蒙PC平台星图遥感适配实战:基于 Electron 壳方案的纯 JavaScript 遥感图像处理引擎开发
javascript·electron·harmonyos
七月稻草人8 小时前
鸿蒙平板能当电脑第二块屏幕吗?ToDesk、向日葵镜像/副屏实测
华为·电脑·harmonyos
贾伟康9 小时前
【共创稿事节】HarmonyOS 7.0 Want隐式跳转:从接入到生产验证
性能优化·实战·harmonyos·arkts·arkui
NJPJI_Yang9 小时前
鸿蒙 HarmonyOS 7 应用内存优化:appMemoryOptimizer 释放 so 页缓存实战
pytorch·深度学习·harmonyos
翰德恩咨询10 小时前
IPD咨询洞察:华为如何以项目为中心,激活组织
华为
熊猫钓鱼>_>10 小时前
三方库 NDK 原生模块跨平台适配与调试【鸿蒙心迹】
开发语言·华为·ai编程·harmonyos·鸿蒙·openharmony·鸿蒙心迹
行者-全栈开发21 小时前
【鸿蒙心迹】三方库移植(二)——CMake 交叉编译与符号冲突排查实录(HarmonyOS 7.x)
harmonyos·cmake·交叉编译·三方库移植·ohos·符号冲突
梦想不只是梦与想1 天前
鸿蒙三方库源码调试
harmonyos·断点调试·三方源码调试
用户117910488331 天前
AI输出满屏井号星号?hmharness把Markdown渲染成终端表格 GitHub:swsgbl/hmharness
ai编程·harmonyos
了一1231 天前
鸿蒙ArkWeb 长截图(滚动截图)技术方案总结
harmonyos