ADB是什么 ADB常用命令介绍
adb是windows系统通过usb或者无线连接Android手机的一个接口
adb 常用命令大全
1. 显示系统中全部Android平台:
android list targets
2. 显示系统中全部AVD(模拟器):
android list avd
3. 创建AVD(模拟器):
android create avd --name 名称 --target 平台编号
4. 启动模拟器:
emulator -avd 名称 -sdcard ~/名称.img (-skin 1280x800)
5. 删除AVD(模拟器):
android delete avd --name 名称
6. 创建SDCard:
mksdcard 1024M ~/名称.img
7. AVD(模拟器)所在位置:
Linux(~/.android/avd) Windows(C:\Documents and Settings\Administrator\.android\avd)
8. 启动DDMS:
ddms
9. 显示当前运行的全部模拟器:
adb devices
10. 对某一模拟器执行命令:
abd -s 模拟器编号 命令
11. 安装应用程序:
adb install -r 应用程序.apk
12. 获取模拟器中的文件:
adb pull 《remote》 《local》
13. 向模拟器中写文件:
adb push 《local》 《remote》
14. 进入模拟器的shell模式:
adb shell
15. 启动SDK,文档,实例下载管理器:
android
16. 缷载apk包:
adb shell
cd data/app
rm apk包
exit
adb uninstall apk包的主包名
adb install -r apk包
17. 查看adb命令帮助信息:
adb help
18. 在命令行中查看LOG信息:
adb logcat -s 标签名
19. adb shell后面跟的命令主要来自:
源码\system\core\toolbox目录和源码\frameworks\base\cmds目录。
20. 删除系统应用:
adb remount (重新挂载系统分区,使系统分区重新可写)。
adb shell
cd system/app
rm *.apk
21. 获取管理员权限:
adb root
22. 启动Activity:
adb shell am start -n 包名/包名+类名(-n 类名,-a action,-d date,-m MIME-TYPE,-c category,-e 扩展数据,等)。
23、发布端口:
你可以设置任意的端口号,做为主机向模拟器或设备的请求端口。如:
adb forward tcp:5555 tcp:8000
24、复制文件:
你可向一个设备或从一个设备中复制文件,
复制一个文件或目录到设备或模拟器上:
adb push
《source》
《destination》《/destination》《/source》
如:adb
push test.txt /tmp/test.txt
从设备或模拟器上复制一个文件或目录:
adb
pull 《source》
《destination》《/destination》《/source》
如:adb
pull /addroid/lib/libwebcore.so .
25、搜索模拟器/设备的实例:
取得当前运行的模拟器/设备的实例的列表及每个实例的状态:
adb devices
26、查看bug报告:
adb bugreport
27、记录无线通讯日志:
一般来说,无线通讯的日志非常多,在运行时没必要去记录,但我们还是可以通过命令,设置记录:
adb shell
logcat -b radio
28、获取设备的ID和序列号:
adb get-product
adb get-serialno
29、访问数据库SQLite3
adb shell
sqlite3
#cd system/sd/data //进入系统内指定文件夹
#ls //列表显示当前文件夹内容
#rm -r xxx //删除名字为xxx的文件夹及其里面的所有文件
#rm xxx //删除文件xxx
#rmdir xxx //删除xxx的文件夹
谁能给我举个例子解释下递归是什么意思
首先来看一个例子:
有一个Febonacci序列:
它的问题是:求这个序列中的第N个数。
由于它的函数原形是:f(N)=f(n-1)+f(n-2)
这用递归很容易就可以写出代码来,一点都不费事:
int Febc(int n) {
if(n《3) return (1);elsereturn (Febc(n-1)+Febc(n-2));}噢~~~~~也许你会说递归真是太简单了,简直就是一个数学模型嘛,呵呵。
其实,递归函数的工作过程就是自己调用自己。有一些问题用递归就很容易解决,简单的你自己都会吃惊。
我们做事情,一般都是从头开始的,而递归却是从末尾开始的。比如上面的函数吧,当n》3时,它显然只能求助于n-1,n-2。而(n-1)》2,(n-2)》2时,它们就求助于:(n-1)-1,(n-1)-2;(n-2)-1,(n-2)-2;然后··············直到(n-k)《3,(n-k-1)《3时,函数Febc终于有了返回值1 了,它再从头开始计算,然后一直算到n 为止。
通过上面的例子,我们知道递归一定要有一个停止的条件,否则递归就不知道停止了。在上面的例子中, if(n《3) return (1); 就是停止的条件。
然而,使用递归的代价是十分巨大的:它会消耗大量的内存!!递归循环时它用的是堆栈,而堆栈的资源是十分有限的。上面的例子你只能用一个很小的n值。如果n=20,即Febc(20)的话,它将调用Febc(N)函数10000多次!!!而上面一个例子用循环也是十分容易写的:
/*using turboc2*/
int febc(int);main(){int n;scanf(“%d“,&n);febc(N);}int febc(int n){int a);}有兴趣者不妨输入一个较大的n值,然后比较比较这二个函数计算的速度。当然, 如果你使用的n太大的话,递归可能发生错误。如果死机了可别骂我哦~~~ 我已经提醒过你了 :)
现在我们再来看看一个求从1 加到100的循环:
下面就是递归(请注意了,这种做法不推荐!! 我只是为了说明问题才这么写的。)
/*using Turboc2*/int a=0;int account(int);main(){account(100);
printf(“%d“,a);}int account(int i){if(i==1) return 1; /*停止条件*/elsereturn (n+f(n-1)); /*此句有问题*/}在C/C++的问题中,我曾经回答过这样的一个问题:
先写出函数表达式:f(N)=f(n-1)+f(n-3)
f(N)-f(n-1)=f(n-3)
因为第n年要比n-1年多的牛,都是大于三岁的牛生的小牛,而f(n-3)正是那些在n年大于三岁的牛,然后它们在第n年生下相同数量的小牛。(请用BorlandC++3.1或其他C++编译器)
#include《iostream.h》
#include《conio.h》
int cattle(int,int);
void main(){int ct,n;cout《《“Please input the original cattle number:“《《endl; /*输入起始牛的数量*/cin》》ct;cout《《“Input how many years it past:“《《endl;cin》》n;cout《《“You have “《《cattle(ct,n)《《“ cattle now!“《《endl;getch();}int cattle(int ct,int n){if(n《4) return (ct); /*停止条件*/elsereturn (cattle(ct,n-1)+cattle(ct,n-3)); /*实现递归*/}怎么样,很简单吧。 会用循环求解吗?
递归在实际的编程中并不常用,但是在某些情况下,它是非常强有力而漂亮的工具。掌握它的原理时会十分有用的。
boring的意思是什么
无聊的英语调整。无聊,无聊;无聊的;单调,乏味;n。钻孔;v。Bore(孔的当前细分);