[置顶] android命令实战手册

时间:2021-04-12 05:45:18

 

1           android.bat·2

1.1     查看帮助信息:2

1.2     创建avd·2

1.3     Lists existing targets or virtual devices2

1.4     Lists existing Android Virtual Devices3

1.5     Lists existing targets4

2           emulator.exe··5

2.1     启动模拟器···5

2.2     使用模拟器控制台···7

3           ddms.bat·10

3.1     直接启动ddms10

4           adb··11

4.1     Adb help:11

4.2     scripting:13

4.3     device commands:14

5           关于编译····17

5.1     am:18

5.2     重新编译源码···18

6           系统信息····18

6.1     Process: list process after phone started·19

6.2     Memory info: list memory information after phone started·19

6.3     Init log: list phone init log·19

6.4     Bugreport: from adb bugreport·19


 

1    android.bat

 

1.1  查看帮助信息:

   android.bat –h android.bat –help

 

1.2  创建avd

(1) android.bat create avd -t 1 -c 256M -p

E:/android_sdk/android-sdk-windows-1.6_r1/platforms/android-1.6/images -n avd16 -f -s HVGA

(2) android.bat create avd -t 2 -c 256M -p

E:/android_sdk/android-sdk-windows-1.6_r1/platforms/android-1.6/images -n avd2 -f -s HVGA

       以上,用不同的设置创建avd.

  (3)  直接用”android.bat”命令可以启动Android SDK图开界面(如下图),用它也可以创建avd;

      [置顶]        android命令实战手册

(4) eclipse中,点击工具栏中的“open the avd and SDK manager”图标来打开上图。

 

1.3  Lists existing targets or virtual devices

 

   E:/android_sdk/android-sdk-windows-1.6_r1/tools>android.bat list

   Available Android targets:

   id: 1

        Name: Android 1.5

        Type: Platform

        API level: 3

        Revision: 1

        Skins: HVGA (default), HVGA-L, HVGA-P, QVGA-L, QVGA-P

   id: 2

        Name: Android 1.6

        Type: Platform

        API level: 4

        Revision: 1

        Skins: HVGA (default), QVGA, WVGA800, WVGA854

   id: 3

        Name: Google APIs

        Type: Add-On

        Vendor: Google Inc.

        Revision: 3

        Description: Android + Google APIs

        Based on Android 1.5 (API level 3)

        Libraries:

         * com.google.android.maps (maps.jar)

             API for Google Maps

        Skins: QVGA-P, HVGA-L, HVGA (default), QVGA-L, HVGA-P

   id: 4

        Name: Google APIs

        Type: Add-On

        Vendor: Google Inc.

        Revision: 1

        Description: Android + Google APIs

        Based on Android 1.6 (API level 4)

        Libraries:

         * com.google.android.maps (maps.jar)

             API for Google Maps

        Skins: WVGA854, HVGA (default), WVGA800, QVGA

   Available Android Virtual Devices:

       Name: avd16

       Path: C:/Documents and Settings/lizhongyi/.android/avd/avd16.avd

     Target: Android 1.6 (API level 4)

       Skin: HVGA

   ---------

       Name: avd2

       Path: C:/Documents and Settings/lizhongyi/.android/avd/avd2.avd

     Target: Android 1.6 (API level 4)

       Skin: QVGA

 

1.4  Lists existing Android Virtual Devices

 

E:/android_sdk/android-sdk-windows-1.6_r1/tools>android list avd

     Available Android Virtual Devices:

         Name: avd16

         Path: C:/Documents and Settings/lizhongyi/.android/avd/avd16.avd

       Target: Android 1.6 (API level 4)

         Skin: HVGA

     ---------

         Name: avd2

         Path: C:/Documents and Settings/lizhongyi/.android/avd/avd2.avd

       Target: Android 1.6 (API level 4)

         Skin: QVGA

 

