原创 框架手寫系列---通過反射手寫EventBus框架

一、EventBus原理與分析 EventBus作爲常用框架之一,從早期的EventBus2.0到目前3.+,經歷了從反射到apt實現的轉變,本文以原理分析爲主,以反射方式實現早期的2.0框架。 EventBus的核心在於:將被註解的方法

原创 Android中Plugin插件工程的自動生成

一、Task作用 Android Studio中對新建Gradle Plugin工程,並沒有很好的支持,需要按要求新建特定的文件夾與文件。 針對這種情況,通過task任務,自動生成一個這樣的腳手架工程,可以自動生成Gradle Plugi

原创 框架手寫系列---apt方式實現ARouter框架

一、ARouter ARouter是阿里開源的組件通訊框架,在組件化開發上也是十分常用的框架之一。 它的主要作用是各個activity之間,無需直接依賴,就可以直接跳轉與傳參。主要用處是爲組件化的解耦,添磚加瓦。 二、ARouter原理

原创 框架手寫系列---apt註解處理器方式實現ButterKnife框架

一、ButterKnife ButterKnife作爲常用框架之一,主要用於簡化代碼,減少重複代碼。 這裏主要注重原理與核心,將分步驟手寫它的核心代碼。 ButterKnife最常用的是去除代碼中的findViewById,以註解的方式代

原创 Android序列化——Serializable與Parcelable

序列化這個名詞,我們在學習java的時候早有耳聞,與之相對的還有反序列化。 在java中我們印象中常用的序列化方式是實現Serializable接口。 那麼,在android中,我們如何實現這樣的序列化和反序列化呢? 序列化的意義 序列化

原创 Andorid動畫——屬性動畫

上一篇主要記錄了android補間動畫與幀動畫的使用:http://blog.csdn.net/yangzhaomuma/article/details/50530355。 這裏則是屬性動畫的使用和說明。 屬性動畫與補間動畫、幀動畫的寫法

原创 8583報文手動組包——詳細分析每個示範域

8583報文作爲一種應用較廣的報文,有它獨特的格式。 網上有關8583報文的說明很多。但涉及到每個域的詳細例子就較少了。這裏列出各個域的詳細例子,供參考。 8583報文: 報文組成: 報文頭【長度(2字節)+TPDU(5字節)+報文版

原创 Android多媒體應用——短信收發

短信收發在應用中我們也經常會用到,特別是短信的發送。 那麼,在android中如何實現呢? 短信發送 短信的發送是很簡單的。android提供了一個短信管理類來處理,具體代碼如下: SmsManager smsManager=SmsMan

原创 Android遠程接口之AIDL——Parcelable、in、out、inout簡例

AIDL簡義 Android中的數據傳輸、方法調用等,常見的是集中在應用程序內的Activity之間,如Activity-A傳遞到Activity-B。 這樣的數據傳輸、方法等都是在一個應用程序間調用,也就是在一個進程內。那如果我們要在不

原创 Android之自定義角標(更新紅點)——BadgeView

角標定義 Android或者IOS,在軟件更新、新收到信息時,界面上圖標在右上角常常會顯示一個角標,顯示更新或者新收到的信息數量。 這就是我們所說的角標。 角標實現 要實現這個角標,我們一想有以下幾種方式: 1、放置一個隱藏的圖片在app

原创 Android內存泄漏--基礎介紹與延伸解析

    摘要:Android中內存泄漏的的分析。 Android的內存基礎知識     Android系統在安裝、加載一個apk文件時,會在系統內存中劃出一部分作爲該apk的運行內存。 這個運行內存的大小,目前隨着Android設備的進化

原创 Andorid動畫——補間動畫與幀動畫

簡介 Android在3.0之前,是補間動畫和幀動畫的天下。後續3.0後,纔出現了屬性動畫,補充了以上兩種動畫的不足之處,使android中的動畫效果更豐富和適應更多的場景。 這裏先介紹補間動畫與幀動畫。 補間動畫——Tween 補間動畫

原创 JetPack架構---LiveData、ViewModel搭建MVVM結構工程

  一、MVVM與JetPack MVVM,是Model-View-ViewModel的簡寫。Model:數據,View:UI相關,ViewModel:UI相關數據與控制。 JetPack提供的組件LiveData與ViewModel,十

原创 JetPack架構---LiveData的使用與示例

點此,查看 :LiveData的原理解析 本文介紹:LiveData的單獨使用、LiveData與ViewModel結合使用、LiveData的複雜使用 一、LiveData的單獨使用 以一個整型數據爲例。將該整型數據用MutableLi

原创 JetPack架構---ORM數據庫Room的使用

Room 庫在 android在sqlite 的基礎上做的一個封裝,讓用戶能更方便的使用數據庫。 Room庫實際與GreenDao數據庫類似,優於GreenDao的是: (1)Room庫的sql語句,在編譯時,編譯器會做檢查。 (2)整體