본문 바로가기

Android

(19)
[Google play] Android, Cross app scripting 으로 인해 Reject 된 경우 한줄요약: 웹뷰에 UrlQuerySanitizer.getUrlAndSpaceLegal().sanitize(url) 를 쓰세요 fun WebView.loadFinalUrl(url: String) { val finalUrl: String = UrlQuerySanitizer.getUrlAndSpaceLegal().sanitize(url) loadUrl(finalUrl) } 구글덕분에 Android 로 밥먹고 살고 있지만, 구글플레이의 모호한 정책은 가끔 참 싫어집니다. 명확하게 원인을 알려주지 않고, 거대한 문서링크만 하나 던져주면서 정책위반을 했으니 수정하라는 식으로 Reject 되는 경우가 있기 때문입니다. 요즘은 그래도 코드 상에서 어떤 라인이 정책을 위반했는지 알려주는 경우가 있기 때문에 전보다는 좀 ..
Structured vs Unstructured coroutine stackoverflow.com/questions/59368838/difference-between-coroutinescope-and-coroutinescope-in-kotlin Difference between CoroutineScope and coroutineScope in Kotlin Can anyone give clarity between functions CoroutineScope() and coroutineScope()? When I tried to check in source, I found that both of them are functions of CoroutineScope.kt. Additionally, stackoverflow.com Difference between Coroutin..
Jetpack Compose Beta: 2월 24일 부터! developer.android.com/jetpack/androidx/versions 안드로이드 Jetpack compose 가 2021년 2월 24일부터 베타버전으로 올라갔습니다. www.youtube.com/watch?v=Ef1xKWjA9E8
Android 에서 Flexbox 같은 UI https://androidstudio.googleblog.com/2019/04/constraintlayout-200-alpha-5.html Constraints layout을 이용해서 css flexbox 같은 뷰를 구현하는 Flow 가 드디어 안드로이드에 추가됩니다. https://riggaroo.co.za/android-motionlayout-tutorial-collapsing-view/ 마찬가지로 Constraints layout을 이용하는 Motion layout도 추가되었네요. 점점 css 를 닮아가는 안드로이드입니다
안드로이드 스튜디오, Java Scratch 파일 (임시파일)을 만들고 Hello world 실행하기 안드로이드 스튜디오에서 Scratch 파일 (임시 파일)을 만들수 있다는 사실을 알고계신가요? Java, Json 등 다양한 포맷의 임시파일을 만들 수 있고, 이 파일은 현재 프로젝트에 전혀 영향을 주지 않습니다. 간단하게 테스트 해 보고 싶은 Java 코드를 만들어 실행 해 보거나, 임시로 저장이 필요한 정보를 임시 파일에 저장 해 둘 수 있습니다. 파일 - New - Scratch File 을 선택합니다. 먼저 Json 파일을 만들어 볼까요 파일이 만들어 졌고, 여기다가 json 형식의 텍스트를 붙여넣어봅니다. 자동 줄맞춤을 하면! 짜잔! 안드로이드 스튜디오의 모든 편집 기능을 이용할 수 있기 때문에 자동줄맞춤도 가능합니다. 이번에는 Java 파일을 만들어봅시다. 적절한 Hello world Main..
Java, 기본 데이터 타입 안드로이드는 주로 자바를 이용해 개발합니다. 그래서 자바에 대해 잘 알면 좋습니다. 오늘 다룰 주제는 기본 데이터 타입입니다. Primitive data type 이라고 불리는, 자바에서 제공하는 기본 타입입니다. 레퍼런스:https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html 1. booleanboolean 타입은 true 또는 false 두 가지의 값 중 하나를 가집니다. 즉 1비트의 정보를 나타냅니다.사이즈는 대략 1바이트로 가정합니다. 즉, 공식 문서에 따르면 그 "사이즈"는 정확히 정의되지 않았습니다. Java Virtual Machine 의 구현에 따라 다릅니다. // boolean boolean1 = 0; // ERR..
[ADB] 현재 화면에 표시되는 액티비티가 알고싶다면? 안드로이드 앱 개발을 하다보면, 다른 사람의 소스를 받아서 개발해야 할 때가 있습니다. 그럴 때는 그 소스를 분석부터 해야겠죠. 현재 화면에 떠있는 내용이 어떤 액티비티인지 확인할 수 있다면 굉장히 유용할겁니다. ADB를 이용하여 현재 어떤 액티비티가 실행 중인지 알 수 있습니다. 방법1: adb dumpsys activity 액티비티와 관련된 많은 정보를 얻을 수 있는데, 그 중 액티비티 스택(현재 어떤 액티비가 표시되고 있는지, 그리고 그 액티비티를 호출한 액티비티는 어떤 것인지)를 알 수 있습니다. 다음 굵은 글씨 부분을 확인하면 됩니다. Running activites (most recent first): TaskRecord{ ~~} Run #2: HistoryRecord{ ~~ com.kou.e..
[Android] 스크린 캡쳐를 막는 방법 http://stackoverflow.com/questions/9822076/how-do-i-prevent-android-taking-a-screenshot-when-my-app-goes-to-the-background Q: 제 앱이 백그라운드로 내려갔을 때, 안드로이드가 스크린샷을 찍는 것을 막으려면 어떻게 해야 되나요?제가 만들고 있는 앱은 보안 이슈 때문에, 앱이 백그라운드일 때 OS에서 스크린샷을 찍는 것을 막아야 합니다. 그래서 다른 앱이 뜰 때는, 제 앱의 마지막 화면이 보이지 않아야 합니다.지금 계획중인 방법은 onPause 메소드 안에서 뭔가 동작을 시켜주면 되지 않을까 싶은데, 일단 그 전에, 애초에 스크린샷 자체를 막을 수 있는 방법을 찾고 있습니다.혹시 이렇게 구현하는 방법을 알고 계..