Develop/Android7 Andoird 메모리 사용을 분석해보자!!! adb shell dumpsys meminfo ```sh Total RAM: 3,597,148K (status normal) Free RAM: 1,071,266K ( 637,714K cached pss + 336,024K cached kernel + 97,528K free) ION: 237,236K ( 183,672K mapped + -18,480K unmapped + 72,044K pools) GPU: 0K Used RAM: 3,462,226K (3,094,698K used pss + 367,528K kernel) Lost RAM: 194,720K ZRAM: 319,316K physical used for 1,759,976K in swap (4,194,300K total swap) Tuning: 192.. 2024. 1. 17. Targeting S+ (version 31 and above) requires that an explicit value for android:exported be defined when intent filters are present 1. 문제상황 구글스토어에 업로드하고 잘 사용하던 어플이 어느 순간 스마트폰에서 자동으로 삭제 되었다. 그리고 설치하려고 해도 설치가 안 되었다. 2. 원인찾기 adb: failed to install C:\Users\superpower\Develop\rms\android/app/build/outputs/apk/debug/app-debug.apk: Failure [INSTALL_PARSE_FAILED_MANIFEST_MALFORMED: Failed parse during installPackageLI: /data/app/vmdl928833812.tmp/base.apk (at Binary XML file line #78): com.zoontek.rnbootsplash.RNBootSplashActivity:.. 2022. 4. 9. [gradle] googlePlayServicesVersion 설정 방법 googlePlayServiceVersion, firebaseMessagingVersion 버전 뭘로 하지!? # 아래와 같이 구글API 버전을 설정할 때 어떻게 정하는게 좋을까? buildscript { ext { buildToolsVersion = "29.0.3" minSdkVersion = 24 compileSdkVersion = 30 targetSdkVersion = 30 ndkVersion = "20.1.5948944" // react-native-push-notification googlePlayServicesVersion = "17.6.0" // default: "+" firebaseMessagingVersion = "21.1.0" // default: "21.1.0" } ... } # 라이.. 2021. 11. 27. 안드로이드 앱 꺼짐 현상 앱크래시😥 React Native 로 면접지문을 읽고 면접을 촬영한 후 업로드하는 기능을 서비스하는 애플리케이션을 개발했다. "면접지문을 읽을 때 0.01% 의 사용자가 면접지문을 읽는 중 앱이 종료된다는 리포트를 받았다." 주어진 지문 읽는 시간을 카운트하는 기능이기 때문에 초단위로 리랜더링되고 있어 랜더링 최적화 문제도 의심할 수 있지만 앱이 갑자기 종료되는 앱크래시 현상이라 무엇보다 메모리 문제라 가정하였고 프로파일링을 돌려봤다. # 면접지문 읽는 상황 프로파일링 결과 - 지속적으로 GC(Garbage Collector)가 메모리를 회수하고 있다.(조밀한 휴지통 표시) - 메모리 사용량이 줄지 않는다. - 실행환경, 기기환경, 사용환경에 따라 GC가 오작동하거나 GC 회수량을 초과할 경우 앱크래시가 나타날 것.. 2021. 10. 18. [android] MediaPlayer?? ExoPlayer?? 안드로이드 미디어 플레이어는 크게 두 종류가 있다. MediaPlayer 와 ExoPlayer. 어떤걸 사용해야 할까? MediaPlayer 오디오 재생만 하는 경우 & 애플리케이션 용량을 최대한 줄이고 싶은 경우. ExoPlayer 그 외 모든 경우 1. MediaPlayer 기본적으로 휴대폰 로컬에 설치되므로 어떤 버전이 사용할지 제어할 수 없다. 따라서 MediaPlayer 버전, OS, 휴대폰에 따라 다르게 구현되어 있을 수 있고, 이는 여러 상태의 버그가 존재하여 디버깅하기 어렵다. 저전력으로 오디오 디코딩을 할 수 있어 오디오 재생 기능이 좋다. 2. ExoPlayer Android 프레임워크에 속하지 않고 Android SDK에서 별도로 배포되는 오픈소스 프로젝트이다. Android 4.1(.. 2021. 10. 5. [android] 실행중인 앱을 강제 종료시키고 싶을 때 adb shell am force-stop [--user | all | current] 디버깅 하던 중 실행 중인 앱이 갑자기 종료되었을 때, 어떻게 작동하는지 테스트해보고 싶었다. 예를 들면 큰 크기의 파일을 인코딩하고 업로드하는 일련의 처리에서 예상하지 못 하게 크래시가 발생해 앱이 종료 되면 어떻게 될까? 그리고 이런 상황이 발생했을 때도 사용자가 큰 불편함을 느끼지 않고 대처할 수 있게 개발하고 싶었다. adb shell am force-stop [--user | all | current] # 특정 패키지 강제 종료 adb shell am force-stop com.3stack.kakao # 특정 유저의 특정 패키지 강제 종료 adb shell am force-stop --user 10 com.3.. 2021. 9. 29. [Android] 어떻게 안드로이드 앱 사이즈를 줄일까?🤔 How to reduce Android App size in react-native? 안드로이드 앱 사이즈 줄이기 1. enableSeparateBuildPerCPUArchitecture - 사용할 경우 특정 ABI(Android Binary Interface)에맞춰 APK 파일을 따로 따로 생성. - 이 옵션을 사용하지 않으면 다양한 안드로이드 기기의 ABI를 전부 지원할 수 있는 하나의 APK 파일 생성. - assembleRelease가 아니라 bundleRelease를 사용하여 AAB(Android App Bundle)을 구글스토어에 업로드할 경우, 자동으로 사용자의 기기의 ABI에 적합한 앱으로 다운로드 된다. 구글스토어에 AAB파일을 업로드할 경우 사용할 필요 없음. 2. shrinkResou.. 2021. 9. 28. 이전 1 다음