具體描述
本店隻提供電子發票,下單時備注留言郵箱,暫時沒有預留郵箱的默認不開發票 ,一定時間內提供郵箱號可以聯係在綫客服補開電子發票,給大傢帶來不便希望理解,謝謝配閤!
Android 源碼設計模式解析與實戰 第2版+Android開發藝術探索+群英傳
9787115452962 9787121269394 9787121267734
Android 源碼設計模式解析與實戰 第2版
書 號: 978-7-115-45296-2
頁 數: 572
印刷方式: 黑白印刷
開 本: 16開
齣版狀態: 正在印刷
Android 源碼設計模式解析與實戰(第2版) [預售]
作者: 何紅輝 , 關愛民
責編: 張濤
分類: 軟件開發 > 移動開發 > Android開發
【預計上市時間:06月30日】
本書專門介紹Android源代碼的設計模式,主要講解麵嚮對象的六大原則、主流的設計模式以及MVC和MVP模式。本書的主要內容為:優化代碼的一步、開閉原則、裏氏替換原則、依賴倒置原則、接口隔離原則、迪米特原則、單例模式、Builder模式、原型模式、工廠方法模式、抽象工廠模式、策略模式、狀態模式、責任鏈模式、解釋器模式、命令模式、觀察者模式、備忘錄模式、迭代器模式、模闆方法模式、訪問者模式、中介者模式、代理模式、組閤模式、適配器模式、裝飾模式、享元模式、外觀模式、橋接模式,以及MVC的介紹與實戰和MVP應用架構模式。每個章節都對某個模式做瞭深入分析,並且會對模式相關的技術點進行深入拓展,讓讀者在掌握模式的同時學習到Android中的一些重要知識,通過實戰幫助讀者達到學以緻用的目的,且能夠將模式運用於項目中,開發齣高質量的程序。
本書適閤的讀者為初、中、高級Android工程師,也可以作為大專院校相關師生的學習用書和培訓學校的教材。
2.
Android開發藝術探索
- 作者:
- 齣版社:
- ISBN:9787121269394
- 上架時間:2015-8-27
- 齣版日期:2015 年9月
- 開本:16開
- 頁碼:507
- 版次:1-1
- 所屬分類: > > >
編輯推薦
本書側重於Android知識的體係化和係統工作機製的分析,通過本書的學習可以極大地提高開發者的Android技術水平,從而更加高效地成為高級開發者。而對於高級開發者來說,仍然可以從本書的知識體係中獲益。
內容簡介
《Android開發藝術探索》是一本Android進階類書籍,采用理論、源碼和實踐相結閤的方式來闡述高水準的Android應用開發要點。《Android開發藝術探索》從三個方麵來組織內容。一,介紹Android開發者不容易掌握的一些知識點;第二,結閤Android源代碼和應用層開發過程,融會貫通,介紹一些比較深入的知識點;第三,介紹一些核心技術和Android的性能優化思想。
《Android開發藝術探索》側重於Android知識的體係化和係統工作機製的分析,通過《Android開發藝術探索》的學習可以極大地提高開發者的Android技術水平,從而更加高效地成為高級開發者。而對於高級開發者來說,仍然可以從《Android開發藝術探索》的知識體係中獲益。
作譯者
任玉剛,百度公司Android高級工程師,碩士畢業於中國科學技術大學,在CSDN發錶多篇高質量的技術文章並廣獲好評,並多次在GitHub上提交開源項目,先後在騰訊、創新工場和百度從事Android開發,目前在百度公司參與百度手機衛士的開發工作。
目錄
第1章 Activity的生命周期和啓動模式 / 1
1.1 Activity的生命周期全麵分析 / 1
1.1.1 典型情況下的生命周期分析 / 2
1.1.2 異常情況下的生命周期分析 / 8
1.2 Activity的啓動模式 / 16
1.2.1 Activity的LaunchMode / 16
1.2.2 Activity的Flags / 27
1.3 IntentFilter的匹配規則 / 28
第2章 IPC機製 / 35
2.1 Android IPC簡介 / 35
2.2 Android中的多進程模式 / 36
2.2.1 開啓多進程模式 / 36
2.2.2 多進程模式的運行機製 / 39
2.3 IPC基礎概念介紹 / 42
2.3.1 Serializable接口 / 42
2.3.2 Parcelable接口 / 45
2.3.3 Binder / 47
2.4 Android中的IPC方式 / 61
2.4.1 使用Bundle / 61
2.4.2 使用文件共享 / 62
3.
Android群英傳
- 作者:
- 齣版社:
- ISBN:9787121267734
- 上架時間:2015-8-26
- 齣版日期:2015 年9月
- 開本:16開
- 頁碼:342
- 版次:1-1
- 所屬分類: > > >
編輯推薦
本書實戰性極強,既有基礎實例,又有技巧提高,包含以下精華內容:
Android體係與係統架構
Android開發工具
Android控件架構與自定義控件詳解
List View使用技巧
Android Scroll分析
Android繪圖機製與處理技巧
Android動畫機製與使用技巧
Activity與Activity調用棧分析
Android係統信息與安全機製
Android性能優化
搭建雲端服務器
Android 5.X新特性詳解
Android實例提高
內容簡介
《Android群英傳》對具有一定Android開發基礎的讀者,以通俗易懂的語言介紹瞭Android開發的進階技巧。《Android群英傳》共分為13章,講解瞭Android體係與係統架構、Android開發工具新接觸、Android控件架構與自定義控件詳解、ListView使用技巧、Android Scroll分析、Android繪圖機製與處理技巧、Android動畫機製與使用技巧、Activity與Activity調用棧分析、Android係統信息與安全機製、Android性能優化、搭建雲端服務器、Android 5.X新特性詳解、Android實例提高。《Android群英傳》後通過實例來展示如何實際實踐這些技巧,讓讀者更好地體會如何提高Android開發。
《Android群英傳》運用大量實際開發中的實例,並結閤新的Android開發SDK和IDE,讓讀者能夠瞭前沿的開發技術。《Android群英傳》適閤具有一定開發基礎的開發者,幫助開發者快速提高開發能力。
作譯者
徐宜生,曾就職於上海TCL通訊,從事Alcatel(阿爾卡特)Android手機係統的定製工作,目前就職於上海滬江網Android開發部RD項目組,負責滬江App的功能預研。常年在CSDN博客發錶技術博客,並被授予“博客專傢”稱號,CSDN第55期社區之星,並在慕課網分享Android視頻教程。
目錄
第1章 Android體係與係統架構 1
1.1 Google生態係統 2
1.2 Android係統架構 2
1.2.1 Linux 3
1.2.2 Dalvik與ART 3
1.2.3 Framework 3
1.2.4 Standard libraries 4
1.2.5 Application 4
1.3 Android App組件架構 4
1.3.1 Android四大組件如何協同工作 5
1.3.2 應用運行上下文對象 5
1.4 Android係統源代碼目錄與係統目錄 6
1.4.1 Android係統源代碼目錄 6
1.4.2 Android係統目錄 8
1.4.3 Android App文件目錄 11
第2章 Android開發工具新接觸 13
2.1 Android開發IDE介紹 14
2.1.1 Android Studio初體驗 14
2.1.2 Android Studio配置 15
2.2 Android Studio高級使用技巧 19 .............
《Android高階進階之路:從源碼深度解析到實戰場景構建》 目錄 前言 第一章:Android係統架構與核心組件深入剖析 1.1 Android係統分層概覽(Linux Kernel, HAL, Libraries, Android Runtime, Application Framework, Applications) 1.2 Binder IPC機製:跨進程通信的基石 1.2.1 Binder驅動與用戶空間的服務端/客戶端模型 1.2.2 Parcelable接口與Binder序列化 1.3 ActivityManagerService(AMS)與PackageManagerService(PMS)源碼解析 1.4WindowManagerService(WMS)與SurfaceFlinger:UI渲染的幕後英雄 1.5 Activity生命周期與狀態管理:從源碼看職責鏈 1.6 Service生命周期與啓動模式:後颱任務的藝術 1.7 BroadcastReceiver與ContentProvider:數據共享與事件通知的實現 1.8 Android應用程序進程模型與內存管理 第二章:設計模式在Android開發中的精妙運用 2.1 單例模式(Singleton):全局資源的唯一性保障 2.1.1 餓漢式、懶漢式及綫程安全變體 2.1.2 在Android中的典型應用(Context、ImageLoader等) 2.2 工廠模式(Factory Pattern):對象的創建與解耦 2.2.1 簡單工廠、工廠方法、抽象工廠 2.2.2 框架層與應用層工廠模式實踐 2.3 建造者模式(Builder):復雜對象的構建流程 2.3.1 鏈式調用與可讀性提升 2.3.2 Android UI組件構建的藉鑒 2.4 觀察者模式(Observer):狀態變化的響應與廣播 2.4.1 Subject/Observer接口設計 2.4.2 LiveData與ViewModel中的應用 2.5 裝飾器模式(Decorator):動態增強對象功能 2.5.1 Stream API與Wrapper類的應用 2.5.2 在自定義View與網絡請求中的實踐 2.6 代理模式(Proxy):訪問控製與行為增強 2.6.1 靜態代理與動態代理 2.6.2 EventBus的底層實現原理 2.7 策略模式(Strategy):算法的封裝與切換 2.7.1 行為模式的靈活性 2.7.2 支付方式、排序算法的動態選擇 2.8 模闆方法模式(Template Method):算法骨架的定義 2.8.1 抽象與具體實現的結閤 2.8.2 框架中的通用邏輯抽取 2.9 MVC、MVP、MVVM架構模式解析與演進 2.9.1 各模式的優缺點與適用場景 2.9.2 結閤設計模式實現架構的優勢 第三章:Android性能優化與內存管理實戰 3.1 內存泄漏檢測與規避策略 3.1.1 Bitmap、Context、靜態變量的常見陷阱 3.1.2 LeakCanary的使用與分析 3.2 視圖渲染優化:卡頓的終結者 3.2.1 布局層級優化(ConstraintLayout、ViewStub) 3.2.2 列錶優化(RecyclerView、ViewHolder、DiffUtil) 3.2.3 避免過度繪製與布局嵌套 3.3 ANR(Application Not Responding)分析與解決 3.3.1 主綫程阻塞的根源 3.3.2 TraceView與Systrace工具的使用 3.4 綫程池優化與異步處理 3.4.1 ThreadPoolExecutor參數詳解 3.4.2 AsyncTask(已廢棄)與Coroutines/RxJava的替代方案 3.5 網絡請求優化與緩存策略 3.5.1 HTTP/2與HTTP/3的優勢 3.5.2 OkHttp的緩存與攔截器機製 3.6 APK瘦身與資源優化 3.6.1 ProGuard/R8的代碼混淆與優化 3.6.2 VectorDrawable與WebP的使用 第四章:Android開發中的高級主題與前沿技術 4.1 Jetpack組件深入探索 4.1.1 ViewModel、LiveData、Room、Navigation Component 4.1.2 WorkManager與後颱任務管理 4.2 Kotlin協程(Coroutines)在Android中的應用 4.2.1 協程基礎與Suspend函數 4.2.2 CoroutineScope、Dispatchers與Launch/Async 4.2.3 ViewModelScope與LifecycleScope 4.3 Jetpack Compose:聲明式UI的革命 4.3.1 Compose基礎概念(Composables, State, Recomposition) 4.3.2 Jetpack Compose與傳統View體係的對比 4.3.3 實際應用場景與最佳實踐 4.4 Android Architecture Components(AAC)的整閤應用 4.4.1 MVVM結閤Jetpack實現高內聚低耦閤 4.5 Android Jetpack Security:敏感數據安全防護 4.5.1 EncryptedSharedPreferences與EncryptedFile 4.6 Gradle構建係統高級配置與插件開發 4.6.1 Build Script的理解與定製 4.6.2 自定義Gradle Plugin 4.7 Android 11+新特性與API適配 4.7.1 範圍存儲(Scoped Storage) 4.7.2 後颱限製與應用權限管理 4.8 Flutter、React Native等跨平颱技術分析 4.8.1 混閤開發模式的優勢與挑戰 第五章:大型Android項目架構設計與實戰案例 5.1 模塊化開發思想與實踐 5.1.1 組件化、服務化、插件化 5.1.2 模塊間通信機製(ARouter、EventBus) 5.2 API網關與微服務架構在Android端的適配 5.3 灰度發布與AB測試在App中的實現 5.4 CI/CD(持續集成/持續部署)流水綫搭建 5.5 Android安全加固與代碼混淆深入 5.6 性能監控與數據埋點係統設計 5.7 案例分析:電商App、社交App、內容資訊App的架構演進 附錄 A. Android開發常用工具集 B. 常用設計模式速查錶 C. 性能優化常用檢查清單 D. Android係統源碼閱讀建議 --- 前言 在飛速發展的移動互聯網時代,Android平颱以其開放性、靈活性和龐大的用戶基礎,成為全球最受歡迎的移動操作係統之一。對於每一位投身於Android開發的工程師而言,掌握紮實的理論基礎、精通設計模式的運用,以及能夠深入理解Android係統底層的運行機製,是構築高質量、高性能、可維護性強應用的基石。 本書旨在為廣大Android開發者提供一條從基礎到進階、從原理到實戰的全麵進階之路。我們不僅僅停留在API的錶麵使用,而是深入Android係統的源碼,揭示其核心組件的工作原理,如Binder IPC機製、Activity/Service/BroadcastReceiver/ContentProvider的生命周期與職責,以及UI渲染的幕後流程。理解這些底層細節,將幫助開發者在遇到疑難雜癥時,能夠迅速定位問題根源,提供更優雅的解決方案。 設計模式是軟件工程領域的瑰寶,它提供瞭解決常見問題的成熟方案,能夠顯著提升代碼的可讀性、可擴展性和可維護性。本書將重點剖析單例、工廠、建造者、觀察者、裝飾器、代理、策略、模闆方法等經典設計模式,並結閤Android開發中的實際場景,展示如何在Activity、Fragment、View、網絡請求、數據管理等各個層麵靈活運用這些模式,以及MVC、MVP、MVVM等主流架構模式的演進與最佳實踐。 性能優化是Android開發中永恒的主題。從內存泄漏的檢測與規避,到視圖渲染的卡頓分析與優化,再到ANR的排查、綫程池的管理、網絡請求的優化以及APK瘦身,本書將提供一套係統性的性能優化方法論,並輔以實際工具(如LeakCanary、TraceView、Systrace)的使用指導,幫助開發者打造流暢、響應迅速的應用。 此外,本書還將目光投嚮Android開發的前沿領域,包括Jetpack組件的深度應用(ViewModel, LiveData, Room, Navigation, WorkManager),Kotlin協程在異步編程中的威力,以及聲明式UI框架Jetpack Compose的革新。同時,我們也會探討大型項目架構設計中的模塊化、組件化思想,以及CI/CD、安全加固、灰度發布等工程化實踐。 本書內容嚴謹,結構清晰,理論與實踐相結閤,力求為讀者提供一份既有深度又不失廣度的Android開發進階指南。無論您是初入Android江湖的新手,還是在職場中尋求突破的資深開發者,本書都將是您提升技術視野、優化開發實踐的寶貴夥伴。 第一章:Android係統架構與核心組件深入剖析 Android是一個高度模塊化的操作係統,其架構設計決定瞭應用程序的運行方式和交互邏輯。理解其分層結構,是深入探究Android奧秘的第一步。 1.1 Android係統分層概覽 Android係統可以被抽象為從底層到上層的幾個主要層次: Linux Kernel: Android運行在Linux內核之上,它提供瞭核心的係統服務,如進程管理、內存管理、設備驅動(相機、GPS、Wi-Fi等)以及安全功能。Android的硬件抽象層(HAL)與Linux內核緊密交互。 Hardware Abstraction Layer (HAL): HAL層定義瞭一套標準的接口,使得Android框架能夠與設備硬件進行通信,而無需關心具體硬件的實現細節。例如,相機HAL允許相機框架訪問設備的相機硬件,音頻HAL則負責音頻的播放和錄製。 Android Runtime (ART): ART是Android應用程序的運行時環境,它負責執行應用程序代碼。與Dalvik虛擬機(DVM)不同,ART采用Ahead-of-Time(AOT)編譯方式,在應用安裝時將DEX文件編譯成機器碼,從而提高瞭應用的啓動速度和執行效率。ART還提供瞭垃圾迴收(GC)、綫程管理和內存管理等功能。 Native C/C++ Libraries: Android係統提供瞭大量的C/C++庫,它們構成瞭Android框架的一部分,並且供應用程序調用。這些庫包括: Surface Manager: 管理屏幕顯示和Surface的創建。 WebKit: 用於處理HTML和JavaScript的渲染引擎(現在主要由WebView組件負責)。 SQLite: 用於本地數據存儲。 OpenGL ES: 用於2D和3D圖形渲染。 Media Framework: 負責音視頻的解碼、播放和錄製。 libc (Bionic): Android的C標準庫。 Java API Framework: 這是開發者日常接觸最多的層,提供瞭豐富的Java/Kotlin API,用於構建應用程序。包括Activity Manager, Window Manager, Content Providers, Resource Managers, Location Services, Notification Manager等。應用程序通過這些API與係統進行交互。 Applications: 這一層是用戶能夠直接感知到的部分,包括係統預裝的應用程序(如電話、聯係人、短信)以及用戶自行安裝的第三方應用程序。 1.2 Binder IPC機製:跨進程通信的基石 在Android中,應用程序通常運行在獨立的進程中,而係統服務也運行在各自獨立的進程中。當不同進程需要相互通信時,就需要進程間通信(IPC)機製。Binder是Android中最核心、最常用的IPC機製。 1.2.1 Binder驅動與用戶空間的服務端/客戶端模型 Binder IPC的核心是一個Linux內核模塊,即Binder驅動。它負責在用戶空間和內核空間之間傳遞數據。Binder IPC的通信模型遵循客戶端/服務端模式: 服務端(Service): 運行在某個進程中,提供服務。它會注冊一個Binder服務,並在Binder驅動中注冊一個唯一的Binder實體(Binder object)。 客戶端(Client): 另一個進程中的組件,需要調用服務端提供的服務。它會通過Binder驅動查找服務端的Binder引用(Binder reference)。 當客戶端調用服務端的方法時,實際執行流程如下: 1. 客戶端進程嚮Binder驅動發起係統調用(如`ioctl`)。 2. Binder驅動將客戶端進程的數據(包括要調用的方法、參數等)復製到內核空間。 3. Binder驅動將數據從內核空間復製到服務端進程的用戶空間。 4. 服務端進程接收到數據後,通過Binder實體(Binder object)迴調到實際的服務實現。 5. 服務端執行方法,並將結果通過Binder驅動返迴給客戶端進程。 1.2.2 Parcelable接口與Binder序列化 Binder IPC傳遞的數據需要被序列化(轉換成字節流)纔能在進程間傳輸。Android提供瞭`Parcel`對象來高效地實現序列化和反序列化。`Parcel`內部使用瞭一種非常高效的序列化方式,特彆適閤在Android設備上進行IPC通信。 對於需要在Binder中傳遞的對象,需要實現`Parcelable`接口。`Parcelable`接口主要包含兩個方法: `writeToParcel(Parcel dest, int flags)`: 將對象的數據寫入到`Parcel`中。 `createFromParcel(Parcel in)`: 從`Parcel`中讀取數據,創建對象。 此外,每個`Parcelable`對象都需要有一個`CREATOR`的`static final`成員,類型為`Parcelable.Creator`,用於創建`Parcelable`對象數組。 1.3 ActivityManagerService(AMS)與PackageManagerService(PMS)源碼解析 AMS和PMS是Android係統中兩個至關重要的係統服務,它們分彆負責管理應用程序的生命周期、進程調度以及應用程序的安裝、卸載和信息查詢。 ActivityManagerService (AMS): AMS是Android係統中最大的服務之一,它負責管理應用程序的Activity、Service、BroadcastReceiver等組件的生命周期。 Activity生命周期管理: AMS跟蹤所有應用的Activity狀態,並在設備鏇轉、內存不足等情況下決定哪些Activity應該被銷毀、哪些應該被保留。它通過 Binder 與應用的 ActivityThread 進程進行通信,實現組件的啓動、暫停、停止和銷毀。 進程管理: AMS負責啓動、監控和終止應用程序進程。當應用需要啓動時,AMS會創建相應的進程;當進程無響應時,AMS會將其殺死。 任務(Task)管理: AMS管理Activity的任務棧(Task Stack),決定Activity之間的導航關係。 PackageManagerService (PMS): PMS負責管理設備上所有已安裝應用程序的信息。 應用信息查詢: 開發者可以通過`PackageManager` API查詢應用程序的包名、版本號、圖標、權限等信息。PMS通過解析AndroidManifest.xml文件來獲取這些信息。 安裝與卸載: PMS處理應用程序的安裝和卸載過程,包括注冊應用信息、管理APK文件和數據目錄。 權限管理: PMS負責管理應用程序的運行時權限,並在用戶授權後將權限授予應用。 1.4 WindowManagerService(WMS)與SurfaceFlinger:UI渲染的幕後英雄 UI渲染是Android應用程序最直觀的組成部分,其背後涉及WMS和SurfaceFlinger的協同工作。 WindowManagerService (WMS): WMS是Android係統中負責窗口管理的係統服務。它負責接收應用程序的窗口繪製請求,並將這些請求傳遞給SurfaceFlinger。 窗口創建與管理: 當應用程序創建Activity或Dialog時,WMS會為其創建一個窗口(Window)。WMS維護著屏幕上所有窗口的 Z-order(層疊順序),以及窗口的位置、大小、可見性等屬性。 輸入事件分發: WMS還負責接收來自InputManager的輸入事件(觸摸、按鍵等),並根據窗口的層疊順序和焦點情況,將事件分發給閤適的應用程序窗口。 SurfaceFlinger: SurfaceFlinger是Android係統中負責閤成所有應用程序窗口並最終將其繪製到屏幕上的圖形服務。 Surface: 應用程序在繪製UI時,會創建一個Surface對象,這是一個內存緩衝區,用於繪製內容。 閤成(Compositing): SurfaceFlinger從所有可見的應用程序Surface中獲取內容,並將其按照WMS指定的層疊順序進行閤成。這個閤成過程通常在GPU上進行,以提高效率。 屏幕刷新: 閤成後的圖像最終會被發送到顯示硬件,實現屏幕的刷新。 1.5 Activity生命周期與狀態管理:從源碼看職責鏈 Activity的生命周期是Android開發中最基礎也最重要的一部分。理解其背後的源碼實現,有助於開發者更好地管理Activity的狀態,避免內存泄漏和UI異常。 Activity的生命周期方法,如`onCreate()`, `onStart()`, `onResume()`, `onPause()`, `onStop()`, `onDestroy()`,是由ActivityManagerService(AMS)根據應用程序進程的狀態和用戶交互情況觸發的。 `onCreate()`: Activity創建時調用,進行初始化操作,如設置布局、綁定視圖、初始化數據等。 `onStart()`: Activity可見時調用。 `onResume()`: Activity獲得焦點,準備與用戶交互時調用。這是Activity“活動”狀態的開始。 `onPause()`: Activity失去焦點,但可能仍可見(如被透明Activity遮擋)。此時應保存用戶數據,但避免耗時操作。 `onStop()`: Activity完全不可見時調用。此時應釋放大部分資源。 `onDestroy()`: Activity被銷毀時調用,用於釋放所有資源。 AMS通過Binder與應用的ActivityThread進行通信。ActivityThread中的`H` Handler接收AMS的指令,並執行相應的生命周期方法。例如,當AMS要啓動一個Activity時,會嚮ActivityThread發送`LAUNCH_ACTIVITY`消息,ActivityThread的`handleLaunchActivity`方法會調用Activity的`onCreate()`、`onStart()`、`onResume()`等方法。 1.6 Service生命周期與啓動模式:後颱任務的藝術 Service是用於在後颱執行長時間運行操作而不與用戶界麵交互的組件。 啓動Service: `startService()`: 啓動一個Service,Service會一直運行,直到調用`stopService()`或`stopSelf()`。 `startForegroundService()`: 啓動一個前颱Service,需要在通知欄顯示一個持續的通知,錶明Service正在運行。 綁定Service: `bindService()`: 允許客戶端連接到一個Service,並與其進行通信。當所有客戶端都斷開連接後,Service可能會被銷毀。 Service生命周期方法: `onCreate()`, `onStartCommand()`, `onBind()`, `onUnbind()`, `onDestroy()`。`onStartCommand()`是處理啓動Service請求的迴調,其返迴值(`START_STICKY`, `START_NOT_STICKY`, `START_REDELIVER_INTENT`)決定瞭Service在被係統殺死後是否會被重建。 1.7 BroadcastReceiver與ContentProvider:數據共享與事件通知的實現 BroadcastReceiver: 允許應用程序接收係統廣播(如網絡連接變化、電池電量低)以及其他應用程序發送的自定義廣播。 廣播的注冊: 可以在AndroidManifest.xml中靜態注冊,也可以在代碼中動態注冊(使用`registerReceiver`),動態注冊的Receiver需要在使用完成後進行`unregisterReceiver`。 `onReceive()`: 接收到廣播後,會調用此方法。注意:`onReceive()`應該盡量保持短暫,避免耗時操作,否則可能導緻ANR。耗時操作建議使用Service或WorkManager。 ContentProvider: 是一種用於管理共享數據集的組件,應用程序可以通過ContentProvider來提供或訪問其他應用程序的數據。 URI: ContentProvider使用URI來標識數據。 CRUD操作: 提供`query()`, `insert()`, `update()`, `delete()`方法來對數據進行操作。 Binder暴露: ContentProvider也是通過Binder機製暴露給其他進程的。 1.8 Android應用程序進程模型與內存管理 Android係統采用瞭一種基於進程的內存管理機製,以最大限度地提高設備性能並保持應用響應。 進程優先級: Android係統會根據進程的重要性對其進行優先級排序: 1. 前颱進程 (Foreground Process): 用戶當前正在與之交互的進程,或對用戶可見的Service正在運行的進程。這類進程是係統最後纔會迴收的。 2. 可見進程 (Visible Process): 不在前颱,但用戶可見(如Activity未銷毀但被遮擋)。 3. 服務進程 (Service Process): 正在運行`startService()`啓動的Service,但其啓動的Activity不可見。 4. 後颱進程 (Cached Process): 不再被用戶使用,但為瞭加快啓動速度而被保留在內存中的進程。當係統需要內存時,會優先迴收這類進程。 內存迴收 (Garbage Collection): ART運行時會定期執行垃圾迴收,迴收不再被引用的對象所占用的內存。 進程迴收 (Process Killing): 當係統內存不足時,會根據進程優先級來選擇性地殺死進程,以釋放內存。 理解這些係統層麵的機製,有助於開發者在開發過程中,更好地管理應用的狀態,優化資源使用,從而提升用戶體驗。 ---