现在的位置: 首页 > 综合 > 正文

工作中常用的adb命令、linux命令

2018年05月01日 ⁄ 综合 ⁄ 共 19541字 ⁄ 字号 评论关闭

以下命令均在cmd命令行下操作。

1、连接设备  adb connect 172.20.6.123

3、卸载用户应用  adb uninstall  com.andrid.himedia.weather   (注:adb uninstall +包名)

4、卸载系统应用 

(1)先卸载掉/system/app中的apk文件

adb remount (重新挂载系统分区,使系统分区重新可写,如果不挂载的话,文件系统是read-only只读的)。

adb shell

cd /system/app

rm -f  Weather.apk

(2)再卸载掉/data/data中的数据

cd /data/data

rm -rf com.android.himedia.weather  (注:rm -rf +包名)

5、打印日志信息

adb logcat -c   清空日志信息

adb logcat > D:testLog.txt      把系统Log信息重定向到该文件中

6、cmd窗口持续监控日志输出

adb logcat    (如果需要过滤日志信息请参考如何过滤 adb logcat 输出)

adb logcat  -s  标签名   (过滤出该标签的Log信息)

6、查看android数据库(sqlite3 它可以让用户手工输入并执行面向SQLite数据库的SQL命令)

adb shell  (进入shell环境)

cd  data/data/程序包名/databases

sqlite3 databaseName.db  (进入数据库)

.table   (查看数据库中的表,注:前面有个点)

.schema  tableName  (查看表结构,注:前面有个点)

select * from tableName;    (执行SQL语句,注:后面又分号,要不系统会连续让你输入SQL语句)

7、安装用户apk。  adb installl  appName.apk

8、安装系统应用。 adb push  D:/appName.apk   /system/app

9、复制文件到设备  adb push  d:/ad.txt   /mnt/sdcard/mp4/

10、从设备复制文件到本地pc电脑     adb pull  /mnt/sdcard/mp4/ad.txt   E:/   

11、在数据库目录下修改数据库权限  

cd  data/data/程序包名/databases

