原创 Kotlin 之泛型詳解

文章目錄泛型約束泛型的型變UnsafeVariance星投影泛型實現原理內聯特化案例: 泛型約束 fun <T : Comparable<T>> maxOf(a: T, b: T): T { if (a > b) {

原创 編碼,加密,Hash

文章目錄對稱加密非對稱加密密鑰和登陸密碼Base64壓縮與解壓縮媒體數據的編解碼序列化Hash字符集字符集 對稱加密 使用祕鑰和加密算法對數據進行轉換,得到的無意義數據以爲密文;使用祕鑰和解密算法對密文進行逆向轉換,得到的數據即

原创 代碼及版本管理

加入動態更新後如何管理我們的代碼分支 一般的解決方式 ​ ​ master:線上分支,用來存放線上代碼 ​ dev :開發分支 ​ micael 和 bob :個人分支 ​ 一般的流程就是首先是個人開發,功能完成後合併到 dev。

原创 AndFix 使用詳解

AndFix基本介紹 ​ 已經好幾年沒有維護了,阿里出了一個收費的。這個已經被放棄了。這裏只是簡單的介紹一下用法。如果不想看的,可以直接跳過 ​ AndFix是一個在線修復bug的解決方案,而不是重新發布Android App

原创 熱修復的使用選擇

熱修復的基本概念 ​ 什麼是熱修復:通過補丁動態的修復,或者更新 app 的行爲 ​ 熱修復有哪些好處:如果線上的 app 出現bub,或者需要修改,就可以使用熱修復。可以再用戶無感知的情況下修復 app 。 ​ 有了熱修復

原创 Groovy 之 面向對象

文章目錄對象接口trait元編程 對象 ​ 首先創建一個 Person 類 class Person { String name; Integer age; /** * 定義方法 ,def 代

原创 Kotlin 之類和接口

文章目錄類簡寫接口類繼承屬性擴展方法/屬性空類型安全的概念例子總結建議 類 默認爲 pulic class Two { var x:Int = 0;//必須初始化 //構造方法 construct

原创 Android IPC 之 AIDL 跨進程通信

文章目錄IPC 簡介IPC 基礎,主要包含三個方面:1,Serializable 接口2,Parcelable 接口3,Binder使用 AIDL實戰:通過 AIDL 實現跨進程通信1,創建子進程的 Service2,完成連接服務

原创 Android 友盟簡單快速集成

1,打開友盟官網,進行註冊,添加 app ,記住 key。 2,集成,一共兩種方式,使用 jar 包和 自動集成,這裏我們選擇自動集成,如下: ​ 在項目的 gradle 中添加如下: repositories {

原创 Android Settings,SourceSet,自定義Plugin

Settings 類 ​ 決定一個工程中有哪些模塊是需要被處理的。 public interface Settings extends PluginAware, ExtensionAware { //默認的文件名稱

原创 kotlin 之函數進階

文章目錄高階函數內聯函數幾個有用的函數集合變換與序列集合的聚合操作SAM 轉換案例 高階函數 ​ 參數類型包含了函數,或者返回類型爲函數 fun needsFunction(block: () -> Unit) { //調用函數

原创 Kotlin 之反射詳解

文章目錄反射的常見用途反射常用的數據結構獲取泛型實參案例:深拷貝案例:映射案例:釋放對象引用不可空類型 反射是允許程序在運行時訪問程序結構的一類特性 程序結構包括:類,接口,方法,屬性等語法特性 Kotlin 字節做了

原创 裝飾者模式詳

裝飾者模式 ​ 動態的將責任附加到對象身上,若要擴展功能,裝飾者提供了比繼承更有彈性的替代方案 問題 看一個飲料喝調料的問題 1,消費者需要一杯咖啡 2,消費者提出要求:要加糖 3,消費者提出要求:要加兩份牛奶 這個時候你會用什

原创 Android 自定義簽字板

自定義簽字板,實現名字居中,增加邊距等 可直接獲取到 bitmap,uri,File ,並且直接進行保存到手機,支持 Android Q 下面看一下效果: 上面清除的展示了名字居中的效果,並且四周設置了內邊距 下面看一下實現代碼

原创 動態代理源碼閱讀

動態代理在靜態代理的基礎上提供了在運行時生成代理類的功能。因此相比於靜態代理不用自定義代理類了。 文章目錄用法使用場景源碼閱讀 用法 interface DemoListener { fun demo(str: Strin