1.5  Lists existing targets

   E:/android_sdk/android-sdk-windows-1.6_r1/tools>android list target

   Available Android targets:

   id: 1

        Name: Android 1.5

        Type: Platform

        API level: 3

        Revision: 1

        Skins: HVGA (default), HVGA-L, HVGA-P, QVGA-L, QVGA-P

   id: 2

        Name: Android 1.6

        Type: Platform

        API level: 4

        Revision: 1

        Skins: HVGA (default), QVGA, WVGA800, WVGA854

   id: 3

        Name: Google APIs

        Type: Add-On

        Vendor: Google Inc.

        Revision: 3

        Description: Android + Google APIs

        Based on Android 1.5 (API level 3)

        Libraries:

         * com.google.android.maps (maps.jar)

             API for Google Maps

        Skins: QVGA-P, HVGA-L, HVGA (default), QVGA-L, HVGA-P

   id: 4

        Name: Google APIs

        Type: Add-On

        Vendor: Google Inc.

        Revision: 1

        Description: Android + Google APIs

        Based on Android 1.6 (API level 4)

        Libraries:

         * com.google.android.maps (maps.jar)

             API for Google Maps

        Skins: WVGA854, HVGA (default), WVGA800, QVGA

   

   

12   emulator.exe

2.1  启动模拟器

 (1) 最简单的方法(avd):

emulator -avd avd2

(2)按尺寸启动模拟器

  emulator.exe -avd avd2 -scale 0.7

 

(3)启动userdata.img

 emulator -data userdata.img

 

(4)启动system.img

 emulator -data system.img

 

(5)使用-verbose选项

 

E:/android_sdk/android-sdk-windows-1.6_r1/tools>emulator -verbose -avd avd2

emulator: found SDK root at E:/android_sdk/android-sdk-windows-1.6_r1

emulator: root virtual device file at C:/Documents and Settings/lizhongyi/.android/avd/avd2.ini

emulator: virtual device content at C:/Documents and Settings/lizhongyi/.android/avd/avd2.avd

emulator: virtual device config file: C:/Documents and Settings/lizhongyi/.android/avd/avd2.avd/config.ini

emulator:    locking user data image at C:/Documents and Settings/lizhongyi/.android/avd/avd2.avd/userdata-qemu.img

emulator:    locking cache image at C:/Documents and Settings/lizhongyi/.android/avd/avd2.avd/cache.img

emulator: ignoring non-existing SD Card at C:/Documents and Settings/lizhongyi/.android/avd/avd2.avd/sdcard.img: No such file or directory

emulator: found skin 'QVGA' in directory: E:/android_sdk/android-sdk-windows-1.6_r1/platforms/android-1.6/skins

emulator: autoconfig: -skin QVGA

emulator: autoconfig: -skindir E:/android_sdk/android-sdk-windows-1.6_r1/platforms/android-1.6/skins

emulator: keyset loaded from: C:/Documents and Settings/lizhongyi/.android/default.keyset

emulator: trying to load skin file 'E:/android_sdk/android-sdk-windows-1.6_r1/platforms/android-1.6/skins/QVGA/layout'

emulator: skin network speed: 'full'

emulator: skin network delay: 'none'

emulator: registered 'boot-properties' qemud service

emulator: registered 'boot-properties' qemud service

emulator: Adding boot property: 'qemu.sf.lcd_density' = '120'

emulator: argv[00] = "emulator"

emulator: argv[01] = "-kernel"

emulator: argv[02] = "E:/android_sdk/android-sdk-windows-1.6_r1/platforms/android-1.6/images//kernel-qemu"

emulator: argv[03] = "-initrd"

emulator: argv[04] = "E:/android_sdk/android-sdk-windows-1.6_r1/platforms/android-1.6/images//ramdisk.img"

emulator: argv[05] = "-nand"

emulator: argv[06] = "system,size=0x4200000,initfile=E:/android_sdk/android-sdk-windows-1.6_r1/platforms/android-1.6/images//system.img"

emulator: argv[07] = "-nand"

emulator: argv[08] = "userdata,size=0x4200000,file=C:/Documents and Settings/lizhongyi/.android/avd/avd2.avd/userdata-qemu.img"

emulator: argv[09] = "-nand"

emulator: argv[10] = "cache,size=0x4200000,file=C:/Documents and Settings/lizhongyi/.android/avd/avd2.avd/cache.img"

emulator: argv[11] = "-serial"

emulator: argv[12] = "android-kmsg"

emulator: argv[13] = "-serial"

emulator: argv[14] = "android-qemud"

emulator: argv[15] = "-append"

emulator: argv[16] = "qemu=1 console=ttyS0 android.checkjni=1 android.qemud=ttyS1 android.ndns=1"

emulator: argv[17] = "-m"

emulator: argv[18] = "96"

emulator: mapping 'system' NAND image to C:/DOCUME~1/LIZHON~1/LOCALS~1/Temp//AndroidEmulator/TMP834.tmp

emulator: using 'winaudio' audio input backend

emulator: using 'winaudio' audio output backend

