adbopenadb open tools.apkk在手机上不好运行是什么原因

在SDK的Tools文件夹下包含着Android模拟器操作的重要命令ADB,ADB的全称为Android Debug Bridge,就是调试桥的作用,借助这个工具,我们可以管理设备或手机模拟器的状态&,还可以进行以下的操作:
(1)快速更新设备或手机模拟器中的代码,如应用或Android系统升级;(2)在设备上运行Shell命令;(3)管理设备或手机模拟器上的预定端口;
(4)在设备或手机模拟器上复制或粘贴文件。
ADB的工作方式比较特殊采用监听Socket TCP 5554等端口的方式让IDE和Qemu通信,默认情况下ADB会daemon相关的网络端口,所以当我们运行Eclipse时ADB进程就会自动运行,在Eclipse中通过DDMS来调试Android程序;也可以通过手动方式调用,以下为一些常用的操作供参考。
1.版本信息
D:\unsetup\android-sdk-windows-1.0_r1\tools&adb version
Android&Debug Bridge&version 1.0.20
2.安装应用到模拟器&&&&&adb install [-l] [-r] &file&。
其中file是需要安装的apk文件的决定路径。
3.卸载已经安装的应用
(1)方法1:
&&&&&adb uninstall [-k] &package&。
其中package表示需要卸载的应用的包的名字,k表示是否保留应用的配置信息和cache数据。
(2)手动删除。adb shellcd /data/apprm app.apk
4.进入设备或模拟器的Shelladb shell&&&&通过上面的命令,就可以进入设备或模拟器的Shell环境中,在这个Linux&Shell中,可以执行各种Linux&的命令,另外如果只想执行一条Shell命令,可以采用以下的方式:adb shell [command]如:
D:\unsetup\android-sdk-windows-1.0_r1\tools&adb shell df
/dev: 49564K total, 0K used, 49564K available (block size 4096)
/sqlite_stmt_journals: 4096K total, 0K used, 4096K available (block size 4096)
/system: 69120K total, 65508K used, 3612K available (block size 4096)
/data: 76544K total, 63684K used, 12860K available (block size 4096)
/cache: 69120K total, 1244K used, 67876K available (block size 4096)
5.转发端口
可以使用&forward&命令进行任意端口的转发&一个模拟器/设备实例的某一特定主机端口向另一不同端口的转发请求。下面演示了如何建立从主机端口7100到模拟器/设备端口8100的转发。
adb forward tcp:7100 tcp:8100
同样地,可以使用ADB来建立命名为抽象的UNIX域套接口,上述过程如下所示:
adb forward tcp:7100 local:logd
6.复制文件
可以使用adb pull ,push&命令将文件复制到一个模拟器/设备实例的数据文件或是从数据文件中复制。install&命令只将一个apk文件复制到一个特定的位置,与其不同的是,pull&和&push&命令可让用户复制任意的目录和文件到一个模拟器/设备实例的任何位置。
从模拟器或者设备中复制文件或目录,使用如下命:
adb pull &remote& &local&
将文件或目录复制到模拟器或者设备,使用如下命令:
adb push &local& &remote&
在这些命令中,&&local&&和&remote&&分别指通向自己的发展机(本地)和模拟器/设备实例(远程)上的目标文件/目录的路径。
下面是一个例子::
adb push foo.txt /sdcard/foo.txt
7.搜索模拟器/设备的实例&&&&取得当前运行的模拟器/设备的实例的列表及每个实例的状态,如:
D:\unsetup\android-sdk-windows-1.0_r1\tools&adb devices
List of devices attached
HT843GZ03305 & &device
8.查看bug报告&
D:\unsetup\android-sdk-windows-1.0_r1\tools&adb bugreport
========================================================
== dumpstate
========================================================
------ SYSTEM LOG ------
04-12 16:59:46.521 D/ShowTrack(23968): MyOverlay::darw..mDefCaption=I'm Here.
04-12 16:59:46.531 D/ShowTrack(23968): MyOverlay::darw..mDefCaption=I'm Here.
04-12 16:59:46.531 D/ShowTrack(23968): MyOverlay::darw..mDefCaption=I'm Here.
04-12 16:59:46.541 D/ShowTrack(23968): MyOverlay::darw..mDefCaption=I'm Here.
04-12 16:59:47.391 I/ActivityManager( & 55): Starting activity: Intent { comp={com.iceskysl.iTracks/com.iceskysl.iTracks.iTracks} }
04-12 16:59:47.641 D/iTracks (23968): renderListView.
04-12 16:59:47.671 D/ShowTrack(23968): MyOverlay::darw..mDefCaption=I'm Here.
04-12 16:59:47.681 D/ShowTrack(23968): MyOverlay::darw..mDefCaption=I'm Here.
9.记录无线通讯日志&&&&一般来说,无线通讯的日志非常多,在运行时没必要去记录,但我们还是可以通过命令,设置记录:
D:\unsetup\android-sdk-windows-1.0_r1\tools&adb shell
# logcat -b radio
logcat -b radio
D/HTC_RIL ( & 30): (t=)&& 0
D/HTC_RIL ( & 30): (t=)&& AT@HTCPDPFD=0
D/HTC_RIL ( & 30): (t=)&& 0
D/HTC_RIL ( & 30): (t=)&& AT+CSQ
D/HTC_RIL ( & 30): (t=)&& +CSQ: 29,99
D/HTC_RIL ( & 30): 0
D/HTC_RIL ( & 30): (t=)&& AT+CREG?
D/HTC_RIL ( & 30): (t=)&& +CREG: 2,3
D/HTC_RIL ( & 30): 0
10.获取设备的ID和序列号adb get-product
D:\unsetup\android-sdk-windows-1.0_r1\tools&adb get-serialno
HT843GZ03305
11.通过远程Shell端运行AQLite3连接数据库
通过ADB远程Shell端,可以通过Android的软AQLite&3&命令程序来管理数据库。SQLite&3&工具包含了许多使用命令,例如,.dump&显示表的内容,.schema&可以显示出已经存在的表空间的SQL CREATE结果集。SQLite3还允许远程执行sql命令。
通过SQLite&3 ,&按照前面的方法登录模拟器的远程Shell端,然后启动工具就可以使用SQLite&3&命令。当SQLite&3&启动以后,还可以指定想查看的数据库的完整路径。模拟器/设备实例会在文件夹中保存SQLite3数据库/data/data/&package_name& /databases /。
$ adb &shell
# sqlite3 /data/data/com.example.google.rss.rssexample/databases/rssitems.db
SQLite version 3.3.12
Enter ".help" for instructions
.... enter commands, then quit...
sqlite& .exit
当启动SQLite&3的时候,就可以通过Shell端发送SQLite&3,命令了。用exit&或&Ctrl+D&组合键退出ADB远程Shell端。
12.ADB命令列表
下列表格列出了adb支持的所有命令,并对它们的意义和使用方法做了说明.
仅仅通过USB接口来管理abd
如果不只是用USB接口来管理则返回错误
仅仅通过模拟器实例来管理adb
如果不是仅仅通过模拟器实例管理则返回错误
-s &serialNumber&
通过模拟器/设备的允许命令号码来发送命令来管理adb (如&&emulator-5556&P)
如果没有指定号码,则会报错
查看所有连接模拟器/设备的设施的清单
查看&Querying for Emulator/Device Instances&获取更多相关信息
查看adb所支持的所有命令
查看adb的版本序列号
logcat [&option&] [&filter-specs&]
将日志数据输出到屏幕上
查看bug的报告,如dumpsys ,dumpstate ,和logcat&信息
查看指定设施的可用的JDWP信息
可以用&forward jdwp:&pid&端口映射信息来连接指定的JDWP进程,例如:adb forward tcp:8000 jdwp:472jdb -attach localhost:8000
install &path-to-apk&
安装Android为(可以模拟器/设施的数据文件.apk指定完整的路径)
pull &remote& &local&
将指定的文件从模拟器/设施拷贝到计算机上
push &local& &remote&
将指定的文件从计算机上拷贝到模拟器/设备中
Ports and Networking
forward &local& &remote&
用本地指定的端口通过Socket方法远程连接模拟器/设施
端口需要描述下列信息:
tcp:&portnum&
local:&UNIX domain socket name&
dev:&character device name&
jdwp:&pid&
ppp &tty& [parm]&
通过USB运行ppp:
&tty& & the tty for PPP stream. For exampledev:/dev/omap_csmi_ttyl.
[parm]& &mdash zero or more PPP/PPPD options, such as defaultroute ,local , notty , etc.
需要提醒的不能自动启动PDP连接
get-serialno
查看adb实例的序列号
查看&Querying for Emulator/Device Instances&可以获得更多信息
查看模拟器/设施的当前状态
wait-for-device
如果设备不联机就不让执行,也就是实例状态是&device&时
可以提前把命令转载在adb的命令器中,在命令器中的命令在模拟器/设备连接之前是不会执行其他命令的,示例如下:
adb wait-for-device shell getprop
需要提醒的是,这些命令在所有的系统启动起来之前是不会启动adb的,所以在所有的系统启动起来之前也不能执行其他的命令,例如,运用install&的时候就需要Android包,这些包需要系统完全启动,例如:
adb wait-for-device install &app&.apk
上面的命令只有连接上了模拟器/设备连接上了adb服务才会被执行,而在Android系统完全启动前执行就会有错误发生
start-server
选择服务是否启动adb服务进程
kill-server
终止adb服务进程
通过远程Shell命令来控制模拟器/设备实例
查看获取更多信息&for more information
shell [&shellCommand&]
连接模拟器/设施执行Shell命令,执行完毕后退出远程Shell端l
&--------------------------------------------------------------------
PS: 欢迎关注公众号"Devin说",会不定期更新Java相关技术知识。
--------------------------------------------------------------------
阅读(...) 评论()26962人阅读
学习开发新浪微博android客户端的一些事儿(3)
我学习Android遇到的小问题总结(6)
首先,将模拟器执行起来,直到正式进入系统。(注意最好不要同时开着多个模拟器,不然安装时会因不知装那个而出错),如果是手机的 &话,插上数据线(注意要确保手机驱动已经安装,不然会找不到改设备)
接着,打开一个cmd窗口,路径切换到模拟器目录下的tools目录下(模拟器在Android sdk内有,也可自己另外下载)
&输入:adb devices
&& & & & (用于搜索你的设备 或 模拟器,如果搜索到就可以对它进行安装。手机设备有可能搜索不到,那是你驱动没装好!)
输入:adb install --(apk完整路径)
&& &例如:adb install c:/NetScramble_1.1.apk&
---------------------------------------------------
&与安装类似的,卸妆是利用adb执行一个卸妆指令:
&& 输入:adb shell rm data/app/NetScramble_1.1.apk
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:111044次
积分:1177
积分:1177
排名:千里之外
原创:29篇
(1)(7)(1)(2)(1)(6)(4)(5)(7)(1)(1)问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
想在apk中实现更改system/lib中的一个库名(如把A.so改成B.so,mv A.so B.so),想到在apk中点击按钮实现adb remount,然后再进行后续的 mv A.so B.so 操作,但是在Android中怎么调用adb的命令?
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
实际上 dkmeteor 已经给出了详尽的答案了,我就额外罗嗦一下
apk 是编译打包生成的安装程序,运行在 android 系统里面。
adb 只是 android 的一个调试桥,用于跟其他平台通信,其中有一个功能就是执行 shell 命令
从题主的需求上看,需要移动一个系统文件,必要的话还需要重新挂载
这个需求得用到 android 的超级管理员权限,也就说没有 root 的手机无法达到要求。
题主可以尝试 dkmeteor 提供的方法先获取 root 权限,然后再执行两个 shell 就可以了
mount -o rw,remount /system
mv /system/libA.so /system/libB.so
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
你要动system/lib下的文件.....非ROOT可能不行
Process localProcess = Runtime.getRuntime().exec("mv A.so B.so");
这样直接执行linux命令吧....
不行的话先执行个
Process localProcess = Runtime.getRuntime().exec("su");
apk里执行的linux命令和你adb进去执行的linux命令完全一致.
但是apk所在用户组权限很低.....可能很多命令没法执行..
分享到微博?
你好!看起来你挺喜欢这个内容,但是你还没有注册帐号。 当你创建了帐号,我们能准确地追踪你关注的问题,在有新答案或内容的时候收到网页和邮件通知。还能直接向作者咨询更多细节。如果上面的内容有帮助,记得点赞 (????)? 表示感谢。
明天提醒我
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:使用adb start-server 后启动了adb服务
我再用adb devices 看有多少个android 设备
List of devices attached& 下面什么也没有
首先我的手机已经打开了调试模式而且在电脑的设备管理中也能找到我的手机驱动
再我准备去用adb install x:\xx\xx.apk时自然是不会成功的
这时应该去c盘的用户文件夹下的使用者文件夹下看.android目录
这里面应该有个adb_usb.ini 配置文件 我们需要在设备管理中把手机的vid(vendor in)也叫硬件ID找出来
再将这个里面的16进制代码写到配置文件里面
而我发现我的.android里面没有这个配置文件
所以我就网上找了这一个配置文件的基本内容然后自己新建了一个adb_usb.ini
# ANDROID 3RD PARTY USB VENDOR ID LIST -- DO NOT EDIT.
# USE 'android update adb' TO GENERATE.
# 1 USB VENDOR ID PER LINE.
上面的0x2A45是我自己加的自己的手机的vid
下面图是怎么看vid
这样做之后
我们敲adb devices 就会看见设备出现了
我么继续安装apk到手机
我们在重启一次adb
adb kill-server
adb start-server
使用adb intall x:\xx\xx.apk 就成功了

&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:6069次
排名:千里之外
原创:17篇
转载:11篇
(1)(1)(1)(2)(2)(3)(1)(5)(1)(2)(1)(1)(6)(1)}

我要回帖

更多关于 adb shell 运行apk 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信