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


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

    《开源精选》是我们分享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

  • 相关阅读:
    用OpenGL简单编写的一个最简单贪吃蛇游戏
    Python lambda map filter reduce
    Hadoop Python MapReduce
    Python faker生成数据
    Pandas数据清洗
    PySpark与jupyer notebook
    虚拟机与宿主机网络共享
    集合覆盖问题与贪婪算法
    最快路径与狄克斯特拉
    最短路径问题与广度优先搜索
  • 原文地址:https://www.cnblogs.com/sexintercourse/p/15850651.html
Copyright © 2020-2023  润新知