emulator: control console listening on port 5556, ADB on port 5557

emulator: sent '0012host:emulator:5557' to ADB server

emulator: ping program: E:/android_sdk/android-sdk-windows-1.6_r1/tools/ddms.bat

emulator: ping command: C:/WINDOWS/system32/cmd.exe /C "E:/android_sdk/android-sdk-windows-1.6_r1/tools/ddms.bat" ping emulator 1.11

 

(6)使用-logcat 选项

 emulator  -logcat  main -avd avd2

 

(7)使用-trace选项

E:/android_sdk/android-sdk-windows-1.6_r1/tools>emulator -trace main(events,radio) -avd avd2

-- When done tracing, exit the emulator. --

emulator: emulator window was out of view and was recentred

或者:

E:/android_sdk/android-sdk-windows-1.6_r1/tools>emulator -trace radio -trace main -trace radio -avd avd2

 

(7)使用-kernel-ramdisk选项

 E:/android_sdk/android-sdk-windows-1.6_r1/tools>emulator -kernel ../platforms/android-1.6/images/kernel-qemu -ramdisk ../platforms/android-1

.6/images/ramdisk.img -debug-kernel -verbose -avd avd2

 

(7)使用-netfast选项

E:/android_sdk/android-sdk-windows-1.6_r1/tools>emulator -netfast -avd avd2

 

 

2.2  使用模拟器控制台

 每一个运行中的模拟器实例都包括一个控制台,你可以利用控制台动态的查询和控制模拟设备的环境。例如,你可以利用控制台动态的管理端口映射和网络特性,还可以模拟电话时间。要想进入控制台输入命令,你需要使用telnet连接到控制台的端口号。

 

可以使用下面的命令随时随地连接到任何一个运行中的模拟器实例:

 

telnet localhost端口号

 

假设第一个模拟器实例的控制台使用5554端口,下一个实例使用的端口号会加2,比如55565558……等。你可以在启动模拟器是使用-verbose选项来检测该模拟器实例使用的端口号,在调试输出的找到以”emulator console running on port number”这一行。另外,你可以在命令行中使用adb devices来查看模拟器实例和他们的端口列表。最多可以有16个模拟器实例同时运行控制台。

 

(1)   进入控制台

先在一个cmd窗口中启动一个模拟器,再打开一个cmd窗口,运行telnet命令,如下:

E:/android_sdk/android-sdk-windows-1.6_r1/tools> telnet localhost 5556

(因为在我的PC,启动了两个模拟器,一个用的是5554端口,另一个用的是5556端口.这里,控制的是使用5556端口的模拟器)

进入后,如下图:

 

[置顶]        android命令实战手册 

(2)   gsm测试

 

输入

gsm voice on

ok

则可以在模拟器上看到3G图标,并且网络图标处于有信号状态。

 

而执行

gsm voice off

ok

后,3G图标消失,并且网络图标处于关闭(X)状态。

 

gsm call 13522543026

ok

,模拟器有如下反应:

 

[置顶]        android命令实战手册 

 

(3)   sms测试

sms send 13522543026 hello

ok

,在模拟器的messaging,就会看到有一条短信了.

如图:

 

[置顶]        android命令实战手册 

 

 

13   ddms.bat

    

3.1  直接启动ddms

E:/android_sdk/android-sdk-windows-1.6_r1/tools>ddms

02:30 I/ddms: Created: [Debugger 8600-->568 inactive]

02:30 I/ddms: Created: [Debugger 8601-->617 inactive]

02:30 I/ddms: Created: [Debugger 8602-->619 inactive]

02:30 I/ddms: Created: [Debugger 8603-->657 inactive]

02:30 I/ddms: Created: [Debugger 8604-->670 inactive]

02:30 I/ddms: Created: [Debugger 8605-->681 inactive]

 

  [置顶]        android命令实战手册

 

这和eclipse中的ddms是一样的.

 

 

 

4    adb

 

1.14.1       Adb help:

 

直接运行adb会显示出adbhelp信息.如下:

 

E:/android_sdk/android-sdk-windows-1.6_r1/tools>adb -help

Android Debug Bridge version 1.0.22

 

 -d                           - directs command to the only connected USB device

                                returns an error if more than one USB device is present.

 -e                           - directs command to the only running emulator.

                                returns an error if more than one emulator is running.

 -s <serial number>           - directs command to the USB device or emulator with

                                the given serial number

 -p <product name or path>    - simple product name like 'sooner', or

                                a relative/absolute path to a product

                                out directory like 'out/target/product/sooner'.

                                If -p is not specified, the ANDROID_PRODUCT_OUT

                                environment variable is used, which must

                                be an absolute path.

 devices                      - list all connected devices

 

