반응형

안드로이드 55

[Kotlin] Paint - Line

// Step. 라인의 스타일 지정 val lineStyle = Paint().apply { color = Color.parseColor("#5C00D8") // 라인 색상 style = Paint.Style.FILL // 라인 스타일 strokeWidth = 100f // 라인 굵기 strokeCap = Paint.Cap.ROUND // 라인 끝 부분 둥글게 } // Step. Line의 시작과 끝점 정의 val stX = 100f // 시작 x좌표 val stY = 100f // 시작 y좌표 val edX = 200f // 종료 x좌표 val edY = 200f // 종료 y좌표 // Step. 뷰에 적용된 Line 정보를 그려줌 canvas?.drawLine(stX, stY, edX, edY, li..

[Android] More than one file was found with OS independent path 'META-INF/DEPENDENCIES'.

프로젝트를 만들고 예제 소스를 붙였더니, 기존 버전에서 지원되지 않는 lamda가 포함되어있었습니다. 때문에 lang 버전을 업그레이드하고 진행했던, 아래와 같이 META가 중복되는 현상이 발생하였습니다. ▶ 오류: More than one file was found with OS independent path 'META-INF/DEPENDENCIES'. ▶ 이유: 버전 변경에 따른 META 중복 ▶ 처리방법: app의 build.gradle에서 아래 구문을 추가 packagingOptions { exclude 'META-INF/DEPENDENCIES' exclude 'META-INF/LICENSE' exclude 'META-INF/LICENSE.txt' exclude 'META-INF/license.t..

[Android] Background에 있는 어플에 firebase 호출 시 onMessageReceived가 호출되지 않는 오류 처리

다음과 같은 설정으로 Customized 된 FCM을 받을 때, onMessageReceived를 받아지지 않아 Data 전달하지 못하고 있었습니다. public class MyFirebaseMessagingService extends FirebaseMessagingService { @Override public void onMessageReceived(RemoteMessage remoteMessage) { Log.d("Firebase", "From: " + remoteMessage.getFrom()); if (remoteMessage.getData().size() > 0) { LogUtils.debug("Message data payload: " + remoteMessage.getData()); } i..

[Android] Webview 콘솔정보를 LogCat에 띄우기

이전 게시글에 이어 콘솔정보를 LogCat에 띄우는 방법에 대해 글을 작성해볼까 합니다. Script 개발을 하다보면 각 브라우저의 Console에서 오류등을 확인하는 경우가 많습니다. 하지만, 웹뷰에 들어간 경우부터는 확인이 되지 않는 경우가 많은데 이때, console.log의 정보를 LogCat에서 띄어주면 좀더 수월하게 작업이 가능합니다. (안드로이드와 웹개발을 동시에 하는 입장에서) 방법은 매우 간단한데, 이전 게시글에서 커스터마이즈 했던 WebChromeClient에 다음과 같은 메서드를 추가해주면 로그캣에서도 확인이 가능하게 됩니다. 2020/09/03 - [개발 창고/안드로이드 개발] - [Android] Webview에서 경고창(Alert/Confirm) 커스터마이즈하기 [Android]..

[Android] WebView에 Header추가하기

안드로이드 웹뷰 프로그램을 개발하다 보면 Header에 정보를 담아 보내면 편리한 경우가 있습니다. 저 같은 경우엔, 디바이스의 정보(예, fcm token, uuid 등)을 담아 보내서 기기의 접근을 분석할 때 활용하기도 합니다. 해당 소스는 Android API level 8(Android 2.2.2x, FROYO)부터 활용가능합니다. 버전에 대한 정보는 하단의 페이지에서 확인 가능합니다. https://developer.android.com/guide/topics/manifest/uses-sdk-element?hl=ko#ApiLevels | Android 개발자 | Android Developers Lets you express an application's compatibility with one..

[Android] 기기별 고유식별을 위한 UUID

과거에는 기기별 Mac Address를 활용했지만, 보안 문제 등으로 인해 사용이 어려 어려워졌습니다. 때문에 이를 대체해서 개인 식별번호를 위한 UUID를 활용가능합니다. String uuid = UUID.randomUUID().toString(); Log.d("TAG", "UUID >> " + uuid); 다음과 같이 키가 발급됩니다. 때문에 이 키를 저장해 두고 활용하면, 캐시 삭제/어플 삭제 이전에는 계속 동일한 식별번호로 활용 가능합니다. // UUID 초기화 private void initUuid(){ SharedPreferences mPref = getSharedPreferences("KEY_PREF", MODE_PRIVATE); String uuid = mPref.getString("KEY..

[Android] 화면 회전 리로딩 막기

WebView 개발을 하다보면, 가로/세로 화면모드로 전환시 WebView가 리로드되는 현상이 발생합니다. 이는 화면 전환에 따른 onCreate의 재호출 되기 때문입니다. 이런 경우 회전시 리로드를 막는 방법은 매우 간답하니다. AndroidManifast.xml ... 해당 파일에서 내에 android:configChanges="orientation|keyboardHidden|screenSize" 해당 라인을 추가하면 화면모드 전환시에도 웹뷰등이 리로드 되는것을 막을 수 있습니다.

[Kotlin] 코틀린이란?

최근에 코틀린에 대해 공부를 할 이유가 많아졌습니다. 그 이유 중 하나는 구글이 안드로이드 개발 선호 언어로 코틀린을 들기 때문이고 (구글은 젯브레인스사와 협업으로 IntelliJ IDEA 기반으로 만들었고, 코틀린은 이 젯브레인사에서 만든 언어라 호환성이 좋다고 보여집니다) 또 개발자 입장에서 소스가 대부분 복사 붙여넣기가 많은데, 최근 안드로이드 소스는 자바 소스가 줄어들고 코틀린 소스가 많아지기 때문입니다. 그렇다고 코틀린 소스로 개발은 신규 프로젝트에서 중요하지만, 기존의 자바기반 어플을 유지보수하기위해서도 코틀린 소스를 읽을 줄 알아야 하는 부분이 많아 코틀린에 대한 니즈가 많이 늘어나게 되었습니다. 기본적으로 코틀린은 위키백과에 아래와 같이 정의하고 있습니다. 코틀린(Kotlin)은 JVM에서..

[Android] 안드로이드 기능을 웹에서, AndroidBridge

Android 개발 시, 기존 모바일웹을 어플로 띄우고 싶을 때가 있을 겁니다. 그럴 때 사용하는 게 바로 WebView인데 가끔 Web에서 안드로이드의 기능 (ex. 카메라, 바코드스캐너, 알림 등등)을 사용하고 싶을 때가 있을 겁니다. 물론 최근의 WebView는 그런 걸 많이 커버하려고도 하지만, 커스터마이즈한 기능들까지 다 커버하지는 못하죠. 그럴 때, 개발자의 갈증을 2프로 정도 해소해줄 수 있는 기능이 바로 AndroidBridge입니다. 이는 AndroidBridge라고 따로 있는 건 아니고 기능상으로 그러하다는 거고 webview를 통해 web과 android가 통신할 수 있도록 다리를 놓아주는 기능이기 때문에 AndroidBridge라고 보시면 됩니다. 1. Bridge 만들기 impor..

[Android] SeekBar 적용하기

자주 쓰기도, 자주 쓰지 않기도 하는 기능 중 하나가 SeekBar인데요 주료 옵션/설정 등을 숫자가 아닌 배율로 조정할 경우 적용하는 경우가 많은데요 이렇게 SeekBar를 등록하면 아래와 같이 적용된 화면이 노출됩니다. 이를 Activity에서 활용하려면 다음과 같이 적용해 주면 됩니다. 해당 소스는 SeekBar를 반정도 Active 된 상태로 SeekBar를 수정 시 LogCat에 현재 Progress값을 호출되도록 작업한 소스입니다. @Override public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.test); // STEP01. layout의 See..

반응형