2025년 9월 30일 오늘의 개발 요약
·
개발 요약
Android성능 튜닝 가이드 — Android 앱의 성능을 최적화하기 위해 메모리 관리, 스레드 사용, 네트워크 요청, 이미지 로딩 등을 고려해야 한다. 프로파일링 도구인 Android Profiler를 활용하여 CPU, 메모리, 네트워크 상태를 모니터링하고, 불필요한 메모리 할당을 줄이기 위한 코드 개선이 필요하다. 또한, Jetpack의 Paging 라이브러리를 통해 데이터 로딩을 최적화하고, RecyclerView와 ViewHolder 패턴을 사용하여 리사이클링과 스크롤 성능을 향상시킬 수 있다. 마이그레이션 시 성능 저하를 방지하기 위해 앱사이클 최적화도 필수적이다. val handler = Handler(Looper.getMainLooper())handler.postDelayed({ ..
2025년 9월 29일 오늘의 개발 요약
·
개발 요약
AndroidAndroid 성능 튜닝 — Android 애플리케이션의 성능을 최적화하기 위한 기본적인 기법에는 메모리 관리, CPU 사용 최적화, 네트워크 요청 최소화가 포함된다. 우선, 메모리 누수를 방지하기 위해 LeakCanary 같은 도구를 사용해 정기적으로 점검해야 한다. 다음으로, UI 스레드에서의 작업을 줄이기 위해 백그라운드 스레드에서 비동기 작업을 사용하는 것이 필수적이다. 그리고 Retrofit 같은 라이브러리를 사용하여 API 호출을 효율적으로 관리하며, 캐싱을 통해 네트워크 요청을 최소화하도록 설계해야 한다. 마지막으로, 프로파일링 도구를 사용해 애플리케이션의 전반적인 성능을 주기적으로 분석하여 개선점을 찾아야 한다. fun fetchDataFromApi() { // 비동기 ..
Android 인앱 상품(IAP) 등록
·
Android
개발하다 보면 문서나 튜토리얼이 오래되어 있어서 고생할 때가 많다.이번엔 Android 인앱 결제를 적용하면서 삽질했던 내용을 메모 겸 블로그로 정리해본다.1. Google Play Console 설정경로Google Play Console → Play를 통한 수익 창출 → 인앱 상품 → [상품 만들기] 클릭여기까진 아주 기본적인 흐름이다. 하지만...2. [상품 만들기]가 비활성화 되어 있다면?대부분 여기서 막힌다. 나도 처음엔 이유를 몰랐다.해결법은 간단하다. 프로젝트에 BillingClient 라이브러리가 빠져있으면 상품을 만들 수 없다.build.gradle에 아래 코드 추가:dependencies { def billing_version = "7.1.1" implementation "co..
Android Spinner
·
Android
Spinner란 위와 같이 드롭다운 형태로 사용자가 원하는 아이템을 선택할 수 있도록 해주는 레이아웃입니다. Spinner 레이아웃 만들기 먼저 xml 파일에 Spinner 레이아웃을 만듭니다. TextView 는 Spinner 의 아이템들이 어떤 집합에 속하는지 나타내기 위해 만들었습니다. Spinner 안에 들어갈 아이템들을 저장하기 위해 values/string.xml 파일에 string array를 만듭니다. 테스트1 테스트2 테스트3 테스트4 ArrayAdapter 생성하기 Activity 혹은 Fragment 에서 ArrayAdapter 를 생성하여 Spinner 에 적용해줍니다. private fun initSpinner() { ArrayAdapter.createFromResource( re..
Android - Garbage Collection(GC)
·
Android
Garbage Collection Java는 Garbage Collection(GC)을 이용하여 메모리를 관리한다. 필요에 따라 GC가 실행되고, 그 과정에서 사용하지 않는 객체들을 정리해 준다. Garbage Collection의 동작 원리 아래 기술되는 내용은 GC의 모든 것을 다루지 않는다. 그저 GC라는 것이 있고 그것이 어떤 방식으로 돌아간다- 하는 간략한 요약 정도일 뿐이다. 1. 자바에서는 Garbage Collection(또는 GC)를 이용하여 메모리를 정리한다. 1-1. GC는 더이상 사용되지 않는 쓰레기 객체들을 정리하는 작업을 한다. 1-2. GC는 필요에 따라 자동으로 실행된다. (2-2의 경우에 실행된다.) 2. GC에 의해 관리되는 메모리는 Young과 Old로 나뉜다. 2-1...
Android - Manifest & Components
·
Android
Manifest 안드로이드 시스템이 앱의 코드를 실행하기 전에 확보해야 하는 앱에 대한 필수 정보를 시스템에 제공하는 목록 앱의 패키지 이름 앱에서 사용되는 컴포넌트(액티비티, 서비스, 브로드캐스트 리시버, 컨텐트 프로바이더) 권한(Permission) 앱에서 요구하는 하드웨어와 소프트웨어 특징 1. Package name and Application ID 매니페스트 파일의 Root element() 에는 해당 앱의 패키지 네임이 반드시 기재되어야 합니다. "com.ready.example" 이라는 패키지 네임의 manifest 파일 ... 여기서 manifest의 패키지 네임은 우리가 앱을 빌드하여 APK 를 추출하는 과정에서 Android Build Tool 에 의해 다음 2가지 목적으로 사용됩니다...
안드로이드 Activity 생명주기
·
Android
onCreate() : 최초로 앱 실행 시 호출, 초기화 관련 작업 onStart() : 이 시점부터 사용자가 액티비티를 볼 수 있다. onResume() : 액티비티가 실제 사용자와 상호작용이 가능한 포그라운드에 위치하면 호출된다, 액티비티 실행 중 상태 onPause() : 액티비티가 실행 중인 상태에서 사용자와 상호작용이 불가능한 상태, 즉 포커스를 잃은 상태가 되면 호출 onStop() : 액티비티가 더 이상 보이지 않을 때 호출 onDestroy() : 액티비티가 종료되거나 앱 프로세스 자체가 종료되면 호출 ex) 불투명한 새로운 액티비티가 최상단으로 올라와서 기존 액티비티가 완전히 보이지 않게 되면 onPause()에 이어서 onStop()까지 바로 호출된다. 불투명 새로운 액티비티가 최상단으..
Android 4대 컴포넌트
·
Android
1. Activity(액티비티) UI 화면(사용자와 상호작용)을 담당하는 컴포넌트 액티비티 역할을 하기 위해서는 자바소스에서 Activity클래스를 상속해야 하며 액티비티가 기본적으로 가지고 있는 생명주기 메소드를 재정의하여 원하는 기능을 구현하는 방식으로 제작합니다. 특징 - 안드로이드 어플리케이션은 반드시 하나 이상의 Activity를 가지고 있어야 합니다. - 두개의 액티비티를 동시에 Display할 수 없습니다. - 다른 어플리케이션의 액티비티도 불러낼 수 있습니다. - 액티비티 내에는 프래그먼트(Fragment)를 추가하여 화면을 분할시킬 수 있습니다. public class MainActivity extends Activity { @Override protected void onCreate(B..
Android 기초
·
Android
Flutter 하다가 갑자기 Android 프로젝트를 들어가 정리를 해둔다 .. 1. Package name and Application Id 매니페스트 파일의 Root element() 에는 해당 앱의 패키지 네임이 반드시 기재되어야 gksek "com.ready.example" 이라는 패키지 네임의 manifest 파일 여기서 manifest의 패키지 네임은 우리가 앱을 빌드하여 APK 를 추출하는 과정에서 Android Build Tool 에 의해 다음 2가지 목적으로 사용된다. App Resource 에 접근하는데 사용되는 R 클래스의 네임스페이스로 적용이 된다. 위 예에서는 com.ready.test.R 클래스가 생성된다. 매니페스트 파일 내에서 선언된 상대경로에 적용됩니다. 예를 들어 \