반응형

Android 19

OnBackPressedCallback 추상 클래스 onUserLeaveHint 콜백 함수

1. 액티비티에서 뒤로 가기 버튼을 눌렀을 때, 콜백 함수는? 액티비티에서 뒤로 가기 버튼을 클릭 하였을 경우, Acitivity::onBackPressed() 콜백 함수가 호출 됩니다. 또한 Androidx 에서는 androidx.activity.OnBackPressedCallback 추상 클래스를 제공 합니다. OnBackPressedCallback::handleOnBackPressed() 메서드를 제공 하고 있어서, 액티비티와의 의존성을 줄이고, Fragment 에서 '뒤로 가기 버튼 로직' 을 추가 할 수 있습니다. OnBackPressedDispatcher.addCallback(LifecycleOwner, OnBackPressedCallback)을 사용해서 Fragment를 등록해 줄 수 있습니..

Android 2020.09.08

액티비티 생명 주기(Life Cycle) 콜백 함수

액티비티의 생명 주기(Life Cycle)의 호출되는 콜백 함수들에 대해서 알아 보겠습니다. 1. 생명 주기(Life Cycle) 2. 생명 주기(Life Cycle) 콜백 함수 onCreate 생성 시 초기화 처리와 뷰 생상(setContentView 호출) 등 onStart 비표시 시 Activity 가 사용자에게 보여지기 직전에 호출되는 callback 함수 , 통신이나 센서 처리를 시작 onResume 표시 시(재시작만) 사용자가 액티비티와 상호 작용을 하기 직전에 호출 됩니다. 애니메이션 실행 등의 화면 갱신 처리 onPause 최전면 표시 다른 액티비티의 호출로 해당 액티비티가 백그라운드로 진입 할때 호출. 애니메이션을 포함한 CPU를 소모하는 작업들을 중단 시킬때 이곳에서 하면 적절. 이 메..

Android 2020.09.08

안드로이드 앱 난독화(Proguard)

안드로이드 앱을 열심히 개발하고 출시를 하였습니다. 하지만, 다른 개발자가 나쁜 마음을 먹고 출시된 앱의 apk를 디컴파일(decompile) 하여 소스 코드를 볼수 있다면, 열심히 개발한 앱을 쉽게 베낄수가 있습니다. 하지만, 이 소스 코드를 해독하기 어렵게 만드는 것이 난독화 작업 입니다. 안드로이드에서는 난독화를 위해서 Proguard(프로 가드)를 지원해 줍니다. Proguard(프로 가드)를 false -> true로 만 변경해 주시면 쉽게 난독화가 끝이 납니다. 1. minifyEnabled : false -> true 로 변경 build.gradle(Module : app) 에서 android -> buildTypes -> release -> minifyEnabled : false -> tr..

Android 2020.06.30

WebView 기반 안드로이드 네이티브 앱 개발4(스플래쉬 화면)

WebView기반의 네이티브 앱 개발 할 때 WebView를 처음 띄울때 이미지가 많거나 리소스 용량이 크면 WebView에 로딩이 늦게 되는 경우가 있습니다. 이럴때 WebView가 모두 로딩 되기 전에 로딩 화면을 보여 줄 수 있습니다. 이런 로딩 화면을 스플래쉬(Splash) 화면 이라고 합니다. 스플래쉬 화면을 만드는 방법은 다양 합니다. 하지만 우리는 WebView에 로딩이 끝나는 시점을 알아야 WebView를 띄울수 있습니다. 1. 스플래쉬 화면을 출력 시킵니다. 2. WebView의 로딩이 완료 됩니다. 3. 스플래쉬 화면이 사라집니다. 4. 로딩이 완료된 WebView가 화면에 보입니다. 위와 같은 순서로 진행 됩니다. 1. 스플래쉬 화면을 출력 시킵니다. 스플래쉬 화면을 출력 시키기 위해..

Android 2020.06.08

WebView 기반의 안드로이드 네이티브 앱 개발 3 (뒤로가기)

https://coding-food-court.tistory.com/41 WebView 기반의 안드로이드 네이티브 앱 개발 2 https://coding-food-court.tistory.com/39 WebView 기반의 안드로이드 네이티브 앱 개발 1 안드로이드의 WebView를 이용해서 웹 기반의 안드로이드 네이티브 앱을 개발 하겠습니다. 1. 레이아웃 XML의 WebView를.. coding-food-court.tistory.com 지난 시간에 우리는 WebView 안에서 동작하는 JavaScript 소스를 android 네이티브 소스에서 어떻게 컨트롤 하고 interface를 정의 하는지 배웠습니다. 또한, WebView 안에 링크를 통한 '페이지 탐색'을 핸들링 하여 android 네이티브 앱을..

Android 2020.05.27

WebView 기반의 안드로이드 네이티브 앱 개발1(WebView load)

안드로이드의 WebView를 이용해서 웹 기반의 안드로이드 네이티브 앱을 개발 하겠습니다. 1. 레이아웃 XML의 WebView를 추가 시켜 줍니다. 2. Activity java파일에서 WebView객체를 생성해 줍니다. WebView myWebView = (WebView) findViewById(R.id.webview); 3. WebView.loadUrl() 함수를 통해서 원하는 웹페이지를 로드 할 수 있습니다. myWebView.loadUrl("https://www.naver.com/"); 4. INTERNET 퍼미션이 있어야 합니다. ... 여기까지 특정 설정을 하지 않고 단순히 WebView만 띄우기 위한 기본 소스 입니다. 전체 소스를 확인해 보겠습니다. //WebView를 띄우는 Activi..

Android 2020.05.20

WebView 기반 안드로이드 네이티브 앱 개발5 (file upload)

webView를 이용해서 android 네이티브 앱 개발시에, webView 안에 html 안에 은 네이티브 쪽에서 아무 처리도 해주지 않으면, 아무런 반응도 일어나지 않습니다. 이것을 구현하는 방법을 소개 하겠습니다. 1. WebView 객체 만들기 먼저, WebView 객체를 만들어 줍니다. WebView myWebView = (WebView) findViewById(R.id.webview); 2. onShowFileChooser 함수 구현 이것을 android 네이티브에서도 처리해 주기 위해서는 WebChromeClient.onShowFileChooser()을Override 해주어야 합니다. public static final int IMAGE_SELECTOR_REQ = 1; private Valu..

Android 2020.05.19

ERR_CLEARTEXT_NOT_PERMITTED

Cordova로 개발 하고 있는 상황에서 'http://' 프로토콜을 사용해서 다른 웹페이지에 요청을 날릴때, 다음과 같은 에러가 뜨는 경우가 있습니다. "net::ERR_CLEARTEXT_NOT_PERMITTED" Cordova 말고 Android 네이티브에서는 다음과 같이 에러가 출력 될 것입니다. "CLEARTEXT communication to XXXX not permitted by network security policy" 이 에러는 안드로이드 pie(9.0) 버전 부터는 "http" 가 아닌 "https" 프로토콜을 쓰도록 하게 하기 위함 입니다. * 해결 방법 1. http -> https 따라서 이 에러를 해결 하기 위해서는 "http"에 요청을 하는 것이 아니라, "https"에 요청을..

Android 2020.05.18
반응형