ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

专为Web开发人员设计的跨端框架Hippy

2022-01-27 18:04:03  阅读:246  来源: 互联网

标签:npm Web 开发人员 demo hippy JS 跨端 Hippy Android


专为Web开发人员设计的跨端框架Hippy

2022-01-27 00:10·GitHub精选

《开源精选》是我们分享Github、Gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的是一个专为 Web 开发人员而设计,可轻松构建跨平台和高性能的出色应用框架——Hippy。

专为Web开发人员设计的跨端框架Hippy

 

Hippy 是一个新生的跨端开发框架,目标是使开发者可以只写一套代码就直接运行于三个平台(iOS、Android 和 Web)。Hippy 的设计是面向传统 Web 开发者的,特别是之前有过 React 和 Vue 开发经验的开发者用起来会更为顺手,Hippy 致力于让前端开发跨端 App 更加容易。

同时,Hippy 从底层进行了大量优化,在启动速度、可复用列表组件、渲染效率、动画速度、网络通信等等都提供了业内顶尖的性能表现。

 

 

特征

  • 为传统 Web 前端开发者设计,官方支持 React 和 Vue 两种主流前端框架。
  • 不同的平台保持了相同的接口。
  • 通过 JS 引擎 binding 模式实现的前端-终端通讯,具备超强性能。
  • 提供了高性能的可复用列表。
  • 皆可平滑迁移到 Web 浏览器。
  • 完整支持 Flex 的布局引擎。

功能对比

Hippy 从底层增加了很多和浏览器相同的接口,方便了开发者使用,这里有几个 Hippy 的独有功能。

专为Web开发人员设计的跨端框架Hippy

 

包体积

下图是一个空的APK,在引入后终端包大小对比。

专为Web开发人员设计的跨端框架Hippy

 

下图是在前端搭建了一个最简单的 ListView 后,前端打出的 JS 的包大小对比。

专为Web开发人员设计的跨端框架Hippy

 

渲染性能

ListView 在滑动时的性能对比,Hippy 可以一直保持十分流畅的状态。

专为Web开发人员设计的跨端框架Hippy

 

开始接入

  • 准备环境

确保你本地已经安装 git 和 npm 。

运行:

 git clone https://github.com/Tencent/Hippy.git

然后在项目根目录运行:

 npm install

Hippy 仓库使用 git-lfs 来管理 so,gz,otf 文件, 请确保你已经安装好 git-lfs。

macOS 用户需要以下软件:

  •  Xcode 和 iOS SDK: 用以编译 iOS 终端 app。
  •  Android Studio 和 NDK: 用以编译 Android app。
  •  Node.JS : 用以运行前端编译脚本。

Windows 用户需要以下软件:

  •  Android Studio 和 NDK: 用以编译 Android app。
  •  Node.JS : 用以运行前端编译脚本。

Windows 用户受条件所限,暂时无法进行 iOS app 开发。

 

  • 使用 JS 范例来构建 iOS App

推荐 iOS 开发者使用模拟器来进行开发和调试工作。当然如果你熟悉 iOS 开发,也可以通过修改配置将 Hippy app 安装到 iPhone 手机上。

1. 在根目录运行 npm run init

该命令由 npm install && lerna bootstrap && npm run build 组成。

  • npm install:安装项目构建脚本的依赖。
  • lerna bootstrap:安装前端每一个 package 依赖。(Hippy 采用 Lerna 管理多 JS SDK 包仓库,如果出现 lerna command is not found , 先执行 npm install lerna -g 全局安装 Lerna 。)
  • npm run build:编译每一个 JS SDK 包。

2. 选择一个前端范例项目来进行编译,在项目根目录运行 npm run buildexample -- [hippy-react-demo|hippy-vue-demo] 。

3. 启动 Xcode 并且开始编译终端 App:open
examples/ios-demo/HippyDemo.xcodeproj 。

如果步骤2出现错误,可以先 cd 到 examples hippy-react-demo 或者 hippy-vue-demo 目录下,执行 npm install --legacy-peer-deps ,提前将 demo 的 NPM 包依赖先安装好。

更多信息请参考 iOS SDK 集成: https://hippyjs.org/#/ios/integration

 

  • 使用 JS 范例来构建 Android App

推荐 Android 开发者使用真机,因为 Hippy 使用的 X5 JS 引擎没有提供 x86 的库以至于无法支持 x86 模拟器,同时使用 ARM 模拟器也比较慢。

在开始前请确认好 SDK 和 NDK 都安装了范例的指定版本,并且请勿更新编译工具链。

1. 在根目录运行 npm run init

该命令由 npm install && lerna bootstrap && npm run build 组成。

  • npm install:安装项目构建脚本的依赖。
  • lerna bootstrap:安装前端每一个 package 依赖。(Hippy 采用 Lerna 管理多 JS SDK 包仓库,如果出现 lerna command is not found , 先执行 npm install lerna -g 全局安装 Lerna 。)
  • npm run build:编译每一个 JS SDK 包。

2. 选择一个前端范例项目来进行编译,在项目根目录运行 npm run buildexample -- [hippy-react-demo|hippy-vue-demo] 。

3. 用 Android Studio 来打开终端范例工程 examples/android-demo 。

4. 用 USB 数据线插上你的 Android 手机,需要确认手机已经打开 USB 调试模式(可通过在电脑 Terminal 执行 adb devices 判断手机是否已经连上了电脑)。

5. 运行工程,并安装 APK。

如果步骤2出现错误,可以先 cd 到 examples hippy-react-demo 或者 hippy-vue-demo 目录下,执行 npm install --legacy-peer-deps,提前将 demo 的 NPM 包依赖先安装好。

如果 Android Studio 报了这个错误 No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android,查看解决办法:
https://github.com/google/filament/issues/15#issuecomment-415423557 。

更多信息请参考 Android SDK 集成: https://hippyjs.org/#/android/integration

 

  • 构建前端生产环境 Demo

1. 先按照上述 [使用 JS 范例来构建 iOS App] 和 [使用 JS 范例来构建 Android App] 步骤执行。

2. cd 到 examples hippy-react-demo 或者 hippy-vue-demo 目录。

3. 执行 npm install 安装相应 js demo 的依赖包。

4. 依次执行 npm run hippy:vendor 和 npm run hippy:build 构建出生产模式的 vendor.[android|ios].js 和 index.[android|ios].js 。

Hippy 的 Demo 使用 DllPlugin 来分离 common chunk 和 app chunk.

 

谁在使用

到目前为止,腾讯公司内已经有 27+ 款主流 App 在使用 Hippy 框架,包括手机QQ、QQ浏览器、腾讯视频、QQ音乐、腾讯新闻等,每日触达数亿用户。

专为Web开发人员设计的跨端框架Hippy

 

 

此项目使用Apache2.0开源协议,更多功能大家可自行前往阅读。

开源地址:https://github.com/Tencent/Hippy

标签:npm,Web,开发人员,demo,hippy,JS,跨端,Hippy,Android
来源: https://www.cnblogs.com/sexintercourse/p/15850651.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有