2010-02-12 69 views
5

Trong phát triển ứng dụng android, tôi làm như sau rất thường xuyên:Tự động khởi chạy ứng dụng Android sau khi tải ứng dụng lên điện thoại?

  1. Run "ant cài đặt lại" để biên dịch và tải lên một ứng dụng để giả lập.
  2. Chuyển sang cửa sổ trình giả lập.
  3. Nhấp vào gói tôi vừa tải lên để chạy và kiểm tra nó.

Có cách nào tôi có thể yêu cầu điện thoại giả lập chạy gói tôi vừa tải lên không? Có lẽ một lệnh "adb" tôi có thể gửi cho nó sau khi tôi đã chạy kịch bản biên dịch của mình? Như một phương sách cuối cùng, tôi đoán tôi có thể chạy cái gì đó mô phỏng nhấp chuột cho tôi.

+0

Great câu hỏi đầu tiên và chào mừng. –

Trả lời

3

Bạn muốn sử dụng lệnh am. Giả sử bạn có một Manifest tựa hồ như thế này:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.MyApp"> 
    <application android:icon="@drawable/icon"> 
     <activity class=".MyMainActivity" android:label="@string/app_name"> 
      <intent-filter> 
       <action android:value="android.intent.action.MAIN" /> 
       <category android:value="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 
    ... 
</manifest> 

bạn sẽ bắt đầu rằng với:

adb shell am start -a android.intent.action.MAIN -n com.example.MyApp/.MyMainActivity 

dù bạn có thể muốn nói với nó phải đợi cho đến khi nó đã sẵn sàng:

adb wait-for-device shell am start -a android.intent.action.MAIN -n com.example.MyApp/.MyMainActivity 

Về cơ bản, bạn chỉ cần tắt một số Intent gọi số Activity chính của gói hàng của bạn.

Các tài liệu đầy đủ (chạy am --help) là:

usage: am [start|broadcast|instrument|profile] 
     am start [-D] INTENT 
     am broadcast INTENT 
     am instrument [-r] [-e <ARG_NAME> <ARG_VALUE>] [-p <PROF_FILE>] 
       [-w] <COMPONENT> 
     am profile <PROCESS> [start <PROF_FILE>|stop] 

     INTENT is described with: 
       [-a <ACTION>] [-d <DATA_URI>] [-t <MIME_TYPE>] 
       [-c <CATEGORY> [-c <CATEGORY>] ...] 
       [-e|--es <EXTRA_KEY> <EXTRA_STRING_VALUE> ...] 
       [--ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE> ...] 
       [-e|--ei <EXTRA_KEY> <EXTRA_INT_VALUE> ...] 
       [-n <COMPONENT>] [-f <FLAGS>] [<URI>] 
+1

Cảm ơn câu trả lời thông tin! :-) Tôi có lẽ sẽ không làm việc đó từ tập tin trợ giúp một mình. Điều đó đã tiết kiệm cho tôi rất nhiều thời gian mỗi ngày. Để thêm vào điều này, hãy gọi "adb shell keyevent 3 &" trước khi biên dịch/cài đặt ứng dụng để chuyển giả lập sang màn hình chính trước tiên. Các ứng dụng chạy chuyên sâu làm cho ứng dụng tải lên chậm hơn nếu không. – BobbyJim

+0

Không sao cả. Phải mất một chút đào để tìm ra nó, nhưng tôi biết nó có thể được kể từ khi Eclipse thực hiện nó. –

Các vấn đề liên quan