原创 【精選】JAVA算法題(二十二)

一、兩數之和 題目: /** * 不使用運算符 + 和 - ​​​​​​​,計算兩整數 ​​​​​​​a 、b ​​​​​​​之和。 * * 示例 1: * 輸入: a = 1, b = 2 * 輸出: 3 * * 示例

原创 【精選】JAVA算法題(十七)

一、鏡面反射 題目: /** * 有一個特殊的正方形房間,每面牆上都有一面鏡子。除西南角以外,每個角落都放有一個接受器,編號爲 0, 1,以及 2。 * 正方形房間的牆壁長度爲 p,一束激光從西南角射出,首先會與東牆相遇,入射點到

原创 狄克斯特拉算法

一、介紹 在前一篇博客中我們學習了廣度優先搜索算法,它解決的是段數最少的路徑,如果你要找到最快的路徑,該怎麼辦呢?爲此,可以使用本篇博客所講述的算法——狄克斯特拉算法 如果你使用廣度優先搜索,將得到下面這條段數最少的路徑。 這條路徑耗

原创 廣度優先搜索算法

一、簡介 廣度優先搜索算法(Breadth-First Search,BFS)是一種盲目搜尋法,目的是系統地展開並檢查圖中的所有節點,以找尋結果。換句話說,它並不考慮結果的可能位置,徹底地搜索整張圖,直到找到結果爲止。BFS並不使用經驗法

原创 【精選】JAVA算法題(十六)

1.髒矩形合併 題目: 在2D渲染系統中,局部渲染是常見提升渲染性能的方法。如果界面中有元素髮生了改變,我們可以將這個元素所佔矩形區域標記爲髒矩形,那麼在接下來的渲染中,我們僅對每個髒矩形所佔矩形區域執行一次局部渲染即可,無需渲染全

原创 Activity、Window、DecorView、ViewRootImpl之間的關係

我們通常寫Activity的時候在onCreate裏面都會寫上setContentView()這一步,該方法會將你指定的佈局文件加載並顯示到屏幕中,在其中會經歷一系列操作,其中也就涉及到了Activity,Window,DecorView

原创 LruCache和DiskCache總結

日常我們寫程序的時候經常會使用到網絡的圖片,如果我們每次都去網上加載,那麼性能難免會差一些,並且網絡情況並不是總是 那麼好,那麼這時候我們就需要使用緩存了,我們學習android都知道圖片的三級緩存,分別是內存緩存,硬盤緩存,網絡緩存。

原创 IntentService總結

我們平常寫程序時經常會涉及到下載或者播放音樂等耗時操作,你可能會使用Service+Thread的方式解決,但是這樣比較麻煩,如果你要串行執行多個耗時操作還要使用線程池,其實Google早就幫我們封裝好了一個框架——IntentServi

原创 HandlerThread總結

在Android系統中,執行耗時操作必須使用子線程來執行,執行完線程以後線程便會自動銷燬。但是如果如果我們有很多分步的耗時操作,如果我們不斷的創建新的線程執行,不斷銷燬線程便會消耗很多的性能,那麼該怎麼辦呢?android給我們提供了兩個

原创 AsyncTask總結

AsyncTask是android提供的輕量級的異步類,可以直接繼承AsyncTask,在類中實現異步操作,並提供接口反饋當前異步執行的程度(可以通過接口實現UI進度更新),最後反饋執行的結果給UI主線程。 一、簡介 1.AsyncTas

原创 BroadcastReceiver總結

BroadcastReceiver屬於Android四大組件之一 可用於監聽應用發出的廣播消息,並做出相應 應用場景 : 不同組件之間通信(包括應用內 / 不同應用之間)  與 Android 系統在特定情況下的通信 如當電話呼入時、網絡

原创 消息機制總結

鑑於Android的UI線程不是線程安全的,這點也很好理解,如果有多個線程更改UI界面顯示的元素的話,最終界面到底會顯示出什麼將是不確定的,這點 會讓人感覺莫名其妙,因而Android只規定主線程可以更新UI了,那麼如果我的子線程想要更新

原创 事件分發總結

一、基礎知識 1.分發對象 事件:Touch事件相關細節(發生觸摸的位置、時間、歷史記錄、手勢動作等)被封裝成MotionEvent對象 2.事件 主要發生的Touch事件大致分爲以下四種: MotionEvent.ACTION_DOW

原创 Fragment總結(二)

四、Fragment與Activity通信 1.在Fragment中可以通過getActivity得到當前綁定的Activity的實例,然後進行操作 2.Handler、EventBus public class MainActivit

原创 Fragment總結(一)

我們日常開發中經常會使用到fragment,通常會放置在主頁面上,方便切換展示信息。它擁有自己的生命週期,可以接受處理用戶的事件,並且你可以在一個Activity中動態的添加,替換,移除不同的Fragment。 一、生命週期 第一張圖展