Android之四大组件和ADB
一、Android四大组件分别为activity、service、content provider、broadcast receiver
1、activity
(1)一个Activity通常就是一个单独的屏幕(窗口)。
(2)Activity之间通过Intent进行通信。
(3)android应用中每一个Activity都必须要在AndroidManifest.xml配置文件中声明,否则系统将不识别也不执行该Activity。
2、service
(1)service用于在后台完成用户指定的操作。service分为两种:
(a)started(启动):当应用程序组件(如activity)调用startService()方法启动服务时,服务处于started状态。
(b)bound(绑定):当应用程序组件调用bindService()方法绑定到服务时,服务处于bound状态。
(2)startService()与bindService()区别:
(a)started service(启动服务)是由其他组件调用startService()方法启动的,这导致服务的onStartCommand()方法被调用。当服务是started状态时,其生命周期与启动它的组件无关,并且可以在后台无限期运行,即使启动服务的组件已经被销毁。因此,服务需要在完成任务后调用stopSelf()方法停止,或者由其他组件调stopService()方法停止。
(b)使用bindService()方法启用服务,调用者与服务绑定在了一起,调用者一旦退出,服务也就终止,大有“不求同时生,必须同时死”的特点。
(3)开发人员需要在应用程序配置文件中声明全部的service,使用<service></service>标签。
(4)Service通常位于后台运行,它一般不需要与用户交互,因此Service组件没有图形用户界面。Service组件需要继承Service基类。Service组件通常用于为其他组件提供后台服务或监控其他组件的运行状态。
3、content provider
1)android平台提供了Content Provider使一个应用程序的指定数据集提供给其他应用程序。其他应用可以通过ContentResolver类从该内容提供者中获取或存入数据。
(2)只有需要在多个应用程序间共享数据是才需要内容提供者。例如,通讯录数据被多个应用程序使用,且必须存储在一个内容提供者中。它的好处是统一数据访问方式。
(3)ContentProvider实现数据共享。ContentProvider用于保存和获取数据,并使其对所有应用程序可见。这是不同应用程序间共享数据的唯一方式,因为android没有提供所有应用共同访问的公共存储区。
(4)开发人员不会直接使用ContentProvider类的对象,大多数是通过ContentResolver对象实现对ContentProvider的操作。
(5)ContentProvider使用URI来唯一标识其数据集,这里的URI以content://作为前缀,表示该数据由ContentProvider来管理。
4、broadcast receiver
(1)你的应用可以使用它对外部事件进行过滤,只对感兴趣的外部事件(如当电话呼入时,或者数据网络可用时)进行接收并做出响应。广播接收器没有用户界面。然而,它们可以启动一个activity或serice来响应它们收到的信息,或者用NotificationManager来通知用户。通知可以用很多种方式来吸引用户的注意力,例如闪动背灯、震动、播放声音等。一般来说是在状态栏上放一个持久的图标,用户可以打开它并获取消息。
(2)广播接收者的注册有两种方法,分别是程序动态注册和AndroidManifest文件中进行静态注册。
(3)动态注册广播接收器特点是当用来注册的Activity关掉后,广播也就失效了。静态注册无需担忧广播接收器是否被关闭,只要设备是开启状态,广播接收器也是打开着的。也就是说哪怕app本身未启动,该app订阅的广播在触发时也会对它起作用。
二. ADB
1.首先我们要下一个手机的模拟器,市面上的各大模拟器都可以,比如夜神模拟器、雷电模拟器、腾讯模拟器等都可以
http://www.ldmnq.com/ldy/bd6002.html?bd_vid=11090639856620271471

https://syzs.qq.com/?ADTAG=baidu.pz.bt04_1
在下载完模拟器之后安装就可以了
2.之后我们来配置ADB的环境变量
①:在系统变量中新建ANDROID_HMOE变量,赋值路径(D:\install\androidSDK)



②.配置完成后打开系统的黑窗口输入ADB查看有没有配置成功

3.ADB常用命令
查看设备 adb devices 这个命令是查看当前连接的设备, 连接到计算机的android设备或者模拟器将会列出显示


开启服务 adb start-server
关闭服务 adb kill-server
简单的开启和关闭ADB服务,如果上一部不显示模拟器的话就关闭服务器然后开启服务器一般就可以了
安装软件:adb install apk路径

覆盖安装:adb install -r (APK路径)
-r 代表如果apk已安装,重新安装apk并保留数据和缓存文件。
PS:-s #安装在SD卡内,而不是设备内部存储
系统应用: adb shell pm list packages –s

第三方应用: adb shell pm list packages -3

列出手机装的所有app的包名: adb shell pm list packages

卸载软件 adb uninstall <软件名>

adb uninstall -k <软件名>
如果加 -k 参数,为卸载软件但是保留配置和缓存文件
将电脑文件传输到移动端
adb push 电脑路径 移动端路径

将移动端文件传输到电脑
adb pull 移动端路径 电脑路径

查看adb命令帮助信息 adb help

adb shell screencap -p 截图文件路径

登录设备shell
adb shell
adb shell <command命令>
后面加<command命令>将是直接运行设备命令, 相当于执行远程命令
查看手机CPU情况 adb shell dumpsys cpuinfo

查看应用内存使用情况
adb shell dumpsys meminfo +包名:应用的内存使用情况

显示磁盘使用信息:
adb shell dumpsys diskstats
清除应用缓存信息:
adb shell pm clear [packagename]
查看电池状态
adb shell dumpsys battery
4.adb logcat 查看手机日志
adb logcat 命令格式 : adb logcat [选项] [过滤项], 其中 选项 和 过滤项 在 中括号 [] 中, 说明这是可选的;
">"输出 : ">" 后面跟着要输出的日志文件, 可以将 logcat 日志输出到文件中, 使用adb logcat > log 命令(adb logcat >C:\log\c.txt)
指定 logcat 的日志输出格式 :
-- "-v"选项 : 使用adb logcat -v time 命令, 可以啥看日志的输出时间;
将手机日志输出到本地文件中
adb logcat -v time > C:/log/aa.txt
Android 的日志分为如下几个级别:
V —— Verbose(最低,输出得最多)
D —— Debug
I —— Info
W —— Warning
E —— Error
F —— Fatal
S —— Silent(最高,啥也不输出)
按某级别过滤日志则会将该级别及以上的日志输出。
比如,命令:adb logcat *:W 将 Warning、Error、Fatal 和 Silent 日志输出
显示所有优先级大于等于“warning”的日志


浙公网安备 33010602011771号