🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
### Android四大组件 - Service - Service 与Activity 的地位是并列的, 它也代表一个单独的Android 组件。 - Service 与Activity的区别在于: Service 通常位于后台运行,它一般不需要与用户交互,因此Service 组件没有图形用户界面。 与Activity 组件需要继承Activity 基类相似, Service 组件需要继承Service 基类。 - 一个Service 组件被运行起来之后, 它将拥有自己独立的生命周期, Service 组件通常用于为其他组 件提供后台服务或监控其他组件的运行状态。 - BroadcastReceiver广播消息接收器 - 从代码实现角度来看, BroadcastReceiver 非常类似于事件编程中的监听器。与普通事件监昕器不同的是, 普通事件监昕器监听的事件源是程序中的对象: 而BroadcastReceiver 监听的事件源是**Android 应用中的其他组件。** - 当其他组件通过sendBroadcast() 、sendStickyBroadcast()或sendOrderedBroadcast()方法发送广播消息时, 如果该BroadcastReceiver 也对该消息“感兴趣” ( 通过lntentFilter 配置),BroadcastReceiver的onReceive(Context context, Intent intent)方法将会被触发。 - 注册这个系统级的“事件监听器”。 - Java 代码中通过Context.registReceiver()方法注册BroadcastReceiver - AndroidManifest.xml 文件中使用<receiver.. ./>元素完成注册。 - ContentProvider - Android 系统为这种跨应用的数据交换提供了一个标准: ContentProvider,多个应用程序之间进行数据交换。 - 通常与ContentProvider 结合使用的是ContentResolver, 一个应用程序使用ContentProvider暴露自己的数据, 而另一个应用程序则通过ContentResolver 来访问数据。 - Intent 和lntentFilter - Intent 并不是Android 应用的组件, 但它是Android应用内不同组件之间通信的载体。 - Activity 、Service 、BroadcastReceiver 三种组件之间的通信都以Intent 作为载体, 只是不同组件使用Intent 的机制略有区别而己。 - Intent 封装了当前组件需要启动或触发的目标组件的信息,因此有些资料也将Intent 翻译为“意图”。实际上Intent 对象里封装了大量关于目标组件的信息, - 显式Intent : 显式Intent 明确指定需要启动或者触发的组件的类名。Android 系统无须对该Intent 做任何解析, 系统直接找到指定的目标组件, 启动或触发它即可。 - 隐式Intent : 隐式Intent 只是指定需要启动或者触发的组件应满足怎样的条件。Android 系统如何判断被调用组件是否符合隐式Intent 呢?这就需要靠IntentFilter 来实现了 - 签名Android 应用程序 - 确定发布者的身份。由于应用开发者可以通过使用相同包名来替换己经安装的程序,因此使用签名可以避免发生这种情况。也可以避免其他人任意发布相同包名的APP来覆盖 - 确保应用的完整性。签名会对应用包中的每个文件进行处理,从而确保程序包中的文件不会被替换。 - 方式(参考疯狂Android讲义P35) 1. 使用Android Studio 对Android 应用签名 2. 使用命令对APK 包签名