原创 Retrofit 2.0源碼分析

Retrofit2.0是用註解的方式來描述一個HTTP請求,將HTTP請求抽象成一個Java的接口,然後用了Java動態代理的方式,將這個藉口的註解

原创 android 性能、內存優化

Android 設備一種移動設備,不管是內存還是CPU都受到限制,必然要考慮性能的設計。文章將從以下方面給出一些建議。 1.佈局優化 減少佈局文件之間的層級。首先要刪除佈局文件中無用的控件和層級,再者選擇使用想能較低的控件。在選擇佈局控件

原创 Service基礎篇

Service(服務)是一個沒有用戶界面的在後臺運行執行耗時操作的應用組件。其他應用組件能夠啓動Service,並且當用戶切換到另外的應用場景,Service將持續在後臺運行。另外,一個組件能夠綁定到一個service與之交互(IPC機制

原创 socket通信簡單實現

1.所謂Socket通常也稱作“套接字”,用於描述IP地址和端口,是一個通信鏈的句柄 2.應用程序通常通過“套接字”向網絡發送請求或者應答網絡請求 3.Socket有兩種主要的操作方式:面向連接(TCP)的和無連接的(UDP)。 4.Ja

原创 HandleThread

HandleThread集成Thread,它是一種可以使用handle的Thread,它在run方法中通過Looper.prepare()來創建一個消息隊列,並通過Looper.loop(),來開啓消息循環。 @Override

原创 android進程、線程的優先級

有一個面試問題:IntentService的優先級比單純的線程高,它不容易被系統殺死,可以執行高優先級的後臺任務。爲什麼?它的背後有那些邏輯呢? IntentService的具體內容可以參照我的另外一篇文章:IntentService的源

原创 Activity源碼分析

  先附上一張Activity整個啓動過程的流程圖,藍色的字體表示調用方法所在的類,如ApplicationThread表示是ActivityThread的內部類。 startActivity(new Intent(this,MainAc

原创 Service、IntentService下載Apk

1.Service下載的APK(已驗證) Service類 public class DownloadService extends Service { /** * 安卓系統下載類 **/ Downl

原创 ThreadPoolExector(線程池)

線程池ThreadPoolExecutor的優點: 1.重用線程池的線程,可以避免因爲線程的創建和銷燬所帶來的性能開銷。 2.可以控制線程池的線程最大併發數量,避免線程之間因爲互相搶佔資源而造成的阻塞。 3.能夠對線程進行簡單的管理,並提

原创 android animation

文章的知識借鑑了很多其他大神的內容,梳理了很久,有些內容已經忘記文章的銜接了,這裏對原作者說聲抱歉了。 本篇文章介紹的都是Android 的基礎內容,很多是老生常談了,不過我總結了自己經歷的一些項目,與學習中遇到的一些有代表性的內容,寫

原创 android View

Activity中UI框架基本概念:Activity 是應用程序的基本組成部分。 一 、Activity相關概念 Activity:基本的頁面單元,提供了可視的界面,與用戶進行交互;Activity包含一個Window,window上可以

原创 static 、final區別

1. final 代表最終的或不可改變的意思,所以final 修飾的變量是一個不可改變的常量,它修飾的類不能被繼承,修飾的方法不能被覆蓋,修飾的屬性

原创 Java常用數據結構

線性表,鏈表,哈希表是常用的數據結構,在JAVA開發時,JDK已經提供,包含在java.util包中。 Java集合(用來存儲實例的容器)框架主要是有Collection和Map兩個根接口及其子接口、實現類組成。大致可以分爲Set 、Li

原创 MVC、MVP、 MVVM的粗淺認知

 MVC、MVP、 MVVM   三者的結構分別如圖所示。 MVC:Model-----View-----Controller,Model代表模型,大多時候代表的是本地數據或者是網絡獲取數據的封裝類型,數據的獲取與加載基本在這裏進行

原创 android View coordinate(座標)

座標系在二維視圖中通過X軸和Y軸兩個數字爲組合表示某個點的絕對座標。 例如(30, 100) 通常表示X軸30, Y軸100交叉的一個點。 1.View的位置主要是由它的四個頂點來決定的,分別對應:left、top、right、bot