原创 Android 6.0動態權限適配

前言     最近項目發現比較多的問題是關於Android 6.0的問題,APP安裝之後,在Android 6.0之後的系統,點擊直接奔潰打不開,這是爲什麼暱?這就是Android 6.0以上的系統引入運行時權限--默認所有涉及用戶隱私的

原创 [Android設計模式之旅]——設計模式的6大原則

前言        已經很久沒有寫博客了,今天開始繼續學習Android的23種設計模式,首先在學習設計模式之前我們得先了解設計模式的六大基本原則——單一SRP(單一指責原則)、OCP(開閉原則)、LSP(里氏替換原則)、DIP(依賴倒置

原创 Android源碼分析——ViewGroup的事件分發機制(二)

通過前一篇博客View的事件分發機制,從dispatchTouchEvent說起(一)的介紹相信大家對 Android View 事件的分發機制有了很深的理解。我們知道 Android 中 View 是存在於 Activity。

原创 手擼一款Android屏幕適配SDK

1、屏幕適配的原因 Android手機屏幕碎片化嚴重,導致界面元素在不同屏幕上的顯示效果不一致。下面我們看下未對控件適配在不同屏幕上的截圖。 這張是在不同機型上未適配的截圖。 這張是在不同機型適配後的圖。 這是夜遊模擬器爲適

原创 深入理解HashMap原理(一)——HashMap源碼解析(JDK 1.8)

介紹 HashMap原理是JAVA和Android面試中經常會遇到的問題,這篇文章將通過HashMap在JDK1.7和1.8 中的源碼來解析HashMap的原理。 相關概念 數組 採用一段連續的存儲單元來存儲數據。對於指定下標的查

原创 初探JAVA代碼在虛擬機中的運行機制

前言 從這篇文章開始,後面我們將持續介紹JAVA虛擬機的工作原理。作爲一名Android程序員,我們都知道Java代碼有很多種運行方式,比如:可以在命令行中運行,可以在開發工具中運行,可以以jar文件的形式運行,甚至可以在網頁中運

原创 View的事件分發機制,從dispatchTouchEvent說起(一)

事件分發機制是android中的核心知識點和難點。相信很多人也和我一樣對於這點感到非常困惑。我看了很多篇博客和書面資料。今天我們就聊聊事件的分發機制。 一、點擊事件的傳遞規則 1、什麼是點擊事件(MotionEvent) 在瞭解

原创 Android源碼分析——View是如何被添加到屏幕的?

前言 在 Android 中,我們知道我們能看到的界面都是 Activity ,但是我們能看到的這些 View 是如何被添加到View中的暱?今天這篇文章我們就通過源碼來追蹤溯源,看看 View 究竟是如何被添加到手機屏幕上的。

原创 AS 升級之Gradle's dependency cache may be corrupt問題解決辦法

問題: 今天,發現自己的AndroidStudio可以升級2.3了,於是就興高采烈的將自己的AndroidStudio由2.2—rc1升級到 2.3 了。升級之後本以爲終於可以試試了結果讓我呆了。出現如下所示的問題: 解決辦法: 1、在

原创 在Android中運用RxJava

1、RxJava 2.01.1、什麼是RxJava和響應式編程(reactive programming)        在響應編程中,消費者對數據進行反應,這就是爲什麼異步編程也被稱爲響應式編程的原因。 響應式編程允許將事件更改傳播到已

原创 月薪過萬必會,Android核心技術面試必備知識點!

前言 路漫漫其修遠兮,吾將上下而求索! 年底了,過完年又是跳槽季,現在可以開始複習面試知識了。整理了一些Android面試的知識點,包括JAVA基礎知識,源碼解析,BAT面試題,算法面試題。由於篇幅問題不能把所有題目寫成博客,

原创 Android 常見分辨率(mdpi、hdpi 、xhdpi、xxhdpi )及屏幕適配注意事項

1 Android手機目前常見的分辨率 1.1 手機常見分辨率: 4:3 VGA     640*480 (Video Graphics Array) QVGA  320*240 (Quarter VGA) HVGA  480*32

原创 不奮發,則心日頹靡;不檢束,則心日恣肆。

前言 我很少寫一些非技術的東西,今天就扯點別的東西。聊一聊我們程序員的生活,也是聊一下最近兩年自己的一些感受吧。 身體是革命最重要的本錢 “身體是革命最終的本錢”,這句話說的非常對,我們只有好的身體能,在工作中拼出我們的未來。沒

原创 最長迴文子串——動態規劃和馬拉車算法

題目 s,找到 s 中最長的迴文子串。你可以假設 s 的最大長度爲 1000。 示例 1: 輸入: “babad” 輸出: “bab” 注意: “aba” 也是一個有效答案。 示例 2: 輸入: “cbbd” 輸出: “bb

原创 Android熱修復——深入剖析AndFix熱修復及自己動手實現

前言 去年寫過一篇熱修復的文章,那時候剛開始接觸,照貓畫虎畫的還算比較成功。但是那種修復需要重新啓動APP,也就是在JAVA層實現的熱修復。我們知道目前Android主流的修復還有在Native層實現修復的,就是在Native層替