전체 글 412

Android 8.0(오레오) 투명모드 Activity에 screenOrientation값 portrait 에러

Android 8.0(오레오) 투명모드 Activity에 screenOrientation값을 portrait을 걸면 폰이 검은 화면에서 넘어가질 않습니다. IllegalStateException: Only fullscreen opaque activities can request orientation 참조 : https://black-jin0427.tistory.com/38?category=727620 [Android. Error] java.lang.IllegalStateException: Only fullscreen opaque activities can request orientation Android 8.0 (오레오) 업데이트 되면서 기존에 없었던 에러가 발생하는것 같습니다. ㅜㅠ 투명 모드 Acit..

안드로이드 웹뷰 URL 호출시 에러 ERR_CLEARTEXT_NOT_PERMITTED

안드로이드 웹뷰 URL 호출시 에러 ERR_CLEARTEXT_NOT_PERMITTED 폰 OS가 안드로이드9.0 파이이고, API주소, 이미지주소 등 네트워크 경로가 https가 아닌 http로 되어있으면 에러 발생. -안드로이드 9.0파이에서는 https를 사용하도록 강제합니다. 해결방법1 -http -> https로 변경. 해결방법2 해당 서버주소를 http여도 실행되도록 허용해주는 설정. res/xml 에 아래와 같은 xml파일을 만들어 줍니다. res/xml/network_security_config.xml api.xxx.com 그리고 Manifest에 이 xml파일을 config파일로 지정해줍니다. 해결방법2-1 모든경로가 허용되도록 설정. 해결방법3 Android Manfest에서 usesCl..

[Android] Elevation (그림자 효과)

Android Elevation (그림자 효과) elevation은 API 21이상에서부터 적용되는 효과입니다. 해당 View를 Z축으로 이동하여 하단에 그림자가 깔리는 입체적인 효과를 줄 수 있도록 고안된 구글의 머테리얼 디자인입니다. 사용법 http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> 위와 같이 android:elevation에 값을 주면 됩니다. 이 값이 커지면 커질수록 Z축으로 더 멀어져 그림자가 커지게 됩니다. 그림자를 주기 위한 뷰의 BackgroundColor가 불투명이 아닌 어떠한 색을 가지고 있어야 그림자가 생긴다. 두번째로..

[Android] Dependency, Dependency Injection

Android Dependency, Dependency Injection Dependency(의존성) -코드에서 두 모듈 간의 연결 -객체지향언어에서는 두 클래스 간의 관계라고도 말함. -일반적으로 둘 중 하나가 다른 하나를 어떤 용도를 위해 사용함. Dependency가 위험한 이유 -하나의 모듈이 바뀌면 의존한 다른 모듈까지 변경이 이루어지기 때문 -테스트 가능한 어플을 만들 때 의존성이 있으면 유닛테스트 작성이 어려움 -유닛 테스트의 목적 자체가 다른 모듈로부터 독립적으로 테스트하는 것을 요구하기 때문.(Mock 객체로 대체가능) Dependency Injection(의존성 주입)이 필요한 이유 -위 Dependency가 위험한 이유를 해결하기 위해서 사용 -'new'를 사용해 모듈 내에서 다른 모..

안드로이드 2022.10.27

[Android] DI란?, Dagger2 사용법에 대해 알아보자

DI 기본 개념과 Dagger2사용 예제 DI란? Dependency Injection의 약자로 의존성 주입을 의미합니다. 특정 객체의 인스턴스가 필요한 경우 이를 외부에서 생성하여 전달하는 기법. Dagger란? 안드로이드에서 의존성 주입을 구현하기 위해 사용하는 라이브러리 입니다. 예제 - 햄버거 만들기 햄버거(Burger)는 밀빵(WheatBun)과 소고기 패티(BeefPatty)로 이루어져 있습니다. 햄버거 public class Burger{ public WheatBun bun; public BeefPatty patty; public Burger(WheatBun bun, BeefPatty patty){ this.bun = bun; this.patty = patty; } } 밀빵 public cl..

안드로이드 2022.10.27

[Android] Dagger에 대해 알아보자

Android Dagger DI와 ioC Dagger는 DI Framework 입니다. DI는 Dependency Injection(의존성 주입)의 준말입니다. 의존성 주입이란 외부에서 의존 객체를 생성하여 넘겨주는것을 의미. DI를 위해서는 객체를 생성하고 넘겨주는 외부의 무언가가 필요합니다. 이것이 DI Framework가 하는 일입니다. 외부에서 넘겨주는 무언가를 스프링에서는 컨테이너, Dagger에서는 Component와 Module이라고 부릅니다. DI는 이렇게 의존성이 있는 객체의 제어를 외부 Framework로 올리면서 IoC개념을 구현합니다. Ioc는 Inversion of Control(제어의 역전)의 준말입니다. :외부 컨테이너가 객체를 생성, 주입합니다. 제어가 거꾸로 가는 개념을 I..

안드로이드 2022.10.27

[Android] Context에 대해 알아보자

Context란? - 어떤 객체를 핸들링 하기 위한 접근 수단. 두가지 역할 -어플리케이션에 관하여 시스템이 관리하고 있는 정보에 접근하기 (ex. getPackageName(), getResource()) -안드로이드 시스템 서비스에서 제공하는 API를 호출 할 수 있는 기능 (ex. startActivity(), bindService()) 안드로이드는 Context라는 인스턴스화된 매개체를 통해야만 유사한 일들을 수행할 수 있다. Context는 어플리케이션이 시작될 때, 어플리케이션 컴포넌트들이 생성될때마다 생성된다 ContextWraper Context의 대리인으로 원본 Context를 변화시키지 않고 수정할 수 있게 해주는 서브 클래스. 보호 프록시 패턴 혹은 어댑터 패턴으로 구현되어 Conte..

안드로이드 2022.10.27

[Android] 데이터 바인딩 BindingAdapter

데이터 바인딩 BindingAdapter 데이터 바인딩을 실무에 적용하기 위해서는 BindingAdapter를 자유자재로 다룰 수 있어야 합니다. ImageView, ListView, RecyclerView등 기능이 복잡한 View는 BindingAdapter를 통해 데이터를 처리해주어야 하기 때문입니다. 1. 서버로부터 이미지를 받아야 되기 때문에 인터넷 접근 권한을 설정해줍니다.(Glide라이브러리) 2.APP단계의 build.gradle에 Glide를 추가해줍니다. //glide implementation "com.github.bumptech.glide:glide:$glideVersion" 3.User.kt에 profile데이터(이미지 주소)와 BindingAdapter를 추가해 줍니다. class..

안드로이드 2022.10.27

[Android] Android Apk 패키징 v1, v2

Android Apk 패키징 v1, v2 안드로이드 apk파일을 생성하는 과정에서 개인키로 암호화 서명을 하여, 이 apk파일이 누구에 의해서 서명되었는지 알수 있습니다. 이러한 인증과정은 누군가가 조작된 apk(악성코드가 심어진)를 배포하지 못하도록 하는 보안적인 이유입니다. 안드로이드 7.0부터는 v2의 새로운 서명 방식이 사용가능하다. android studio 2.2 이상을 사용하면 signature version을 선택할수 있습니다. 기존의 서명은 v1, 안드로이드 7.0부터는 서명이 v2입니다. 참조 : https://trend21c.tistory.com/2017 android apk 패키징 v1, v2 안드로이드는 apk파일을 생성하는 과정에서 개인키로 암호화서명을 하여, 이 apk 파일이 ..

안드로이드 2022.10.27