最近愈來愈多的人開始談論架構。我周圍的同事和工程師也是如此。儘管我還不是特別深刻理解MVP和DDD,可是咱們的新項目仍是決定經過MVP來構建。這篇文章是我經過研究和學習各類文章以及專題討論所總結出來的,它包括如下幾點:爲何愈來愈多的人開始關注架構?首先,MVP是什麼?哪一種架構纔是最好的,MVC,MVVM仍是MVP?MVP的利與弊java
Android的multidex帶來的性能問題-減慢app啓動速度react
在安卓社區中,65k方法數的限制是一個被屢次說起的問題。目前解決這個問題的辦法就是用multidex。雖然multidex是谷歌給出的一個很是棒的辦法,可是我發現了它對app啓動性能存在嚴重的影響,這點尚未在社區引發重視。我這篇文章的就是爲那些尚未據說過這個問題(可是想使用multidexing)的開發者以及那些使用了multidexing,可是想觀察本文解決辦法所能能贏得性能的夥伴而寫的。android
Xposed 框架是一款能夠在不修改APK的狀況下影響程序運行(修改系統)的框架服務,基於它能夠製做出許多功能強大的模塊,且在功能不衝突的狀況下同時運做。Zygote 進程是 Android 的核心,全部的應用程序進程以及系統服務進程都是由Zygote進程 fork 出來的。Xposed Framework 深刻到了 Android 核心機制中,經過改造 Zygote 來實現一些很牛逼的功能。程序員
Java Functional Reactive 編程github
咱們如何才能將傳統的變量式線程同步管理轉移到基於數據的異步流式編程上?試試 Reactive Programming 吧!這篇分享包含的主題有: reactive 擴展,observers ,以及 RxJava 的工做原理。儘管不容易上手,可是一旦上手,其樂無窮。算法
開發者的目標是打造用戶喜歡的應用。使用體驗更好的應用用戶就願意投入更多錢,在 Google Play 商店得到越高評分的應用會得到更多下載。那麼如何衡量應用的質量?從一種角度說,應用的質量涉及如下幾個方面:應用確實解決了用戶的需求;應用不只設計美觀並且易於使用;應用穩定可靠、性能好、不浪費流量、不耗電等;應用有創新,使用了最新的 Android 特性;數組
什麼是 MVVM ?咱們一步步來,從 MVC 開始。MVC 咱們都知道,模型——視圖——控制器。爲了使得程序的各個部分分離下降耦合性,咱們對代碼的結構進行了劃分。他們的通訊方式也如上圖所示,即View層觸發操做通知到業務層完成邏輯處理,業務層完成業務邏輯以後通知Model層更新數據,數據更新完以後通知View層展示。
寫代碼不可避免有Bug,一般狀況下除了日誌最直接的調試手段就是debug;那麼你的調試技術停留在哪一階段呢?僅僅是下個斷點單步執行嗎?或者你知道 Evaluate Expression, 知道條件斷點;但是你據說過日誌斷點嗎,Method Breakpoint
, Exception Breakpoint
呢?還有高大上的 Field Watchpoint
?
這個選題很大,但並非一開始就有這麼高大上的追求。最初之時,只是源於對Xposed的好奇。Xposed幾乎是定製ROM的神器軟件技術架構或者說方法了。它究竟是怎麼實現呢?我本意就是想搞明白Xposed的實現原理,但隨着代碼研究的深刻,我發現若是不瞭解虛擬機的實現,而僅簡單停留在Xposed的調用流程之上,那真是對Xposed最大的不敬了。
關於圖片加載庫的思考,咱們爲何要用圖片庫呢? 圖片庫一般會對圖片加載邏輯進行封裝、優化,好比多級緩存/異步線程調度/圖片壓縮變換,有了這些特性,開發者再也不須要關注內存佔用、OOM、網絡請求等問題,而只需關注業務自己的邏輯,這對提升生產效率有很大幫助。
[Java併發包學習八]深度剖析ConcurrentHashMap
多線程環境下,使用Hashmap進行put操做會引發死循環,致使CPU利用率接近100%,因此在併發狀況下不能使用HashMap。雖然已經有一個線程安全的HashTable,可是HashTable容器使用synchronized(他的get和put方法的實現代碼以下)來保證線程安全,在線程競爭激烈的狀況下HashTable的效率很是低下。
Android靜默安裝實現方案,仿360手機助手秒裝和智能安裝功能
以前有不少朋友都問過我,在Android系統中怎樣才能實現靜默安裝呢?所謂的靜默安裝,就是不用彈出系統的安裝界面,在不影響用戶任何操做的狀況下不知不覺地將程序裝好。雖然說這種方式看上去不打攪用戶,可是卻存在着一個問題,由於Android系統會在安裝界面當中把程序所聲明的權限展現給用戶看,用戶來評估一下這些權限而後決定是否要安裝該程序,但若是使用了靜默安裝的方式,也就沒有地方讓用戶看權限了,至關於用戶被動接受了這些權限。
目測性能是可觀的。儘管H5包的離線化隔絕了弱網對秒出的干擾,設備本地 IO 耗時也是不能忽視的,算上zip的解壓縮,僅在設備本地 IO 徹底一個 HTML(包含其攜帶的資源文件)也會達到秒級的耗時,在iphone5上也會有0.5秒左右的白屏時間。
不久前Twitter展現了具備現代感的心形動畫-做爲star圖標的替代。雖然心形標誌更廣泛和昂貴,可是今天咱們嘗試複製新的動畫,使用舊的星星圖標。雖然實現這個動畫最簡單的方法是使用 Frame Animation,可是咱們嘗試用更靈活的方法來實現-手動繪製並用屬性動畫。這篇文章只是概要,沒有深刻的技術細節。
上週Google上線了一個名爲stream的功能,能夠在搜索結果中直接將一個App呈現給用戶,即便你並無安裝過這個App,也能正常使用它。這聽起來確實很酷,目前Android L以上設備,Wifi環境下可用,且暫時只支持英語搜索結果,能夠看看下面這個圖感覺下。
一個能夠幫助你高亮話題標籤("#example")以及捕獲點擊話題標籤事件的庫。
一個可讓你給任何 View 添加 Twitter 心型按鈕動畫效果的庫。
Twitter 心型按鈕動畫效果。
一個可讓你很容易的建立基於貝塞爾曲線的 Drawable 動畫的庫。
能夠將 Icon-font 轉換爲 Drawable 或者 Bitmap 的庫。
在系統權限邏輯的基礎上進行了包裝。
不可錯過的 Java8 教程。
一個簡單易用的 App 主題引擎。
支持手勢縮放的自定義 TextView,控件自己和文字都會隨着手勢同時放大和縮小。
效果很讚的 TextView 的文本顯示動畫。
此項目是Android插件開發框架完整源碼及示例。用來經過動態加載的方式在宿主程序中運行插件APK。
一個能夠幫你生成漂亮的以及多種文檔格式簡歷的工具。
一個經過 checkstyle, pmd, findbugs等工具在你執行 "gradle assembleXX" 或者 構建你的 App 的時候幫你檢測代碼質量的項目。
一個經過 yaml 格式文件幫你處理 variant 特定設置的 Gradle 插件。
證券交易系統,面臨的都是低延遲,高併發,事務性的操做。1. 咱們應用Event Sourcing、Leader Election模式,解決交易中間件的高可用問題(多活,零延時切換)。2. 運用LMAX Disruptor解決服務內的高併發,低延遲消息傳遞。3. 基於PGM組播實現的交易總線解決服務任意擴展的問題。
不少朋友來找我幫忙,說想要招人求推薦,我通常狀況下都很爲難。只有我和你熟識、瞭解你在作的事情、明白你的能力,纔敢幫你簡單宣傳一下,至於靠譜的至交好友,我也定當竭力幫忙。可是,在如今的整個市場背景下,錢不是錢,程序員、設計師等技術人才由於不太正常的市場而在此特殊供需關係下價格飆升,再無人關注技術質量,由於招聘者自己並不尊重技術。