原创 BroadcastReceiver

一、什麼是BroadcastReceiver? 是android四大組件之一、是app內的全局監聽器,運行於主線程中; 可以用於進程內通信,也可以用於進程間通信(跨進程通信); 主要分爲兩種:無序廣播、有序廣播 無序廣播:任何

原创 線程和線程池

android沿用了java的線程模式,其中線程也分主線程和子線程。 一、線程 1、主線程和子線程 一個程序在運行,也就是一個進程在執行,一個進程裏面可以有很多線程。 主線程:也叫UI線程,用於運行四大組件和用戶之間的交互。主線程是指進

原创 OOM異常(二)

文末有福利!!!!!! 前情回顧 在上一篇:安卓面試系列–OOM異常(一)中,已經討論了安卓中OOM發生的原因和如何有效加載高清圖片的。現在在此回顧一下: 安卓OOM發生的原因:圖片分辨率過大,導致加載圖片所需的內存超過系統給進程(app

原创 Universal-Image-Loader圖片加載框架

引言 在前面的安卓面試系列–OOM異常(二)中我們已經給大家簡單分析了一下Universal-Image-Loader,並且還在文末給大家提供了一個已經封裝好的工具類,不知道大家覺得好不好用呢?今天我們就來分析一下安卓中幾大主流的圖片加載

原创 網絡框架okHttp源碼分析

引言 在上一篇博客中,我們講解了okHttp網絡框架的基本使用,包括get請求,post請求,單個文件上傳,多個文件上傳,其中最主要的就是各個請求的request的封裝。我們來回顧一下,get請求只需要一個url即可,post請求需要一個

原创 網絡編程

1、IP地址和端口號是什麼? IP地址由4個0-255之間的數字組成,每個網卡有一個唯一的IP地址, 在同一個網絡內部,IP地址不能相同(IP衝突)。 IP地址的概念類似於電話號碼、身份證這樣的概念。 爲了方便記憶, 專門創造了域名的概

原创 service

一、什麼是Service? Service是一個可以在後臺長時間運行操作而且沒有用戶界面的組件。它是運行在主線程中的,所以不能在Service中執行耗時操作。它可以由其他組件來啓動,比如activity或者broadcast,服務一旦啓動

原创 多線程

引言 上一篇安卓面試系列–線程和線程池我們只是簡單的介紹了一下線程,重點放在了線程池上。我們都知道線程是程序運行的最小單元,但是它不能無限的創建,因爲線程的創建和銷燬都需要消耗系統資源,但是我們可以創建有限的線程來提高我們程序的效率,所以

原创 內存泄漏(二)

引言 首先我們先來寫一個程序模擬一下內存泄漏,方法很多,上一篇安卓面試系列–內存泄漏(一)中我們講了很多造成內存泄漏的原因,不知道大家還記不記得,不記得的話記得多看幾遍,然後自己默寫處出來。這裏還是帶大家簡單過一遍吧,首先是單例模式的靜態

原创 Binder機制

一、Binder的由來? android的底層使用的是Linux內核,而Linux爲了保證系統的穩定性,使用了進程隔離的機制,讓不同的進程運行在不同的虛擬地址空間中,這樣就可以防止兩個進程A篡改進程B的數據。但是有時候我們也需要兩個進程之

原创 OOM異常(一)

一、什麼是OOM? 首先在開始我們今天的學習之前,我們必須要了解安卓的系統內存分爲存儲內存(ROM)和運行內存(RAM),而我們今天要講的OOM就是和RAM有關,這一點必須要明確。現在的手機大多是2G的運行內存,可能有3G或者4G,總之,

原创 Fragment

Fragment(碎片)可以理解爲activity中界面的一部分,我們可以將多個fragment組合起來放到activity中,或者在多個activity中重用一個fragment。 一、Fragment爲什麼被稱爲第五大組件? 首先在使

原创 事件分發

爲什麼會有事件分發機制? 因爲android中的view是樹形結構的,View可能會重疊,當我們點擊一塊區域的時候,可能會有多個View響應,這個時候就不知道這個事件該判給誰,所以引入了事件分發機制。 PhoneWindow W

原创 網絡框架okHttp之基本使用

引言 開發一個app,我們首先想到的肯定是搭建網絡框架和圖片框架,圖片框架我們之前已經詳細介紹了Universal-Image-Loader,對於它的使用以及實現原理我們都做出了詳細的講解,還有不理解的就去,這兩篇博客中去看看:安卓面試系

原创 Activity

一、簡述一下Activity的生命週期 首先在回答這個問題之前,我們先來說一下什麼是Activity。 Activity是安卓中與用戶進行交互的接口,它提供了一個界面,可以讓用戶進行點擊、滑動等一系列操作。 在瞭解了activity是