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

一、设备识别
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 plain copy
  1. tools$ lsusb  
  2. Bus 002 Device 002: ID 8087:0024    
  3. Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub  
  4. Bus 001 Device 009: ID 093a:2510 Pixart Imaging, Inc. Hama Optical Mouse  
  5. Bus 001 Device 004: ID 058f:b002 Alcor Micro Corp.   
  6. Bus 001 Device 002: ID 8087:0024    
  7. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub  

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

[cpp]  view plain copy
  1. alfredtofu@alfredtofu-laptop:/$ lsusb  
  2. Bus 002 Device 005: ID 18d1:4e22    
  3. Bus 002 Device 002: ID 8087:0024    
  4. Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub  
  5. Bus 001 Device 009: ID 093a:2510 Pixart Imaging, Inc. Hama Optical Mouse  
  6. Bus 001 Device 004: ID 058f:b002 Alcor Micro Corp.   
  7. Bus 001 Device 002: ID 8087:0024    
  8. 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 plain copy
  1. * daemon not running. starting it now on port 5037 *  
  2. * daemon started successfully *  
  3. List of devices attached   
  4. emulator-5554   device  
  5. 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应该可以工作了



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值