안드로이드에서 파티션 정보를 보려고 하니 커널 메세지(dmesg)에서는 확인이 불가하였습니다.

mount 나 busybox df -h 로는 마운트 정보만 나오기 때문에 이 또한 무용지물이라 찾아보던 중..


/proc 폴더에는 여러 유용한 정보들이 숨어 있죠,

안드로이드에서는 /proc/partitions 에 파티션 정보가 있었습니다.


다만 한가지, 제가 쓰는 보드 특성인지 모르겠지만 시리얼 로그에서 보이는 파티션 정보에서는

partition count: 12 라고 떴지만 아래에 나오는 파티션은 총 14개가 나왔습니다.


계산을 해보니 첫 번째 필드는 전체 합으로 확인이 되었습니다. (딱 떨어지지는 않습니다. 159 KB 가 빔)

따라서 첫 번쨰 ndda 와 1블럭짜리 ndda4 를 빼면 총 12개라고 확인하면 될것 같습니다.

(제가 파티션을 나눌 때 1KB 짜리는 나눈 적이 없거든요)


참고로 아래 나온 blocks 는 KB 단위를 표시하는 것으로 확인이 됩니다.

파티션 나눌 때 ndda1~ndda12 까지는 제가 딱 저 값들을 입력 하였습니다.

(ndda13 은 나머지 공간이 자동으로 잡히게 됨)


# cat /proc/partitions

major minor  #blocks  name


 240        0    4037632 ndda

 240        1      15360 ndda1

 240        2     665600 ndda2

 240        3    1048576 ndda3

 240        4          1 ndda4

 240        5     153600 ndda5

 240        6      15360 ndda6

 240        7      20480 ndda7

 240        8      20480 ndda8

 240        9      20480 ndda9

 240       10      20480 ndda10

 240       11     524288 ndda11

 240       12    1048576 ndda12

 240       13     484192 ndda13

'Android' 카테고리의 다른 글

app 재실행 하기  (0) 2013.10.24
빨간 테두리 나오는 현상  (0) 2013.10.23
Ethernet 사용을 위한 Kernel 설정  (0) 2013.08.07
Android 빌드 시스템 (Make file 관련)  (0) 2013.08.05
System app 구분  (0) 2013.08.05
Posted by 독뽀
,

app 재실행 하기

Android 2013. 10. 24. 10:19

app 운용 중 app에서 문제가 감지되어 재실행이 필요할 때, 특히 종료 시 System.exit(?) 가 문제가 많았다.


System.exit 의 문제는 app 종료 시 Activity lifecycle(onPause onStop onDestroy)에 대한 보장이 없다는 것,


결국 아래와 같이 고치고 나니 굉장히 안정적이게 됨.


PendingIntent i = PendingIntent.getActivity(getApplicationContext(), 0, new Intent(getIntent()), getIntent().getFlags());

AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE);

am.set(AlarmManager.RTC, System.currentTimeMillis() + 5000, i);

//System.exit(2)

moveTaskToBack(true); 

finish();

android.os.Process.killProcess(android.os.Process.myPid());




<추가>


시스템 앱의 경우 무슨 짓을 해도 다시 살아나더이다..

일반적인 경우에는 문제가 없는데, 같이 실행된 서비스가 프로세스에는 안보이고 (exported="false" → :remote 로 안뜸)

종료할 때 서로 연결되어 있던 서비스가 깔끔하게 unbind 되지 않음.

이 상태로 앱이 재시작 되면 먼저 있던 서비스와 bind가 안되는 경우가 가끔 나타남(타겟 특성일 수도 있음)

결국 재부팅으로 해결.. 흑..

'Android' 카테고리의 다른 글

현재 파티션 정보 보기  (0) 2016.05.18
빨간 테두리 나오는 현상  (0) 2013.10.23
Ethernet 사용을 위한 Kernel 설정  (0) 2013.08.07
Android 빌드 시스템 (Make file 관련)  (0) 2013.08.05
System app 구분  (0) 2013.08.05
Posted by 독뽀
,

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

검색 결과 세팅에 나오는 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 독뽀
,

제일 첫 설명에 나오는 make menuconfig 화면은

안드로이드 전체 소스 루트 경로에서 kernel 로 들어가서 입력하고 Networking Support ---> 로 진입하면 뜸

