您的位置:首页 > 移动开发 > Android开发

android真机在ubuntu上的(adb)识别、apk的安装卸载以及logcat的调试信息

2012-02-24 16:46 771 查看
一、设备识别
ARM开发板连接到虚拟机ubuntu下无法被识别,进入adb所在的sdk的tools目录下,使用./adb devices看到,识别不了arm开发板

List of devices attached

emulator-5554 device

???????????? no permissions

列出解决办法:

首先arm开发板的mini USB线不接,打开shell,进入ADB所在的SDK目录下的tools目录,运行命令lsusb,结果如下:

[cpp] view
plaincopy

tools$ lsusb

Bus 002 Device 002: ID 8087:0024

Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Bus 001 Device 009: ID 093a:2510 Pixart Imaging, Inc. Hama Optical Mouse

Bus 001 Device 004: ID 058f:b002 Alcor Micro Corp.

Bus 001 Device 002: ID 8087:0024

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

开发板通过miniUSB连上虚拟机,再一次lsusb,结果如下:

[cpp] view
plaincopy

alfredtofu@alfredtofu-laptop:/$ lsusb

Bus 002 Device 005: ID 18d1:4e22

Bus 002 Device 002: ID 8087:0024

Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Bus 001 Device 009: ID 093a:2510 Pixart Imaging, Inc. Hama Optical Mouse

Bus 001 Device 004: ID 058f:b002 Alcor Micro Corp.

Bus 001 Device 002: ID 8087:0024

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

对比发现,多了Bus 002 Device 005: ID 18d1:4e22,发现18d1正是arm设备的ID,接下来问题就轻松解决了。

sudo vim /etc/udev/rules.d/51-android.rules

添加一下内容:

UBSYSTEM=="usb", SYSFS{idVendor}=="18d1", MODE="0666"

以上命令不同手机只需要改SYSFS{idVendor}=="18d1",中的18d1,至于这个代码怎么找,上面介绍了。

在sdk的tools目录下执行如下命令:

sudo chmod a+r /etc/udev/rules.d/51-android.rules

sudo /etc/init.d/udev restart

sudo ./adb kill-server

sudo ./adb devices

最终结果显示如下:

[cpp] view
plaincopy

* daemon not running. starting it now on port 5037 *

* daemon started successfully *

List of devices attached

emulator-5554 device

Mini210
device

终于可以用开发板测试了。

进入tools,将apk文件copy到此,输入命令:

./adb install demo.apk
则安装成功,如果输出信息是已经存在,则先需要删除apk。

二、apk卸载

1、方法一

adb uninstall [-k] package (k表示移除程序时,保留信息)

package的获得方法:

1)说明:package名称不是您安装APK组件时的文件名或是显示在Android仿真器中的应用程序名称

2)adb shell 进入Android操作系统的指令列模式

ls /data/data 或 /data/app 查询Package名称

exit 退出

adb uninstall package (移除查询到的Package)

2、方法二

Android SDK 1.5版起,手机已经内建应用程序管理系,在Android手机主画面点选MENU按键,然后依序点选"Settings→Applications→Manage applications",就可以启动应用程序管理系统,当前Android系统已经安装的所有应用程序都会条列出来,您只要点选想要移除的应用程序然后选择Uninstall就可以移除该程序了。
三、查看logcat信息

输入命令

./adb logcat

然后在arm板上运行apk程序,在logcat窗口上可以看到所有log信息,方便调试

顺便给个链接,说是遇到logcat的问题,但是我没看懂什么意思,可能是我没遇到这样的问题,留着以后参考

http://www.gobbin.cn/2011/02/16/android-phone-logcat/

原文如下

网上搜了N多解决方法,但是很多将log级别的,用法的,更多的是如何在logcat中设置filter进行log的过滤与查看,但是我遇到的问题是,模拟器怎么着都OK,但真机、手机进行开发调试的时候却看不到log信息,这是很恼人的事情(毕竟模拟器跑起来太慢了)。

刚开始没有查到好的方法,就用try catch把exception打到一个alertdialog中,但是这样只能看个大概,绕这个圈子没用,最后还是在eoe的论坛上看到了解决办法,恐怕原因是rom本身没有打开log的开关

问题表现:连接手机与电脑后,驱动安装正确,USB调试模式打开,在DDMS中可以看到device及其进程的信息,但是logcat中就是没有信息输出

问题原因:一些rom默认关闭logcat

问题说明:ddms中设备名字显示为问号不影响,即adb get-serialno显示为问号不影响.

解决方法:

1.需要root权限(部分rom不需要)

2.打开logcat,并设置level,执行命令如下(android 升级之后 adb 在 platform-tools中,不在tools中)

adb shell

echo 1 > /sys/kernel/logger/log_main/enable

说明:将1写入日志开关文件,1为开,0为关

echo 2 >/sys/kernel/logger/log_main/priority

说明:将代表level的2写入优先级文件

3.重启adb,如果使用eclipse,先关闭eclipse,再重启adb,再启动eclipse

adb kill-server

adb start-server

4.此时logcat应该可以工作了,如果仍旧不工作,则更新adb

android update adb

5.重复第三步,此时logcat应该可以工作了,如果仍旧不工作,找到个人主目录下的android目录,如C:\Documents and Settings\Administrator\.android

找到这个目录下的adb_usb.ini文件,其内容默认只有三行,全为注释,在后面添加一行,内容为0x12d1

6.重复第三步,此时logcat应该可以工作了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