【HarmonyOS应用开发】Hello HarmonyOS到Hi HarmonyOS(2)
头像 宋你一朵小红花 2020-11-09 10:00:00    发布
3300 浏览 22 点赞 21 收藏

HelloHarmonyOS项目目录结构

【HarmonyOS应用开发】Hello HarmonyOS到Hi HarmonyOS(2)-鸿蒙开发者社区

在整合目录结构中,作为初学者我们不需要关注entry(应用主模块)以外的目录。

entry是应用的主模块。一个APP中,对于同一设备类型必须有且只有一个entry类型的HAP,可独立安装运行。

HarmonyOS应用APP是什么样的?

HarmonyOS的应用软件包以APP Pack(Application Package)形式发布,它是由一个或多个HAP(HarmonyOS Ability Package)以及描述每个HAP属性的pack.info组成。我们可以在之前运行的项目entry目录结构下看到build目录,展开后可以看到hap和hapInfo.json。对于APP中多个HAP我们在后面项目进行详细介绍,本节我们仅使用entry来完成案例。

HarmonyOS应用中的Ability是什么?

刚开始学习的时候,对Ability不是特别好理解。翻译过来是能力的意思,什么算能力?为什么要使用Ability这个词?官方解释Ability是应用所具备的能力的抽象,一个应用可以包含一个或多个Ability。Ability又分为FA(Feature Ability,有UI界面)和PA(Particle Ability,无UI界面)两种类型。那到底什么是Ability呢?我的理解是一切皆能力,比如页面提供的用户交互,这就是一种能力;在比如后台推送消息任务这也是一种能力,只不过一个是可见的,一个是不可见的。

代码说明

程序是如何运行的呢?

① 先执行继承AbilityPackage类的HelloHarmonyOS 类中onInitialize()方法来加载Context。

② 然后在config.json配置清单中找到入口函数,即MainAbility类,执行onStart()方法。

③ super.setMainRoute(MainAbilitySlice.class.getName());调起UI界面。


    /**
     * 单一方向排列布局
     */
    private DirectionalLayout myLayout = new DirectionalLayout(this);

    @Override
    public void onStart(Intent intent) {
        /**
         * Intent是对象之间传递信息的载体。
         * 例如,当一个Ability需要启动另一个Ability时,
         * 或者一个AbilitySlice需要导航到另一个AbilitySlice时,
         * 可以通过Intent指定启动的目标同时携带相关数据。
         */
        super.onStart(intent);
        /**
         * 布局配置文件
         * 此处设置布局宽高为MATCH_PARENT
         */
        LayoutConfig config = new LayoutConfig(LayoutConfig.MATCH_PARENT, LayoutConfig.MATCH_PARENT);
        myLayout.setLayoutConfig(config);
        /**
         * 提供具有颜色渐变的Element实例,通常用于视图背景。
         */
        ShapeElement element = new ShapeElement();
        element.setRgbColor(new RgbColor(255, 255, 255));
        myLayout.setBackground(element);

        /**
         * 文本
         */
        Text text = new Text(this);
        text.setLayoutConfig(config);
        text.setText("Hello HarmonyOS");
        text.setTextColor(new Color(0xFF000000));
        text.setTextSize(50);
        text.setTextAlignment(TextAlignment.CENTER);
        myLayout.addComponent(text);
        /**
         * 设置界面入口
         */
        super.setUIContent(myLayout);
    }
    复制

我们修改text.setText("Hello World");为text.setText("Hello HarmonyOS");并运行查看效果。

【HarmonyOS应用开发】Hello HarmonyOS到Hi HarmonyOS(2)-鸿蒙开发者社区在这里我们大概的说明了程序的目录结构、运行路线及修改显示文本内容。下一节我们将说说两个Ability跳转。

欢迎讨论:你是如何理解Ability的?

    目录    

【HarmonyOS应用开发】Hello HarmonyOS到Hi HarmonyOS(1)


©本站发布的所有内容,包括但不限于文字、图片、音频、视频、图表、标志、标识、广告、商标、商号、域名、软件、程序等,除特别标明外,均来源于网络或用户投稿,版权归原作者或原出处所有。我们致力于保护原作者版权,若涉及版权问题,请及时联系我们进行处理。
分类
其它
头像

宋你一朵小红花

我还没有写个人简介......

881

帖子

0

提问

1679

粉丝

关注
热门推荐
地址:北京市朝阳区北三环东路三元桥曙光西里甲1号第三置业A座1508室 商务内容合作QQ:2291221 电话:13391790444或(010)62178877
版权所有:电脑商情信息服务集团 北京赢邦策略咨询有限责任公司
声明:本媒体部分图片、文章来源于网络,版权归原作者所有,我司致力于保护作者版权,如有侵权,请与我司联系删除
京ICP备:2022009079号-2
京公网安备:11010502051901号
ICP证:京B2-20230255