原创 android jni開發指南

開發環境說明 Android Studio 3.3.2 java version “1.8.0_201” NKD 19.2.5345600 com.android.tools.build:gradle:3.3.2 工具準備 這裏假

原创 androidStudio Java註釋模板

1,設置File Header /** * fileDesc * Created by ${USER} on ${DATE}. * Email [email protected] */ 進入設置頁面,如圖 2,設置Live T

原创 Android微信智能心跳方案

前言:在13年11月中旬時,因爲基礎組件組人手緊張,Leo安排我和春哥去廣州輪崗支援。剛到廣州的時候,Ray讓我和春哥對Line和WhatsApp的心跳機制進行分析。我和春哥抓包測試了差不多兩個多禮拜,在我們基本上摸清了Line和What

原创 調查 RAM 使用情況

開發 Android 應用時,請始終注意您的應用使用了多少隨機存取存儲器 (RAM)。儘管 Dalvik 和 ART 運行時會執行例行垃圾回收 (GC),您仍然需要了解應用何時以及在哪裏分配和釋放內存。爲了提供穩定的用戶體驗,使 Andr

原创 簡析okhttp運用的攔截器模式

序言: 在軟件工程中,一個好的軟件作品不僅表現在功能齊全、界面美觀、操作簡單易上手等方面,還在於軟件的實現方式、代碼結構、功能擴展和後期維護。優秀的軟件就好比結實耐用又好看的房子,地基紮實,框架結構堅固同時預留有足夠合理的門、窗、水、

原创 Retrofit源碼分析

OkHttpCall ServiceMethod serviceMethod = serviceMethod; Object[] args = args; ExecutorCallbackCall<T> implements

原创 Android Tinker熱修復集成解析

首先解釋下tinker是什麼,官方如是解釋:Tinker是微信官方的Android熱補丁解決方案,它支持動態下發代碼、So庫以及資源,讓應用能夠在不需要重新安裝的情況下實現更新。當然,你也可以使用Tinker來更新你的插件。看到這,應該知

原创 OkHttp源碼分析

OkHttpClient通過Builder建立一個實例對象, Request通過Builder建立一個請求對象 OkHttpClient根據Request new一個RealCall RealCall enqueue進隊列 ne

原创 Android自定義View實現簡單的折線圖、柱狀圖

首先說第一個柱狀圖,實現很簡單。一個自定義View,重現裏面的OnDraw方法。然後利用paint,canvas繪製帶填充的長方形即可。每個長方形的X軸平方View的x軸即可,長方形的高度通過簡單的計算即可得到。下面上柱狀圖代碼 pa

原创 記錄Android app雙進程的內存理解

序言 前段時間實際項目開發中遇到一個很奇怪的空指針問題,根據app的奔潰日誌定位到源碼,發現對象在使用前已經初始化了,爲何還會報空指針異常呢,感覺此bug不應該出現。然後就一遍遍的問題排查,始終無頭緒,後面偶然想起app是雙進程運行,按正

原创 android FragmentTabHost的使用技巧及注意事項

目前主流的app主頁都是由幾個tab頁組成,因此我們開發app的時候一般都會涉及到主頁tab的切換實現。常用的主頁tab切換實現有viewpage和FragmentActivity組合,FragmentTransaction的add、re

原创 Volley源碼分析

Volley cacheDir=com.hai.cache RequestQueue DiskBasedCache cacheDir BasicNetwork HurlStack ExecutorDeliv

原创 關於HttpUrlConnection請求網絡加載證書與不加載證書的區別

關於https網絡請求這一塊,個人感覺內容挺多的,多到難以理解,於是不自覺的又動手研究了下。關於https的有關介紹,我這裏推薦一個博客:https原理:證書傳遞、驗證和數據加密、解密過程解析,下面是我測試HttpUrlConnectio

原创 android 自定義實現滾動View:WheelView

項目中用到一個比較覺得不錯的控件:WheelView,即上下滾動View。它是繼承ScrollView實現,在Android各版本上的效果都是如下:也許在git上有許多這樣功能的控件,但個人認爲這個控件實現的方式簡單,比較讓人容易理解,對

原创 Android異常:RelativeLayout$LayoutParams cannot be cast to android.widget.LinearLayout$LayoutParams

項目開發中碰到一個異常比較奇怪,因爲這個異常一旦出現會然你很頭疼,因爲從奔潰日誌中你基本找不到有用的信息,比如這個: java.lang.ClassCastException: android.widget.RelativeLayout