摘要:
2015年以來,Android開發(fā)領(lǐng)域里對熱修復(fù)技術(shù)的討論和分享越來越多,同時也出現(xiàn)了一些不同的解決方案,如QQ空間補丁方案、阿里AndFix以及微信Tinker(Bugly sdk也集成Tikner熱更新)和阿里最新出品Sophix.它們在原理各有不同,適用場景各異。不過從技術(shù)上來說多數(shù)熱修復(fù)框架
閱讀全文
摘要:
Retrofit提供了兩個兩種定義HTTP請求頭字段的方法即靜態(tài)和動態(tài)。靜態(tài)頭不能改變?yōu)椴煌恼埱螅^的鍵和值是固定的且不可改變的,隨著程序的打開便已固定。 動態(tài)添加 @HeaderMap 靜態(tài)添加
閱讀全文
摘要:
當我們用RecyclerView時,如果想用某一個特定的版本,怎樣才能知道版本號呢?如果自己的筆記本中用過這個庫,那么會保存在本地硬盤中。 Android自身依賴包的版本號本地存放路徑: 沒有用過該版本,也沒有關(guān)系,google develper中有說明:Support Library的版本號其實都
閱讀全文
摘要:
今天supprt28遇到的問題,由于28還是預(yù)覽版,還存在一些bug 都是因為如果程序內(nèi)出現(xiàn)不同的,support或者其他外部引用庫的多個版本,Gradle在進行合并的時候會使用本地持有的,最高版本的來進行編譯,所以25的support就有可能引用26的東西,就會出現(xiàn) 屬性 merge 錯誤 ,或者
閱讀全文
摘要:
一、Gradle更新問題 Android Studio每次更新版本都會更新Gradle這個插件,而且有時候提示更新,卻一直更新不了,那是因為中國偉大的長城問題。就是下圖,我剛剛更新了,提示更新gradle,卻一直更新不了! 1.1 這有時候會導(dǎo)致停止在Refreshing Gradle Projec
閱讀全文
摘要:
需要注意的是, onSaveInstanceState()方法并不是一定會被調(diào)用的, 因為有些場景是不需要保存狀態(tài)數(shù)據(jù)的. 比如用戶按下BACK鍵退出activity時, 用戶顯然想要關(guān)閉這個activity, 此時是沒有必要保存數(shù)據(jù)以供下次恢復(fù)的, 也就是onSaveInstanceState()
閱讀全文
摘要:
前言 我們可以通過調(diào)用Context的startService來啟動Service,也可以通過Context的bindService來綁定Service,建議閱讀此篇文章前請閱讀Android深入四大組件(二)Service的啟動過程這篇文章,知識點重疊的部分,本篇文章將不再贅述。 1.Contex
閱讀全文
摘要:
uCrop使用 github地址 https://github.com/Yalantis/uCrop然后clone或下載到本地,運行之。 效果預(yù)覽 app/build.gradle AndroidManifest.xml 這里theme可以改成自己的 配置uCrop 其他配置 onActivityR
閱讀全文
摘要:
Android允許一個app同時存在多個進程,可以根據(jù)需要把不同的模塊放到不同進程中處理。 一、WebView獨立進程的好處 1.有效增大App的運存,減少由webview引起的內(nèi)存泄露對主進程內(nèi)存的占用。 2.避免WebView的Crash影響App主進程的運行。 3.擁有對WebView獨立進程
閱讀全文
摘要:
Android中主要是依靠分析系統(tǒng)源碼類來做到的,首先我們得找到被Hook的對象,我稱之為Hook點;什么樣的對象比較好Hook呢?自然是容易找到的對象。什么樣的對象容易找到?靜態(tài)變量和單例;在一個進程之內(nèi),靜態(tài)變量和單例變量是相對不容易發(fā)生變化的,因此非常容易定位,而普通的對象則要么無法標志,要么
閱讀全文