原创 設計模式學習-裝飾者模式

目的:爲對象動態添加功能。 說明:裝飾者(Decorator)和具體組件(ConcreteComponent)都繼承自組件(Component),具體組件的方法實現不需要依賴於其它對象,而裝飾者組合了一個組件,這樣它可以裝

原创 okHttp使用和原理分析

基本用法 GET 在okHttp,每次網絡請求就是一個Request,在Request裏填寫我們需要的url、header等其他參數,再通過OkHttpClien構造出Call,Call內部傳入請求參數,得到回覆,並將結果告訴

原创 圖片加載框架Glide簡單使用和緩存原理

基本使用流程 Glide最基本的使用流程就是下面這行代碼,其它所有擴展的額外功能都是以其建造者鏈式調用的基礎上增加的。 GlideApp.with(context).load(url).into(iv); 其中的GlideApp

原创 RxJava2如何實現鏈式調用和線程切換

線程切換 背壓 背壓在計算機系統中指網絡擁塞信息逆流通過。在rxjava中理解爲:被觀察者發送消息太快以至於它的操作符或者訂閱者不能及時處理相關的消息,從而操作消息的阻塞現象。 在RxJava2.0中官方,推出了Flowable

原创 設計模式學習-生成器模式(Builder).md

定義:一步一步創建一個複雜對象的創建模型,將一個複雜對象的構建與它的表示分離,使得同樣的構建過程可以創建不同的表示。 使用場景: 相同的方法,不同的執行順序,產生不同的結果時; 多個部件或零件,都可以裝配到一個對象中

原创 EventBus的簡單和原理

基本介紹 EventBus是一款針對Android優化的發佈/訂閱事件總線。主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,Service,線程之間傳遞消息.優點是開銷小,代碼

原创 java數據結構-樹

樹的相關定義 定義的遞歸定義:樹或者是一顆空樹,即不包含任何結點,或是一顆非空樹,即至少包含一個結點。在一顆非空樹中,有且只有一個根結點,其餘結點被分成m顆互不相交的子樹,每棵子樹又是一顆樹。(根據定義可知樹是一種遞歸的數據結構) 結點的

原创 常見查找和排序算法

查找算法 順序查找 查找成功最多要n 次,平均(n+1)/2次,時間複雜度爲O(n)。 優點:既適用順序表也適用單鏈表,同時對錶中元素順序無要求,給插入帶來方便,只需插入表尾即可。 缺點:速度較慢。 public int searchB

原创 性能優化-安裝包大小優化

安裝包大小優化 安裝包大小對應用的使用沒什麼影響,但提高來用戶的下載門檻。減少安裝包大小用戶更願意下載和體驗。減少安裝包大小之前先了解安裝包(APK文件)的構成。 應用裝包的構成 APK是一個壓縮文件,包含Android應用程序的所有內容

原创 AMS和Activity啓動過程

AMS AMS的功能 ==統一調試應用程序的Activity==:應用程序要運行Activity,首先會報告給AmS,然後由AmS決定該Activity是否啓動。AMS必須知道各個應用程序運行的Activity。 ==內存管理==: Ac

原创 Android中Bitmap的使用

Bitmap使用需要注意哪些問題 ? 要選擇合適的圖片規格(bitmap類型):通常我們優化Bitmap時,當需要做性能優化或者防止OOM,==我們通常會使用RGB_565==,因爲ALPHA_8只有透明度,顯示一般圖片沒有意義,Bitm

原创 5.接口(Thinking in java學習五)

接口和內部類爲我們提供了一種將接口與實現分離的更加結構化的方法。 抽象類和抽象方法(abstract) 抽象基類,簡稱抽象類:通用接口建立起一種基本形式,以此表示所有導出類的共同部分。 抽象方法:僅有聲明而沒有方法體。 繼承一個抽象類,

原创 性能優化-內存優化

內存優化 雖然Android有有優秀的內存管理機制,內存釋放有垃圾收集器(GC)來回收。但內存的不合理使用還是會造成一系列的性能問題,比如短時間分配大量內存對象、內存泄漏等問題。本篇講述如何檢測內存問題和解決,希望在內存優化方面能夠提供一

原创 Android進階面試題

1. Android系統啓動流程是什麼? ==Android系統核心流程==: ==啓動電源以及系統啓動==:當電源按下時引導芯片從預定義的地方(固化在ROM)開始執行,加載引導程序BootLoader到RAM,然後執行。 ==引導程序B

原创 跨進程通信和Binder機制

Android中進程和線程的關係和區別 線程是CPU調度的最小單元,同時線程是一種有限的系統資源;而進程一般指一個執行單元,在PC和移動設備上指一個程序或者一個應用。 進程有自己獨立的地址空間,而進程中的線程共享此地址空間,都可以併發執行