24H免费课程咨询  TEL:13401595960   QQ:1870218756  微信:13401595960(李老师)

东方博宜

网站首页 > 软件开发资讯 > 安卓开发

【常州安卓开发培训班】Android开发中常用ADB命令总结

2018-05-02 17:03:23 东方博宜 阅读

Dispatch Queues简述


Dispatch Queues是基于C语言的,执行自定义任务的技术,从字面意思理解其实就是执行任务的队列,使用GCD执行的任务都是放在这个队列中执行的,当然队列的数量可以有多个,类型也不止一种。一个Dispatch queue可以串行的执行任务,也可以并行的执行任务,但不管哪种执行任务的方式,都遵循先进先出的原则。串行队列一次只能执行一个任务,当前任务执行完后才能执行下一个任务,并且执行任务的顺序和添加任务的顺序是一致的。并行队列自然是可同时执行多个任务,不需要等待上个任务完成后才执行下个任务。我们来看看Dispatch queue还有哪些好的特性:


有简单宜用,通俗易懂的编程接口。

提供了自动管理的线程池。

可自动调节队列装载任务的速度。

更优的内存使用率。

使用户不用担心死锁的问题。

提供了比线程锁更优的同步机制。


使用Dispatch Queue时,需要将任务封装为一个函数或者一个block,block是Objective-C中对闭包的实现,在OS X 10.6和iOS 4.0时引入的,在Swift中直接为闭包。


Dispatch Sources简述


Dispatch Source是GCD中的一个基本类型,从字面意思可称为调度源,它的作用是当有一些特定的较底层的系统事件发生时,调度源会捕捉到这些事件,然后可以做其他的逻辑处理,调度源有多种类型,分别监听对应类型的系统事件。我们来看看它都有哪些类型:


Timer Dispatch Source:定时调度源。

Signal Dispatch Source:监听UNIX信号调度源,比如监听代表挂起指令的SIGSTOP信号。

Descriptor Dispatch Source:监听文件相关操作和Socket相关操作的调度源。

Process Dispatch Source:监听进程相关状态的调度源。

Mach port Dispatch Source:监听Mach相关事件的调度源。

Custom Dispatch Source:监听自定义事件的调度源。


Dispatch Source是GCD中很有意思也很有用的一个特性,根据不同类型的调度源,我们可以监听较为底层的系统行为,不论在实现功能方面还是调试功能方面都非常游有用,后文中会再详细讲述。



我还记得2014年的那一天,当时我决定开始Android开发这是我人生中最明智的决定之一。距离现在已经有两年半的时间了,我在Android开发中学习了很多东西。最初开始的时候,我没有一个导师,也没有人指导我学习Android开发。在这过程中犯了很多错误,导致花费了很多时间去纠正这些错误。


一年半以后,我有幸和一些真正有才华、经验丰富的Android开发人员合作,他们指导我,帮助我以更好的方式来做事情。这两个阶段虽然很艰难,但都让我学到了很多东西。学会了什么该做,最重要的是什么不该做。


在这篇文章中,我将分享我在这几年收集的一些宝贵经验。或许可以帮助你更快速的学习安卓开发,少走之前我走过的那些弯路:


1、不要重复造轮子


最初,我不太喜欢使用开源库。无论我需要什么,只想着自己做。现在想来这真是个愚蠢的做法。


当你在开发过程中遇到了问题,如果这个问题已经被其他人解决了,那么为什么不使用它呢?这样你可以为自己节省很多时间。


更多地关注应用程序的核心业务逻辑。如果你想在你的应用程序中进行网络调用,你不需要自己写,可以使用开源库。


2、明智地选择开源库


Github有很多开源库可免费使用,但也别盲目使用。


检查开源库的星号数,越多越好。查看该开源库的作者是否也创建了其他受欢迎的开源库。检查Bug问题(打开和关闭)的解决,这可以让你更好地了解该库的稳定性和健壮性。


如果你有足够时间,你应该深入了解该开源库的代码,并检查是否真正适用自己的项目。


这样做只是为了确保你将要使用的代码是可靠的、无bug和高质量的。


建议:尝试使用Dryrun从命令行直接使用任何库。


阅读.jpeg


3、读更多的代码


我们的大部分时间都是在阅读别人的代码而不是写自己的代码。如果你没这样做,那就从今天开始吧。


你今天能写的任何代码都只是因为你在某个地方阅读并学习了某项技能,这是你已经获取该项技能的反映,所以你只有通过阅读和学习他人的代码来提高自己。


Android的一大优点是它是一个完全开源的平台,深入了解代码并学习它们是如何实现框架的,Github有成千上万的开源库,选择一个库,看看开发人员是如何实现它的。这对你将有很大帮助。


