블로그 이미지
미국에서 모바일 애플리케이션을 개발하고 있습니다. 요즘 Corona로 앱을 하나 개발하고 있는데 나도 공부 하면서 여러 분들에게 소개도 하고 싶어서 블로그를 만들었습니다.
솔웅

최근에 받은 트랙백

글 보관함

calendar

          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            


요즘 Udacity 에서 제공하는 안드로이드 개발 온라인 강좌를 듣고 있습니다.

Developing Android Apps 을 듣고 있는데 Lesson 1에서 배운 여러 개념들을 정리해 줘서 그 설명을 한글로 바꿨습니다.


Lesson 1 - Create Project Sunshine


1과의 주요 개념들


New Concepts

  • Android Studio
  • SDK - Target and Minimum
  • Emulators vs. Real Devices
  • Gradle
  • Application
  • Activity
  • Fragment
  • Views and ViewGroups
  • Views and XML layouts
  • ListView
  • Adapter



* Android Studio
안드로이드 스튜디오는 안드로이드 개발을 위한 IDE 입니다. 앱을 개발하려면 우선 안드로이드 스튜디오에 Project 를 만들어야 합니다. 모든 프로젝트는 앱의 논리적인 구분을 위해서 하나 이상의 Module 들을 가지고 있습니다. 각 모듈 이름은 unique 해야 합니다. naming convention은 인터넷 도메인 이름을 역으로 하는 것입니다.

안드로이드 스튜디오는 여러분의 프로젝트를 이러한 방법으로 만듭니다.  https://developer.android.com/tools/projects/index.html

아래는 안드로이드 스튜디오에 있는 중요한 버튼들을 설명하고 있습니다.



1. 프로젝트의 구조 (structure)를 보여 줍니다. 이 코스에서는 Project view를 사용하고 있지만 Android view도 파일들을 organize 하는데 아주 유용합니다.
2. Run 버튼입니다. 현재 상태의 프로젝트를 저장하고 컴파일 해 apk 파일로 만듭니다. 그리고 이 apk를 컴퓨터에 연결 된 디바이스나 에뮬레이터에 실행 시킵니다.
3. Debug 버튼 입니다. Run 처럼 코드를 실행 시킵니다. 그런데 Android debugger 가 지정된 특정 지점에서 stop 하도록 만듭니다. 그리고 해당 부분의 code를 볼 수 있도록 합니다.
4. AVD manager 버튼 입니다. Android Virtual Device manager를 실행시킵니다. 에뮬레이터를 생성하거나 지우거나 수정 혹은 실행 시킵니다.
5. SDK manager 버튼 입니다. 이 SDK 매니저는 다른 안드로이드 API 들의 새로운 SDK들을 다운 받을 수 있도록 합니다.
6. Android Device Monitor 버튼입니다. 에뮬레이터나 연결된 디바이스의 많은 정보를 볼 수 있도록 합니다. 예를 들어 basic performance analysis 를 할 수 있고 file system에 무엇이 있는지를 볼 수 있습니다.



* SDK - Target and Minimum
새로운 프로젝트를 생성할 때 minimum SDK 나 Software Development Kit 를 정의해야 합니다. SDK는 안드로이드 프로젝트를 컴파일하고 생성하기 위해 다운로드 한 tool들의 모음 입니다. 새로운 API level이 릴리즈 되면 여기에 맞는 프로젝트를 만들 수 있는 새로운 SDK 가 릴리즈 됩니다. 안드로이드 스튜디오를 설치할 때 현재의 SDK 가 자동으로 다운로드 됩니다.

minimum SDK는 앱이 지원하는 최소 버전의 Android API level을 말합니다. 이 코스에서는 API level 10을 지원합니다. Gingerbread 이상의 디바이스를 지원하게 됩니다. 현재 시장의 99%의 핸드폰이 이에 속합니다.

Target SDK 는 처음에 자동으로 정의되는데 컴파일 하고 테스트 할 SDK를 말합니다. 이것은 가장 최근의 SDK여야 합니다.



* Emulators vs. Real Devices

