原创 《吊打面試官》:LeakCanary源碼解析

LeakCanary.install(this)源碼如下所示: public static RefWatcher install(Application application) { return

原创 Android開發MVP模式--項目實戰

1 前言 蘇寧+App是蘇寧易購集團零售雲研發中心分銷研發中心主要產品之一,由於項目處於初期階段,業務邏輯複雜,導致業務需求變動快,常常在開發甚至測試過程中出現界面或者後臺接口調整的情況。 App客戶端如何在外部需求不斷變化的情況

原创 IntentService源碼講解

  1. 前言 Broadcast Receiver用於接收並處理廣播通知,衆所周知,onReceive(Context curContext, Intent broadcastMsg)方法用於接受通知,並在該方法體內處理消息,但是onR

原创 《吊打面試官》:使用LeakCanary快速簡單排查Android中的內存泄露

1)在項目的build.gradle文件添加: debugCompile 'com.squareup.leakcanary:leakcanary-android:1.5' releaseCompile

原创 面試官問我:Andriod爲什麼不能在子線程更新UI?

記得看文章三部曲,點贊,評論,轉發。 微信搜索【程序員小安】關注還在移動開發領域苟活的大齡程序員,“面試系列”文章將在公衆號同步發佈。 1.前言 看完《你爲什麼在現在的公司不離職?》,很多同學踏上了面試之路,作爲顏值擔當的天才

原创 獲取手機唯一識別碼IMEI

前言 獲取IMEI相信大家非常熟悉,但是項目中使用時,發現當手機卡爲電信的時候,獲取的並不是IMEI,而是MEID,什麼是MEID,爲什麼會出現這種情況呢? IMEI國際移動設備識別碼(IMEI:International

原创 《吊打面試官》:Android EventBus源碼解析

基本使用步驟 1)定義事件Event public class MyEvent { public MyEvent(String id, String message) { this.id = id;

原创 Android View 事件分發機制 源碼解析(ViewGroup篇)

本期三篇文章目錄(可點擊跳轉) 一. Android TouchEvent事件傳遞機制初識 二. Android View 事件分發機制 源碼解析(ViewGroup篇) 三.Android View 事件分發機制 源碼解析

原创 R文件報錯的原因

1. 前言 一般R文件報錯,無非是資源文件錯誤,圖片命名錯誤,但是編譯都會報錯,可以很快解決。但是前幾天,引入一個第三方aar包後,項目編譯正確,但是就是R文件報錯,找不到R文件,整個項目一片報紅。 2.錯誤方法 Clean Proje

原创 Fiddler查看Https網絡請求

前言 fiddler抓取http網絡請求相信大家都會,這邊不繼續說了,主要講解如何利用fiddler抓取https的網絡請求。 2.使用方法 正常情況下,手機無線配置完代理,可以抓取http,但是要抓https請求的時候,會

原创 過時api-Android LocalActivityManager的用法

1.前言 今天碰到一個問題,我的一個activity需要加載別人的另外一個activity,可能你會說用fragment嘛,但是我們兩個屬於不同的業務部門,各自平行開發,他不可能單獨爲了寫個fragment,但是我要顯示他acti

原创 Android性能優化之冷啓動優化

1.前言 APP冷啓動比較慢,點擊桌面圖片需要用戶等待很久,體驗較差。 2.APP啓動方式 冷啓動(Cold start) 場景:冷啓動是指APP在手機啓動後第一次運行,或者APP進程被kill掉後在再次啓動。 可見冷啓動的必要條

原创 APK瘦身之刪除多餘資源文件

前言 移動端項目迭代很頻繁,一般半年左右,app包就變得很大,並且包含很多廢棄的圖片,layout文件,本篇文章主要講如何快速定位出廢棄資源,並快速刪除。 這次瘦身使用的工作是Android Studio Lint工具 ,

原创 RecyclerView詳細介紹-----解決點擊事件,刷新錯誤(二)

RecyclerView基本使用可參考:RecyclerView詳細介紹(一) 前言 RecyclerView 沒有提供類似ListView的setOnItemClickListener方法,所以只有我們自己爲Recycle

原创 大廠面試必備之設計模式:漫畫策略模式

小安實現的代碼如下: /** * @Author: 程序員小安 * @description: 購物車 * @CreateDate: 2019/10/27 * @Version: 1.0 */ public cla