2016-08-24 1 views
-1

현재 사용자가 일련의 상호 작용을 통해 시스템에서 무엇을하는지 알아 내려고하는 프로젝트를 진행 중입니다. 안드로이드 UI에서. 예를 들어 Facebook Messenger에서 사용자가 보내기 버튼을 클릭하면 측정 된 응답 시간은 1.2 초입니다. 내 목표는 1.2 초가 무엇인지 파악하는 것입니다. 내 친구는 'Systrace'에 대해 살펴보아야한다고 제안했다.Systrace -/sys/kernel/debug/tracing/set_ftrace_filter 오류가 발생했습니다 : 해당 장치 (19)를 시작할 수 없습니다.

그러나 HTC 하나의 M8에서 systrace를 시도했을 때 몇 가지 문제가 발생했습니다. 먼저/sys/kernel/debug/tracing/options/overwrite를 열 때 오류가 발생합니다. 해당 파일이나 디렉토리가 없습니다. 나는 http://opensourceforu.com/2010/11/kernel-tracing-with-ftrace-part-1/과 mount -t debugfs none/sys/kernel/debug 뒤에 커널의 지원을 구축함으로써이 문제를 해결했다. 그런 다음 추적 디렉터리를 찾을 수있었습니다. 게다가, 나는 ram.debuggable = 1을 Ramdisk 내의 default.prop 파일에 설정하고 boot.img를 나의 전화에 태운다.

이제 다른 문제가 발생합니다. python systrace.py --time = 10 -o mynewtrace.html sched gfx view wm을 실행하면 다음 오류 (19)가 나타납니다 :/sys/kernel/debug/추적/set_ftrace_filter : 해당 장치가 없습니다 (19). systrace에 대한 커널 빌드 지원이 잘못되었거나 누락 된 부분이 없는지 나는 알지 못합니다.

누구든지이 문제로 나를 도와 줄 수 있습니까?

답변

0

나는 해결책을 찾았다 고 생각합니다. 내 환경은 우분투 16.04 + HTC 한 M8입니다. I는 다음과 같이 단계 물품 것이다

  1. 오픈 단자가 입력 $adb shell
  2. 1 $su (2)를 $mount -t debugfs none /sys/kernel/debug. 이제/sys/kernel/debug/아래에 여러 디렉토리를 볼 수 있어야합니다. (이것을 확인하기 위해/sys/kernel/debug에 cd 할 수 있습니다.)
  3. 새로운 터미널을 새로 만들고 장치에서 boot.img 커널 이미지를 생성하려면 dd if=/dev/block/platform/msm_sdcc.1/by-name/boot of=/sdcard/boot.img을 입력하십시오.
  4. AndroidImageKitchen을 사용하여 boot.img의 압축을 풀고 Ramdisk 폴더 내의 default.prop을 찾으십시오. 그런 다음 ro.debuggable=0ro.debuggable=1으로 변경하십시오. boot.img를 다시 포장하고 플래시를 장치로 부팅하십시오.
  5. 단말기가 부팅되면 터미널 아래에 다음을 입력합니다. adb root 및 message like : restarting adbd as root가 표시 될 수 있습니다. USB를 분리하고 다시 연결하십시오.
  6. systrace 폴더로 cd. ~/androidSDK/platform-tools/systrace 및 사용 : python systrace.py --time=10 -o mynewtrace.html sched gfx view wm
  7. 이제 자신의 systrace 파일을 생성 할 수 있습니다.
관련 문제