原创 接口設計6大原則

面向對象的六大原則     單一職責原則 所謂職責是指類變化的原因。如果一個類有多於一個的動機被改變,那麼這個類就具有多於一個的職責。而單一職責原則就是指一個類或者模塊應該有且只有一個改變的原因。通俗的說,即一個類只負責一項職責,將一組相

原创 AS修改代碼不生效的問題

問題: 修改代碼不執行的問題 踩坑記錄: 1、配置文件 allowbackup 爲false,沒效果 2、gradle版本 3.0.1改爲3.2.0,沒效果 3、必須clean 4、不clean,xml 生效 https://blog.c

原创 HTTPS握手過程

HTTPS握手過程 HTTPS在HTTP的基礎上加入了SSL協議,SSL依靠證書來驗證服務器的身份,併爲瀏覽器和服務器之間的通信加密。具體是如何進行加密,解密,驗證的,且看下圖,下面的稱爲一次握手。 PS:圖片以下描述摘自:http:/

原创 華爲手機運行崩潰不顯示報錯信息的解決辦法

  用華爲手機做開發的同學很可能都會遇到這樣一個問題,就是程序出錯了,但是卻沒有log錯誤信息輸出,剛開始我也很懵逼,沒搞懂怎麼回事,回來問了一下別人,才知道需要這樣進行設置。這裏記錄一下。 撥號鍵盤輸入* #* #2846579#*

原创 Android 系統整體架構

前言 看了Gityuan大神的博客,最近因爲遇到一些工作上的問題踩了坑,決定正式開始閱讀Android framework層源碼,當然後面可能還會經歷一個多月的畢設流程,等畢業回來工作也正式要邁上正軌了,好幾個月沒寫博客了,前段時間因爲感

原创 JVM虛擬機內存分配

1、程序計數器 程序計數器是一塊比較小的內存空間,可以看做是當前線程所執行的字節碼的行號指示器。 多線程時,爲了線程切換後能恢復到正確的執行位置,每條線程都需要有一個獨立的程序計數器,各條線程之間計數器互不影響,獨立存儲。 我們稱這類內存

原创 哈希衝突解決

哈希函數作爲hashmap、hahstable的底層實現,會出現哈希衝突的情況,針對衝突,常用的解決方法有: 1. 開放定址法 開放定址法就是一旦發生衝突,就去尋找下一個空的散列地址,只要散列表足夠大,空的散列地址總能找到,並將記錄存入。

原创 JAVA多線程總結

開啓多線程方法 1)繼承Thread類創建線程 2)實現Runnable接口創建線程 3)使用線程池 線程池 常用線程池 4種 newCachedThreadPool創建一個可緩存線程池,如果線程池長度超過處理需要,可靈活回收空閒線程,若

原创 程序鎖邏輯

之前做的一個程序鎖邏輯功能,重新整理了一下,有許多知識點,很不錯,值得經常反思學習。 程序鎖功能簡介: 在app中程序鎖界面,羅列app所有已安裝app。如果對某個功能加鎖,每次打開對應的app就要輸入密碼, 達到保護隱私的目的。 知識點

原创 webview使用注意問題

WebViewClient.onPageFinished()。你永遠無法確定當WebView調用這個方法的時候,網頁內容是否真的加載完畢了。當前正在加載的網頁產生跳轉的時候這個方法可能會被多次調用,StackOverflow上有比較具體的

原创 Android組件化和插件化開發

Android組件化和插件化開發 什麼是組件化和插件化? 組件化和插件化 組件化開發就是將一個app分成多個模塊,每個模塊都是一個組件(Module),開發的過程中我們可以讓這些組件相互依賴或者單獨調試部分組件等,但是最終發佈的時候是將這

原创 webview安全問題

0X01 About WebView      在Android開發中,經常會使用WebView來實現WEB頁面的展示,在Activiry中啓動自己的瀏覽器,或者簡單的展示一些在線內容等。WebView功能強大,應用廣泛,但它是天使與惡魔

原创 APPLICATION學習筆記

不說話,看圖

原创 自定義控件流程

      看慕課網的視頻,整理了自定義控件的流程,從自定義屬性、測量、佈局、繪製、手勢事件、事件攔截等多個步驟。       1.自定義屬性的聲明與獲取       分析需要的自定義屬性,在res/values/attrs.xml定義聲

原创 AIDL機制詳解

一、背景   ·1、AIDL出現的原因    在android系統中,每一個程序都是運行在自己的進程中,進程之間無法進行通訊,爲了在Android平臺,一個進程通常不能訪問另一個進程的內存空間,所以要想對話,需要將對象分解成操作系統可以理