原创 Room of Jetpack's Architecture Components

Room也是一個安卓rom框架,但作爲Android的親兒子,並且原生支持LiveData和Rxjava嵌套使用。配合上其他谷歌組件應該會更香吧 Room 主要包含三個組件: Database: 包含數據庫持有者,作爲與應用持久化相關數

原创 Kotlin中帶參的單例模式

在Kotlin中,單例模式被用於替換該編程語言中不存在的static成員和字段。 你通過簡單地聲明object以創建一個單例: object SomeSingleton 與 class 不同,object 不允許有任何構造函數,如果有需

原创 搞清kotlin中的inline、noinline和crossinline

Kotlin 使用高階函數也會帶來一些隱性地成本:產生函數對象實例、造成方法數量的增加、產生函數的調用等等。 在 Kotlin 中使用內聯函數時,有時結合這幾個關鍵字可提高程序性能。 概覽 inline: 聲明在編譯時,將函數的代碼拷貝到

原创 Observable.hide的用法

一、問題 Observable類中的hide方法有什麼用?我閱讀了該文檔,但仍然不知道它的用途,我看到很多人在使用它 Hides the identity of this Observable and its Disposab

原创 華爲手機斷點調試5秒左右自動斷開的問題

今天開發完後,程序有bug,然後使用Android studio連着我的p30斷點調試程序,發生了噁心的一幕——斷點調試幾秒後自動斷開,程序ANR。重點是之前我的p30都可以調試。 mmp,我以爲是我斷點打的有問題,檢查完程序和斷電後發現

原创 Android SharePreferences源碼解讀

前言 在安卓開發中經常被用到,它是一個輕量級的存儲類,通過key——value的形式用於保存一些配置參數。下面通過源碼分析SharePreferences 主要類 首先介紹源碼的分析過程中涉及到的一些類 PreferenceMa

原创 TextView文字左右對齊

默認Textview顯示中文英文效果如下,右邊沒有對齊 自定義TextView如下: class AlignTextView @JvmOverloads constructor( context: Context, attr

原创 Android Handler 的工作原理解析

前言 提到Handler大家應該都不會陌生,它是安卓中消息機制的主要核心類,配合MessageQueue和Looper一起使用構成了我們所熟悉的Android消息機制。Handler的主要工作是將一個任務切換到指定的線程去執行,因爲And

原创 RxPermissions源碼解析

前言 AndroidM(6.0)開始,系統增加了運行時動態權限,目的在於保護用戶隱私,防止一些敏感的危險權限在應用安裝時被隨意獲取,用戶可以清晰地選擇是否允許app某項權限,就算沒有給予某個權限,也不影響其他功能的使用,不至於令用戶無法安

原创 Android中IPC機制之Messenger

前言 Messenger翻譯爲“信使”,顧名思義,可以在不同進程中傳遞Message對象。Messenger是一種輕量級IPC方案,底層實現也是AIDL,只是對AIDL做了封裝。Messenger的使用相對於AIDL方便多,因爲Messe

原创 aidl的學習記錄

一、aidl簡介 aidl(Android Interface Definition Language ),安卓接口定義語言,在 Android 中,每一個進程都有自己的Dalvik VM實例,都有自己的一塊獨立的內存,都在自己的內存上存

原创 序列化與反序列化之Serializable和Parcelable

面試場景 Android 開發中對兩個 Activity 之前傳遞數據,應該很熟悉吧? 嗯,當然沒問題。一般採用 Intent.putXXX() 就可以實現各種輕量級數據的傳遞。 那對於自定義的 Object 呢? 直接使用 Bu

原创 Activity的生命週期和啓動模式

activity的生命週期 正常情況下activity的生命週期 如下圖所示: 整個生命週期,onCreate 和onDestroy,onStart和onStop,onResume和onPause都是一一配對的。 問題 當前Activi

原创 aidl學習記錄2

前言 首先,這篇文章主要是基於上一篇文章aidl的學習記錄來繼續學習的,所以沒看過上一篇文章的可以先看看。 AidlBookManager文件 上一篇文章通過aidl在 build/generated/source/aidl/你的 fla

原创 aidl的學習記錄3

aidl相關文章 首先放出前兩篇關於aidl的文章,沒看過的可以看下。 aidl的學習記錄 aidl的學習記錄2 前言 要實現服務端每增加一本書,會主動通知客戶端。不用客戶端一直去調用getBooks獲取最新書,採用觀察者模式。當服務端有