原创 Android高工面試:RecyclerView 滾動時,新表項是如何一個個被填充進來的?舊錶項是如何一個個被回收的?

今天給大家分享一道阿里P6級面試:關於 RecyclerView 面試真題:“RecyclerView 滾動時,新表項是如何一個個被填充進來的?舊錶項是如何一個個被回收的?”這篇以走讀源碼的方式,解答這個問題。 作者:唐子玄 觸發滾動的

原创 郭神更新啦!Jetpack新成員,一篇文章帶你玩轉Hilt和依賴注入!爺青回!

本文轉自公衆號:郭霖 前言 各位小夥伴們大家好。 終於要寫這樣一篇我自己都比較怕的文章了。 雖然今年的 Google I/O 大會由於疫情的原因沒能開成,但是 Google 每年要發佈的各種新技術可一樣都沒少。 隨着 Android 11

原创 Android音視頻開發進階:蘿莉音?御姐音?視頻中的變聲特效是如何實現的

0、引 自從有了“變聲”,你永遠猜不到隔着網線的另一邊和你開黑的隊友到底是男是女。 當然,天然會僞音的我們學不來,也沒必要,這裏主要跟大家分享一個一篇關於音視頻開發中的變聲實現的技術文。 紙上說來終覺淺,時間比較充裕的小夥伴可以去B站看看

原创 媳婦看了都說好!Android JetPack組件原理之Lifecycle、LiveData、ViewModel與源碼分析技巧

前言 Lifecycle、LiveData和ViewModel作爲AAC架構的核心,常常被用在Android業務架構中。在京東商城Android應用中,爲了事件傳遞等個性化需求,比如ViewModel間通信、ViewModel訪問Activ

原创 Android面試:從12個View繪製流程大廠面試真題入手,帶你全面理解View繪製流程

一、緣起 對於安卓開發來說,我想除了 Activity 以外,就是 View 接觸的最多了。這篇文章就以面試官的角度來講講 View 的一些知識點,看看問題是如何一層層的深入下去的。 作者:ZYLAB 鏈接:https://juejin

原创 精囊篇 | 一篇文章把Handler全身摸個遍,精確到每一寸肌膚~

0. 前言 做 Android 開發肯定離不開跟 Handler 打交道,它通常被我們用來做主線程與子線程之間的通信工具,而 Handler 作爲 Android 中消息機制的重要一員也確實給我們的開發帶來了極大的便利。 可以說只要有異步

原创 媳婦面前裝筆系列—自定義View手寫實現微信啪一啪動畫效果 Android自定義View實現微信拍一拍的動畫效果

Android自定義View實現微信拍一拍的動畫效果 微信的頭像拍一拍效果可以說是很吸引人了,就是下面這個gif圖,圖片展示和實際效果還是有差距的,實際體驗效果更佳! 那麼我們如何通過自定義View,來實現微信的這種效果呢? 首先我們得把

原创 Android 編譯耗時優化:深入理解增量編譯提高開發效率 增量編譯簡介 Android 編譯打包流程 增量編譯原理 有贊 Android 編譯方案Savitar

增量編譯簡介 增量編譯是相對全量編譯而言的。所謂增量編譯,是指當源程序的局部發生變更後進重新編譯的工作只限於修改的部分及與之相關部分的內容,而不需要對全部代碼進行編譯。增量編譯對軟件開發,尤其是在調試期,可以大大縮短編譯時間, 提高編譯效率

原创 Kotlin開發首選!輕量級協程圖片加載庫—Coil,真香!

前言: Coil是Android上的一個全新的圖片加載框架,全名叫做 coroutine image loader,即協程圖片加載庫。與傳統的圖片加載庫Glide,Picasso或Fresco等相比。該具有輕量(只有大約1500個方法)、

原创 Android-第三方開源框架—插件化原理之Activity插件化(騰訊專家最佳插件化講解)

前言 四大組件的插件化是插件化技術的核心知識點,而Activity插件化更是重中之重,Activity插件化主要有三種實現方式,分別是反射實現、接口實現和Hook技術實現。反射實現會對性能有所影響,主流的插件化框架沒有采用此方式,關於接口實

原创 渣渣二本的辛酸面試之路:從深圳到杭州,從外包到螞蟻金服,4年小Android的心路歷程

寫在開頭 筆者16年於長沙一個普通二本,畢業後去了滿地都是機會的深圳。第一份工作是一家外包公司,主要業務是電商和電子支付信息安全方面的。一年後跳槽到華潤旗下一個子公司做金融。至今已工作4年。大家都知道,對於跟我一樣沒有名校背景,也沒有大廠

原创 Android Gradle 自動化多渠道打包

前言 研究這個Gradle自動化腳本初衷是爲了實現自動化打包、加固和增加多渠道,從而一鍵完成應用發佈上架應用市場前的所有操作,以達到解放雙手和節約時間成本的效果。後期有考慮配合curl指令將打包好的apk自動上傳到服務器或者託管平臺,亦或可

原创 ART視角 | 如何在native內存增長過多時自動觸發GC?如何在Java對象回收時觸發native內存回收?

本文分析基於Android R(11) 前言 GC用於Java堆內存的回收,這是人盡皆知的事實。然而現在有些Java類被設計成牽線木偶,Java對象只存儲一些“線”,其真實的內存消耗全都放到了native內存中。譬如Bitmap。對它們而言

原创 Android 懸浮窗功能的實現(附Java、KT實現源碼)

前言 我們大多數在兩種情況下可以看到懸浮窗,一個是視頻通話時的懸浮窗,另一個是360衛士的懸浮球,實現此功能的方式比較多,這裏以視頻通話懸浮窗中的需求爲例。編碼實現使用Kotlin。Java版本留言郵箱即可。 業務場景 以微信視頻通話爲例,

原创 QQ音樂Android端120萬行代碼,編譯耗時是怎樣優化的 1. 序言 2. 問題分析 3. 優化思路 4. 增量編譯的誕生 5. 核心原理 6. 結語

介紹QQ音樂團隊在增量編譯組件研發上的探索與實踐。 原文:QQ音樂Android編譯提速之路 1. 序言 工程編譯,是Android應用開發工作中的重要一環。而隨着工程代碼量膨脹,編譯耗時也越來越長,拖慢了開發效率。 這個問題在中大型