device commands:

 adb push <local> <remote>    - copy file/dir to device

 adb pull <remote> <local>    - copy file/dir from device

 adb sync [ <directory> ]     - copy host->device only if changed

                                (see 'adb help all')

 adb shell                    - run remote shell interactively

 adb shell <command>          - run remote shell command

 adb emu <command>            - run emulator console command

 adb logcat [ <filter-spec> ] - View device log

 adb forward <local> <remote> - forward socket connections

                                forward specs are one of:

                                  tcp:<port>

                                  localabstract:<unix domain socket name>

                                  localreserved:<unix domain socket name>

                                  localfilesystem:<unix domain socket name>

                                  dev:<character device name>

                                  jdwp:<process pid> (remote only)

 adb jdwp                     - list PIDs of processes hosting a JDWP transport

 adb install [-l] [-r] <file> - push this package file to the device and install it

                                ('-l' means forward-lock the app)

                                ('-r' means reinstall the app, keeping its data)

 adb uninstall [-k] <package> - remove this app package from the device

                                ('-k' means keep the data and cache directories)

 adb bugreport                - return all information from the device

                                that should be included in a bug report.

 

 adb help                     - show this help message

 adb version                  - show version num

 

DATAOPTS:

 (no option)                  - don't touch the data partition

 -w                           - wipe the data partition

 -d                           - flash the data partition

 

scripting:

  adb wait-for-device         - block until device is online

 adb start-server             - ensure that there is a server running

 adb kill-server              - kill the server if it is running

 adb get-state                - prints: offline | bootloader | device

 adb get-serialno             - prints: <serial-number>

 adb status-window            - continuously print device status for a specified device

 adb remount                  - remounts the /system partition on the device read-write

 adb reboot [bootloader|recovery] - reboots the device, optionally into the bootloader or recovery program

 adb root                     - restarts adb with root permissions

 

networking:

 adb ppp <tty> [parameters]   - Run PPP over USB.

 Note: you should not automatically start a PPP connection.

 <tty> refers to the tty for PPP stream. Eg. dev:/dev/omap_csmi_tty1

 [parameters] - Eg. defaultroute debug dump local notty usepeerdns

 

adb sync notes: adb sync [ <directory> ]

 <localdir> can be interpreted in several ways:

 

 - If <directory> is not specified, both /system and /data partitions will be updated.

 

-         If it is "system" or "data", only the corresponding partition

   is updated.

 

 

 

14.2       scripting:

(1) start adb server

方法1: E:/android_sdk/android-sdk-windows-1.6_r1/tools>adb kill-server

 

E:/android_sdk/android-sdk-windows-1.6_r1/tools>adb start-server

* daemon not running. starting it now *

* daemon started successfully *

E:/android_sdk/android-sdk-windows-1.6_r1/tools>

 

方法2: E:/android_sdk/android-sdk-windows-1.6_r1/tools>adb kill-server

 

E:/android_sdk/android-sdk-windows-1.6_r1/tools>adb fork-server server

OK

 

注意:方法1是直接用adbscripting “adb start-server” 来启动的,启动成功后,直接返回到cmd命令窗口;

方法2是用直接启动adb server进程的方式” adb fork-server server”来启动的,启动成功后,显示”OK”,并且不返回到cmd命令窗口.

分析:这是因为adb.exe是一个命令(可执行程序),它启动后,会调用到” adb fork-server server”(这个server正是adb server), 然后, adb.exe就退出了,这时,只剩下adb server 这个进程了,这个进程的名字也是adb.exe.而方法2是直接启动adb server,所以,不能退出,如果退出,就相当于adb server退出了.

adb server启动后,会在任务管理器中进程中可以看到adb.exe.

如果用户将adb.exe强行结束了,那么,对于方法2,就会回到cmd窗口.

另外,如果eclipse中启动了模拟器,那么,强行结束adb server,会再启动一个.

 

(2) adb get-state and get-serialno

E:/android_sdk/android-sdk-windows-1.6_r1/tools>adb get-state

device

 

E:/android_sdk/android-sdk-windows-1.6_r1/tools>adb get-serialno

emulator-5554

 

如果同时启动了两个模拟器,则这两个脚本的执行结果均是:

unknown

 

