react-native 簡介及環境

来源:https://www.cnblogs.com/wang_yb/archive/2017/12/26/8120431.html
-Advertisement-
Play Games

概要 react native 環境搭建 hello react native react native 發佈 react native 優勢 1. 不用再學習 OC,Swift,Java,Kotlin 等 2. 復用 react 開發的種種好處 3. 開發體驗好(即時編譯) 4. 編譯出來的是原生 ...


概要

  • 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

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 學習目標: -使用ROLLUP操作符產生小計值 -使用CUBE操作符產生交叉製表 -使用GROUPING函數來標識ROLLUP或CUBE運算符生成的結果集中的聚合級別 -使用GROUPING SETS生成一個相當於UNION ALL方法的結果集 ROLLUP操作符 SELECT [column,] ...
  • (本人初次接觸spark可能有些地方理解的不夠到位,希望各位讀者多多指正,對於不恰當的地方也會進行改進) 1、RDD定義:是彈性分散式數據集,是分佈到各個節點的數據集合,具有自動容錯性、位置感知調度和可伸縮性等。 2、RDD的特性: 2.1 分區(partition) 分區是RDD的基本組成單位(s ...
  • hadoop是基於磁碟的,它的運算結果保存在磁碟當中;而spark的運算是基於記憶體的。因此spark的運算速度是 hadoop的100倍;即使在磁碟當中運算,spark也是hadoop的10倍左右,原因就是spark具有優秀的作業調度策略。 故spark的速度快與hadoop的兩個原因: (1)sp ...
  • Mapper Mapper的maps階段將輸入鍵值對經過計算得到中間結果鍵值對,框架會將中間結果按照key進行分組,然後傳遞給reducer以決定最終的輸出。用戶可以通過Job.setGroupingComparatorClass(Class)來指定一個Comparator。 Mapper的輸出會被 ...
  • 使用mysql資料庫的朋友, 經常會使用mysqldump備案資料庫, 然後到新伺服器還原, 這個過程中, 有朋友會遇到ERROR 1046 (3D000) No database selected的提示, 這個原因是沒有在命令中指定對應的資料庫。 解決的方法也很簡單, 假設mysqldump備案的 ...
  • 一、 Oracle自動備份單表一個月數據 方式一:三步處理(建批處理文件,寫sql文件,設置任務計劃) 1、 第一步:建立一個批處理文件 2、 第二步、寫清除資料庫並釋放空間的sql文件 3、 第三步、使用windows自帶的任務計劃程式 A) 打開任務計劃程式,新建一個基本任務計劃 B) 填上名和 ...
  • [20171225]查看並行執行計劃註意的問題.txt--//如果使用dbms_xplan.display_cursor查看並行執行計劃註意一些問題,通過例子說明:1.環境:SCOTT@book> @ &r/ver1PORT_STRING VERSION BANNER x86_64/Linux 2. ...
  • MySQL事務 MySQL事務主要用於處理操作量大,複雜度高的數據。 比如說,在人員管理系統中,你刪除一個人員,你既需要刪除人員的基本資料,也要刪除和該人員相關的信息,如信箱,文章等等,這些資料庫操作語句就構成一個事務。 (1)在MySQL中只有使用了Innodb資料庫引擎的資料庫或表才支持事務。  ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...