React & React Native/환경 설정 및 구성

[RN] React Native Android 빌드 속도 올리는 방법 : gradle.properties

adjh54 2023. 6. 27. 22:32
반응형
 해당 글에서는 React-native에서 Andriod 디바이스로 테스트를 하는 경우 빌드 속도를 올리는 방법에 대해서 공유합니다.


 

1) gradle.properties 파일 설정


 

1. Gradle 캐시 속성 설정하기


💡 Gradle에서는 빌드 과정에서 많은 파일들을 생성하고 관리를 합니다.
💡 '캐시'를 통하여 이전에 빌드된 캐시를 사용하여 빌드시간을 단축시켜 빌드를 빠르게 수행할 수 있습니다.
org.gradle.caching=true

 

 

 

2. Daemon 모드 사용하기


💡 Daemon 모드란?

- 빌드에 사용되는 JVM을 한번 시작하고 빌드가 완료될 때까지 계속해서 사용합니다.
- 이전 빌드에서 생성된 캐시를 사용하여 최대한 많은 작업을 건너뛰고 빌드를 빠르게 수행할 수 있습니다.
- 캐시가 없는 경우 데몬은 자동으로 캐시를 생성합니다.

💡Daemon 모드를 사용하는 이유

- Gradle은 기본적으로 매번 빌드할 때마다 새로운 JVM을 시작합니다. 이를 피하기 위해서 Daemon 모드를 사용합니다.
org.gradle.daemon=true

 

 

 

3. 빌드 스레드 수 조정하기 : 병렬 빌드


💡 Gradle은 기본적으로 빌드 스레드를 4개를 사용합니다.
💡 하지만 병렬 빌드로 더 많은 스레드를 사용하면 빌드 시간을 단축할 수 있습니다.
org.gradle.parallel=true
org.gradle.parallel.threads=4

 

 

 

2) 빌드 캐시 무효화


💡 gradle.properties 파일 내에서 캐시를 사용하기에 이전에 빌드한 코드나 설정이 변경되었을 때 적용되지 않을 수 있습니다. 이를 해결하기 위해서는 빌드 캐시를 무효화하는 것이 좋습니다.
./gradlew cleanBuildCache

 

 

3) 최종 적용 사항


# Project-wide Gradle settings.

# IDE (e.g. Android Studio) users:
# Gradle settings configured through the IDE *will override*
# any settings specified in this file.

# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html

# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
# Default value: -Xmx512m -XX:MaxMetaspaceSize=256m
org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m

# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
org.gradle.parallel=true
org.gradle.parallel.threads=4

# AndroidX package structure to make it clearer which packages are bundled with the
# Android operating system, and which are packaged with your app's APK
# https://developer.android.com/topic/libraries/support-library/androidx-rn
android.useAndroidX=true
# Automatically convert third-party libraries to use AndroidX
android.enableJetifier=true

# Version of flipper SDK to use with React Native
FLIPPER_VERSION=0.125.0

# Use this property to specify which architecture you want to build.
# You can also override it from the CLI using
# ./gradlew <task> -PreactNativeArchitectures=x86_64
reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64

# Use this property to enable support to the new architecture.
# This will allow you to use TurboModules and the Fabric render in
# your application. You should enable this flag either if you want
# to write custom TurboModules/Fabric components OR use libraries that
# are providing them.
newArchEnabled=false

org.gradle.caching=true
org.gradle.daemon=true

 

4) 참고사항


1. 라이브러리를 추가하는 경우


💡 pacakage.json 파일 내에 '라이브러리를 추가'하는 경우 캐시가 초기화 되며 최초 빌드 속도를 가지게 됩니다.

 

 

 

 

오늘도 감사합니다. 😀

 

 

 

 

반응형