안드로이드 스튜디오 1.0을 다운 받으면 emulated phone 이 함께 들어 있습니다. 이 emulated phone은  Launch emulator 옵션을 선택하고 원하는 emulator를 선택하면 앱이 실행되면서 이 에뮬레이터에 실행되게 됩니다.



가끔 아래처럼 검은 화면이나 로딩 화면에서 에뮬레이터가 멈출 경우가 있습니다.



이럴 경우 안드로이드 스튜디오의 에러메세지를 확인하세요. 아래와 같을 겁니다.

/Android/sdk/tools/emulator -avd _Nexus_5_API_21_x86 -netspeed full -netdelay none
emulator: The memory needed by this VM exceeds the driver limit.
HAX is not working and emulator runs in emulation mode

이것은 여러분의 컴퓨터 사양이 디폴트 에뮬레이터를 실행할 만큼 충분히 빠르지 않다는 겁니다. 걱정 마세요. Katherine's instructions  를 참조하세요. 새로운 에뮬레이터를 만들고 그 에뮬레이터가 사용하는 RAM의 양을 줄이시면 됩니다.
이 작업을 하려면 아래 configuration screen에서와 같이 하시면 됩니다.



에뮬레이터의 기능은 훌륭하지만 좀 느립니다. 가능하면 실제 폰을 사용해 테스트 하시기를 권장합니다. developer mode 를 unloc 하려면 이 video 를 참조하세요. 아마 성능이 많이 빨라 지고 훨씬 부드럽게 작동하게 될 겁니다.

에뮬레이터 사용하실 준비가 다 됐다면 Genymotion을 설치 해 보세요. 하는 방법은 여기 를 참조하세요.




* Gradle


Gradle 은 빌드 시스템으로 패키지를 up 하고 안드로이드 앱을 컴파일 합니다. 안드로이드 스튜디오는 자동으로 Gradle 파일들을 생성합니다. build.gradle 은 앱과 모듈 그리고 settings.gradle은 앱에 대한 세팅 파일들 입니다. 자동으로 생성되니 이 파일들을 별도로 생성하실 필요는 없습니다. 이 Gradle은 terminal (link) 에서 실행할 수 있습니다. 그리고 프로젝트 내에서 run 버튼을 누르면 자동으로 Gradle script가 실행됩니다. 안드로이드 스튜디오의 build process에 대해 자세히 알고 싶으시면 이곳 을 참조하세요.

