原创 java多線程相關問題彙總

1、線程和進程的關係 根本區別:進程是操作系統資源分配的基本單位,而線程是處理器任務調度和執行的基本單位。 資源開銷:每個進程都有獨立的代碼和數據空間(程序上下文),程序之間的切換會有較大的開銷;線程可以看做輕量級的進程,同一類線

原创 Android卡頓檢測及優化

前言 之前在項目中做過一些Android卡頓以及性能優化的工作,但是一直沒時間總結,趁着這段時間把這部分總結一下。 卡頓 在應用開發中如果留意到log的話有時候可能會發下下面的log信息: I/Choreographer(1200

原创 Android松耦合監聽前後臺切換框架

應用處於後臺滿足什麼條件 要判斷當前應用是否處於後臺,有個很簡單的標準,當應用處於後臺的時候,應用中所有的activity肯定都不處於運行中狀態,並且應用所有處於運行中的activity在切後臺時肯定會執行onPause方法。因此

原创 Room Database完全解析

前言 Android數據持久層直接使用SQLite很麻煩,Google官方推出了Room, Google對Room的定義: The Room persistence library provides an abstraction

原创 圖解Android中的Binder機制

前言 Binder做爲Android中核心機制,對於理解Android系統是必不可少的,關於binder的文章也有很多,但是每次看總感覺看的不是很懂,到底什麼纔是binder機制?爲什麼要使用binder機制?binder機制又是

原创 tinker熱更新原理

什麼是 Tinker? Tinker 是一個開源項目(Github鏈接),它是微信官方的 Android 熱補丁解決方案,它支持動態下發代碼、So 庫以及資源,讓應用能夠在不需要重新安裝的情況下實現更新。 熱更新方案比較 當前市面

原创 史上最全面的Android學習資源彙總

優質學習資源 Android Developer Android Training 中文版 Material Design 中文版 Android Weekly 中文版 極客學院 Wiki Android 板塊 Android

原创 Android編譯器Dalvik vs ART

Dalvik Dalvik是Just In Time(JIT)編譯器,也就是說及時編譯器。在Dalvik編譯器中,只有當前需要執行的代碼纔會變編譯,剩下的代碼在後面要使用的時候纔會被編譯。Dalvik僅僅只是編譯運行時需要的部分

原创 三幅圖弄懂EventBus核心原理

前言 好多分析EventBus的文章,喜歡上來就貼源碼,我看了好多次總是迷迷糊糊的,這次花時間徹底整理一下EventBus,發現EventBus核心其實就是三幅圖,這三幅圖涉及的是三個HashMap表,弄懂這三幅圖那麼EventB

原创 Android中Handler問題彙總

前言 handler機制幾乎是Android面試時必問的問題,雖然看過很多次handler源碼,但是有些面試官問的問題卻不一定能夠回答出來,趁着機會總結一下面試中所覆蓋的handler知識點。 1、講講 Handler 的底層實現

原创 Java clone方法深拷貝淺拷貝完全解析

Java中對象的創建 clone顧名思義就是複製, 在Java語言中, clone方法被對象調用,所以會複製對象。所謂的複製對象,首先要分配一個和源對象同樣大小的空間,在這個空間中創建一個新的對象。那麼在java語言中,有幾

原创 減少apk大小

前言 apk的大小對於下載apk應用的用戶多少有直接的影響,由於手機內存的限制和網絡環境的限制,同一個應用隨着apk越大下載的和使用的人數就會越少,所以減少apk的大小是非常重要的。本文從apk編譯過程,apk的組成,apk大小減

原创 JDBC完全解析

前言 以前做項目的時候用到了JDBC操作mysql數據庫,後面百度面試問到數據庫的時候又忘了,最近幾天把項目重新看了一遍,查了相關的文章把JDBC做一個總結。 JDBC的結構 JDBC(Java DataBase Connecti

原创 計算機網絡--TCP協議面試知識點總結

前言 昨天(2017.8.12)晚上9點多的時候突然接到百度的面試電話,上來就讓自我介紹,介紹完之後就開始問我知不知道滑動窗口協議,知不知道三次握手和四次揮手。於是今天又花點時間把TCP協議相關的做一下總結。 TCP特點 ①TCP

原创 android高級進階之12條代碼優化以及性能優化

從去年七月份(2018/7/13)入職到現在(2019/8/15)已經一年多了,這一年從一個菜鳥開始慢慢學習到了很多東西,記錄一下在開發過程中遇到的代碼優化和性能優化經驗,方便讓其他人少走彎路。 性能優化 1、裝箱帶來的內存消耗