zoukankan      html  css  js  c++  java
  • react-native 简介及环境

    概要

    • react native
    • 环境搭建
    • hello react native
    • react native 发布

    react native

    优势

    1. 不用再学习 OC,Swift,Java,Kotlin 等
    2. 复用 react 开发的种种好处
    3. 开发体验好(即时编译)
    4. 编译出来的是原生应用,不是 html5 app,也不是 hybrid app
    5. 可以方便的和原生代码写的控件集成

    劣势

    1. 还在发展中,更新频繁,既有可能存在暗坑
    2. 性能调优的方式没有真正的原生开发多

    环境搭建

    npm install -g react-native-cli
    npm install -g create-react-native-app
    npm install -g watchman
    

    hello react native

    1. 创建工程

      create-react-native-app sample
      
    2. 启动工程

      cd sample
      yarn start
      
    3. 通过 expo 来查看运行结果

    发布

    android 发布

    下载 android 环境

    1. 下载 android sdk(如果不用 android studio 开发,可以只下载 sdk 即可)
    2. 下载地址:https://developer.android.com/studio/index.html

    配置 android 环境

    解压 sdk 到 opt/android

    配置 .zshenv / .bashenv

    export ANDROID_HOME=/opt/android
    export PATH=$PATH:$ANDROID_HOME/tools
    export PATH=$PATH:$ANDROID_HOME/platform-tools
    

    安装 platform-tools

    cd $ANDROID_HOME
    ./tools/bin/sdkmanager platform-tools
    

    安装 build-tools

    cd $ANDROID_HOME
    ./tools/bin/sdkmanager "build-tools;23.0.1"
    

    创建签名

    yarn eject
    cd android
    keytool -genkey -v -keystore my-app-key.keystore -alias my-app-alias -keyalg RSA -keysize 2048 -validity 10000
    

    创建签名时,密码用 123456

    配置签名

    1. vim ./android/gradle.properties

      MYAPP_RELEASE_STORE_FILE=my-app-key.keystore
      MYAPP_RELEASE_KEY_ALIAS=my-app-alias
      MYAPP_RELEASE_STORE_PASSWORD=123456
      MYAPP_RELEASE_KEY_PASSWORD=123456
      

      把生成的文件 my-app-key.keystore 放入 android/app 文件夹下

    2. vim ./android/app/build.gradle

      android {
          defaultConfig {... ...}
      	  signingConfigs {
                release {
                    if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) {
                        storeFile file(MYAPP_RELEASE_STORE_FILE)
                        storePassword MYAPP_RELEASE_STORE_PASSWORD
                        keyAlias MYAPP_RELEASE_KEY_ALIAS
                        keyPassword MYAPP_RELEASE_KEY_PASSWORD
                    }
                }
          }
          buildTypes {
              release {
                ... ...
      	        signingConfig signingConfigs.release
              }
          }
      }
      

    发布

    cd android
    ./gradlew assembleRelease
    

    生成的 apk 在 app/build/outputs/apk 下

    附录

    启动一直卡在 Starting packager…

    修改如下内核参数后再启动:

    sudo sysctl -w fs.inotify.max_user_watches=1000000
    

    永久修改此参数,可以把这个配置加入到: /etc/sysctl.conf 中

    ./gradlew assembleRelease 时无法运行 aapt

    java.io.IOException: Cannot run program "/opt/android/build-tools/23.0.1/aapt": error=2, No such file or directory
    

    安装 确实的 package

    sudo  apt-get install lib32stdc++6 lib32z1
    

    Couldn't find preset "babel-preset-react-native-stage-0/decorator-support"

    安装相应的 package

    cd ..
    yarn add babel-preset-react-native-stage-0
    cd android
    ./gradlew assembleRelease
  • 相关阅读:
    VS Code的常用备忘
    Echarts圆环,初始化时进度条效果
    nodejs 复制文件到 另一路径下 。可以在npm库看下mv 和 mvdir 有一点区别
    nginx启动报错(1113: No mapping for the Unicode character exists in the target multi-byte code page
    Echarts dataZome 横向移动动态显示数据
    flex布局时,会有兼容性问题,所以能少用flex布局的地方还是要避免下
    python 搭建 flask 和 orator框架开发
    直播 小测试
    对高并发的理解
    MySQL 中文分词原理
  • 原文地址:https://www.cnblogs.com/wang_yb/p/8120431.html
Copyright © 2011-2022 走看看