直到使用ReactNative开始运行BlankAndroidTV应用程序为止

Ateam 生活方式附带日历 2019 的第19天是由 Ateam 生活方式汽车部门的 @mziyut 负责。

由于最近购买的电视是基于Android TV的,因此我尝试了一下在0.55版本以后,使用React Native开发Android TV应用的功能。顺便一提,截至2019年12月16日,最新版本是v0.61.5。

React Native 是什么

简单来说,这是基于Facebook开发的React的原生应用程序框架。

安卓电视是什么?

简单地说,它是由Google提供的面向智能电视的平台。

这次使用的环境

$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.14.4
BuildVersion: 18E226
$ node -v
v10.16.3

准备开发React Native

AndroidStudio和CocoaPods等等是在创建项目时需要准备的,所以请提前准备好。

首先,创建一个React Native的项目。
这次我们将项目命名为“react_native_androidtv”。
由于需要花费时间,所以请耐心等待。

npx react-native init react_native_androidtv

               ######                ######
             ###     ####        ####     ###
            ##          ###    ###          ##
            ##             ####             ##
            ##             ####             ##
            ##           ##    ##           ##
            ##         ###      ###         ##
             ##  ########################  ##
          ######    ###            ###    ######
      ###     ##    ##              ##    ##     ###
   ###         ## ###      ####      ### ##         ###
  ##           ####      ########      ####           ##
 ##             ###     ##########     ###             ##
  ##           ####      ########      ####           ##
   ###         ## ###      ####      ### ##         ###
      ###     ##    ##              ##    ##     ###
          ######    ###            ###    ######
             ##  ########################  ##
            ##         ###      ###         ##
            ##           ##    ##           ##
            ##             ####             ##
            ##             ####             ##
            ##          ###    ###          ##
             ###     ####        ####     ###
               ######                ######


                  Welcome to React Native!
                 Learn once, write anywhere

✔ Downloading template
✔ Copying template
✔ Processing template
✔ Installing CocoaPods dependencies (this may take a few minutes)

  Run instructions for iOS:
    • cd /Users/mziyut/Workspace/github.com/mziyut/react_native_androidtv && npx react-native run-ios
    - or -
    • Open react_native_androidtv/ios/react_native_androidtv.xcworkspace in Xcode or run "xed -b ios"
    • Hit the Run button

  Run instructions for Android:
    • Have an Android emulator running (quickest way to get started), or a device connected.
    • cd /Users/mziyut/Workspace/github.com/mziyut/react_native_androidtv && npx react-native run-android

启动 (qǐ

由于创建了Blank项目,我们会进行确认,直到能够启动为止。

这次是针对Android的,所以会执行以下命令,这些命令在创建项目时已经显示出来。

$ cd /Users/mziyut/Workspace/github.com/mziyut/react_native_androidtv && npx react-native run-android

我确认它已经启动了。

image.png

更改Android TV的选项。

让我们修改设置以便能够在 Android TV 上进行构建。
需要更改 AndroidManifest.xml 的一部分。

    • react_native_androidtv/android/app/src/main/AndroidManifest.xml

 

    ※1
  <!-- Add custom banner image to display as Android TV launcher icon -->
 <application
  ...
  android:banner="@drawable/tv_banner"
  >
    ...
    <intent-filter>
      ...
      <!-- Needed to properly create a launch intent when running on Android TV -->
      <category android:name="android.intent.category.LEANBACK_LAUNCHER"/>
    </intent-filter>
    ...
  </application>

新增虚拟设备

image.png
image.png

点击「创建虚拟设备」。

image.png

选择AndroidTV并点击“下一步”。

image.png

当你按下“下一步”按钮时,虚拟设备顺利创建成功。

image.png

让我们启动吧

先前已经启动的虚拟设备停止后,重新进行构建。

$ cd /Users/mziyut/Workspace/github.com/mziyut/react_native_androidtv && npx react-native run-android
image.png

概括起来

在AndroidTV上,使用ReactNative构建的应用程序得到了支持,可以以较少的配置来构建和启动应用。然而,Android开发者官方文档中提到了有关电视应用程序质量的内容。

重要:为了实现出色的用户体验,电视端的应用程序必须符合特定的可用性要求。
只有符合以下质量标准的应用程序才能在Google Play上被认可为Android TV应用。

为了消除与遥控器操作的设置以及与用户界面相关的限制,我们需要进行许多额外的实现。(同样地,对于AppleTV应用程序也有同样的要求)。

因此,在决定着手使用React Native开发智能电视应用之前,我认为最好先整理所需的实施内容,然后再做判断。

我只是进行了一些构建操作,但我已经将 mziyut/react_native_androidtv 推送到了 Github 上。

最后

Ateam 生活方式冒险日历2019,第20天由 @mgmg121 主持!!非常期待他会写什么样的文章!

请阅读以上内容

    ※1) https://facebook.github.io/react-native/docs/building-for-apple-tv
广告
将在 10 秒后关闭
bannerAds