전체 글 426

[Android] Architecture, Framework, Platform에 대해 알아보자

Architecture, Framework, Platform에 대해 알아보자 안드로이드 플랫폼 아키텍쳐의 구조 안드로이드는 리눅스 커널을 기반으로 하고 있는 리눅스 계열 OS입니다. 커널이란 하드웨어와 우리가 사용하고 있는 OS를 연결시켜주는 다리와 같은 존재로 운영체제에 있어서 핵심이기도 합니다. 1. 커널(kernel)의 담당 1) 보안 - 하드웨어와 프로세서의 보안을 담당합니다. 2) 자원관리 - 한정된 시스템 자원을 효율적 관리, 프로그램의 실행을 원만하게 합니다. *프로세스 처리를 관리하는 것을 스케쥴링이라 합니다. 3) 추상화 - 같은 종류의 부품으로 수 많은 종류의 하드웨어를 설계할 수 있기 때문에 하드웨어에 직접 접근하는 것은 다소 복잡하게 될 수 있습니다. 일반적으로 커널은 운영체제의 복..

안드로이드 2022.10.24

[Android] 블루투스(Bluetooth) 개발에 대해 알아보자

안드로이드 블루투스(Bluetooth) -블루투스를 사용하여 통신하려면 기기에서 지원되는지 확인하고, 지원되는 경우 활성화 해야한다. -블루투스가 지원되지 않는 경우 모든 블루투스 기능을 비활성화 해야한다. -블루투스 지원O, 비활성화 된경우 애플리케이션을 떠나지 않은 상태에서 블루투스를 활성화하도록 요철할 수 있다.(BluetoothAdapter) 1.BluetoothAdapter를 가져옵니다. val bluetoothAdapter: BluetoothAdapter? = BluetoothAdapter.getDefaultAdapter() if (bluetoothAdapter == null) { // Device doesn't support Bluetooth } 2.블루투스 활성화 블루투스 활성화를 요청하려..

안드로이드 2022.10.24

[Android] 블루투스(Bluetooth) Gatt 개발 순서

안드로이드 블루투스(Bluetooth) Gatt 개발 순서 1.oncreate에서 ACTION_BOND_STATE_CHANGED, ACTION_STATE_CHANGED Broadcast리시버 등록 2. 권한 체크 3. bluetooth scan 4. bluetooth connect -기존 연결 되어있으면 끊고 연결 BleManager.getInstance.apply{ connect } uuid는 Service, notify, write UUID 성공: (1)연결된 device 저장 (2)Service (3)characteristics (4)Notify연결 (5)write연결 gatt?.run{ this.service .filter{ it.uuid.toString() == serviceUuid } .map..

안드로이드 2022.10.24

[Android] viewpager setUserVisibleHint, swipe, transition, 양쪽 마진

ViewPager setUserVisibleHint (뷰페이저 보인 화면만 데이터 가져오기) https://black-jin0427.tistory.com/48 [Android, setUserVisibleHint] 뷰페이저에서 보인 화면만 데이터 받아오기 안녕하세요 블랙진 입니다. 한국에서는 카카오톡 앱을 많이 사용하는데 이는 4개의 ViewPager 로 구성되어 있습니다. 그렇지만 다른 화면으로 스와이프 했을 때, 해당 화면이 보여지고 나서 데이터 black-jin0427.tistory.com https://black-jin0427.tistory.com/48?category=727620 [Android, setUserVisibleHint] 뷰페이저에서 보인 화면만 데이터 받아오기 안녕하세요 블랙진 입니다..

안드로이드 2022.10.24

[Android] 데이터 바인딩(DataBinding)

데이터 바인딩(DataBinding) - 데이터 바인딩은 데이터를 xml상에 바로 연동시키는 작업을 말합니다. 1.APP단계의 build.gradle에 dataBinding을 추가해 줍니다. dataBinding{ enable = true } 에러) unresolved reference databinding발생 kotlin으로 작업 할 때 바인딩 에어가 발생할 수 있습니다. https://gogorchg.tistory.com/entry/Kotlin-unresolved-reference-databinding 링크를 통해 에러를 해결하세요. 혹은 APP단계의 build.gradle상단에 apply plugin: 'kotlin-kapt' 코드만 붙여줘도 충분히 해결이 된답니다. 2.User 클래스를 새로 만들..

안드로이드 2022.10.24

[Android] RxJava2 함수에 대해 알아보자

Android RxJava2 함수에 대해 알아보자 -공통적으로 사용하는 구독(수신)클래스 static class CustomSubscriber extends DisposableSubscriber{ @Override public void onNext(T t){ } @Override public void onError(Throwable t){ } @Override public void onComplete(){ } } 1.Just 파라미터를 통해 받은 데이터로 Flowable을 생성하는 연산자입니다. 최대 10까지 전달할 수 있고, 모든데이터가 수신되면 onComplete()수신. 기본적인 Flowable 생성자 함수로 볼 수 있으며 단순 작업에서 많이 사용. //파라미터 값을 순차적으로 송신하는 Flowab..

안드로이드/Rx 2022.10.24

RxJava에 대해 알아보자

RxJava에 대해 알아보자 RxJava -reactive programming을 하기 위한 라이브러리인 Rx(reactive extensions)의 JVM판. -reactive streams는 java8+에 친화적 -이벤트를 정의한 'Observable' 인스턴스에 대해 짧은 함수를 엮은(체인) 스트림 같이 이벤트 결과 데이터를 가공하는 처리를 정의, 지연실행, 비동기 콜백을 할 수 있다. -Rxjava2.x에서는 Observable, Single, Maybe, Flowable로 클래스를 구분 1.null을 보내게 되면 바로 nullpointerException처리. ->completable, maybe 활용 가능 2.Flowable은 Backpressure를 지원하는 Observable이다. 3.Su..

안드로이드/Rx 2022.10.24

[Android] Realm에 대해 알아보자

Android Realm에 대해 알아보자 1.설치하기 프로젝트 build.gradle 파일에 추가. buildscript { repositories { jcenter() } dependencies { classpath "io.realm:realm-gradle-plugin:3.5.0" } } 2.애플리케이션 build.gradle파일에 realm-android플러그인 apply plugin: 'realm-android' 3.ProGuard설정이 Realm라이브러리에 포함되어있습니다. 따로 규칙을 추가할 필요없음. 모델(Model) Realm모델 클래스는 RealmObject 기반 클래스를 상속받아서 생성합니다. Required field와 Null 값 null이 필드의 값으로 부적당한 경우, @Requir..

안드로이드 2022.10.24