안 드 로 이 드 데이터 모니터링 의 실현 원 리 를 분석 하 다.

1967 단어 android유량 측정
Linux 시스템 에서 모든 정 보 는 파일 형식 으로 존재 하기 때문에 응용 프로그램의 데이터 정보 도 운영 체제 의 파일 에 저 장 됩 니 다.Android 2.2 버 전의 이전 시스템 의 데이터 정 보 는 proc/net/dev(또는 proc/self/net/dev)파일 에 저장 되 어 있 으 며 파일 을 읽 고 분석 하면 됩 니 다.어떤 응용 프로그램의 데 이 터 를 읽 으 면 proc/uid 를 읽 습 니 다.stat/uid /tcp_rcv 파일 을 분석 합 니 다(주:시 뮬 레이 터 에 이 디 렉 터 리 가 존재 하지 않 습 니 다).어떤 애플 리 케 이 션 의 데이터 정 보 를 보 려 면 다음 명령 을 통 해 이 루어 질 수 있 습 니 다

adb devices                        
    adb -s shell               
    cd proc                            
    cd uid_stat                         user id , uid
    ls                                  uid_stat user id
    cd uid                              uid
    ls                                  uid tcp_rcv tcp_snd
    cat tcp_rcv                        
    cat tcp_snd                        
서로 다른 언어 로 작 성 된 프로그램 에 대응 하 는 uid 이름 규칙 이 다 릅 니 다.자바 가 작 성 된 프로그램 이 라면 uid 는 10000 에서 시 작 됩 니 다.C 언어 로 작 성 된 것 이 라면 uid 는 1000 에서 시 작 됩 니 다.또한 uid 가 할당 되면 변 하지 않 습 니 다.아래 그림 에서 비슷 한 app 을 볼 수 있 습 니 다.0、app_1、app_3、app_4 의 정보,이 정보 들 도 uid 를 대표 합 니 다.즉,app0 은 10000,app 과 같 습 니 다.1 은 10001 과 같 고 사실상'app '뒤의 정 보 는 이 응용 프로그램의 설치 번 호 를 대표 하 는데 이 응용 프로그램 이 몇 번 째 로 시스템 에 설치 되 었 음 을 나타 낸다.

Android 2.2 버 전에 트 래 픽 Stats 클래스 를 추가 하여 트 래 픽 통 계 를 실현 합 니 다.사실 트 래 픽 Stats 클래스 자체 도 Linux 에서 트 래 픽 정 보 를 저장 하 는 파일 을 읽 고 분석 하여 이 루어 집 니 다.android.net.TrafficStats 클래스 에 서 는 다양한 정적 방법 을 제공 합 니 다.직접 호출 하여 가 져 올 수 있 습 니 다.반환 유형 은 모두 long 형 입 니 다.반환 값 이-1 대표 UNSUPPORTED 와 같 으 면 현재 장치 가 통 계 를 지원 하지 않 음 을 의미 합 니 다.여기 서 주의해 야 할 것 은 TrafficStats 를 통 해 얻 은 데 이 터 는 핸드폰 을 다시 시작 할 때 비 워 집 니 다.따라서...데이터 에 대한 지속 적 인 통 계 를 하려 면 데이터 베 이 스 를 데이터베이스 에 저장 하고 휴대 전화 재 부팅 시 데 이 터 를 읽 어 누적 하면 된다.Traffic Stats 류 의 정적 방법 은 다음 과 같다.

좋은 웹페이지 즐겨찾기