原创 架構師修煉之路-站在架構師的角度如何妙用自定義註解

今天要跟大家分享一個造輪子的案例。 EventBus我相信大家都有使用過,雖然現在已經過時,有更好的框架來替代。但是EventBus剛出來的時候,還是受到了很多開發者的青睞和追捧。而EventBus的事件訂閱/發佈思想是非常值得學習的

原创 深入理解Kotlin中的泛型(協變、逆變)

一、泛型的必要性 【1.1】沒有泛型之前 在說明爲什麼有泛型之前,我們先看一段代碼 List AList = new ArrayList(); //編譯通過,運行不報錯 A.add(new B()); //編譯通過,運行報錯 A a =

原创 Handler這些巧妙設計你知道多少?

Handler問題思考? 線程間通信機制是什麼?怎麼完成線程間通信的? 由什麼組成? 調度策略是什麼樣的?消息循環機制,消息分發機制? 爲什麼這麼設計? 1. 線程間通信機制Handler Handler 是典型的生產者-消費者模型。是

原创 35+的互聯網程序員,人都哪去了?

作者:嶽京杭 最近,經常被問到這樣的問題,比如這樣的: 目前在頭條實習,發現周圍真的幾乎沒有35+員工,那互聯網大部分的35+員工都去哪了呢?以及怎麼看待有一些關於35的言論總被人提? 1、第一波互聯網從業人員纔將35,所以不存在3

原创 一起動纔夠嗨!Android CoordinatorLayout 自定義 Behavior

CoordinatorLayout 的今生前世 聯動效果 現代化的 Android 開發一定對 CoordinatorLayout 不陌生,CoordinatorLayout + AppBarLayout + CollapsingTool

原创 Android Canvas 繪製小黃人

學習往往是枯燥的,如果能用一個有趣 Demo 來學習和練習技術,那對知識的掌握就會更牢固。我在學習 Canvas 繪製 API 的時候就是這樣做的。 效果圖   我覺得這個繪製小黃人的自定義 View 就很有意思,也爲我後來工作中的

原创 Android開發之 Wifi掃描分析

使用 開始wifi掃描的代碼很簡單: val wifiManager = context.getSystemService(Context.WIFI_SERVICE) as WifiManager val success = wifiM

原创 Android_Binder原理分析

Binder是什麼? Binder可以實現進程與進程之間的通信(IPC), Binder是Android底層系統的一個特色了,它很好地解決了進程間通訊的問題。   可能很多小夥伴對Binder感覺有點兒陌生,但是Binder在Andro

原创 仿寫Arouter框架實現Activity的跳轉

Arouter 框架是主要由三個模塊組成,annotation,compiler,core. annotation :自定義註解,用來聲明需要路由的頁面(Java Library) compiler :註解解析,在編譯時根據自定義註解生

原创 集成HMS Scan Kit掃碼SDK,輕鬆實現手機掃碼選購

場景 在購物類APP中,通過掃描二維碼的入口,掃描商品的二維碼,直接顯示商品信息和購買鏈接,方便客戶選購商品。                                                         整體方案 開

原创 擁抱組件化開發,手淘項目內部架構分享

前兩天技術羣裏一個小夥伴突然問:                                     不知道你有沒有遇到過,每次過年回家 或 相親都會遇到這樣的段子 親戚 (或未來丈母孃) : 你現在幹啥呢?  我:我是做Androi

原创 騰訊面試官——說說你對 binder 驅動的瞭解?

作者:Android面試官 原文地址:https://juejin.im/post/5eeea016e51d45740e4273e8 面試官提了一個問題:說說你對 binder 驅動的瞭解。這個問題雖有些 "面試造火箭" 的無奈,可難點就

原创 Android自定義View-View的繪製流程

View的繪製基本由measure()、layout()、draw()這三個函數完成 函 數 作 用 相 關 方 法 measure() 測量View的寬高 measure(),setMeasuredDimension(),onMeasu

原创 從 Android 源碼分析自定義 View 相關知識點

以下源碼來自於 Android P。 onMeasure() MeasureSpec MeasureSpec 是 View 裏的一個內部類,其用來表示 View 的測量模式和測量大小,代碼如下: public static class

原创 面試官:Android系統中GC什麼情況下會出現OOM

這個問題可以這樣回答: (1)數據庫的cursor沒有關閉。 (2)Bitmap對象不使用時沒有采用recycle()釋放內存。 (3)Activity中的對象的生命週期大於Activity。 (4)忘記註銷監聽器或者觀察者。 (5)由非