### 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 包签名
- 前言
- Android系统的体系结构
- Dalvik VM 和 JVM 的比较
- Android 打包应用程序并安装的过程
- Android ADB工具
- Android应用开发
- Android UI相关知识总结
- Android 中window 、view、 Activity的关系
- Android应用界面
- Android中的drawable和bitmap
- AndroidUI组件adapterView及其子类和Adapter的关系
- Android四大组件
- Android 数据存储
- SharedPreference
- Android应用的资源
- 数组资源
- 使用Drawable资源
- Material Design
- Android 进程和线程
- 进程
- 线程
- Android Application类的介绍
- 意图(Intent)
- Intent 和 Intent 过滤器(Google官网介绍)
- Android中关于任务栈的总结
- 任务和返回栈(官网译文)
- 总结
- Android应用安全现状与解决方案
- Android 安全开发
- HTTPS
- 安卓 代码混淆与打包
- 动态注入技术(hook技术)
- 一、什么是hook技术
- 二、常用的Hook 工具
- Xposed源码剖析——概述
- Xposed源码剖析——app_process作用详解
- Xposed源码剖析——Xposed初始化
- Xposed源码剖析——hook具体实现
- 无需Root也能Hook?——Depoxsed框架演示
- 三、HookAndroid应用
- 四、Hook原生应用程序
- 五、Hook 检测/修复
- Android 应用的逆向与加固保护技术
- OpenCV在Android中的开发
- Android高级开发进阶
- 高级UI
- UI绘制流程及原理
- Android新布局ConstraintLayout约束布局
- 关键帧动画
- 帧动画共享元素变换
- Android异步消息处理机制完全解析,带你从源码的角度彻底理解
- Android中为什么主线程不会因为Looper.loop()里的死循环卡死?
- 为什么 Android 要采用 Binder 作为 IPC 机制?
- JVM 中一个线程的 Java 栈和寄存器中分别放的是什么?
- Android源码的Binder权限是如何控制?
- 如何详解 Activity 的生命周期?
- 为什么Android的Handler采用管道而不使用Binder?
- ThreadLocal,你真的懂了吗?
- Android屏幕刷新机制