(3) adb root

    E:/android_sdk/android-sdk-windows-1.6_r1/tools>adb root

adbd is already running as root

 

adb reboot recovery

(4) adb reboot [android-sdk-windows-1.6_r1支持]

adb reboot bootloader( recovery)

说明:reboots the device, optionally into the bootloader or recovery program,可见,只针对真机,

所以,当运行此脚本时,模拟器就不能运行了。

另外,此脚本是从android-sdk-windows-1.6_r1开始支持的。

 

1.12.3       device commands:

(1) list all connected devices

E:/android_sdk/android-sdk-windows-1.6_r1/tools>adb devices

List of devices attached

emulator-5554  device

emulator-5556  device

 

(2) adb shell

 开机:

     E:/android_sdk/android-sdk-windows-1.6_r1/tools>adb shell

     # ls

     ls

     sqlite_stmt_journals

     cache

     sdcard

     etc

     system

     sys

     sbin

     proc

     init.rc

     init.goldfish.rc

     init

     default.prop

     data

     root

     dev

     # cd data

     cd data

     # ls

     ls

     misc

     local

     data

     app-private

     app

     property

     anr

     dalvik-cache

     system

     lost+found

     

     # cd data

     cd data

     # pwd

     pwd

     /data/data

     # ls -l

     Ls -l

     # ls -l

     ls -l

     drwxr-xr-x app_0    app_0             2009-11-25 02:42 com.android.packageinstaller

     drwxr-xr-x app_1    app_1            2009-11-25 02:42 com.android.providers.contacts

     drwxr-xr-x app_2    app_2            2009-11-25 02:42 com.android.fallback

     drwxr-xr-x app_1    app_1             2009-11-25 02:42 com.android.inputmethod.latin

     drwxr-xr-x app_3    app_3            2009-11-25 02:42 com.android.gesture.builder

     drwxr-xr-x app_4    app_4            2009-11-25 02:42 com.google.android.marvin.talkback

     drwxr-xr-x app_5    app_5            2009-11-25 02:42 com.android.providers.downloads

     drwxr-xr-x app_1    app_1            2009-11-25 02:42 com.android.inputmethod.pinyin

     drwxr-xr-x system   system           2009-11-25 02:42 com.android.providers.settings

     drwxr-xr-x app_6    app_6            2009-11-25 02:42 com.android.development

     drwxr-xr-x app_7    app_7            2009-11-25 02:42 com.android.email

     drwxr-xr-x app_8    app_8            2009-11-25 02:42 com.android.music

     drwxr-xr-x app_1    app_1            2009-11-25 02:42 com.android.globalsearch

     drwxr-xr-x app_9    app_9            2009-11-25 02:42 jp.co.omronsoft.openwnn

     drwxr-xr-x app_10   app_10           2009-11-25 02:42 com.android.mms

     drwxr-xr-x app_5    app_5            2009-11-25 02:42 com.android.camera

     drwxr-xr-x app_11   app_11           2009-11-25 02:42 com.android.term

     drwxr-xr-x system   system           2009-11-25 02:42 com.android.settings

     drwxr-xr-x app_12   app_12           2009-11-25 02:42 com.android.browser

     drwxr-xr-x app_13   app_13           2009-11-25 02:42 android.tts

     drwxr-xr-x app_14   app_14           2009-11-25 02:42 com.android.customlocale

     drwxr-xr-x app_1    app_1             2009-11-25 02:42 com.android.providers.userdictionary

     drwxr-xr-x app_15   app_15           2009-11-25 02:42 com.android.soundrecorder

     drwxr-xr-x app_16   app_16           2009-11-25 02:42 com.android.netspeed

     drwxr-xr-x radio    radio            2009-11-25 02:43 com.android.phone

     drwxr-xr-x app_1    app_1            2009-11-25 02:43 com.android.contacts

     drwxr-xr-x app_17   app_17           2009-11-25 02:43 com.android.htmlviewer

     drwxr-xr-x system   system            2009-11-25 02:43 com.android.server.vpn

     drwxr-xr-x app_1    app_1            2009-11-25 02:43 com.google.android.providers.enhancedgooglesearch

     drwxr-xr-x app_18   app_18           2009-11-25 02:43 com.android.sdksetup

     drwxr-xr-x app_4    app_4            2009-11-25 02:43 com.google.android.marvin.soundback

     drwxr-xr-x app_5    app_5            2009-11-25 02:43 com.android.providers.drm

     drwxr-xr-x app_1    app_1            2009-11-25 02:43 com.android.launcher

     drwxr-xr-x app_1    app_1            2009-11-25 02:43 com.android.providers.applications

     drwxr-xr-x app_19   app_19           2009-11-25 02:43 com.svox.pico

     drwxr-xr-x app_5    app_5            2009-11-25 02:43 com.android.providers.media

     drwxr-xr-x app_20   app_20           2009-11-25 02:43 com.android.calculator2

     drwxr-xr-x app_4    app_4            2009-11-25 02:43 com.google.android.marvin.kickback

     drwxr-xr-x radio    radio            2009-11-25 02:43 com.android.providers.telephony

     drwxr-xr-x app_21   app_21           2009-11-25 02:43 com.android.alarmclock

     drwxr-xr-x app_22   app_22           2009-11-25 02:43 com.android.spare_parts     

 先后启动kx011a两个应用程序(都是activity,则,

    /data/data下,就会看到如下两个应用了,

    # ls

    a.a

    com.kx011

 而且,在/data/app下,也有这两个应用的apk文件。

    # cd /data/app

     cd /data/app

     # ls

     ls

     com.kx011.apk

     a.a.apk

     

     说明:在/data/data目录下,存放了所有系统已经启动的的应用程序;

           /data/app下,以apk的形式存放了用户建立的应用。

 

3adb pull      //说明:copy file/dir from device

     E:/android_sdk/android-sdk-windows-1.6_r1/tools>adb pull /init.rc F:/ABD/x.txt

668 KB/s (10700 bytes in 0.015s)

 

         adb push <local> <remote>    - copy file/dir to device

   adb pull <remote> <local>    - copy file/dir from device

 

4)adb push // 说明:copy file/dir to device

    E:/android_sdk/android-sdk-windows-1.6_r1/tools>adb push ddms.bat /data/

    124 KB/s (1992 bytes in 0.015s)

  

 

