안드로이드에서 액티비티(Activity)란? 안드로이드에서 액티비티는 안드로이드 애플리케이션의 사용자 인터페이스를 담당하는 주요 구성 요소입니다. 액티비티는 화면에 표시되는 UI를 가지며, 사용자와 상호작용할 수 있는 기능을 제공합니다. 각각의 액티비티는 독립적으로 실행되고, 여러 액티비티들 간에 화면 전환이 가능합니다. 인텐트(Intent)를 활용한 액티비티 전환 예제 인텐트를 사용하여 액티비티 간의 전환을 수행하는 간단한 예제입니다. // 전환할 대상 액티비티를 지정한 인텐트 생성 Intent intent = new Intent(MainActivity.this, SecondActivity.class); // 인텐트를 사용하여 액티비티 전환 startActivity(intent); 위의 예제에서는 In..
이전 포스팅 주제 이전 포스팅에서는 안드로이드에서 서버 소켓을 생성하여 bind, listen 하는 방법에 대해 알아보았습니다. 오늘은 클라이언트 소켓을 생성하고 서버 소켓에 연결한 후 메세지를 전송하는 방법에 대해 알아보겠습니다. 2023.07.24 - [Android] - [안드로이드] 서버 및 클라이언트 소켓 통신 - 1 [안드로이드] 서버 및 클라이언트 소켓 통신 - 1 안드로이드에서 소켓 통신의 필요성 소켓 통신은 안드로이드 애플리케이션에서 네트워크를 통해 데이터를 주고받는 핵심 기술입니다. 안드로이드에서 소켓 통신을 활용하면 클라이언트와 서 salguworld.tistory.com 클라이언트 소켓 생성 및 서버 소켓에 connect 예제 안드로이드에서 클라이언트 소켓을 생성하고 서버 소켓에 연..
이전 포스팅 주제 이전 포스팅에서는 안드로이드에서 스레드를 생성하고 Runnable, Handler를 사용하는 방법에 대해 알아보았었습니다. 2023.07.23 - [Android] - [안드로이드] 스레드 생성 및 활용 - 1 [안드로이드] 스레드 생성 및 활용 - 1 안드로이드의 스레드(Thread) 필요성 안드로이드 애플리케이션에서 사용자 인터페이스(UI) 스레드와 백그라운드 스레드를 분리하여 다중 작업 처리와 반응성 향상을 위한 스레드 사용이 필수적입 salguworld.tistory.com 오늘은 AsyncTask를 통해 비동기 처리하는 방법에 대해 알아보도록 하겠습니다. 추가로 스레드 풀이란 무엇인지 알아보겠습니다. AsyncTask란? AsyncTask는 UI 스레드와 백그라운드 스레드 간의..
안드로이드에서 소켓 통신의 필요성 소켓 통신은 안드로이드 애플리케이션에서 네트워크를 통해 데이터를 주고받는 핵심 기술입니다. 안드로이드에서 소켓 통신을 활용하면 클라이언트와 서버 간의 데이터 교환, 실시간 채팅, 멀티플레이 게임 등 다양한 네트워크 기반 애플리케이션을 개발할 수 있습니다. 소켓 통신을 위한 권한과 런타임 퍼미션 설정 예제 안드로이드에서 소켓 통신을 위해서는 인터넷 권한(android.permission.INTERNET)을 추가해야 합니다. 또한, 런타임 퍼미션을 사용하여 사용자에게 인터넷 접속 권한을 요청해야 합니다. 다음은 소켓 통신을 위한 권한 및 런타임 퍼미션 설정 예제입니다. // 권한 체크 및 요청 if (ContextCompat.checkSelfPermission(this, M..
목차 SharedPreference의 데이터 타입 설명 객체 저장하기 예제 배열 저장하기 예제 암호화된 데이터 저장하기 예제 SharedPreference 주의사항과 사용 시 고려해야 할 점 1. SharedPreference의 데이터 타입 설명 SharedPreference는 안드로이드에서 키-값 쌍으로 데이터를 저장하는 기능으로, 다양한 데이터 타입을 지원합니다. 주요 데이터 타입으로는 다음과 같은 것들이 있습니다. String: 문자열 int: 정수 float: 부동소수점 long: 긴 정수 boolean: 논리값(true 또는 false) 2. 객체 저장하기 예제 SharedPreference를 이용해 객체를 저장하는 방법은 객체를 JSON 형태로 변환하여 저장하고, 읽어올 때 다시 객체로 변환하..
목차 SharedPreference란? SharedPreference 사용 이유 값 저장 예제 값 읽기 예제 값 수정 및 삭제 예제 1. SharedPreference란? SharedPreference는 안드로이드 앱에서 간단한 데이터를 저장하는데 사용되는 기능입니다. 이는 키-값 쌍으로 데이터를 저장하고, 앱이 종료되어도 데이터가 유지됩니다. SharedPreference는 파일 형태로 저장되며, XML 포맷으로 데이터를 관리합니다. 2. SharedPreference 사용 이유 SharedPreference는 다음과 같은 경우에 유용하게 사용됩니다. 사용자 설정 정보 저장 사용자 인증 정보 저장 앱 설정 정보 저장 3. 값 저장 예제 다음은 SharedPreference를 이용해 값을 저장하는 예제입..
안드로이드의 스레드(Thread) 필요성 안드로이드 애플리케이션에서 사용자 인터페이스(UI) 스레드와 백그라운드 스레드를 분리하여 다중 작업 처리와 반응성 향상을 위한 스레드 사용이 필수적입니다. UI 스레드는 애플리케이션의 사용자 인터페이스를 담당하며, 오랜 시간 동안 작업을 수행하면 UI가 멈추거나 응답하지 않는 현상이 발생할 수 있습니다. 따라서 백그라운드 스레드를 사용하여 오래 걸리는 작업을 처리하고 UI 스레드를 부담에서 벗어나게 함으로써 애플리케이션의 성능을 향상시킬 수 있습니다. 스레드와 Runnable 활용 예제 스레드와 Runnable을 활용하여 백그라운드에서 작업을 수행하는 예제입니다. // 백그라운드 스레드 생성 및 실행 Thread backgroundThread = new Threa..
안드로이드에서 카메라 촬영 API 필요성 카메라는 안드로이드 애플리케이션에서 핵심적인 기능 중 하나로, 사진 촬영, 비디오 녹화, QR 코드 스캔 등 다양한 기능을 구현할 수 있습니다. 안드로이드에서 카메라를 사용하기 위해서는 카메라 촬영 API를 이해하고 활용하는 것이 필수적입니다. 카메라 촬영 API를 사용하면 애플리케이션에서 직접 카메라 하드웨어를 제어하고, 다양한 설정과 기능을 구현할 수 있습니다. 카메라 촬영을 위한 권한과 런타임 퍼미션 설정 예제 안드로이드에서 카메라를 사용하기 위해서는 android.permission.CAMERA 권한을 추가해야 합니다. 또한, 런타임 퍼미션을 사용하여 사용자에게 권한을 요청해야 합니다. 다음은 카메라 촬영을 위한 권한 및 런타임 퍼미션 설정 예제입니다. /..
안드로이드 인텐트(Intent)란? 안드로이드에서 인텐트는 애플리케이션 내부뿐만 아니라 다른 애플리케이션과의 상호작용을 위한 핵심 개념입니다. 인텐트는 액션, 데이터 및 추가 정보를 포함하여 다른 컴포넌트와 통신하고 작업을 수행하기 위해 사용됩니다. 예를 들어, 다른 액티비티를 시작하거나 특정 액션을 수행하거나 데이터를 전달하는 데 사용될 수 있습니다. 다른 앱에 요청을 위한 암시적 인텐트(Implicit Intent)란? 암시적 인텐트는 명시적으로 대상 컴포넌트를 지정하지 않고, 다른 애플리케이션에 요청을 보내는 인텐트입니다. 암시적 인텐트는 액션과 데이터를 포함하고, 시스템은 해당 액션과 일치하는 앱을 찾아 실행합니다. 이를 통해 다른 앱의 기능을 활용하거나 특정 작업을 요청할 수 있습니다. 특정한 ..
이전포스팅 이전 포스팅에서는 안드로이드에서 startActivityForResult를 호출하여 다른 액티비티로 전환하는 방법에 대해 알아보았습니다. 이제 전환된 액티비티에서 다시 원래의 화면으로 돌아왔을 때 결과를 수신하는 방법에 대해 알아보도록 하겠습니다. onActivityResult 메서드로 결과 처리 예제 onActivityResult 메서드를 사용하여 액티비티 결과를 처리하는 예제입니다. @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == REQUEST_CO..
오늘은 이전 포스팅에서 다뤘던 갤러리에서 사진을 가져온 후 이 사진 Bitmap을 Bytes 혹은 JPEG 형식으로 변환하는 방버에 대해알아보도록하겠습니다. 또한 이러한 사진 정보를 ImageView에 출력하는 방법도 알아보겠습니다. 가져온 사진의 byte 값을 가져오는 예제 안드로이드에서 사진을 가져오면 Bitmap 형식으로 반환됩니다. Bitmap을 byte 배열로 변환하여 사진의 데이터를 가져올 수 있습니다. 다음은 가져온 사진의 byte 값을 가져오는 예제 코드입니다. private byte[] getBytesFromBitmap(Bitmap bitmap) { ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); bitmap.compr..
안드로이드에서 갤러리 사진을 가져오기 위한 권한 설명 안드로이드 앱에서 갤러리에 접근하여 사진을 가져오려면 앱에 적절한 권한을 부여해야 합니다. 이는 사용자의 개인 정보 보호와 보안을 위해 필요한 조치입니다. 갤러리 사진을 가져오기 위해 앱에서 필요한 권한은 다음과 같습니다. READ_EXTERNAL_STORAGE: 외부 저장소에 있는 사진 파일에 대한 읽기 권한이 필요 이 권한을 허용하지 않으면 앱이 갤러리에 접근하여 사진을 가져올 수 없습니다. READ_EXTERNAL_STORAGE 권한을 런타임 퍼미션 요청하는 예제 안드로이드 6.0 (Marshmallow) 이상에서는 일부 권한을 런타임에 요청해야 합니다. 다음은 READ_EXTERNAL_STORAGE 권한을 런타임에 요청하는 예제 코드입니다. p..
안드로이드 ListView란? 안드로이드에서 ListView는 사용자에게 스크롤 가능한 목록 형태로 정보를 표시하는 UI 요소입니다. ListView는 많은 항목을 보여주거나 데이터를 표시할 때 사용되며, 사용자가 항목을 선택하거나 상호 작용할 수 있도록 합니다. ListView는 AdapterView 클래스를 상속하며, 데이터 소스와 연결된 어댑터(Adapter)를 통해 항목을 표시합니다. ListView를 XML에 추가하는 예제 ListView를 XML 레이아웃 파일에 추가하는 방법은 다음과 같습니다. 먼저, XML 레이아웃 파일에 ListView를 추가한 후, 해당 ListView와 어댑터를 연결해야 합니다. 다음은 ListView를 XML에 추가하고 어댑터와 연결하는 예제 코드입니다. // Mai..
오늘은 이전 포스팅에 이어서 Intentfilter를 사용하여 브로드캐스트를 전송하고 수신하는 방법에 대해 알아보도록 하겠습니다. 또한 수신할 대상 패키지를 미리 지정해서 전송하는 방법도 알아보겠습니다. Intentfilter를 사용한 Broadcast 전송 및 수신 예제 IntentFilter를 사용하여 Broadcast를 전송하고 수신할 수 있습니다. 아래는 그 예제입니다. // Broadcast 전송 Intent intent = new Intent(); intent.setAction("com.example.myapp.MY_ACTION"); intent.putExtra("message", "Hello, world!"); IntentFilter intentFilter = new IntentFilter(..
BroadcastReceiver란? BroadcastReceiver는 안드로이드 애플리케이션 개발에서 중요한 컴포넌트 중 하나로, 애플리케이션 간에 메시지를 주고받을 수 있는 역할을 합니다. 또한 이벤트에 대한 알림을 수신하고, 해당 이벤트에 대한 처리를 담당합니다. 이벤트는 시스템에서 발생할 수도 있고, 애플리케이션 내에서 사용자 정의된 이벤트일 수도 있습니다. BroadcastReceiver는 이벤트를 동적으로 수신하거나 AndroidManifest.xml 파일에 정적으로 등록하여 사용할 수 있습니다. BroadcastReceiver를 사용하는 이유 BroadcastReceiver를 사용하는 이유는 다음과 같습니다. 이벤트 기반 애플리케이션 BroadcastReceiver는 이벤트 기반 애플리케이션 ..
FusedLocation이란? FusedLocation은 안드로이드 플랫폼에서 제공하는 위치 서비스로, 다양한 위치 정보 소스를 결합하여 보다 정확한 위치를 제공하는 기술입니다. GPS, Wi-Fi, 모바일 네트워크 등 다양한 소스의 위치 정보를 융합(fusion)하여 사용자의 현재 위치를 식별합니다. FusedLocation은 안드로이드의 Location Services API를 통해 제공되며, 앱 개발자들은 이를 활용하여 위치 기반 기능을 구현할 수 있습니다. GPS 위치 보정이란? GPS(Global Positioning System)는 위성 신호를 통해 위치를 판별하는 기술입니다. 그러나 GPS는 환경적인 요소(건물, 나무 등)나 신호 간섭으로 인해 오차가 발생할 수 있습니다. 이를 해결하기 위해..
Handler란? Handler는 안드로이드에서 스레드 간 통신을 위한 중요한 도구입니다. 스레드는 애플리케이션에서 동시에 실행되는 독립적인 작업 단위이며, Handler는 이러한 스레드 간에 메시지를 전달하고 처리하기 위한 메커니즘을 제공합니다. Handler는 주로 백그라운드 스레드와 UI 스레드 사이의 통신에 사용됩니다. Handler와 스레드 간 관계 안드로이드에서는 메인(UI) 스레드와 백그라운드 스레드로 구분됩니다. 메인 스레드는 애플리케이션의 UI 요소를 처리하고, 백그라운드 스레드는 복잡한 작업을 처리합니다. 하지만 메인 스레드에서 오랜 시간 동안 작업을 처리하면 애플리케이션이 응답하지 않는 것처럼 보이기 때문에 긴 작업은 백그라운드 스레드에서 처리해야 합니다. Handler를 사용하면 백..
Fused Location Service란? Fused Location Service는 안드로이드 플랫폼에서 제공하는 위치 기반 서비스입니다. 이 서비스는 GPS, Wi-Fi, 기지국 등 다양한 위치 제공자의 데이터를 결합하여 정확하고 신뢰할 수 있는 위치 정보를 제공합니다. Fused Location Service는 애플리케이션에 위치 업데이트를 제공하고 위치 기반 기능을 구현하는 데 사용됩니다. Fused Location Service를 이용하기 위한 권한은? 이 기능을 사용하기 위해 애플리케이션은 다음과 같은 위치 권한을 가지고 있어야 합니다. ACCESS_FINE_LOCATION: 정확한 위치 정보에 접근하기 위해 필요한 권한 ACCESS_COARSE_LOCATION: 대략적인 위치 정보에 접근하..
안드로이드 관련 포스팅 목록 2020/07/07 - [Android] - 안드로이드 서비스 등록/실행(Service Intent) 2020/07/06 - [Android] - 안드로이드 WIFI 연결 상태 확인(Android Wifi, Connected) 2020/06/23 - [Android] - 안드로이드 버튼 클릭 이벤트 처리 예제 - 3 2020/06/23 - [Android] - 안드로이드 버튼 클릭 이벤트 처리 예제 - 2 2020/06/22 - [Android] - 안드로이드 버튼 클릭 이벤트 처리 예제 - 1 2020/06/21 - [Android] - 안드로이드 타이틀바 제거 목차 API의 필요성 안녕하세요. 오늘은 이전 포스팅에서 소개했던 안드로이드 서비스 실행 방법에 이어서 서비스를 ..
안드로이드 관련 포스팅 목록 2020/06/23 - [Android] - 안드로이드 버튼 클릭 이벤트 처리 예제 - 3 2020/06/23 - [Android] - 안드로이드 버튼 클릭 이벤트 처리 예제 - 2 2020/06/22 - [Android] - 안드로이드 버튼 클릭 이벤트 처리 예제 - 1 2020/06/21 - [Android] - 안드로이드 타이틀바 제거 2020/06/21 - [Android] - 안드로이드 인터넷 권한 2020/06/21 - [Android] - 안드로이드 자동 화면 회전 방지 목차 API의 필요성 안녕하세요 오늘은 안드로이드 핸드폰이 현재 Wifi에 연결되어있는지 확인하는 방법이 대해 알아보겠습니다. 와이파이란 공기 중의 특정 주파수에 데이터를 송수신하는 네트워킹 관련..
안드로이드 관련 포스팅 목록 2020/06/23 - [Android] - 안드로이드 버튼 클릭 이벤트 처리 예제 - 2 2020/06/22 - [Android] - 안드로이드 버튼 클릭 이벤트 처리 예제 - 1 2020/06/21 - [Android] - 안드로이드 타이틀바 제거 2020/06/21 - [Android] - 안드로이드 자동 화면 회전 방지 2020/06/20 - [Android] - 안드로이드 화면 캡처 방지 버튼의 setOnClickListener 사용 방식 안녕하세요. 오늘은 버튼의 이벤트 리스너 등록 메소드를 활용하여 버튼을 클릭할 때마다 "Hello world" textview의 글자 색상이 변경되도록 테스트 앱을 구현해보겠습니다. 이번 테스트 프로젝트는 기존 첫번째와 두번째 포스..
안드로이드 관련 포스팅 목록 2020/06/22 - [Android] - 안드로이드 버튼 클릭 이벤트 처리 예제 - 1 2020/06/21 - [Android] - 안드로이드 타이틀바 제거 2020/06/21 - [Android] - 안드로이드 자동 화면 회전 방지 2020/06/20 - [Android] - 안드로이드 화면 캡처 방지 2020/06/21 - [Android] - 안드로이드 인터넷 권한 레이아웃 XML에 이벤트 콜백 메소드 등록 방식 [레이아웃 XML에 Event 콜백 함수 등록 방식] 안녕하세요. 오늘은 이전 포스팅에서 만든 테스트 앱을 통해 버튼 클릭 이벤트 처리하는 방법에 대한 예제를 테스트 해 보겠습니다. 만약 이전 포스팅을 확인하지 않았다면 아래 링크를 통해 확인해주세요. htt..
안드로이드 관련 포스팅 목록 2020/06/21 - [Android] - 안드로이드 타이틀바 제거 2020/06/20 - [Android] - 안드로이드 화면 캡처 방지 2020/06/21 - [Android] - 안드로이드 자동 화면 회전 방지 2020/06/21 - [Android] - 안드로이드 인터넷 권한 안드로이드 이벤트 처리 방법 안녕하세요. 오늘은 안드로이드 앱에서 버튼을 클릭 이벤트가 발생했을 때 처리하는 방법에 대하여 알아보겠습니다. 테스트 앱 프로젝트를 생성하고 UI를 추가한 후에 실제 이벤트를 처리하는 방법까지 알아볼 것입니다. 따라서 총 3편의 포스팅으로 나누어 올리도록 하겠습니다. 특정 아이템을 클릭하였을 때 내가 원하는 동작을 하고 싶을때는 우선 파악해야할 것이 있습니다. 바로 ..
안드로이드 관련 포스팅 목록 2020/06/20 - [Android] - [Android] 안드로이드 화면 캡처 방지(Screen Capture Restriction) 2020/06/21 - [Android] - [Android] 안드로이드 자동 화면 회전 방지(Auto Screen Rotation Restriction) 2020/06/21 - [Android] - [Android] 안드로이드 인터넷 권한(android internet permission) 안드로이드 타이틀 바 제거 안녕하세요. 오늘은 안드로이드 앱 개발중에 나타나는 앱 제목(타이틀 바)를 제거하는 방법에 대하여 알아보겠습니다. 이 타이틀 바는 아래와 같이 최초 어플리케이션 프로젝트를 생성하였을 때 맨위에 앱 제목이 나타나는 영역입니다...