原创 蘋果核 - Pairing Function —— vlayout 中使用數學的小場景

Longerian: 『關於vlayout,有人在 Github 上諮詢DelegateAdapter 的構造方法裏關於 hasConsistItemType 參數的含義。我稍微做了解釋,但爲了更好的介紹這一塊知識點,我想起了之前團隊

原创 蘋果核 - Tangram Android 的設計說明

Apr 24, 2017 • Longerian 前言 前段時間開源了團隊內的vlayout項目,從 Github 上反饋來看,還是深受歡迎。 但如果僅僅是採用 vlayout 搭建頁面,使用起來還不是特別靈活,在此基礎

原创 android sparseArray源碼解析,比較hashmap

step1:背景 今天偶然看到了sparseArray,發現其主要是針對<(Integer,obj>的類型進行了優化,何爲sparse?是稀疏的意思。指的是對稀疏數組情況的討論 所謂稀疏數組:  * 就是數組中大部分的內容值都未

原创 Collection工具類中的 emptyMap() 、emptySet() 、emptySet()

Collections主要封裝了對collection進行操作的靜態方法,其中三個方法是 emptyMap() 、emptySet() 、emptySet(),主要是返回空的,但是不可變的Map,Set、List。 public s

原创 Android框架攻擊之Fragment注入,isValidFragment

摘要: 爲了適應越來越大的設備屏幕,Android在3.X後引入了Fragment概念,作用是可以在一個屏幕上同時顯示多個Activity,以達到充分利用屏幕的目的。關於Fragment的使用說明,可以閱讀《Android Fragme

原创 蘋果核 - Tangram 1.0技術架構

上一篇文章介紹了Tangram的開發思路和發展歷程,本文將對Tangram 1.0的技術架構做一個概括性的說明。讀者如果要了解更多的技術細節可以訪問Tangram主頁查看詳細文檔。 Tangram作爲一個面向常規業務產品的解決方案由3

原创 後臺保活經驗分享

“ 本文首發於InfoQ垂直公衆號『移動開發前線』。 【ID:bornmobile】分享嘉賓: 楊幹榮,微信Android客戶端基礎平臺、、性能優化負責人 保活,按照我們的理解包含兩部分: 網絡連接保活: 如何保證消息接收實時性

原创 蘋果核 - JAndFix——Java版本的AndFix方案

兄弟團隊出品,轉載自:http://www.jianshu.com/p/aaa6ce26f083 Welcome to the JAndFix wiki! JAndFix 簡述 JAndFix是一種基於Java實現的Andro

原创 正則表達式核心

前面已經寫過一篇文章《我眼裏的正則表達式(入門)》介紹過正則表達式的基礎和基本套路正則三段論:定錨點,去噪點,取數據了,接下來這篇文章,補充一點相對高級的概念: 1. 概念一:按單字符匹配 2. 概念二:匹配優先和不匹配優先

原创 C++模板:函數模板、類模板、模板與繼承

  C++模板:描述             C++提供一種模板的機制來減少代碼重複。比如:對於同一樣函數使用不同的數據類型,int,double,char等。C++模板屬於“元編程”的範疇。 C++ 模板函數        

原创 view繪圖Path類

Android畫圖Path的使用 /** * Paint類介紹 * * Paint即畫筆,在繪圖過程中起到了極其重要的作用,畫筆主要保存了顏色, * 樣式等繪製信息,指定

原创 atomic包的原理及分析

Atomic簡介 Atomic包是Java.util.concurrent下的另一個專門爲線程安全設計的Java包,包含多個原子操作類。這個包裏面提供了一組原子變量類。其基本的特性就是在多線程環境下,當有多個線程同時執行這些類的

原创 SQL Join各種內聯外聯說明

Visual Representation of SQL Joins C.L. Moffatt, 3 Feb 2009 CPOL    4.96 (406 votes) Rate t

原创 ArraylList的擴容機制和使用ensureCapacity()方法提高性能

ArrayList的擴容規則是變成原來最大容量的1.5倍+1 具體爲什麼,現在看一下源碼: [java] view plain copy public boolean add(E e) {          en

原创 重寫View的onMeasure方法

@Override       protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {           // TODO Auto-generat