'Technical Note/ANDROID'에 해당되는 글 4건

Technical Note/ANDROID

출처 : http://developer.android.com/tools/debugging/debugging-ui.html


Optimizing Your UI ( UI 최적화하기 )


layout 때문에 앱이 느려질 수 있다.

layout 에 관련된 debug 는 Hierarchy Viewer 와 lint tools 를 통해 할 수 있다.


Hierarchy Viewer 는 layout 의 계층도를 보여주며, 각 node 가 얼마나 성능을 내는가를 볼 수 있다.

그리고 Pixel Perfect window 를 통해 확대해 볼 수도 있다.


lint 는 static code scanning tool 로 일반적으로 발생하는 coding problem 을 잡아준다.

layout file 이나 다른 resource directory 에서 손쉽게 문제를 찾아 성능이슈를 해결할 수 있다.




Hierarchy Viewer 사용하기


시큐리티 이슈가 있어서, Hierarchy Viewer 는 오직 developer 모드로 빌드된 단말에서만 작동한다.


독자 : 뭐야 말짱 황이자나?

필자 : 아니다. (느리지만, 답답하지만) 에뮬레이터로 하면 된다.


1. 앱을 실행시키고 terminal 에서 hierarchyviewer 를 입력하여 실행시킨다.

위치는 <sdk>/tools/ 에 있다.


2. 처음 보는 화면은 device 의 종류이다.

그곳에서 트리를 따라가면서 hierarchy 를 보고 싶은 activity 를 찾아들어간다.


3. 그곳에서 view hierarchy 를 볼 수 있고, pixel perfect window 를 이용하여 뷰를 확대할수도 있다.



View Hierarchy Window



VIew object 는 rendering performance data 도 가지고 있다.


4개의 패널이 있다.


1. Tree View


왼쪽에 위치해있으며, view hierarchy 를 tree 형태로 보여준다.

패널을 zoom 하기 위해서는 패널 아래쪽 slider 를 이용할 수 있고, 마우스 휠을 이용해도 된다.

패널내에서 이동을 하고 싶으면 마우스 클릭 후 드래그 하면 된다.


특정노드를 찾아 highlight 하고 싶으면 "Filter by class or id:" 란에 filter text 를 입력하면 된다.

매칭되는 노드는 갈색에서 밝은 푸른색으로 변형된다.


TreeView 의 screenshot 을 "Save AS PNG" 를 통해 저장할 수도 있다.

"Capture Layers" 를 통하면 Adobe Photoshop ( PSD ) 로도 저장할 수 있다. 이 경우 모든 view 가 layer 로 구분되어 저장된다.

( 호! 좋은데? )



2. Tree Overview


우상단에 위치해있으며, 전체 트리의 현재 포지션 등을 간단하게 보여준다.

드래그나 클릭을 통해 쉽게 위치를 이동할 수 있다.

Technical Note/ANDROID

안드로이드의 앱의 퀄리티가 날이 갈 수록 높아지고 있는 만큼 이런 퀄리티 높은만큼 뷰의 구조가 점점더 복잡해지고 있다. 뷰의 구조가 복잡 할 수록 앱이 실행하는데 그 만큼의 영향을 미치게되어 사용자로하여 느린 반응을 보일 수가 있다. 이런 뷰의 구조를 최대한 줄이기 위해 최대한 노력해야 한다. ADT에서 훌륭한 Hierarchy Viewer를 통해 View의 구조를 도면같이 펼쳐서 보여주는 툴이 있다. 하지만 구조가 복잡하면 복잡해질 수록 보기에는 다소 무리가 있는 경험들이 있을 것이다.

이런 구조를 좀더 쉽게 파악할 수 있도록 3D로 표현 해주는 Droid Inspector이라는 툴이있다

Droid Inspect의 장점


- 3D로 View구조를 파악 할 수 있다.

- Overdraw를 찾아 낸다.

- 개별 View의 bounds를 볼 수 있다.

- DDMS plugin으로 지원 한다..

- View 계층을 숨기거나 보일수 있다.

- Web 파일로 추출 가능하다.




Technical Note/ANDROID

usb 없이 무선으로 PC와 안드로이드 폰 연결 방법


adb는 일반적으로 USB통해서 사용가능하다. 그런데 wifi로 가능할수있는 방법이 있다 


1. 안드로이드 장비와 PC가 같은 wifi 공간에 있어야 한다. 


2. 처음 한번은 USB로 연결을 해야 합니다.  안드로이드 장비가 USB 디버깅 모드가 설정되어 있다면  usb로 PC와 연결합니다. 

그리고 아래와 같이 PC의 터미널에서 adb devices란 명령어를 통해 모바일 장비와 연결이 되어있는지 확인해봅니다.



$ adb devices

List of devices attached

######## device


3. tcpip 모드로 adb를 재시작 한다. 


$ adb tcpip 5555

restarting in TCP mode port: 5555

4. 그 다음 안드로이드 장비의 ip를 찾는다. 장비의 Setting > 디바이스 정보 > 상태 > ip 주소 로 찾거나 현재 wifi가 연결되어 있다면 wifi 설정 정보로 가서 ip 주소를 찾을수도 있다.


5. 이 ip를 가지고 안드로이드 장비와 connection을 시도한다. (usb를 뽑은 후에 시도 해도 되더라)


$ adb connect #.#.#.#

connected to #.#.#.#:5555

6. usb 없이 계속 접근할 수 있다.


$ adb devices

List of devices attached

#.#.#.#:5555 device


만약 모바일 장비가 재부팅이 되더라도 ip 가 변하지 않는한 여전히 connection을 유지할수있다. 

다시 연결하려면 adb connect 를 수행해서 다시 연결하면 된다 

그래도 잘 안되면,,, adb를 reset해보자 (위에 1번 부터 다시 시작) 


adb kill-server



Technical Note/ANDROID

adb shell 

먼저 ps -ef | grep webtoon 로 웹툰 pid를 찾는다
또는 # ps net.daum.android.webtoon 


uss 칼럼은 app 고유의 메모리 사용량을 나타내고,
pss 는 또한 프로세스간에 공유되는 메모리 량을 포함하고 있습니다.

adb shell dumpsys meminfo 로 메모리 사용량 체크

cat /proc/meminfo

dumpsys meminfo


while true; do  ls(adb shell dumpsys meminfo 8189) ; sleep 1 ; done ;


1
블로그 이미지

zzikjh