原创 android binder 機制概述

       首先從概念上來說,什麼是Binder,簡單來說Binder是一種跨進程的通訊方式,從Android Framewok 來說,binder是serviceManager連接各種manger 和相應ManagerService

原创 android 暗黑模式項目適配過程

 在Android 10 開始安卓開始支持暗黑模式,個人感覺是仿照ios 來做的,不過android 的碎片化比較嚴重,各個廠商定製嚴重,沒有辦法去強制推廣,ios 在系統升級13 並且必須適配暗黑模式,看看吧,人家是強制.但是我們也不能

原创 多進程間通信Messenger使用

Messenger 信使 也是進程間通信的一種方式,但是它的好處在於不用像aidl 一樣必須要定義aidl 接口,然後通過接口來通信,本質上messenger 的實現底層也是通過aidl 實現的。 實現原理是客戶端通過綁定服務端servi

原创 設計模式靜態-代理

代理要分爲幾個角色,代理人,被代理人,代理具體事物 代理具體事物:即要幹什麼事情,說的通俗點就是具體做事內容,比如說老闆想做個記錄下每個員工的基本信息系統,功能就只有插入和查詢(代理具體事物),但是他又想做的好看點,體驗好點,於是他找到產

原创 多進程間通信AIIDL使用

AIDL 是Android上提供的一套進程間通訊的機制,在多進程間的通信上他是比較常見的,那爲什麼要用aidl 呢,我們的四大組件都可以實現跨進程,我只能說使用的場景有所不同罷了。 1.activity 可以跨進程調用另一個進程 的act

原创 Gson源碼解析之-fromJson

上面我們學習了gson 的序列化過程方法 toJson 的源碼,相信對很多的流程有了一個瞭解,緊接着我們來學習下gson反序列化過程,fromJson .還是老樣子,代碼一點一點看。 我們先模擬一個反序列化過程 String json=

原创 Gson中Expose註解的使用

接着上篇SerializedName註解的使用 來看下Expise 註解的使用。 該註解只有在 你使用GsonBuilder去構造Gson時,同時調用excludeFieldsWithoutExposeAnnotation()方法 才起作

原创 如何自定義一個註解並獲取註解

註解是跟多java 架構經常用到的,那如何自己定義一個註解,今天我們學習註解的定義和使用。 所有的註解類型都繼承自這個普通的接口(Annotation)。 元註解 『元註解』是用於修飾註解的註解 通常有以下幾種 @Target:註解的作用

原创 Gson源碼解析之-toJson

Gson 是開發中我們經常使用的一款json 解析框架,也是Google 推出的諸多良品之一,今天我們就從源碼的角度看下gson 是如何來做序列化的,即如何通過toJson方法來做序列化的。  首先是獲取Gson對象,只是Gson提供的對

原创 反射的簡單使用

      Java的反射(reflection)機制是指在程序的運行狀態中,可以構造任意一個類的對象,可以瞭解任意一個對象所屬的類,可以瞭解任意一個類的成員變量和方法,可以調用任意一個對象的屬性和方法。這種動態獲取程序信息以及動態調用對

原创 簡單的鐘表自定義控件

簡單的鐘表自定義控件 效果圖: 代碼如下:`/** Created by LCT Time:2019/6/11 10:36. Annotation: / public class MyClockView extends

原创 Java泛型解惑上界通配符和下界通配符

<? extends T>:是指 “上界通配符(Upper Bounds Wildcards)” <? super T>:是指 “下界通配符(Lower Bounds Wildcards)” 1 爲什麼要用通配符和邊界? 使用泛型的過程中

原创 android studio如何與git綁定

1.準備,下載window上的git, 下載地址 ;在studio中設置git插件:File->Setting->Version Control->Git, 然後可以點擊Test測試一下,如下圖:那麼你就設置成功了(當然首先你要把git

原创 List對象排序通用方法

List對象排序通用方法   在數據庫中查出來的列表中,往往需要對不同的字段重新排序,一般的做法都是使用排序的字段,重新到數據庫中查詢。如果不到數據庫查詢,直接在第一次查出來的list中排序,無疑會提高系統的性能。 只要把第一次查出來的結

原创 openCV OpenCV Manager package was not found! Try to install it? 問題記錄

首先說一點我用的是比較新的opencv版本。 回到正題,爲啥會出現這個問題呢,先看幾段代碼。 @Override protected void onResume() { super.onResume();