Chinaunix首页 | 论坛 | 博客
  • 博客访问: 215892
  • 博文数量: 145
  • 博客积分: 3000
  • 博客等级: 中校
  • 技术积分: 1720
  • 用 户 组: 普通用户
  • 注册时间: 2009-07-14 18:42
文章分类

全部博文(145)

文章存档

2011年(1)

2009年(144)

我的朋友

分类: LINUX

2009-07-22 20:15:59

by tangke <>2009-06-17

adb(Android Debug Bridge)是Android 提供的一个通用的调试工具,借助这个工具,我们可以管理设备或手机 模拟器 的状态 。还可以进行以下的操作:
1、快速更新设备或手机模拟器中的代码,如应用或Android系统升级;
2、在设备上运行shell命令;
3、管理设备或手机模拟器上的预定端口;
4、在设备或手机模拟器上复制或粘贴文件

一些常用的操作:

adb shell

通过上面的命令,就可以进入设备或模拟器的shell环境中,在这个Linux Shell中,你可以执行各种Linux 的命令,另外如果只想执行一条shell命令,可以采用以下的方式:
adb shell [command]
如:adb shell dmesg会打印出内核的调试信息。
(Android的linux shell做了大量精简,很多linux常用指令都不支持)

上传文件: adb push
下载文件: adb pull

安装程序: adb install <*.apk>
卸载软件: adb shell rm /data/app/<*.apk>

补充一点,通过adb安装的软件(*.apk)都在"/data/app/"目录下,所以安装时不必制定路径,卸载只需要简单的执行"rm"就行。

结束adb: adb kill-server

显示android模拟器状态:
adb devices (端口信息)
adb get-product (设备型号)
adb get-serialno (序列号)

等待正在运行的设备: adb wait-for-device

端口转发: adb forward adb forward tcp:5555 tcp:1234
(将默认端口TCP 5555转发到1234端口上)

查看bug报告: adb bugreport

adb shell sqlite3 访问数据库SQLite3
adb shell logcat -b radio 记录无线通讯日志: 一般来说,无线通讯的日志非常多,在运行时没必要去记录,但我们还是可以通过命令,设置记录:

应用程序配置文件:
"AndroidManifest.xml"中
""
决定是否应用程序是否显示在Panel上

-----------------------------------------------------------------------------------

am指令(在shell内使用am来加载android应用):
am [start|instrument]  
 
am start [-a ]
[-d ]
[-t ]          
[-c [-c ] ...]
[-e [-e ...]
[-n ] [-D] []    

am instrument [-e ]
[-p ]          
[-w]

启动浏览器:
am start -a android.intent.action.VIEW -d

拨打电话:
am start -a android.intent.action.CALL -d tel:10086

启动google map直接定位到北京:
am start -a android.intent.action.VIEW geo:0,0?q=beijing

-----------------------------------------------------------------------------------

目录:
# ls
sqlite_stmt_jou
cache
sdcard
etc
init
init.goldfish.r
init.rc
data
system
proc
sys
sbin
default.prop
root
dev

我发现还不能使用ls -al这种命令,可能是android为了减少系统空间,如果都只提供一些比较简化的命令模式。
-----------------------------------------------------------------------------------

数据库:

联络人(含通话记录)数据库:
/data/data/com.android.providers.contacts/databases/contacts.db
媒体库(貌似记录铃声设置等信息):
/data/data/com.android.providers.media/internal.db
系统设置:
/data/data/com.android.providers.settings/databases/settings.db
短信库:
/data/data/com.android.providers.telephony/databases/mmssms.db
Web设置:
/data.data/com.android.settings/databases/webview.db
地图搜索历史记录:
/data/data/com.google.android.apps.maps/databases/search_history.db
帐号库?(内含androidId信) :
/data/data/com.google.android.googleapps/databases/accounts.db

铃声: /system/media/audio
时区设置: /data/property/persist.sys.timezone

-----------------------------------------------------------------------------------
目前的安装模式
安装前:
1. emulator -wipe-data
2. adb push busybox ./
3. adb shell ./busybox tar -cf /tmp/data.tar /data
4. adb pull /tmp/data.tar .
5. mkdir original
6. cd original
7. tar -xf ../data.tar

安装后:
1. adb shell ./busybox tar -cf /tmp/data.tar /data
2. adb pull /tmp/data.tar .
3. mkdir after_install
4. cd after_install
5. tar -xf ../data.tar

  目前来看,就是/data/app和data/data下多了两个相关文件,同时在/data/system/packages.xml中增加了安装的程序信息。似乎菜单也是从这个文件中得到是否新安装程序,以及如何显示相关信息比如名称什么的。

android模拟器和真机的不同之处:

  * 不支持呼叫和接听实际来电;但可以通过控制台模拟电话呼叫(呼入和呼出)
  * 不支持USB连接
  * 不支持相机/视频捕捉
  * 不支持音频输入(捕捉);但支持输出(重放)
  * 不支持扩展耳机
  * 不能确定连接状态
  * 不能确定电池电量水平和交流充电状态
  * 不能确定SD卡的插入/弹出
  * 不支持蓝牙



andoroid模拟器使用注意:
平时使用emulator测试开发的朋友友注意应该定期清理下C:\Documents and Settings\sh\Local Settings\Temp\AndroidEmulator文件夹,由于Android模拟器每次运行时会临时生成几个.tmp后缀的临时文件,没有几个月功夫简单一看竟然占用磁盘空间高达5GB之多。这些文件网友可以安全的删除。
当然以上情况是在windows环境下才会发生的。
在linux环境下面也有相应的垃圾文件,保存在/tmp目录下面
techer:/tmp/android# ls
emulator-SgUpxP
techer:/tmp/android# ls -alh
总计 45M
drwxr--r-- 2 root root 4.0K 06-17 08:24 .
drwxrwxrwt 11 root root 4.0K 06-17 11:20 ..
-rw------- 1 root root 45M 06-17 08:24 emulator-SgUpxP
跑一次就多了40-50M
阅读(764) | 评论(0) | 转发(0) |
0

上一篇:android 模拟器[5]

下一篇:什么是3G牌照

给主人留下些什么吧!~~