案例場(chǎng)景 當(dāng)接口的方法過(guò)多,而我們只需要其中一個(gè)方法時(shí),例如TextView.addTextChangedListener,我們只需要它的onTextChanged方法時(shí) 1...
案例場(chǎng)景 當(dāng)接口的方法過(guò)多,而我們只需要其中一個(gè)方法時(shí),例如TextView.addTextChangedListener,我們只需要它的onTextChanged方法時(shí) 1...
在公司做了兩年多的 SDK 開(kāi)發(fā),結(jié)合自己的所知所學(xué),分享一些 SDK 開(kāi)發(fā)的經(jīng)驗(yàn)。 1. SDK 是什么 相信做 Android 開(kāi)發(fā)的朋友,一定使用過(guò)第三方的 SDK,比...
最近在維護(hù)更新代碼筆記時(shí)遇到一個(gè)需求:自定義一個(gè)帶編輯框的AlertDialog,當(dāng)用戶點(diǎn)擊確認(rèn)按鈕時(shí),對(duì)輸入框內(nèi)容進(jìn)行判斷,如果內(nèi)容為空則不關(guān)閉對(duì)話框并使用Toast提示。...
前言:AsyncTask 負(fù)責(zé)在 Android 中執(zhí)行異步任務(wù),它允許我們以非線程阻塞的方式執(zhí)行操作。但是在 API 30,AsyncTask 被 Android 標(biāo)記為 ...
自定義動(dòng)畫(huà) 創(chuàng)建自定義動(dòng)畫(huà)非常簡(jiǎn)單,只需要實(shí)現(xiàn)它的applyTransformation的邏輯就可以了,不過(guò)通常情況下,還需要覆蓋父類的Initialize方法來(lái)實(shí)現(xiàn)一些初始...
一、Android混淆最佳實(shí)踐 1. 混淆配置 一般情況下,app module 的 build.gradle 文件默認(rèn)會(huì)有如下結(jié)構(gòu): 因?yàn)殚_(kāi)啟混淆會(huì)使編譯時(shí)間變長(zhǎng),所以de...
項(xiàng)目中經(jīng)常會(huì)使用到第三方的 git 庫(kù), 將三方庫(kù)整合到項(xiàng)目中最簡(jiǎn)單的辦法就是復(fù)制粘貼, 但是如果這個(gè)庫(kù)升級(jí)了一個(gè)很酷炫的功能, 你要怎么整合進(jìn)來(lái)呢?(其實(shí)就是 git 版的...
??在Activity A切換到Activity B時(shí),有時(shí)會(huì)遇到黑屏或者白屏的閃屏問(wèn)題,經(jīng)常我們會(huì)給Activity B設(shè)置一個(gè)透明主題來(lái)解決,即通過(guò)設(shè)置屬性android...