본문 바로가기

프로그래밍 놀이터/안드로이드, Java1095

[android] FileProvider 에 알아보자 - FileProvider 는 ContentProvider 의 subclass 로 secure 한 file share 를 관장한다. 이를 통하면 file:/// 형태의 uri 대신 content:// 형태의 uri 를 사용하게 된다. - content URI 는 read, write access 를 임시 permission 으로 부여할 수 있다. content uri 를 가진 Intent 를 통해 타앱에 정보를 보낼 때에도 Intent.setFlags() 를 통해 permission 을 부여할 수 있다. 이 permission 은 전달받는 Activity 가 stack 에 존재할 때 가능하다. Intent 가 Service 로 전달될 때에는 해당 Service 가 running 하는 동안만 부여된 권한이.. 2021. 2. 16.
[android] WebChromeClient 의 file upload - WebView 기본 구현으로는 html 의 를 처리할 수 없다. - Webview 에서 file upload btn 이 클릭되었을 때 WebChromeClient 의 callback 이 불리게 되며, 여기서 param 으로 전달되는 callback 객체에 Uri 를 전달해주어야 file upload 를 시킬 수 있다. - 그럼 file upload btn 이 클릭되었을 때 어떤 callback 이 불리느냐? 이 부분은 직접 테스트한 것은 아니고, 인터넷 정보에 따르면... android 3.0 (HoneyComb) 미만에서는 아래 callback 이.. public void openFileChooser( ValueCallback uploadMsg) android 3.0 이상 ~ 4.1( JB ) 미만.. 2021. 1. 29.
[android] 국제화 text style 입히기 - Eng : Best practices for text on Android Es : Texto en Android: mejores prácticas 여기서 Text, Texto 에만 bold 처리를 하고 싶다면? - 간단한 styling 은 HTML tag 를 이용하자. Text 와 Texto 를 각각 tag 로 감싸고, setText(Html.fromHtml(…)) API 호출을 해주자. - HTML tag 로 해결하기 어려운 복잡한 케이스는 annotation 을 이용하자. strings.xml 에 태그를 사용하면 된다. custom key, value pair 를 xml 에 정의하고, annotation tag 를 사용할 수 있다. string resource 를 SpannedString 로 얻어.. 2021. 1. 27.
[android] finishAffinity() 와 finishAndRemoveTask() 에 대하여 with 실험 FinishAndRemoveTask - API Level 16 (Android 4.1, JB) 에 추가된 API 호출하는 Activity 기준 본인 포함 현재 task 의 '하단'에 있는 모든 Activity 를 종료시켜준다. - Activity Call Stack : A -> B -> C C에서 finishAffinity() 를 호출하면 A, B, C 가 모두 destroy 된다. - Activity Call Stack : A -> B -> C B 에서 handler 를 통해 delay 를 주면서 finishAffinity() 호출하면 A, B 가 destroy 되고 C 는 destroy 되지 않고 살아있는다. 호출하는 Activity 기준 '하단' 만 종료됨에 유의하자. - 참고자료 : https:/.. 2021. 1. 27.
[android] context 마스터 하기! - Context 는 Android API 중 가장 잘못 design 된 녀석이다. Android 에서 신과 같은 object 이다.. - Android 는 component 들을 갖고 있다. Activity, Service, BroadcastReceiver, ContentProvider. Android OS 자체도 component 들을 가지고 있다. WifiManager, Vibrator, PackageManager 등등.. 그리고 Resource 라는 녀석도 있다. Context 를 간단히 이야기하면 component 간의 다리 역할을 하는 component 이다. context 를 통해 component 간의 communication, instantiate, access 등을 할 수 있다. - C.. 2021. 1. 26.
[android] ViewModel & LiveData 의 pattern & anti-pattern Views and ViewModels Distributing responsibilities -이상적으로 ViewModel 은 Android 에 대한 어떤 것도 알아서는 안 된다.이는 testability 를 늘려주고, 더 안전하며, module 화하기 편해진다.이를 가장 쉽게 확인할 수 있는 방법은 android.arch.* 외에는 android.* import 가 없어야 한다. -조건문, loop, 동작 결정 등은 Activity, Fragment 가 아닌 ViewModel 이나 다른 layer 에서 수행해야한다.View 는 어떻게 data 를 display 할지만 신경쓰고, user event 를 ViewModel 이나 Presenter 로 전달하는 역할만 해야 한다.이것이 Passive View p.. 2021. 1. 22.
[android] ViewModel 에 대해 알아보자 -ViewModel 은 activity 나 fragment 에서 사용되는 data 를 준비하고 관리하는 역할을 하는 클래스이다.이 녀석은 activity 와 fragment 를 비롯한 앱 전반과의 통신을 관리한다. -ViewModel 은 항상 fragment 나 activity 와 같은 scope 안에서 생성된다.그리고 scope 이 살아있는 동안 계속 유지된다.이 말은 Configutation change 로 인해 destory 되더라도, ViewModel 은 destroy 되지 않는다.새로운 owner instance (재생성된 Activity)는 존재하는(기존 Activity 에 의해 생성된) ViewModel 에 재연결된다. -ViewModel 의 목적은 Activity 나 Fragment 에서 .. 2021. 1. 21.
[android] LiveData 에 대해 알아볼까 -LiveData 는 주어진 lifecycle 에 의해 observed 될 수 있는 data holder 이다.이 말은 LifecycleOwner 와 함께 하는 Observer 라고 보면 된다. 그리고 이 observer 는 감싸고 있는 data 의 변경을 LifecycleOwener 의 상태가 active 상태일 때만 알려준다. -LifecycleOwner 는 LifeCycle.State.STARTED 나 LifeCycle.State.RESUMED 일 때만 active 상태이다.observeForever(Observer) 를 통해 observer 가 추가되면 이 observer 는 항상 active 상태로 여겨지며, 따라서 변경에 대해 항상 notify 를 받을 수 있다.이 경우에는 수동으로 remov.. 2021. 1. 20.
#5 모바일 앱 보안 강화 - 안드로이드 모바일 앱 모의해킹 5.1. 시큐어 코딩 개요 -시큐어 코딩이란 개발 단계에서 보안 취약점을 사전에 제거하여 안전한 소프트웨어를 개발하는 코딩 기법으로, CENT 에서 처음 제안되어 현재는 국내외에서 다양한 표준 코딩 기법들이 발표되고 있다. -대부분의 보안 취약점은 개발자의 미숙한 코딩에서 비롯되어 발생하는 것으로, 개발 단계에서 안전하게 개발할 경우, 대부분의 보안 취약점을 예방할 수 있다.물론 프로그램 언어나, Platform적 문제나, 소프트웨어 설계상의 문제점으로 발생하는 취약점들도 있다.투자 비용 대비 가장 안전하게 소프트웨어를 개발할 수 있는 방법은 개발 단계에서 제거하는 것이다. -한국인터넷진흥원에서 발행하고 있는 시큐어 코딩 가이드는 다음과 같다. 소프트웨어 개발 보안 가이드 JAVA 시큐어 코딩 가이드 C.. 2020. 11. 23.
반응형