본문 바로가기

개발 이야기

(25)
Android | Java | 특정 소수점까지 잘라서 계산 후 반올림 하기 요구사항 56.4345 값을 소수점 소수점 2자리까지 버린 후 남은 2자리에서 반올림해서 정수값으로 표시하고 싶다. 솔루션 Java에서 해당 요구사항 만족을 위해 제공하는 함수가 있을 거라 생각하고 조사해 봤다. 아주 편안한 클래스가 이미 존재하고 있더라. 이상한 함수와 알고리즘으로 만들지 말고 제공되는걸로 검증된 코드결과물을 사용해보자. BigDecimal bd = new BigDecimal("56.4345"); bd = bd.setScale(2, RoundingMode.HALF_UP); int result = bd.intValue();
Android | 앱 화면 구성 중에 DB에서 Data 읽어올때 코딩 가이드 안드로이드 앱 개발 시 onCreate() 에서 DB를 UI Thread에서 읽어온 후 화면구성하는 코드가 많아 Work Thread에서 데이터 가공 및 화면갱신하는 코드 기초가이드를 작성해 보겠습니다. 1. Handler 와 Threa 를 이용한 코딩 Thread를 통해 DB 가져오는 작업을 한 후에 실제 ListView adapter 갱신 부는 Handler 를 통해 UI Thread 상 업데이트를 실행하는 코드로 사용자가 back-key 를 입력해서 강제 종료 시 해당 DB가져오는 쓰레드도 종료하게 처리함. public class MyFragment extends Fragment { private ListView listView; private MyAdapter adapter; private Han..
Android | 스마트폰 설치한 앱의 APK 추출방법 안드로이드 단말기에 설치된 앱의 APK 파일을 추출하는 방법은 여러 가지가 있습니다. 여기서는 ADB(Android Debug Bridge)를 사용하는 방법에 대해 설명드리겠습니다. 먼저, 개발용 컴퓨터에 ADB가 설치되어 있는지 확인해야 합니다. 안드로이드 스튜디오를 설치했다면 ADB는 이미 설치되어 있을 것입니다. 터미널 또는 명령 프롬프트를 열고 아래의 명령어를 입력하여 설치된 앱의 패키지 이름을 찾습니다. 이 명령어는 단말기에 설치된 모든 앱의 패키지 이름을 출력합니다. 원하는 앱의 패키지 이름을 찾아 기억해둡니다. adb shell pm list packages 다음으로, 아래의 명령어를 입력하여 원하는 앱의 설치 경로를 찾습니다. 여기서 your.package.name은 앞서 찾은 패키지 이름..
JAVA | Stream 에 대해 궁금점 정리 Java 8에 추가된 스트림(Stream) API는 데이터를 더 선언적, 간결하고 가독성 있는 방식으로 처리할 수 있게 도와줍니다. 이는 대량의 데이터를 효율적으로 처리하는 데 유용하며, 병렬처리도 지원하여 성능 향상을 도모할 수 있습니다. 스트림 API 사용의 주요 이점은 다음과 같습니다: 읽기 쉬운 코드: 스트림은 함수형 프로그래밍 패러다임을 따르므로, 코드가 더욱 읽기 쉽고 이해하기 쉬워집니다. 효율적인 데이터 처리: 스트림은 '게으른 연산'을 지원합니다. 즉, 필요한 시점에서만 연산이 수행되므로 메모리 사용량과 계산 비용을 절약할 수 있습니다. 병렬처리 가능: 스트림은 병렬처리를 지원하여 멀티코어 아키텍처에서 성능 향상을 얻을 수 있습니다. 아래에는 Java 8 이전의 방식과 스트림 API를 사용..
Android | BLE / BEACON 지원여부 체크 안드로이드 앱에서 BLE 지원여부를 확인하여 해당 기능 활성/비활성 시 사용할 코드를 작성. 참고용으로 실제 동작여부 확인 후 사용바랍니다. 1. BLE 지원여부 확인하기 For Java import android.content.Context import android.content.pm.PackageManager import android.os.Bundle import android.widget.Toast import androidx.appcompat.app.AppCompatActivity class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInst..
JAVA ByteBuffer 궁금점 정리 ByteBuffer 정의 ByteBuffer는 Java에서 바이트 배열에 대한 뷰를 제공하며, 바이트 배열의 데이터를 효과적으로 읽고 쓸 수 있는 메서드를 제공합니다. ByteBuffer는 주로 다음과 같은 상황에서 사용됩니다: 파일 I/O: ByteBuffer는 파일에서 데이터를 읽거나 파일에 데이터를 쓸 때 사용됩니다. 이 경우 FileChannel과 함께 사용되며, ByteBuffer가 파일로부터 데이터를 읽어오거나 파일에 데이터를 쓰게 됩니다. 소켓 네트워킹: 소켓을 통해 네트워크로부터 데이터를 받아오거나 네트워크로 데이터를 보낼 때도 ByteBuffer가 사용됩니다. 이 경우 SocketChannel과 함께 사용되며, ByteBuffer가 소켓으로부터 데이터를 읽어오거나 소켓에 데이터를 쓰게 됩..
[Android] Leak Canary를 이용하여 메모리 누수개선방안 LeakCanary는 앱에서 메모리 누수를 감지해주는 라이브러리입니다. 안드로이드 앱에서 LeakCanary를 사용하여 메모리 누수를 찾는 방법을 설명하겠습니다. 1. LeakCanary 추가 앱 프로젝트의 build.gradle 파일에 LeakCanary 종속성을 추가합니다. 새로운 버전의 LeakCanary가 존재할 수 있으므로, LeakCanary GitHub 저장소에서 최신 버전을 확인하세요. dependencies { // LeakCanary 종속성 추가 debugImplementation 'com.squareup.leakcanary:leakcanary-android:{latest-version}' } 2. LeakCanary 초기화 Application 클래스를 만들고 여기서 LeakCanar..
Android | Camera 로 부터 들어온 영상편집 onPreviewFrame() 콜백 함수에서 왼쪽 및 오른쪽 테두리 부분(넓이 10픽셀, 높이는 영상 크기와 동일)을 자르는 코드는 아래와 같습니다. 코드를 작성하기 전에 YUV 데이터에 대한 이해가 중요합니다. 일반적인 카메라 데이터는 YUV420 color space 포맷으로 도착하며, 이 데이터를 처리하려면 해당 포맷에 대한 처리를 수행해야 합니다. import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Rect; import android.hardware.Camera; import android.hardware.Camera.PreviewCallback; import java.nio.B..
Android RESTful 개발 Kotlin 코드 안드로이드 앱을 코틀린으로 개발하면서 RESTful API를 사용하는 방법입니다. Retrofit 라이브러리를 사용하여 높은 생산성을 얻을 수 있습니다. 프로젝트에 Retrofit 라이브러리 추가: 프로젝트의 build.gradle 파일의 dependencies 블록에 다음 라이브러리를 추가하세요. dependencies { // Retrofit implementation 'com.squareup.retrofit2:retrofit:2.9.0' implementation 'com.squareup.retrofit2:converter-gson:2.9.0' // OkHttp (로깅과 인터셉터를 사용하기 위해) implementation 'com.squareup.okhttp3:okhttp:5.0.0-alpha.2..
Android RESTful 개발 Java 코드 Android 앱 개발에서 RESTful API를 사용하는 것은 매우 일반적이며 중요한 기능입니다. RESTful API를 이용한 개발에 Retrofit 라이브러리와 같은 강력한 라이브러리를 추천합니다. Retrofit은 간편한 구성으로 높은 생산성을 제공하며, 대부분의 Android 개발자들이 참조 및 사용하는 인기 라이브러리입니다. 프로젝트에 Retrofit 라이브러리 추가: 프로젝트의 build.gradle 파일의 dependencies 블록에 다음 라이브러리를 추가하세요. dependencies { // Retrofit implementation 'com.squareup.retrofit2:retrofit:2.9.0' implementation 'com.squareup.retr..
RecycerView adapter 간단정리 네, 확인했습니다! 이전에 제가 보내드린 코드에 RecyclerView의 어댑터를 설정하는 코드가 포함되어 있었지만, 레이아웃 매니저에 대한 정보가 누락되어 있었습니다. 다시 한번, RecyclerView를 초기화하기 위해서는 다음과 같은 코드를 추가해야합니다. // RecyclerView 객체를 참조합니다. val recyclerView = findViewById(R.id.recyclerView) // 레이아웃 매니저를 생성합니다. val layoutManager = LinearLayoutManager(this) recyclerView.layoutManager = layoutManager 여기서, LinearLayoutManager는 RecyclerView의 아이템을 세로로 쌓는 레이아웃 매니저입니다...
Android | 영상통화자료 안드로이드에서 영상 통화를 구현하려면, WebRTC 등의 기술을 사용할 수 있습니다. 다음은 Firebase와 함께 WebRTC를 사용하여 영상 통화를 구현한 코틀린 예제입니다. 1. 프로젝트 설정 우선, 기본적인 안드로이드 프로젝트를 생성하고, 다음 라이브러리들을 build.gradle(app)에 추가하세요. dependencies { implementation 'org.webrtc:google-webrtc:1.0.32006' implementation 'com.google.firebase:firebase-auth-ktx' implementation 'com.google.firebase:firebase-firestore-ktx' implementation 'com.google.firebase:fireb..

반응형