4、保持适当的编码标准


如果将编码与写作进行比较,那么编码标准就像你的笔迹。


正如你会阅读其他人的代码一样,别人也会阅读你写的代码,如果你在一个公司工作,需要和其他开发者有合作,请特别注意你的这点。


编写简短、清晰和可读的代码,让你和阅读你的代码的人能够彻底享受。你的代码应该像故事一样阅读。


5、请使用ProGuard!


ProGuard不仅可以减少你的代码,还会使你的代码模糊,从而加大反编译的难度,不好复制你的代码。而且它完全免费,并附带了Android SDK,没有理由不使用它。

我看到一些开发人员在没有ProGuard的情况下在市场上发布他们的应用程序,这样破解这样的App 对于一个不太熟练的黑客也只需花几个小时


6、使用合适的项目架构


首先,你会庆幸自己选择了合适的架构。


你可以使用MVP(model - view - presenter)体系架构,它可以将代码解耦到不同的易于管理的层,从而提高代码的灵活性,大大减少维护时间。这里有一个很好的演示项目让你学习。如果你觉得很难学,这里是初学者的详细指南。




adb的全称为Android Debug Bridge,就是起到调试桥的作用。通过adb我们可以在Eclipse中方便通过DDMS来调试Android程序,说白了就是debug工具。adb的工作方式比较特殊,采用监听Socket TCP 5554等端口的方式让IDE和Qemu通讯,默认情况下adb会daemon相关的网络端口,所以当我们运行Eclipse时adb进程就会自动运行。作为开发人员,掌握适当所需要的ADB操作命令是非常必须的。就把平时工作中用得相对比较多的adb命令作个小总结。


1. ADB自身管理相关命令


adb kill-server   终止ADB服务进程

adb start-server 启动或重启ADB服务进程

adb root  以root权限重启ADB服务


2. 使用ADB进行设置(包括模拟器)管理


adb devices 查看连接到计算机上的设备

adb  get-serialno  获取连接到电脑上设备的序列号,当前只能连接一台设备才能获取得到

adb  reboot    重启连接到电脑上的设备

adb reboot bootloader /recovery 重启设备进入到fastboot模式或recovery模式,通常在刷机的时候用到

adb [-d|-e|-s<serialNumber>] command  发送指定命令给指定设备,其中serialNuber是设备号


3. 获取设备硬件信息


adb shell cat /sys/class/net/wlan0/address 获取wifi mac地址

adb shell cat/proc/cpuinfo   获取cpu序列号

adb shell cat /system/build.prop  获取设备编译属性

adb shell cat /data/misc/wifi/*.conf  获取设备Wi-Fi配置信息


4. 通过设备管理APP应用操作


adb install [-r|-s] <apkfile>  安装apk文件

adb uninstall [-k] <packagename> 卸载APP

adb  shell top [-m <number>] 查看内存情况,如果有number表示查看多少条数据

adb  shell ps 查看进程列表数据

adb shell kill <pid>  杀死对应pid的进程

adb shell ps -x <pid>   查看指定pid进行的运行状态 

adb  shell  service list 查看后台服务信息

adb  shell cat /proc/meminfo  查看当前内存占用情况 

adb  shell cat /proc/iomen 查看io内存分区情况


5. 对文件进行操作的相关adb命令


adb shell ls mnt  查看所有设备中的存储设备名

adb  remount 将system分区重新挂载为可读写分区

adb push <local> <remote> 从本地复制文件到设备中local和remote分别对应本地与设备的文件

adb  pull <remote> <local>从设备复制文件到本地的操作

adb shell ls 查看目录下的所有文件及文件夹

adb shell cd <folder> 查看文件夹内容

adb  shell mkdir path/floldername 新建文件


6. 其它操作命令


adb  shell input text <context>  发送文件内容

adb  shell input keyevent <keycode>  通过adb命令发送键盘事件

adb  shell wm size  获取设备分辨率

adb  shell getprop <key> 获取设备参数信息

adb shell setprop <key> <value> 设置设备的参数信息

adb shell screencap -p <path/file> 使用adb命令进行截屏操作

adb  shell screenrecord [options] <path/filename>    使用adb命令进行视屏录制

[options]  可以填写:

size WIDTH*HEIGHT

bit -rete

-time -limit 时间限制等

常州东方博宜是一家专注IT,互联网,电脑方面的顶尖培训机构,欢迎社会及院校有志互联网营销,搜索引擎营销的人士,来东方博宜报名学习,互相交流。

常州东方博宜地址:常州天宁区延陵西路2号工人文化宫5号楼

 2.新北区太湖东路9-4号常州创意园E12


Powered by 东方博宜教育咨询江苏有限公司  ©2008-2018 www.czos.cn