Kotlin語言1.0Beta發佈,JetBrain介紹其設計理念android
2010年,長達是十年之久的Java開發讓JetBrains的工程師認爲老舊的Java語言已經嚴重阻礙了生產力。他們認爲是時候開發一款現代化的JVM語言了,這也是由於他們有足夠的資源和專家。自己作各類IDEs起家的JetBrains就開始着手新工具的開發——一個編程語言。git
深刻理解Android之AOPgithub
你們都知道OOP,即ObjectOriented Programming,面向對象編程。而本文要介紹的是AOP。AOP是Aspect Oriented Programming的縮寫,中譯文爲面向切向編程。OOP和AOP是什麼關係呢?首先: l OOP和AOP都是方法論。我記得在剛學習C++的時候,最難學的並非C++的語法,而是C++所表明的那種看問題的方法,即OOP。編程
Android實戰之你應該使用哪一個網絡庫?segmentfault
目前基本上每一個應用都會使用HTTP/HTTPS協議來做爲主要的傳輸協議來傳輸數據。即便你沒有直接使用HTTP協議,也會有成堆的SDK會包含這些協議,譬如分析、Crash反饋等等。固然,目前也有不少優秀的HTTP的協議庫,能夠很方便的幫助開發者構建應用,本篇博文中會盡量地涵蓋這些要點。設計模式
Android M新特性Doze and App Standby模式詳解性能優化
從Android6.0開始,Android提供了兩種省電延長電池壽命的功能:Doze和App Standby;表現形式:當設備沒有鏈接到電源,設備進入Doze模式時,系統將經過延遲最近用戶沒有使用的應用程序的後臺CPU運做及網絡活動,讓應用程序處於App Standby狀態,以此來減小電池消耗。谷歌表示,在Nexus5和Nexus6上測試,當屏幕處於關閉狀態,平均續航時間提升30%;網絡
幾周以前,我在Droidcon NYC上有過一次關於Android性能優化的演講。.我在這個演講中花費了大量的時間,由於我想經過真實的例子展示性能問題,以及我是經過什麼樣的工具去發掘這些問題的。由於時間緣由,在演講中我不得不捨棄一半的內容。在這篇文章中,我會總結在演講中我所討論的全部內容,而且給出實例。框架
試想這個場景,應用起來之後,轉屏。轉屏之後,舊MainActivity會destroy,新MainActivity會重建,致使單例ImageUtil從新getInstance。很不幸的是,因爲instance已經不是空的了,因此ImageUtil不會重建,還持有以前的Context,也就是以前的那個MainActivity實例的context
攜程Android App的插件化和動態加載框架已上線半年,經歷了初期的探索和持續的打磨優化,新框架和工程配置經受住了生產實踐的考驗。本文將詳細介紹Android平臺插件式開發和動態加載技術的原理和實現細節,回顧攜程Android App的架構演化過程,指望咱們的經驗能幫助到更多的Android工程師。
圖片一般是移動端流量耗費最多的部分,而且佔據着重要的視覺空間。合理的圖片格式選用和優化能夠爲你節省帶寬、提高視覺效果。在這篇文章裏我會分析一下目前主流和新興的幾種圖片格式的特色、性能分析、參數調優,以及相關開源庫的選擇。
在平常的Android開發中,日誌打印是一項必不可少的操做,咱們經過分析打印的日誌能夠分析程序的運行數據和狀況。然而使用日誌打印的正確姿式又是怎樣呢,如何屏蔽日誌信息輸出呢,本文將逐一進行回答。
通常的Android應用程序都是用Java語言編寫的,在Dalvik虛擬機或ART虛擬機中運行的。可是,出於對性能的考慮,Android也容許使用JNI接口,直接調用原生(Native)程序。這些程序都是直接被編譯成平臺支持的彙編指令,效率天然比在虛擬機中運行的要高。不過,如今ART虛擬機出現了,JNI調用在性能方面的優點被大大縮減。
使用gradle打包apk已經成爲當前主流趨勢,我也在這個過程當中經歷了各類需求,並不斷結合gradle新的支持,一一改進。在此,把這些相關的東西記錄,作一總結。
MVVM_Android-CleanArchitecture
"Architecture is About Intent, not Frameworks" - Robert C. Martin (Uncle Bob),Uncle Bob 的這句話套在 MVVM 上也是適用的, MVVM 也僅僅是架構模式(Architectural pattern),其有一套本身的理論概念(pattern)而不是規定的具體實現(或 Frameworks)。早以前在知乎上相關問題的回答(android UI設計MVVM設計模式討論?)中也簡單提到過 MVVM 了,M-V-X 的關係如上圖,那麼這一次博主把 Fernando Cejas(android10) 的 Android-CleanArchitecture 項目中的 MVP 實現重構成了用 MVVM 來實現。
去年10月底換到了新公司,作移動研發組的負責人,剛開始接手android項目時,發現該項目真的是一團糟。首先是其架構,是按功能模塊進行劃分的,原本按模塊劃分也挺好的,但是,他卻分得太細,總共分爲了17個模塊,而好幾個模塊也就只有兩三個類而已。但應用自己其實比較簡單,要按功能模塊來分的話,最多五個模塊就夠了。
在前一篇文章《Android項目重構之路:架構篇》中已經簡單說明了項目的架構,將項目分爲了四個層級:模型層、接口層、核心層、界面層。其中,最上層的界面,是變化最頻繁的一個層面,也是最複雜最容易出問題的一個層面,若是規劃很差,很容易作着作着,又亂成一團了。
前兩篇文章Android項目重構之路:架構篇和Android項目重構之路:界面篇已經講了個人項目開始搭建時的架構設計和界面設計,這篇就講講具體怎麼實現的,以實現最小化可用產品(MVP)的目標,用最簡單的方式來搭建架構和實現代碼。 IDE採用Android Studio,Demo實現的功能爲用戶註冊、登陸和展現一個券列表,數據採用咱們現有項目的測試數據,接口也是咱們項目中的測試接口。
馮森林(無鋒) @oasisfeng 大神的新項目,旨在帶來更加乾淨的 Android 環境。
實現Android多apk/dex方式的apk加載,支持資源分包.
一種徹底無侵入的換膚方式,支持插件式和應用內,無需重啓Activity.
一個能夠聯動交互的Canvas。
仿汽車之家下拉刷新效果
一個可滑動的卡片View堆疊效果的控件。
Search-View-Layout
一個模仿5.0系統撥號器搜索聯繫人效果的搜索視圖佈局。
TextViewForFullHtml TextViewForFullHtml是對原生TextView解析Html格式文本的加強。