原创 DownloadManager的使用和解析

DownloadManager的介紹 DownloadManger是android 2.3(API 9)開始提供的系統服務,用於處理長時間的下載操作。應用場景是客戶端請求一個URL地址去下載一個目標文件。DownloadManger可

原创 Android大尺寸圖片加載問題

對於大尺寸圖片加載,如何正常加載顯示且不發生OOM? 圖片採樣,應用場景:圖片全部顯示在控件上 圖片按區域加載,應用場景:高清巨圖,不允許壓縮,如世界地圖、清明上河圖 圖片採樣 圖片採樣的方法,是根據需要顯示圖片控件的大小對圖片進行壓

原创 RecyclerView和ConstraintLayout的介紹和使用方式

RecyclerView的介紹 RecyclerView是 android-support-v7-21 開始提供的一個控件,官方對於它的介紹是:RecyclerView是 ListView的升級版本,更加先進和靈活,用於在有限的窗口中展示

原创 Handler的工作原理

引入一個BUG 在介紹工作原理之前,先引入一個問題(BUG),爲什麼在子線程中執行 new Handler() 會拋出異常? new Thread(new Runnable() { @Override public voi

原创 Android動態權限

Android的權限聲明 當APP需要訪問APP沙箱外部數據或資源的區域,則需要聲明權限。APP必須在AndroidManiffest文件中,通過<uses-permission>聲明所需的權限。例如APP需要網絡連接,則在manifes

原创 ThreadLocal的作用和實現原理

ThreadLocal的作用 ThreadLocal是一個線程內部的數據存儲類,通過它可以在指定的線程中存儲數據,數據存儲以後,只有在指定的線程中可以獲取到存儲的數據,對於其他線程來說則無法取到數據。 ThreadLocal的主要作用

原创 MVC、MVP和MVVM

MVC 1、簡介 MVC全名是Model View Controller,用一種業務邏輯、數據、界面顯示分離的分離的方法組織代碼,在改進和個性化定製界面及用戶交互的同時,不需要重新編寫業務邏輯。如圖所示。 其中, Model:處理數據、

原创 RemoteViews的作用和工作原理

RemoteViews的作用 RemoteViews表示的是一個View結構,它可以在其他進程中顯示,由於它在其他進程中顯示,爲了能夠更新它的界面,RemoteViews提供了一組基礎的操作用於跨進程更新它的界面。簡而言之,RemoteV

原创 AsyncTask的使用方式和版本演進

AsyncTask是一個輕量級的異步任務類,它可以在線程池中執行後臺任務,然後把執行的進度和最終結果傳遞給主線程並在主線程中更新UI。從實現上來說,AsyncTask封裝了Thread和Handler,通過AsyncTask可以方便地執

原创 AndroidStudio Build過程解析

AndroidStudio點擊build按鈕後,AndroidStudio就會編譯整個項目,並將apk安裝到手機上,這個過程就是Android工程編譯打包過程。主要的流程是編譯 >> DEX >> 打包 >> 簽名。 APK構建概述