(5) adb install

E:/android_sdk/android-sdk-windows-1.6_r1/tools>adb install D:/allProject/android16/kx011/bin/kx011.apk

259 KB/s (8297 bytes in 0.031s)

       pkg: /data/local/tmp/kx011.apk

Success

#

说明: install完成之后,直接进入adb shell

 

 

(6) adb jdwp

   E:/android_sdk/android-sdk-windows-1.6_r1/tools>adb jdwp

   567

   614

   616

   641

   661

   678

   707

   714

 

(7) adb bugreport

  列出了bug信息,see to bugreport.txt   [ 点击查看 ]

 

 

13   关于编译

 

1.13.1       am:

 

adb install c:/NetScramble_1.1.apk

adb shell rm data/app/NetScramble_1.1.apk

am start -n net.xiashou.android/net.xiashou.android.HelloAndroid

# am start -a android.intent.action.VIEW -d http://www.xiashou.net

# am start -a android.intent.action.CALL -d tel:10086

# am start -a android.intent.action.VIEW geo:0,0?q=tianjin

# am start –n com.android.music/.MediaPlaybackActivity

 

1.13.2       重新编译源码

  当然,这是在linux下面进行的。

(1)编译源码

解压原码到本地,进入原码目录,执行: make即可。

 

(2)编译SDK

make完成后,直接make sdk,会在out/host/linux-x86/sdk下面生成mdk文件及文件夹,形如:android-sdk_eng.xxx_linux-x86

 

(3)编译单个模块

    1.先将system文件夹移出,

    2.android目录下执行

             $ . build/envsetup.sh

    3. 然后你就会多出几个可用的命令。在改了Contacts联系人项目后,可以简单的执行一下命令来单独编译这个部分:

             $mmm packages/apps/Contacts/

        或者在src目录下直接运行make module name

        cd ~/android/src

        make Contacts

    4.将新生成的system文件夹覆盖原system文件夹

    5.然后编译system.img

     ./out/host/linux-x86/bin/mkyaffs2image -f out/target/product/generic/system out/target/product/generic/system.img

     第二次mmm需将/out/target/product/generic/obj/全部拷回!!!

    mmm命令非常的多管闲事,它每次编译都把obj删了!!!)

     输出cmd命令到文件

          dir > a.log

 

4    系统信息

由于篇幅的原因,这里,只给出链接,分别列出了process, memory info, init log, bugreport信息。值得注意的是bugreport中包含了前三项。另外,processmemory info是从真机中导出来的,init logbugreport是从模拟器拿到的,而且,取得的日期时间都不一致。

 

process, memory info, init log, bugreport