마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

stricMode에 대해 여쭤봅니다..

0 추천

 

android.os.NetworkOnMainThreadException 이 오류때문에 하루종일 씨름하다.

가뭄에 단비같은 해결책을 누가 네이버 지식인에 올려놓으셨더라구요.

그건 바로 stricMode 을 박으라!!

진짜 박으니까 해결됐어요. 근데 그분이 반드시 이걸 이해해야 한다면서 아래 주소를 링크해주셨는데

영문이더라구요 ㅠㅠ.

아주 왕초보중에 왕초보의 영어실력으로 해석했는데. 요지는 

stricMode메소드의 기능

" 진저브레드 이상에서 작동되는 네트워 버그 잡아주는 메소드"이라는 거같았어요...

제대로 파악한건지 잘모르겠지만 ㅠㅠ.

근데 아래 블로그 적은사람은 구글에서 일하는 저 함수를 만든 개발자 같았는데.

마지막에..반드시 상용버전에서는 절대로 쓰지 말라고 한거 같은데.

솔직히 개발자분들도 상용에서 쓸려고 개발하는거 아닌가요?

디버그 버전에서만 쓰라는 말로 해석해서요. 그러면 쓰지 말아야 되는거 아닌가요?

 

제가 잘못해석한건지   마법의 묘약같은  stricMode()메소드는 그냥 디버그버전에서만 쓰는

희망고문같은 함수인지..상용에서도 써도 되는 슈퍼세이브같은 함수인지요? 

 

http://android-developers.blogspot.kr/2010/12/new-gingerbread-api-strictmode.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed:+blogspot/hsDu+(Android+Developers+Blog)

 

엔조이AD (2,610 포인트) 님이 2013년 12월 30일 질문

2개의 답변

+1 추천
네트웍은 asynctask를 이용하는 걸로 하는게 속편합니다...
쎄미 (162,410 포인트) 님이 2013년 12월 31일 답변
답변 감사합니다^^ asynctask 사용하겠습니다.
+1 추천

정책변경으로 인해서 UI쓰레드(메인쓰레드)에서 네트워크 작업등을 하지 못하게 되면서

어느 부분에서 변경된 정책에 위배되는 작업이 있는지 찾는용도로 만들어진것으로 예상됩니다.

(앱규모에 따라서는 일일히 찾으려면 많은 시간을 허비하게 될테니;)

당연히 앱올릴때 그대로 올리면 문제가 되겠죠;

http://developer.android.com/reference/android/os/StrictMode.html

여기를 보시면 이런 문구가 있습니다.

StrictMode is not a security mechanism and is not guaranteed to find all disk or network accesses. While it does propagate its state across process boundaries when doing Binder calls, it's still ultimately a best effort mechanism. Notably, disk or network access from JNI calls won't necessarily trigger it. Future versions of Android may catch more (or fewer) operations, so you should never leave StrictMode enabled in applications distributed on Google Play.

 

StrictMode는 위배되는 작업을 찾는데만 사용하시고 해당 작업을 

쓰레드나 AsyncTask를 사용하여 작업하도록 변경후 StrictMode는 반드시 비활성화하시고 상용화하셔야 합니다.

 

 

얼룩돼지 (15,720 포인트) 님이 2013년 12월 31일 답변
이렇게 친절하고 자세하게 답변해주셔서 너무 감사합니다.
버그 찾는 용도로만 사용하겠습니다^^
...