(터미널에서 Gradle 실행하기 비디오 : 1 , 2



TIP : Gradle과 관련해 문제가 생기면 Sync Project with Gradle Files 버튼을 누르면 해결되기도 합니다. 그리고 프로젝트를 clean 하고 rebuilding 하는 경우에도 해결 되는 경우가 있습니다.




* Application


여러분은 안드로이드 앱을 사용해 보셨을 겁니다. 대강 안드로이드 앱이 무엇인지 아실 겁니다. 그런데 개발자의 입장에서 이 안드로이드 앱은 어떨까요? 안드로이드 앱은 사용자에게 인터페이스를 제공하기 위한 클래스들의 조합입니다. UI 콤포넌트들은 Activity 클래스들 안에서 정의 됩니다. 화면에 나타나지 않는 작업들은 아래와 같은 다른 안드로이드 클래스들에 의해 처리됩니다.


    - Content Providers (Lesson 4) - Manage app data.
    - Services (Lesson 6) - Run background tasks with no UI, such as downloading information or playing music.
    - Broadcast Receivers (Lesson 6) - Listen for and respond to system announcements, such as the screen being turned on or losing network connectivity.



* Activity


Activity는 안드로이드의 핵심 클래스로서 인터페이스를 담당하는 앱의 콤포넌트입니다. 안드로이드 스튜디오에서 앱을 생성하면 앱이 실행될 때 처음 시작 될 초기화 된 activity 클래스가 생성됩니다. 이 activity의 디폴트 이름은 MainActivity 입니다. 하나의 activity는 대개 앱의 한 화면을 이루게 되며 사용자가 이용할 어떤 서비스를 제공합니다.



* Fragment


Activity는 한개 이상의 Fragment를 가질 수 있습니다. Fragment는 activity의 modular section들 입니다. 대개 UI를 구성하기 위해 사용됩니다. 두개의 activity들이 같은 fragment를 가질 수 있습니다. 그리고 Fragment들은 Activity에 추가되거나 제거될 수 있습니다. blank fragment를 가지고 있는 activity를 우리가 다룰 Sunshine 앱에서 사용할 겁니다. PlaceholderFragment는 activity의 inner class로서 자동으로 생성됩니다. Fragment가 반드시 inner class가 되어야 하는 것은 아닙니다.



* Views and ViewGroups


view는 유저 인터페이스 컴포넌트의 가장 기본이 되는 building block 입니다. fragment는 자신의 layout을 정의하기 위해 여러개의 view들의 조합으로 구성 될 겁니다. 버튼, text, 그리고 다른 widget들은 view의 subclass 들 입니다. 그리고 좀 더 큰 layout을 만들기 위해 ViewGroups에 combine될 수 있습니다. 일반적인 ViewGroups은 다음과 같은 것들로 구성됩니다.

    LinearLayout - For horizontal or vertical collections of elements.
    RelativeLayout - For laying out elements relative to one another.
    FrameLayout - For a single view.

view들은 다른 view들 안에 있게 되므로 모든 layout에서 이 view들은 tree 구조를 가지게 됩니다.



* Views and XML Layouts


유저 인터페이스를 만들기 위해 XML을 사용해서 layout을 만듭니다. layout은 view들과 view group들의 모음으로 구성되고 그 구성요소들간의 관계들이 정의됩니다. 우리의 layout은 app/src/main/res/layout directory 에 저장될 겁니다. 이 xml layout을 java view 객체로 다루기 위해서는 이 layout을 inflate 해야 합니다. layout이 inflate 한 후에 Activity나 Fragment 와 같이 연결 되어야 합니다. 이 inflating 프로세스와 연결 프로세스는 이 layout이 Activity용이냐 아니면 Fragment 용이냐에 따라 약간 다르게 진행됩니다.

Activity 용의 경우
setContentView 메소드를 onCreate 에서 호출 함으로서 layout을 inflate 하고 또 그들을 연결합니다.
setContentView(R.layout.activity_main);

Fragment 용의
Fragment 클래스에서 LayoutInflater라는 파라미터를 가지고 있는 inflate 메소드를 사용해 객체를 만듭니다. onCreateView 메소드 안에서 작업합니다.
View rootView = inflater.inflate(R.layout.fragment_main, container, false);

root view 나 다른 모든 view들을 포함하고 있는 view element는 LayoutInflater의 inflate 메소드에 의해 return 됩니다. 그리고 나서 이 roogView를 onCreateView에 return 하게 됩니다.


<



* ListView


ListView 는 View의 subclass로서 여러개의 single layout을 카피해서 보여 줌으로서 list를 표현하기 위해 사용됩니다. 우리는 Sunshine 앱의 날씨 정보를 보여주기 위해 이 ListView를 사용할 겁니다. 날씨 정보의 각 row는 list_item_forcast.xml layout에 의해 정의 됩니다. 이 list view는 여러개의 list_item_forcast.xml 을 가질 겁니다. 날씨 데이터를 위한 각 row 별로 하나씩 가질 겁니다.
이 ListView를 populate 시키기 위해 Adapter를 사용합니다.



* Adapter


Adapter는 data source를 view에 translate 시켜 ListView에 보여지게 합니다. 우리의 경우 ArrayAdapter를 사용해서 데이터 소스를 배열로 받아서 이를 ListView에 보낼 겁니다. 이와 관련해서 알고싶으시면 이 비디오를 참조하세요.

이제 안드로이드 스튜디오를 사용해서 막 워밍업을 끝냈습니다. 유용한 팁이나 문제해결 방법을 알고 싶으시면 이 웹캐스트를 참조하세요.

Associated handout here.


저작자 표시 비영리 동일 조건 변경 허락
신고




Yahoo에 접속했더니 머릿기사로 크게 한국기사가 떴습니다.

북한 관련기사는 자주 뜨는데 한국관련 기사는 너무 오랜만이라서 한번 살펴봤습니다.

(한국기사는 대통령이 미국을 방문해도 전혀 안 뜹니다.)

여기 시간으로 4월 20일 아침에 뜬 기사입니다.


읽어봤더니 AP 통신이 탐사보도한 서울 올림픽 이전에 박정희와 전두환 독재자들에 의해 자행된 인권 유린 실태를 보도한 기사입니다.


이 기사는 Jay Busbee 기자가 4월 19일에 올린 기사입니다.

Fourth-Place Medal

올해 개최될 브라질 리우 올림픽 관련해서 지카바이러스나 브라질 내의 정치적 혼란, 경제적 낙후, 사회적 불안 등으로 많은 우려를 낳고 있는데요.

후년 평창 동계올림픽을 앞두고 한국과 관련한 이런 기사가 나왔습니다.
외국인들에게는 한국도 브라질 만큼 낙후된 나라로 인식되겠네요.

그런데 뭐 이런 만행을 저지른 독재자 박정희의 딸이 현재 대통령을 하고 있으니... 뭐 별로 할 말 없습니다.

Report: South Korea rounded up, abused vagrants before 1988 Games

Two years ahead of the 2018 Olympic Games slated for Pyeongchang, South Korea, a new Associated Press report charges that South Korea committed widespread human rights violations in the years prior to the 1988 Games in Seoul.

한국 평창에서 열리는 2018 동계 올림픽이 2년 앞으로 다가왔다. AP 통신은 1988년 서울에서 열렸던 올림픽 직전에 광범위한 인권침해가 있었다고 보도했다.

Seoul won the bid for the 1988 Games in 1981, beating out Nagoya, Japan. In the ensuing seven years, the AP report charges, the South Korean government oversaw a brutal, widespread program of "cleansing" that resulted in horrific human rights violations.

서울은 일본의 나고야를 제치고 1981년 88 올림픽 개최지로 선정됐다. 이 7년동안 한국 정부는 '정화' 라는 이름으로 잔인하고 광범위하게 끔찍한 인권침해를 저질렀다.

"Thousands — the homeless, the drunk, but mostly children and the disabled — [were] rounded up off the streets ahead of the 1988 Seoul Olympics, which the ruling dictators saw as international validation of South Korea's arrival as a modern country," reads the report. "An Associated Press investigation shows that the abuse of these so-called vagrants at Brothers [Home], the largest of dozens of such facilities, was much more vicious and widespread than previously known, based on hundreds of exclusive documents and dozens of interviews with officials and former inmates."

"노숙자와 술에 취한 자들도 있었지만 대부분 어린이들과 장애인들인 수천명의 사람들이 1988년 서울 올림픽 전에 길거리에서 모습을 감췄다. 당시 한국을 통치했던 독재자 생각에 한국이 현대적인 도시로 국제적으로 보여지기를 원했기 때문이다." 라고 AP 통신은 전했다. "AP 통신의 탐사물은 소위 형제의 집이라고 불리는 이 부랑자 수용시설은 12개의 대규모 시설로 알려졌지만 실제로는 이것보다 훨씬 더 잔인하고 광범위하게 운영 됐던 것으로 알려졌다.  이같은 사실은 AP 통신이 단독 입수한 수백개의 문서들과 십여명의 당시 수용시설 관리자와 수감자들을 인터뷰한 결과 알려졌다."

Human rights violations in nations seeking to host international competitions are both widespread and persist to this day, as Amnesty has charged in connection with 2022 World Cup preparation in Qatar. South Korea, then under authoritarian rule, had intended to use the Games for multiple political purposes: to demonstrate the nation's emerging economic strength, to cement relations with both Western and Eastern bloc nations, and to establish a measure of distance from the continually hostile North Korea. According to the AP report, South Korean leaders prepared for the Games, and generated economic benefits, in the most ruthlessly efficient way possible: by effectively kidnapping indigents and forcing them into the equivalent of slave labor for most of the 1980s.

국제대회를 개최하고자 한 국가에서의 인권침해는 국제 사면위원회가 카타르의 2022년 월드컵 준비와 관련 카타르에 대해 혐의를 둔 것처럼 아주 광범하고 지속적으로 오늘날까지 계속 된다. 한국은 이런 권위주의 통치 아래에서 올림픽을 여러 정치적인 목적으로 이용했다. 예를 들어 한국의 신흥 경제 시장으로서의 힘을 보여주고 동/서 양진영 국가들과의 돈독한 관계를 만들어 적대국인 북한과 거리를 유지하도록 하려고 했다. AP 통신 기사에 따르면 남한의 리더들은 올림픽을 준비하면서도 수단과 방법을 가리지 않고 모든 방법을 동원해 효율성을 극대화 시켜 경제적인 이익을 얻으려고 했다. 그 무자비한 효율성에는 가난한 사람들을 납치해서 1980년대 대부분을 거의 노예 노동자 처럼 부려먹는 방법도 포함돼 있다.

"In 1975, dictator President Park Chung-hee, father of current President Park Geun-hye, issued a directive to police and local officials to 'purify' city streets of vagrants," the AP report notes. "Police officers, assisted by shop owners, rounded up panhandlers, small-time street merchants selling gum and trinkets, the disabled, lost or unattended children, and dissidents, including a college student who'd been holding anti-government leaflets. They ended up as prisoners at 36 nationwide facilities. By 1986, the number of inmates had jumped over five years from 8,600 to more than 16,000, according to government documents obtained by AP." Park was assassinated in 1979, and the country's next leader, Chun Doo-hwan, spearheaded the Olympic bid while keeping the "purification" efforts going.

"현 한국 대통령 박근혜의 아버지인 독재자 박정희 대통령은 1975년도에 도시 거리에서 부랑자들을 정리하는 일명 '정화' 라는 이름의 지침을 경찰과 지방관리에 하달 했었다. " 고 AP 통신은 전했다. "경찰들은 상점주인들의 도움을 받아 껌이나 악세사리들을 파는 소규모 길거리 상인들과 구걸하는 이들 그리고 장애인들과 미아나 고아들을 정리했다. 더불어서 반정부 전단지를 소지하고 있는 대학생들을 포함한 반체제 인사들도 함께 정리했다. 그들은 전국적으로 있는 36개의 시설에 죄수들처럼 감금됐다. 1986년까지 수감자수는 5년간 8600명에서 16000명까지 급속히 증가했다고 AP 통신이 입수한 정부문서에 나타나 있다."  박정희는 1979년도에 암살당했다. 그리고 이어서 전두환이 집권해 이 '정화'라는 이름의 만행을 계속 확산시켜 나가면서 올림픽을 준비했다.

Workers at facilities similar to Brothers Home were routinely abused and often beaten to death, their bodies buried in the hills outside the facility walls. Meanwhile, the government and the facility operators enriched themselves, often by simply not paying the workers a fair wage, or even any wage at all.

수용시설의 수감자들은 형제의집(형제복지원)에서와 마찬가지로 정기적으로 가혹행위를 당하고 때로는 구타로 숨지기까지 했다. 그들의 시체는 수감시설 담장 밖의 언덕에 묻혔다. 그동안 정부와 수감시설 운영자들은 부를 쌓아갔다. 그들은 수감자들에게 일을 시키면서도 정당한 수당을 지불하지 않았고 때로는 전혀 수당을 지급하지 않은 경우도 있다.

 "Documents show that Brothers should have paid the current equivalent of $1.7 million to more than 1,000 inmates for their dawn-to-dusk work over an unspecified period," the AP report notes. "However, facility records and interviews with inmates at the time suggest that, instead, most of the nearly 4,000 people at Brothers were subject to forced labor without pay,"
 
 "그 문서에 따르면 밝혀지지 않은 기간동안 새벽과 일몰 후 일한 1000명 이상의 수감자들에게 현재 시세로 170만 달러 상당의 수당을 지급해야 한다고 나와 있다." 고 AP 통신은 밝혔다. "하지만 수감시설 내의 기록과 당시 수감됐던 수감자들과의 인터뷰에 따르면 실제로는 4000명 이상의 사람들이 아무런 수당을 받지 않고 사역을 했었다고 증언하고 있다."

Chun was forced from office following political protests in June 1987, and in advance of the Olympics, South Korea adopted a democratic form of government. However, South Korea's current government is not interested in reopening the story of Brothers Home: "Ahn Jeong-tae, an official from Seoul's Ministry of the Interior, said focusing on just one human rights incident would financially burden the government and set a bad precedent. The Brothers' victims, he said, should have submitted their case to a temporary truth-finding commission established in the mid-2000s to investigate past atrocities." In a line more damning than apparently intended, Ahn said, "We can't make separate laws for every incident and there have been so many incidents since the Korean War."

전두환은 1987년 국민들의 저항으로 권좌에서 물러났다. 그리고 올림픽 이전에 한국은 민주주의를 쟁취했다. 하지만 한국의 현정부는 형제의 집(형제복지원)에 관한 자료를 공개하는 것을 거부하고 있다. "안정태 내무부장관은 인권문제를 거론하는 것은 정부에 부담이 되고 부정적인 영향을 미치게 된다며 형제복지원 피해자들은 2000년대 중반에 과거의 잔학 행위를 조사하기 위해 만들어진 진실규명위원회에 사건을 접수해야 한다고 말했다. 또한 그는 한국전쟁 이후 수많은 사건들이 있었고 그 수많은 사건들을 위해 별도의 법률들을 계속 만들수는 없다" 고 말해 많은 비난을 받았다.


저작자 표시 비영리 동일 조건 변경 허락
신고


UI/Application Exerciser Monkey

Monkey는 에뮬레이터나 디바이스에서 돌아가는 프로그램으로 클릭, 터치나 gesture 같은 유저 이벤트의 pseudo-random stream을 발생 시키며 system-level 이벤트들도 발생 시킨다. 여러분이 개발중인 앱의 스트레스 테스팅에 어떤 이벤트를 계속 랜덤하게 반복하는 방식으로 Monkey 를 사용할 수 있다.

Overview

Monkey는 command-line 툴이며 어떤 디바이스나 에뮬레이터에서도 실행 할 수 있다. 이 툴은 유저이벤트의 pseudo-random stream을 시스템에 전달한다. 이로서 어플리케이션에 대한 스트레스 테스트에 활용할 수 있다.

Monkey에는 여러개의 옵션이 있는데 크게 4가지로 나뉜다.

    Basic configuration options, such as setting the number of events to attempt.
    Operational constraints, such as restricting the test to a single package.
    Event types and frequencies.
    Debugging options.

Monkey가 작동중 일 때 event를 발생시키고 이것을 시스템에 전달하게 된다. 또한 테스트 중인 시스템에 대해 다음 세가지 조건들을 본다.

    If you have constrained the Monkey to run in one or more specific packages, it watches for attempts to navigate to any other packages, and blocks them.
    If your application crashes or receives any sort of unhandled exception, the Monkey will stop and report the error.
    If your application generates an application not responding error, the Monkey will stop and report the error.


여러분이 선택한 다양하고 변동적인 level에 대해 진행상황에 대한 report를 얻을 수 있다.




Basic Use of the Monkey


command line이나 script 를 이용해서 Monkey를 실행 시킬 수 있다. Monkey는 에뮬레이터와 디바이스 환경에서 작동하기 때문에 여러분의 환경에서 이것들을 shell을 통해 실행 시켜야 한다. adb shell을 이용할 수 있다. 또는 shell을 입력하던가 Monkey command를 직접 입력 할 수도 있다.

The basic syntax is:

$ adb shell monkey [options] <event-count>

아무런 옵션이 없으면 Monkey는 quiet (non-verbose) 모드로 실행 된다. 또한 테스트 앱에 있는 임의의 패키지에 이벤트를 보낼 것이다.
아래에 좀 더 구체적인 command line 이 있다. 이렇게 하면 여러분의 앱을 실행하고 500 pseudo-random event 들을 보낼 것이다.

$ adb shell monkey -p your.package.name -v 500

Command Options Reference

아래 내용들은 Monkey command line에 넣을 수 있는 옵션들이다.


Category Option Description
General --help Prints a simple usage guide.
-v Each -v on the command line will increment the verbosity level. Level 0 (the default) provides little information beyond startup notification, test completion, and final results. Level 1 provides more details about the test as it runs, such as individual events being sent to your activities. Level 2 provides more detailed setup information such as activities selected or not selected for testing.
Events -s <seed> Seed value for pseudo-random number generator. If you re-run the Monkey with the same seed value, it will generate the same sequence of events.
--throttle <milliseconds> Inserts a fixed delay between events. You can use this option to slow down the Monkey. If not specified, there is no delay and the events are generated as rapidly as possible.
--pct-touch <percent> Adjust percentage of touch events. (Touch events are a down-up event in a single place on the screen.)
--pct-motion <percent> Adjust percentage of motion events. (Motion events consist of a down event somewhere on the screen, a series of pseudo-random movements, and an up event.)
--pct-trackball <percent> Adjust percentage of trackball events. (Trackball events consist of one or more random movements, sometimes followed by a click.)
--pct-nav <percent> Adjust percentage of "basic" navigation events. (Navigation events consist of up/down/left/right, as input from a directional input device.)
--pct-majornav <percent> Adjust percentage of "major" navigation events. (These are navigation events that will typically cause actions within your UI, such as the center button in a 5-way pad, the back key, or the menu key.)
--pct-syskeys <percent> Adjust percentage of "system" key events. (These are keys that are generally reserved for use by the system, such as Home, Back, Start Call, End Call, or Volume controls.)
--pct-appswitch <percent> Adjust percentage of activity launches. At random intervals, the Monkey will issue a startActivity() call, as a way of maximizing coverage of all activities within your package.
--pct-anyevent <percent> Adjust percentage of other types of events. This is a catch-all for all other types of events such as keypresses, other less-used buttons on the device, and so forth.
Constraints -p <allowed-package-name> If you specify one or more packages this way, the Monkey will only allow the system to visit activities within those packages. If your application requires access to activities in other packages (e.g. to select a contact) you'll need to specify those packages as well. If you don't specify any packages, the Monkey will allow the system to launch activities in all packages. To specify multiple packages, use the -p option multiple times — one -p option per package.
-c <main-category> If you specify one or more categories this way, the Monkey will only allow the system to visit activities that are listed with one of the specified categories. If you don't specify any categories, the Monkey will select activities listed with the category Intent.CATEGORY_LAUNCHER or Intent.CATEGORY_MONKEY. To specify multiple categories, use the -c option multiple times — one -c option per category.
Debugging --dbg-no-events When specified, the Monkey will perform the initial launch into a test activity, but will not generate any further events. For best results, combine with -v, one or more package constraints, and a non-zero throttle to keep the Monkey running for 30 seconds or more. This provides an environment in which you can monitor package transitions invoked by your application.
--hprof If set, this option will generate profiling reports immediately before and after the Monkey event sequence. This will generate large (~5Mb) files in data/misc, so use with care. See Traceview for more information on trace files.
--ignore-crashes Normally, the Monkey will stop when the application crashes or experiences any type of unhandled exception. If you specify this option, the Monkey will continue to send events to the system, until the count is completed.
--ignore-timeouts Normally, the Monkey will stop when the application experiences any type of timeout error such as a "Application Not Responding" dialog. If you specify this option, the Monkey will continue to send events to the system, until the count is completed.
--ignore-security-exceptions Normally, the Monkey will stop when the application experiences any type of permissions error, for example if it attempts to launch an activity that requires certain permissions. If you specify this option, the Monkey will continue to send events to the system, until the count is completed.
--kill-process-after-error Normally, when the Monkey stops due to an error, the application that failed will be left running. When this option is set, it will signal the system to stop the process in which the error occurred. Note, under a normal (successful) completion, the launched process(es) are not stopped, and the device is simply left in the last state after the final event.
--monitor-native-crashes Watches for and reports crashes occurring in the Android system native code. If --kill-process-after-error is set, the system will stop.
--wait-dbg Stops the Monkey from executing until a debugger is attached to it.



저작자 표시 비영리 동일 조건 변경 허락
신고
이전 1 2 3 4 5 ... 288 다음

티스토리 툴바