### 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屏幕刷新機制