# 汽车类行业实践 **Repository Path**: harmony-os-next/AUTO_Framework_Code_V1 ## Basic Information - **Project Name**: 汽车类行业实践 - **Description**: 汽车类行业实践 https://developer.huawei.com/consumer/cn/doc/architecture-guides/practice-auto-app-architecture-v1-0000001903742656 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 3 - **Created**: 2024-10-26 - **Last Updated**: 2025-05-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 简介 本设计为汽车类HarmonyOS应用的架构设计实践,应用设备形态只有手机端,提供汽车类应用常见的汽车类资讯,购车,商城以及充电服务等应用功能。 - Stage开发模型+声明式UI开发方式。 - 按照应用设备形态,规划一个手机设备Entry类型HAP包。 - 本实践性能优先,应用程序包大小可控,且无单独加载模块场景,业务模块包类型采用HAR包。 ## 应用布局 > 说明 > 实践应用框架代码运行图,开发者可以基于框架代码替换相关资源文件,以保证应用良好的使用体验。 应用首页采用各类APP常见页面导航布局首页底部导航包含“探索”,“购车”,“商城”,“服务”,“我的”五个功能入口,分别对应五个功能模块(模块划分详见本实践软件视图)。探索页面上部是热门汽车介绍Banner轮播图,中间是汽车资讯列表瀑布流。购车页面提供车辆详细信息以及预约试驾等能力。首页->服务->最优站点,基于位置提供最佳充电位置服务。 ![img](https://alliance-communityfile-drcn.dbankcdn.com/FileServer/getFile/cmtyPub/011/111/111/0000000000011111111.20240904102608.03184191730134591296673305743530:50001231000000:2800:63771C2782982B4076AD5F6096C21B66A7A35045C792DA9AEB66B2128004B045.gif?needInitFileName=true?needInitFileName=true?needInitFileName=true?needInitFileName=true?needInitFileName=true) ## 应用架构设计 ### 模块划分 根据行业应用的功能,按照高内聚,低耦合的原则,常见汽车类应用功能以及职责划分模块如下,开发者在实际设计过程中,可以根据模块的复杂程度实际情况再进一步细分: | 模块名称 | 功能点 | | -------- | -------------------------------------- | | 探索 | 行业资讯 | | 购车 | 产品详情,购车指南 | | 商城 | 商品搜索,商品详情,商品购买 | | 服务 | 充电服务,服务门店 | | 我的 | 我的车辆,我的订单,我的积分,我的家充 | | 通用 | 资源,国际化,导航 | ### 软件视图设计 应用分层模块类型划分指导,参见[分层模块化实践](https://developer.huawei.com/consumer/cn/doc/architecture-guides/practice-common-app-layered-v1-0000001916033058)。 产品定制层:本实践只涉及手机端,设计为一个Hap,包含页面框架、导航、手机独有资源等。 基础特性层:“探索”、“购车” 等功能模块设计为Har包,被上层引用。 公共能力层:本实践将“应用路由”、“基础工具”、“DFX”等基础公共模块打包为Har包被上层业务组件引用,其中路由管理划分到公共组件。 **图1** 软件视图 ![点击放大](https://alliance-communityfile-drcn.dbankcdn.com/FileServer/getFile/cmtyPub/011/111/111/0000000000011111111.20240904102609.16241592519601774330962907055298:50001231000000:2800:D1A0E9AC321A14BC8A58AB890FDF52671734AEE6089CDB2F6ED9FF0846CC8F23.png?needInitFileName=true?needInitFileName=true?needInitFileName=true?needInitFileName=true?needInitFileName=true) ### 逻辑视图设计 根据本应用功能的模块以及依赖,分解对原生基础服务以及三方的依赖,逻辑视图如下: **图2** 逻辑视图 ![点击放大](https://alliance-communityfile-drcn.dbankcdn.com/FileServer/getFile/cmtyPub/011/111/111/0000000000011111111.20240904102609.82150013842946062569909412558748:50001231000000:2800:513570F24337363CD556D87BC3C84FF4CDF6147DF1A80FE356D254C18BEDE555.png?needInitFileName=true?needInitFileName=true?needInitFileName=true?needInitFileName=true?needInitFileName=true) ## 代码结构解读 本篇代码非应用的全量代码,只包括脱敏后的应用框架代码,开发者可以通过链接下载全量的框架代码。整个框架代码结构分为6个HAR包,所有的HAR在同一个IDE工程中维护开发。 6个HAR分别为buyingCar,common,explore,mine,service,shoppingMall。 ```sh ├── common/src/main/ets // 公共模块 │ ├── compontents │ │ ├── NavItem.ets // nav组件 │ │ ├── PageHeaderComp.ets // 二级页面头部组件 │ │ ├── ShopItem.ets // shop组件 │ ├── constants │ │ ├── CommonConstants.ets // 公共样式 │ │ ├── NavConstants.ets // nav样式 │ │ ├── TabConstants.ets // tab样式 │ ├── model │ │ ├── BuyingCarModel.ets // 购车数据模型 │ │ ├── CommodityModel.ets // 商城数据模型 │ │ ├── ExploreModel.ets // 探索数据模型 │ │ ├── LazyDataSource.ets // 懒加载数据 │ │ ├── NavModel.ets // nav数据模型 │ │ ├── ShopModel.ets // shop数据模型 │ ├── utils │ │ ├── PermissionsUtil.ets // 权限管理工具类 │ │ ├── PreferencesUtil.ets // 数据存储工具类 ├── entry/src/main/ets // 主页面 │ ├── constants │ │ ├── TabConstants.ets // tab样式 │ ├── pages │ │ ├── LoginPage.ets // 登录页 │ │ ├── NavigationPage.ets // Navigation根页面 │ │ ├── PrivacyPolicyPage.ets // 隐私政策页面 │ │ ├── SplashScreenPage.ets // 闪屏页 │ │ ├── SplashScreenPage2.ets // 闪屏页2 │ │ ├── TabPage.ets // tab页 │ ├── entryability │ │ ├── EntryAbility.ets // 程序入口 ├── features │ ├── buyingcar/src/main/ets // 购车 │ │ ├── compontents │ │ │ ├── LearnMoreItemComp.ets // 了解更多item组件 │ │ │ ├── MarqueeImageComp.ets // 走马灯图片 │ │ │ ├── SwiperItemComp.ets // 购车swiperItem组件 │ │ │ ├── VehicleModelActivities.ets // 车型item组件 │ │ ├── pages │ │ │ ├── BuyingCarPage.ets // 购车tab页 │ ├── explore/src/main/ets // 探索 │ │ ├── compontents │ │ │ ├── ActivityComp.ets // 活动swiper页 │ │ │ ├── ActivityItemComp.ets // 活动item组件 │ │ │ ├── RealTimeInfoComp.ets // 咨询swiper页 │ │ │ ├── RecommendationComp.ets // 推荐swiper页 │ │ ├── constants │ │ │ ├── RecommendationConstants.ets // 探索tab页 │ │ ├── pages │ │ │ ├── ExplorePage.ets │ ├── mine/src/main/ets // 我的 │ │ ├── compontents │ │ │ ├── MajorList.ets // 单个组件 │ │ ├── constants │ │ │ ├── HeaderConstants.ets // 头部样式 │ │ │ ├── MajorConstants.ets // major样式 │ │ ├── model │ │ │ ├── MajorModel.ets // major模型 │ │ ├── pages │ │ │ ├── MinePage.ets // 我的tab页 │ │ │ ├── SettingsPage.ets // 设置页面 │ ├── service/src/main/ets // 服务 │ │ ├── compontents │ │ │ ├── SheetTransition.ets // sheet模态框 │ │ ├── constants │ │ │ ├── ServiceConstants.ets // 服务样式 │ │ ├── model │ │ │ ├── StationModel.ets // station模型 │ │ ├── pages │ │ │ ├── MyCharge.ets // 我的充电页 │ │ │ ├── OptimalStation.ets // 最优站点页 │ │ │ ├── ServicePage.ets // 服务tab页 │ ├── shoppingMall/src/main/ets // 商城 │ │ ├── compontents │ │ │ ├── CommodityItemComp.ets // 商城列表item组件 │ │ ├── constants │ │ │ ├── ShoppingMallConstants.ets // 商城样式 │ │ ├── pages │ │ │ ├── CommodityDetailPage.ets // 商城详情 │ │ │ ├── ShoppingMallPage.ets // 商城tab页 └──entry/src/main/resources // 资源文件目录 ```