그 외 Network device support 는 첫 화면에서 Device Drivers ---> 진입 하면 Network device support ---> 가 뜸


참고로 뒤로 가기는 esc 두 번 연타 하면 되고 하이라이트 된 알파뱃들을 연속으로 누르면 포커스가 이동 됨


글에도 나와 있지만 이 설정들을 하고 나면 커널 빌드를 다시 해 줘야 함


http://blog.daum.net/baramjin/16010987

'Android' 카테고리의 다른 글

app 재실행 하기  (0) 2013.10.24
빨간 테두리 나오는 현상  (0) 2013.10.23
Android 빌드 시스템 (Make file 관련)  (0) 2013.08.05
System app 구분  (0) 2013.08.05
Handler weak reference  (0) 2013.06.20
Posted by 독뽀
,

http://samse.tistory.com/121

'Android' 카테고리의 다른 글

빨간 테두리 나오는 현상  (0) 2013.10.23
Ethernet 사용을 위한 Kernel 설정  (0) 2013.08.07
System app 구분  (0) 2013.08.05
Handler weak reference  (0) 2013.06.20
전체 빌드 오류 가이드  (0) 2013.05.27
Posted by 독뽀
,

System app 구분

Android 2013. 8. 5. 10:56

보드로 안드로이드 개발 중 /system/app 에 들어가는 파일 구분 법


http://blog.daum.net/thehalfmoon/17

'Android' 카테고리의 다른 글

Ethernet 사용을 위한 Kernel 설정  (0) 2013.08.07
Android 빌드 시스템 (Make file 관련)  (0) 2013.08.05
Handler weak reference  (0) 2013.06.20
전체 빌드 오류 가이드  (0) 2013.05.27
항상 최상위에 나오는 뷰  (0) 2013.05.03
Posted by 독뽀
,

Handler weak reference

Android 2013. 6. 20. 05:36

http://ansur.blogspot.kr/2012/08/handler-lint-warnings.html

'Android' 카테고리의 다른 글

Android 빌드 시스템 (Make file 관련)  (0) 2013.08.05
System app 구분  (0) 2013.08.05
전체 빌드 오류 가이드  (0) 2013.05.27
항상 최상위에 나오는 뷰  (0) 2013.05.03
adb shell에서 유용한 명령어  (0) 2013.04.24
Posted by 독뽀
,

http://moonque.tistory.com/entry/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EC%86%8C%EC%8A%A4-%EC%A0%84%EC%B2%B4-%EB%B9%8C%EB%93%9C


http://blog.naver.com/PostView.nhn?blogId=hwani6736&logNo=100164295630&redirect=Dlog&widgetTypeCall=true

'Android' 카테고리의 다른 글

System app 구분  (0) 2013.08.05
Handler weak reference  (0) 2013.06.20
항상 최상위에 나오는 뷰  (0) 2013.05.03
adb shell에서 유용한 명령어  (0) 2013.04.24
Service 생명 주기  (0) 2013.03.12
Posted by 독뽀
,

http://blog.daum.net/mailss/35

'Android' 카테고리의 다른 글

Handler weak reference  (0) 2013.06.20
전체 빌드 오류 가이드  (0) 2013.05.27
adb shell에서 유용한 명령어  (0) 2013.04.24
Service 생명 주기  (0) 2013.03.12
Apache가 무겁다고 생각될때 고려해볼만한 서버 thttpd  (0) 2013.03.11
Posted by 독뽀
,

adb <command> 로 안되면 adb shell로 진입하여 실행해보세요..


개인적으로 getprop 너무 감사함..


http://pheadra.tistory.com/entry/Android-adb-shell%EC%97%90%EC%84%9C-%EC%9C%A0%EC%9A%A9%ED%95%9C-%EB%AA%85%EB%A0%B9%EC%96%B4

'Android' 카테고리의 다른 글

전체 빌드 오류 가이드  (0) 2013.05.27
항상 최상위에 나오는 뷰  (0) 2013.05.03
Service 생명 주기  (0) 2013.03.12
Apache가 무겁다고 생각될때 고려해볼만한 서버 thttpd  (0) 2013.03.11
Messenger와 Service  (0) 2013.03.10
Posted by 독뽀
,