빨간 테두리는 릴리즈용이 아니라 디버깅용일 때 자동으로 켜져 있다.

검색 결과 세팅에 나오는 Strict mode는 꺼져 있어도 빌드 시 eng(engineer) 모드로 빌드 하니 자동으로 켜졌다.


https://groups.google.com/forum/#!topic/android-x86/xhUxzF4kTjU 쓰레드를 보면 여러 말들이 많은데,

build.prop 에서 ro.build.type 값을 eng에서 user나 user-debug로 바꿔라,

prop 값을 세팅해라 persist.sys.strictmode.visual=persist.sys.strictmode.disable=1

등등.. 실제로 젤리빈 소스를 뒤져보니 

frameworks/base/core/java/android/os/StrictMode.java 에서 위의 strictmode prop 값들은

0,1 이 아니라 true false로 비교하고 있었고(특정 타겟 보드라 다를 수도 있음)

과부하? 등이 걸릴 때 빨간 테두리가 나온다는데 '얼마나' 보다는 '무엇을' 하는지가 더 중요하지 않나 싶어 빨간 테두리를 아예 뺌.





frameworks/base/core/java/android/os/StrictMode.java 소스에 있는 conditionallyEnableDebugLogging() 메서드 안에서

빨간 줄만 안나오게 고쳐보자.

+는 추가된 줄 -는 뺀 줄이고 한글 주석은 취향 (git unified view 로그 그냥 올림.. ㅋㅋ)


     // remove red border flashing

     public static boolean conditionallyEnableDebugLogging() {

         boolean doFlashes = SystemProperties.getBoolean(VISUAL_PROPERTY, false)

                 && !amTheSystemServerProcess();

   // 아래 false 기본 값을 true로 바꾸자. 위의 VISUAL_PROPERTY는 ICECREAM 미만, DISABLE_PROPERTY는 ICEREAM 이상)

   // 둘의 값은 의미상으로 보아도 반대여야 한가지 옵션으로서 기본 값이 맞아진다.(visual-보이기, disable-안보이기 이므로)

-        final boolean suppress = SystemProperties.getBoolean(DISABLE_PROPERTY, false);

+        final boolean suppress = SystemProperties.getBoolean(DISABLE_PROPERTY, true); // default false -> true (disable)

 

         // For debug builds, log event loop stalls to dropbox for analysis.

         // Similar logic also appears in ActivityThread.java for system apps.

@@ -944,7 +945,8 @@ public final class StrictMode {

             threadPolicyMask |= StrictMode.PENALTY_DROPBOX;

         }

         if (doFlashes) {

             // threadPolicyMask 옵션에서 PENALTY_FLASH 옵션을 빼버렸다.

-            threadPolicyMask |= StrictMode.PENALTY_FLASH;

+//            threadPolicyMask |= StrictMode.PENALTY_FLASH;

+            threadPolicyMask &= ~StrictMode.PENALTY_FLASH;

         }

 

         StrictMode.setThreadPolicyMask(threadPolicyMask);


테스트 결과 사이드 이펙트는 발견되지 않았습니다.
혹시 문제 있으시면 말씀해주세요~


'Android' 카테고리의 다른 글

현재 파티션 정보 보기  (0) 2016.05.18
app 재실행 하기  (0) 2013.10.24
Ethernet 사용을 위한 Kernel 설정  (0) 2013.08.07
Android 빌드 시스템 (Make file 관련)  (0) 2013.08.05
System app 구분  (0) 2013.08.05
Posted by 독뽀
,