React Native에서 프로덕션 APK 크기를 70% 줄인 방법은 무엇입니까?

Android 앱 크기는 React Native에서 작업하는 동안 가장 큰 관심사 중 하나였습니다. 저사양 장치에서는 스토리지 및 성능 문제를 처리하기가 어렵습니다.

또한 더 큰 APK 크기의 앱은 일부 잠재고객을 위해 다운로드하는 것을 덜 흥미롭게 만듭니다.

그래서 우리는 Android apk 크기 📦를 줄이기로 결정하고 앱 크기를 늘리는 요인이 무엇인지 조사하고 분석하기 시작했으며 프로덕션 apk 크기를 43 MB에서 17 MB으로 줄이는 데 도움이 되었습니다.

기사에서 간단한 Hello World react-native 앱을 통해 apk 크기를 줄이는 전 과정을 설명하겠습니다.

시작하자



Create a React Native app called "HelloWorld"



 npx react-native init HelloWorld 
HelloWorld 앱이 성공적으로 생성된 후 🎉🎉
  • App.js에서 상용구 코드를 제거하고 Hello World !을 표시하는 텍스트로 교체했습니다.

  • import React from 'react';
    import {View, StyleSheet, Text} from 'react-native';
    
    const App = () => {
      return (
        <>
          <View style={styles.container}>
            <Text>Hello World !</Text>
          </View>
        </>
      );
    };
    
    const styles = StyleSheet.create({
      container: {
        flex: 1,
        alignItems: 'center',
        justifyContent: 'center',
      },
    });
    
    export default App;
    


    HelloWorld 앱용 프로덕션 릴리스 apk를 만들고 apk 크기가 무엇인지 확인해 보겠습니다.
  • 텍스트가 23 MB 인 앱에 대해서만 크기가 Hello World ! 🙄 인 apk가 있음을 확인했습니다.



  • react-native가 23MB 크기의 apk를 생성한 이유는 🤔 ?



    React Native 공식 문서를 읽은 후 우리는 Google Playstore의 모든 앱이 다음과 같은 다른 ABI에서 작동한다는 것을 발견했습니다.
  • armeabi-v7a
  • arm64-v8a
  • x86
  • x86_64

  • 따라서 위의 모든 ABI의 react-native 을 지원하기 위해 기본적으로 다른 장치 구성에 필요한 파일을 포함하는 Universal APK 을 단일 apk 에 생성하여 apk 크기를 23 MB 으로 확장했습니다.

    ABI 🤔 란 무엇입니까?



    Different Android devices use different CPUs, which in turn support different instruction sets. Each combination of CPU and instruction set has its own Application Binary Interface (ABI).



    APK 크기를 어떻게 줄였습니까?


    Universal apk을 생성하는 대신 .aab이라는 완전히 새로운 게시 형식으로 전환했습니다.

    aab 파일을 생성하고 Google Playstore에 업로드한 후 애플리케이션 크기가 70%로 크게 줄었고 앱 크기가 7.29 MB에서 23 MB으로 줄었습니다 🍻



    재미있어보이네요 😎

    그렇다면 aab은 정확히 무엇이고 그것이 우리에게 어떻게 도움이 되었습니까?



    An AAB (Android App Bundle) is a new publishing format from google that includes all your app’s compiled code and resources.



    Google Play는 업로드된 앱 번들을 사용하여 각 기기 구성 및 하드웨어에 최적화되고 더 작은 APK를 생성하고 제공하므로 특정 기기에 필요한 코드와 리소스만 앱 실행에 다운로드되고 추가 파일은 apk에 번들로 제공되지 않습니다. apk 크기를 대폭 줄입니다.

    아래 순서도는 전체 프로세스가 어떻게 더 나은지 이해하는 데 도움이 됩니다.

    APK





    AAB





    aab를 생성하는 방법?



    aab를 생성하는 것은 매우 간단합니다. Android studioterminal을 통해 aab를 생성할 수 있습니다.

    Android Studio





    Terminal



     cd android/ && ./gradlew bundleRelease
    

    생성된 AAB는 android/app/build/outputs/bundle/release/app.aab에서 찾을 수 있으며 Google Play에 업로드할 준비가 되었습니다.

    아래 댓글에 의심스러운 점이 있으면 알려주세요 🍻

    좋은 웹페이지 즐겨찾기