原创 Retrofit加kotlin協程爲何如此優雅

前奏 Retrofit的正常寫法先囉嗦一遍如下: interface AipInterface { @GET("article/list/1/json") fun getHomeList() : Call<WanBaseResp

原创 快速排序

快速排序效率高,空間複雜度底,在工作中一般是用的最多的排序算法,所以需要掌握。 在看快速排序之前,先看一下另一個比快排簡單點的問題,就是荷蘭國旗問題 給定一個數組arr,和一個數num,請把小於num的數放在數組的左邊,等於nu

原创 Android Hook入門

Hook 英文意思是鉤子,可以把一段執行着的代碼鉤下來,然後加入我們自己的邏輯,最後在放回去。比如我們可以Hook住一段系統代碼,在執行系統代碼之前加入我們自己的邏輯。 Hook技術主要用到java反射和java動態代理兩個知識點

原创 佔位式插件化之加載靜態廣播

接着前幾篇文章來:由於插件中的廣播是在manifest中配置的,所以就不能使用上一篇中的方法來註冊廣播了,首先我們需要了解一下APK的解析原理 第一步我們要知道靜態廣播是什麼時候註冊的? 在手機開機的時候,系統誰掃描所有的app,

原创 Andorid Hook進階

上一篇文章學習了Hook的簡單用,這次來做個稍微麻煩一點的,我們知道新建一個Activity之後我們需要在manifest中註冊,否則啓動的時候就會崩潰,現在使用Hook的方法繞過檢查來啓動一個沒有註冊的Activity 如果我們

原创 Hook式插件化

上一篇文章Andorid Hook進階,通過Hook系統源碼實現了不經過AndroidManifest註冊也能跳轉到對應Activity的功能。這一篇來分析一下怎麼通過Hook的方式來實現插件化 從Android類加載的源碼開始分

原创 佔位式插件化之加載Service和動態廣播

接着上一篇加載Activity來,啓動Service和啓動Activity的套路是一樣的,宿主端定義一個代理的Service,標準的module中定義一個Service的標準接口,然後開始幹。 先來到標準module中添加一個Se

原创 佔位式插件化之加載Activity

在一些大型的項目中,經常會用到插件化,插件化的優點有不少,即插即用,把不同的功能打包成不同的APK文件,通過網絡下發到APP端,直接就可以使用,不用通過應用市場即可隨時增加新功能,非常適用於功能多又需要敏捷開發的應用 可以實現插件

原创 Andorid組件化跳轉路由

簡單介紹 路由在組件化工程中有非常重要的作用,兩個沒有相互引用的module之間怎麼通信呢。 可以使用EventBus,使用廣播,使用類加載,使用反射,scheme,隱式意圖等等,這些方法各自都有優缺點,現在開源用的比較多的路由框

原创 LeakCanary原理

前言 Leakcanary是由Square公司開源的一款輕量的第三方檢測內存泄露的工具 主要原理 watch一個即將要銷燬的對象,比如監控一個activity處於什麼狀態。 先來看一下java內存中幾個比較重要的部分 棧(st

原创 Binder機制

Binder概述 Binder在我們大Android中是無處不在的,無論是調用媒體服務,傳感器,還有我們經常在用的startActivity ,startService等等都在使用着Bindder來完成相應的功能。整個Androi

原创 Handler機制

Handler在我們日常開發中會經常用到,它主要用於處理異步消息,當發出一個消息之後,首先進入到一個消息隊列,發送消息的函數即可返回,而另外一個部分在消息隊列中逐一取出,然後對消息進行處理。 雖然經常用到它,但是用的方式不正確也會

原创 AOP面向切面編程--解放你的雙手

假如現在有一個需求,在對數據庫進行增刪改查的時候,假如執行每個操作之前都要求把數據備份一下。這個時候怎麼做比較好呢,難道要在每個方法之前都寫一個save()方法嗎,如果用到增刪改查的地方非常多,這時候就非常麻煩了。 通過java中

原创 OpenGl ES入門

什麼是OpenGL Open Graphics Library,圖形領域的工業標準,是一套跨平臺的、專業的、圖形變成軟件接口。它用於二維、三維圖像,是一個功能強大的調用方便的底層圖形庫。 OpenGL與硬件無關,可以在不同的平臺比

原创 直播用到的技術

服務器端搭建 Nginx Nginx是一個高性能的HTTP和反向代理服務器,用來處理前端(Andorid ios Web)過來的請求,以前在一臺服務器上需要部署多個服務,需要通過端口號執行訪問的具體服務,部署完Nginx之後就不需