List of devices attached
emulator-5554 device
???????????? no permissions
列出解决办法:
首先arm开发板的mini USB线不接,打开shell,进入ADB所在的SDK目录下的tools目录,运行命令lsusb,结果如下:
- 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,结果如下:
- 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
最终结果显示如下:
- * 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应该可以工作了