原创 Android自定義ViewGroup

自定義ViewGroup與自定義View有一個非常重要的不同點是:需要複寫onLayout(),記住一定是需要自己實現這個方法,否則當你調用這個view.addView()時,就會發現add進去的view永遠不顯示,令人頭疼啊。

原创 Gradle build 報錯:Received status code 400 from server: Bad Request

android studio構建報錯。 錯誤提示是某個依賴無法下載,但是點擊鏈接,反應是能下載的,鬱悶至極。問題應該出現在android studio的代理上面。有可能是某次你設置或代理,即使後續你關閉代理,但是真正執行的時候依然

原创 IOC框架手動實現

流行的註解框架是butterknife,使用註解框架主要是爲了提高編碼效率,儘可能地少寫findviewbyid這種重複代碼。註解分爲編譯期註解和運行時註解,butterknife是編譯期註解,接下來自己實現的該框架是運行時註解。

原创 shell腳本學習-05

79.文本操作命令:sed awk 這些命令操作文本時,是一行一行地處理的,如果該行匹配到了關鍵字或者正則表達式,那麼該行被接受並打印在屏幕上,然後讀取下一行並進行操作。 sed操作符不會修改原本的文件,如果想得到過濾後的結果,需

原创 shell腳本學習-04

65.IFS:文本分隔符 默認的文本分隔符是’ ',但是可以手動設置爲其他的,如:‘:’ ‘|’ ': ’ cities=Delhi:chennai:bangaluru:kolkata old_ifs="$IFS" IFS=":"

原创 Shell腳本學習之路---01

用的較少的關鍵字命令: 1、at:(automatic)代表自動執行某個任務 例子: ``` at 10am mar 31 2015 at> echo "taxes due" at> ^D(ctrl+D代表存儲該任務) ``` a

原创 Kotlin版本升級導致編譯不過的問題

昨天給項目升級時(升級gradle以及kotlin版本),發現升級後代碼竟然無法編譯通過,androidstudio給的編譯錯誤提示如下: Caused by: org.jetbrains.kotlin.codegen.Compi

原创 android7.0 Charles抓包

轉載2篇針對android7.0以上手機抓包的方法。 前提是手機root過。 1、Charles安裝及配置 文章鏈接:https://www.cnblogs.com/pengyunjing/p/9158009.html 2、證書安裝。

原创 Flutter工程顯示“no devices”

使用androidstudio打開flutter工程,在真機已經連接USB的情況下,依然顯示"no devices". 解決方法,在flutter sdk目錄輸入命令:flutter config --android-sdk 自己的

原创 Android Jetpack系列04之Paging

1、Paging庫是什麼? 答:paging庫是android Jetpack組件之一,配合recyclerview使用,用於展示類似於list的數據。 2、paging庫有什麼優勢? 答:目前我們使用recyclerview來展示v

原创 Android Jetpack系列03——Room框架使用

1、Room是什麼? 答:Room是google官方出的一個關係型數據庫框架。 2.Room相對於原生的SqliteHelper和現有的關係型數據庫框架有什麼優勢和劣勢? 答:官方給了3個優勢: 相對於原生sqlitehelper,

原创 Android Jetpack系列02——ViewmodelWithLivedata

上一篇中講到了viewmodel,當我點擊那個自增按鈕時,並不能立刻看到數字顯示變化。需要我們重新進入界面,因爲我把界面刷新寫在了onResume()中。那麼是否有方法,當我的數據變化時,那些與該數據綁定的UI能立刻自動刷新呢?鑑於這

原创 Android Jetpack系列01——Viewmodel

1、Viewmodel是幹嘛用的? 答:Viewmodel是用來保存數據的,並且可以將其與某個控件(Fragment或者Activity)的生 命週期進行綁定。 2、使用Viewmodel有什麼好處? 答:1、譬如Activit

原创 騰訊熱修復框架tinker

Tinker分析: 什麼是tinker?Tinker是騰訊出的一款熱修復框架,可以修復代碼,資源文件,so庫,但不能新增四大組件。熱修復與增量更新的本質區別:增量更新是根據new.apk和old.apk按照bsdiff算法,生成一個pat

原创 Dagger2運行原理分析以及MVP案例

Dagger2:用途:假設有類A,類B,A類中包含一個B的實例,那麼生成這種關係有幾種方法,方法一:a.setB(B b);方法二:在A的構造函數中傳入B,public A(B b){}.不管用什麼方法,都需要new B().如果哪一天業