原创 Android平臺上基於OpenGl渲染yuv視頻

本篇文章已授權微信公衆號 guolin_blog (郭霖)獨家發佈 更多音視頻開發文章,請看:音視頻開發專欄 介紹一個自己剛出爐的音視頻播放錄製開源項目 前言 這是我音視頻專欄的第一篇實例解析,也算是入門篇,重點講下如何使用Ope

原创 從字節碼角度仔細剖析一個HelloWorld程序

前言: 由於本文所討論的內容比較枯燥,而且很長,有大量圖片,所以建議在安靜的地方用電腦花一段時間耐心閱讀,筆者也儘量用輕鬆的方式講解。 1. 變身的HelloWorld 2. 初識字節碼 3. 解析HelloWorld字節碼 4.

原创 從動態代理角度看Retrofit

本篇文章已授權微信公衆號 玉剛說 (任玉剛)獨家發佈 1.Retrofit簡介 retrofit(Retrofit官方)已經誕生好幾年了,從誕生開始一直都是Android應用開發最流行的網絡請求框架,準確來說,是網絡請求框架一個巧

原创 介紹一個自己剛出爐的安卓音視頻播放錄製開源項目

更多文章請看:Android音視頻開發專欄 這是一個非常特別的春節,新型冠狀病毒蔓延,武漢的天空,似乎瀰漫着一層濃厚的陰雲,全國上下,人人自危。 歷史總是驚人地相似,秦人不暇自哀而後人哀之,後人哀之而不鑑之。又一次,就像網上說的一

原创 Android 圖片加載框架Universal-Image-Loader源碼解析

本篇文章已授權微信公衆號 guolin_blog (郭霖)獨家發佈 更多關於安卓源碼分析文章,請看:Android源碼分析專欄 Universal-Image-Loader(項目地址)可以說是安卓知名圖片開源框架中最古老、使用率最

原创 淺析安卓事件分發機制源碼

更多關於安卓源碼分析文章,請看:安卓源碼分析 最近工作需要需要做一些比較複雜的自定義View,其中事件分發的處理自然少不了,結合之前閱讀過的大量資料,工作是完成了,但是對事件分發的處理總覺得很不清晰,知其然不知其所以然的感覺讓人很

原创 聊下Volley源碼(整體流程)

更多關於安卓源碼分析文章,請看:安卓源碼分析 Volley源碼分析系列: 1.聊下Volley源碼(整體流程) 2.聊聊Volley源碼(網絡請求過程) 3.聊聊Volley源碼(緩存流程) 最近過年回來工作很清閒,於是變想找點事

原创 一篇文章帶你快速瞭解JNI開發~

最近在學習JNI,以下是個人的學習筆記,當然寫在這裏也希望能給初學JNI的朋友幫助~ JNI概述 官方定義 做過安卓的都知道JNI,關於JNI Oracle文檔給出的定義是: The JNI is a native program

原创 通過反射實現的仿ButterKnife功能Demo

用過ButterKnife的朋友都知道,ButterKnife可以使用@BindView和@OnClick等註解就可以省略掉繁瑣的findViewById和setOnClickListener等代碼,使得業務代碼更加簡潔清晰。對B

原创 一次互聯網音樂領域巨頭的面試

前言: 最近到一家國內互聯網音樂領域巨頭面試,對此作記錄,希望對其他人也有幫助。因爲在疫情期間,所以採用遠程視頻面試,個人覺得相比以前方便了很多,希望以後面試也都改爲遠程視頻面試吧哈哈。 一面: 自我介紹 最擅長什麼安卓技術(我回

原创 java多線程設計模式之消費者生產者模式

 所謂生產者,就是產生數據的線程,消費者,就是使用數據的線程。兩個線程的速度差將成爲最大的問題,而該模式就是緩衝兩者的速度差。一般來說,生產者和消費者會有多個。 以下是典型的例子程序。假設一個場景,有一個桌子Table,有若干個廚師Mak

原创 模仿源碼自定義HashMap

  HashMap的實現原理簡單來說是通過數組加鏈表實現的,結合數組查找和鏈表插入刪除效率高,使得HashMap在數據處理方面高效。鏈表元素是鍵值對數據,數組元素爲鏈表(源碼中爲鏈表的第一個鍵值對元素),同一個鏈表的元素是鍵值哈希值對

原创 java多線程設計模式Worker Thread(線程池)

想象一個場景,一個工廠在生產玩具,在一個車間裏,有幾個工人,每次生產部件準備好車間外的人就將部件放到車間的一個桌子上,工人每次做完一個玩具就從桌子上取部件。在這裏,注意到,部件並不是直接交給工人的,另外一點,工人並不是做完一個部件就回家換

原创 java多線程設計模式之Immutable Pattern

上一篇講了Single Thread Execution模式,主要使用了synchronized對某一個代碼加鎖,防止被多個線程同時訪問導致數據出錯。這一篇講下不需要synchronized的情況。 因爲synchronized是一種開銷

原创 java多線程設計模式之ReadWriteLock(讀寫鎖)

在之前的模式中,爲了確保線程安全,每次讀寫數據只允許一個線程操作數據類對象,但是多線程同時讀數據也是安全的,所以爲了提升性能,是不是可以有一種模式,允許同時多線程讀,但是隻能一條寫線程在操作數據類對象呢?答案是肯定的。現在就來介紹下讀寫鎖