chmod 777 databaseName.db (获取全部权限)   (想了解更多Linux权限知识请参考linux权限详解

12、在系统环境编译应用程序,在packages/apps/目录下:

rm -rf bin/ gen/;mm -B;adb remount;adb push ../../../out/target/product/Hi3716CV200ES/system/app/PlayRecordApp.apk /system/app

更多相关命令参考adb命令、adb shell与Linux各种命令(busybox)
                       

 

adbshell
命令

分类: android2010-03-2510:34 21685人阅读 评论(8) 收藏 举报

shellandroidsqliteeclipselinux手机

adb 概述

增加系统变量SDK_ROOT,让她指向sdk之下 /tools文件夹

 

SDK的Tools文件夹下包含着Android模拟器操作的重要命令adb,adb的全称为(Android Debug Bridge就是调试桥的作用。通过adb我们可以在Eclipse中方面通过DDMS来调试Android程序。借助这个工具,我们可以管理设备或手机模拟器的状态。还可以进行以下的操作:

   
1、快速更新设备或手机模拟器中的代码,如应用或Android 系统升级; 
2、在设备上运行shell命令; adbshell
3、管理设备或手机模拟器上的预定端口; 
4、在设备或手机模拟器上复制或粘贴文件;push orpull

 

adb在集成开发环境中的工作  
   adb的工作方式比较特殊采用监听Socket TCP 5554等端口的方式让IDE和Qemu通讯,默认情况下adb会daemon相关的网络端口,所以当我们运行Eclipse时adb进程就会自动运行。  
     1.通过adb可以轻松的执行Linux Shell命令,如adbshell dir 就是列举目录,在Linux中根目录为/而不是Windows上的C盘、D盘。  
     2.安装apk程序到模拟器则执行adbinstall android123.apk,这样名为android123的安装包就会安装到Android模拟器中,前提是android123.apk文件需要放到SDK/Tools目录下。  
     3.向emulator传送文件, 使用adbpush android123.txt /tmp/android123.txt命令可以把SDK/Tools下的android123.txt文件传输到模拟器的/tmp/文件夹中,需要注意的是/tmp/文件夹中内容会在Android模拟器重新启动时清空。  
     4.从Android仿真器中回传文件到电脑  
   通过adb pull/tmp/android123.txt android123.txt命令就会把仿真器的tmp文件夹下android123.txt文件回传到电脑SDK/Tools目录下。  
  
adb 常用命令 
1、安装应用到模拟器: 
   adb install<path_to_apk></path_to_apk>   
    卸载命令

   adb uninstall com.***.***.****  卸载命令参数必须是总包名

 

卸载你测试应用做法是:$adbshell rm your_application.apk 

2、进入设备或模拟器的shell: 
   adb shell 
    通过上面的命令,就可以进入设备或模拟器的shell环境中,在这个Linux Shell中,你可以执行各种Linux的命令,另外如果只想执行一条shell命令,可以采用以下的方式: 
   adb shell [command] 
   如:adb shell dmesg会打印出内核的调试信息。 
3、发布端口: 
    你可以设置任意的端口号,做为主机向模拟器或设备的请求端口。如: 
     adb forward tcp:5555tcp:8000  
把主机向设备请求的端口由5555改为8000
4、复制文件: 
    你可向一个设备或从一个设备中复制文件, 
     复制一个文件或目录到设备或模拟器上: 
    adb push <source><destination></destination></source> 
      如:adb push test.txt /tmp/test.txt 
     从设备或模拟器上复制一个文件或目录: 
    adb pull <source> <destination></destination></source> 
     如:adb pull /addroid/lib/libwebcore.so . 
5、搜索模拟器/设备的实例: 
     取得当前运行的模拟器/设备的实例的列表及每个实例的状态: 
     adb devices 
6、查看bug报告: 
      adb bugreport 
7、记录无线通讯日志: 
    一般来说,无线通讯的日志非常多,在运行时没必要去记录,但我们还是可以通过命令,设置记录: 
    adb shell  logcat -b radio 
8、获取设备的ID和序列号: 
    adb get-product 
     adbget-serialno
 
9、访问数据库SQLite3 
    adb shell 
     sqlite3

 

 

 

修改我的文档内模拟器路径问题:

比较好的解决方法是:

打开系统属性–>环境变量—>在“系统变量”那一个GroupBox下面选择“新建”–>变量名为“ANDROID_SDK_HOME” (注意,这个变量名不能改变,只能是这个名字!),然后把变量值改为你想把AVD所在的”.android”文件夹放置的位置,比如:”F:\AndroidEmulator”。需要注意的Android不支持中文路径。

 

android 命令大全

博客分类:

AndroidWindowsGoogleWindows
Phone
Linux

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;
(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


2 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 andSettings\lizhongyi\.android/avd/avd2.ini

emulator: virtual device content at C:\Documents andSettings\lizhongyi\.android\avd\avd2.avd

emulator: virtual device config file: C:\Documents andSettings\lizhongyi\.android\avd\avd2.avd/config.ini

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

emulator: locking cache image at C:\Documents andSettings\lizhongyi\.android\avd\avd2.avd/cache.img

emulator: ignoring non-existing SD Card at C:\Documents andSettings\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 andSettings\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 andSettings\lizhongyi\.android\avd\avd2.avd/userdata-qemu.img"

emulator: argv[09] = "-nand"
emulator: argv[10] = "cache,size=0x4200000,file=C:\Documents andSettings\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=ttyS1android.ndns=1"

emulator: argv[17] = "-m"
emulator: argv[18] = "96"
emulator: mapping 'system' NAND image toC:\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" pingemulator 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) -avdavd2

-- 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 -tracemain -trace radio -avd avd2

(8) 使用- 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
(9) 使用- netfast选项
E:\android_sdk\android-sdk-windows-1.6_r1\tools>emulator -netfast -avd avd2
2.2 使用模拟器控制台
每一个运行中的模拟器实例都包括一个控制台,你可以利用控制台动态的查询和控制模拟设备的环境。例如,你可以利用控制台动态的管理端口映射和网络特性,还可以模拟电话时间。要想进入控制台输入命令,你需要使用telnet连接到控制台的端口号。

可以使用下面的命令随时随地连接到任何一个运行中的模拟器实例:
telnet localhost 端口号
假设第一个模拟器实例的控制台使用5554端口,下一个实例使用的端口号会加2,比如5556、5558…… 等。你可以在启动模拟器是使用-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端口的模拟器)
进入后,如下图:
(2) GSM测试
输入
gsm voice on
ok
则可以在模拟器上看到3G图标,并且网络图标处于有信号状态。
而执行
gsm voice off
ok
后,3G图标消失,并且网络图标处于关闭(X)状态。
gsm call 13522543026
ok
后,模拟器有如下反应:
(3) sms测试
sms send 13522543026 hello
ok
则, 在模拟器的messaging中,就会看到有一条短信了.

3 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]
这和eclipse中的ddms是一样的.
4 adb
1.14.1 Adb help:
直接运行adb会显示出adb的help信息.如下:
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 andinstall 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 thebootloader 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 willbe updated.

- If it is "system" or "data", only the correspondingpartition
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是直接用adb的scripting “adb start-server” 来启动的, 启动成功后,直接返回到cmd命令窗口;
方法2 是用直接启动adb server进程的方式” adb fork-server server”来启动的,启动成功后, 显示”OK”, 并且不返回到cmd命令窗口.

分析: 这是因为adb.exe是一个命令(可执行程序), 它启动后,会调用到” adb fork-server server”(这个server正是adbserver), 然后, 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 recoveryprogram,可见,只针对真机,

所以,当运行此脚本时,模拟器就不能运行了。
另外,此脚本是从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:43com.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
先后启动kx011和a两个应用程序(都是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的形式存放了用户建立的应用。
(3)adb pull // 说明:copy file/dir from device
E:\android_sdk\android-sdk-windows-1.6_r1\tools>adb pull /init.rcF:\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 installD:\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/systemout/target/product/generic/system.img

第二次mmm需将/out/target/product/generic/obj/全部拷回!!!
(mmm命令非常的多管闲事,它每次编译都把obj删了!!!)
输出cmd命令到文件
dir > a.log

 

     

【上篇】
【下篇】

抱歉!评论已关闭.