背景 明明代碼中已經(jīng)對(duì) IO操作做了完善的關(guān)閉處理,在 Android StrictMode 下仍然收到了“IO泄漏”的告警?這篇文章就來(lái)分析一下這個(gè)詭異的問(wèn)題。 問(wèn)題 在 ...
背景 明明代碼中已經(jīng)對(duì) IO操作做了完善的關(guān)閉處理,在 Android StrictMode 下仍然收到了“IO泄漏”的告警?這篇文章就來(lái)分析一下這個(gè)詭異的問(wèn)題。 問(wèn)題 在 ...
官方對(duì)APK構(gòu)建過(guò)程的介紹 官方 - 構(gòu)建流程介紹[https://developer.android.com/studio/build/index.html?hl=zh-c...
背景 本文僅探討java層的未捕獲異常的監(jiān)控 為什么我們自己的異常捕獲總是比 Bugly 收到的信息少? Android未捕獲異常的監(jiān)控與收集 Java層未捕獲異常監(jiān)控的基本...
背景介紹 Android Dex 的生成過(guò)程,離不開 DX、Proguard、D8、R8 等工具的使用,關(guān)于它們的關(guān)系與歷史背景,不清楚的可以參考這篇博客【Android代碼...
這個(gè)需要自己調(diào)試一下,另外系統(tǒng)版本對(duì)藍(lán)牙API也有影響,高版本中好像獲取不到某些API結(jié)果了
Android 藍(lán)牙監(jiān)聽與掃描基礎(chǔ)知識(shí) 藍(lán)牙操作主要有四項(xiàng)任務(wù):設(shè)置藍(lán)牙、查找局部區(qū)域內(nèi)的配對(duì)設(shè)備或可用設(shè)備、連接設(shè)備,以及在設(shè)備間傳輸數(shù)據(jù)。 藍(lán)牙的分類 傳統(tǒng)藍(lán)牙(Classic Bluetooth) ...
問(wèn)題 項(xiàng)目使用了 kotlin 的 kapt 插件添加某個(gè)依賴,打包 APK 時(shí)報(bào)錯(cuò): 是 task:kaptDebugKotlin 失敗了,使用 --stacktrace ...
問(wèn)題 線上異常: 分析 看起來(lái)是派生的 Activity 中沒有調(diào)用超類的 onCreate() ,也就是派生類中沒有 super.onCreate() 導(dǎo)致的問(wèn)題。追一下代...
從通信機(jī)制角度看應(yīng)用啟動(dòng)過(guò)程 首先,讓我們結(jié)合通信機(jī)制,來(lái)看看通過(guò)Launcher啟動(dòng)App的過(guò)程(假設(shè)為冷啟動(dòng))。結(jié)合上圖,其完整流程如下: Launcher 通過(guò)所持有的...
問(wèn)題 線上有統(tǒng)計(jì)到以下錯(cuò)誤: 調(diào)查 這個(gè)問(wèn)題很多應(yīng)用在各種機(jī)型上都有出現(xiàn),比較可信的說(shuō)法是: Activity啟動(dòng)Service,Service中有耗時(shí)任務(wù),要等任務(wù)結(jié)束后才...
@King4Ghost 這兩個(gè)協(xié)議的具體細(xì)節(jié)我也還沒去研究,網(wǎng)上搜一下應(yīng)該會(huì)有不少
讓你徹底明白:HTTPS安全通信機(jī)制三年前寫的文章,最近在整理資料時(shí)發(fā)現(xiàn)這篇沒發(fā)布過(guò),就順便分享出來(lái),希望能幫到有需要的人。 一點(diǎn)點(diǎn)歷史回顧 ARPAnet Reference Model 1969年11月,美...
前言 我們都知道信息在網(wǎng)絡(luò)中的安全傳輸,其核心是依托于各種加解密機(jī)制,發(fā)送方的明文通過(guò)加密算法轉(zhuǎn)為密文,再通過(guò)網(wǎng)絡(luò)傳輸給接收方,接收方再通過(guò)解密算法將密文還原為明文。目前應(yīng)用...
三年前寫的文章,最近在整理資料時(shí)發(fā)現(xiàn)這篇沒發(fā)布過(guò),就順便分享出來(lái),希望能幫到有需要的人。 一點(diǎn)點(diǎn)歷史回顧 ARPAnet Reference Model 1969年11月,美...
本文轉(zhuǎn)載自 《面向?qū)ο笤O(shè)計(jì)原則》[%5Bhttp://c.biancheng.net/view/1322.html%5D(http://c.biancheng.net/vie...
背景 為了保存一個(gè)全局可用的ApplicationContext對(duì)象,通過(guò)反射ActivityThread.currentActivityThread()來(lái)實(shí)現(xiàn)。近期在分析線...
是的,做各種版本適配,頭都大了,以前只有機(jī)型適配很煩人
Android 獲取應(yīng)用列表前言 目前正是Android 11 馬上要發(fā)布的時(shí)期,當(dāng)前在Android手機(jī)上獲取應(yīng)用安裝列表,要從三個(gè)維度上區(qū)分:獲取方法、系統(tǒng)版本、是否系統(tǒng)應(yīng)用。 獲取方法:至少有兩種...
問(wèn)題背景 項(xiàng)目編譯過(guò)程中,使用了類似Android Gradle Plugin的gradle插件進(jìn)行編譯,在最終打包apk時(shí),會(huì)動(dòng)態(tài)修改manifest文件。 近期發(fā)現(xiàn)線上用...
synchronized關(guān)鍵字 首先,來(lái)看一個(gè)多線程競(jìng)爭(zhēng)臨界資源導(dǎo)致的同步不安全問(wèn)題。 運(yùn)行結(jié)果: synchronized實(shí)例方法 鎖定實(shí)例對(duì)象(this) 以開頭的代碼為...
并發(fā)不一定要依賴多線程(如PHP中很常見的多進(jìn)程并發(fā)),但是在Java里面談?wù)摬l(fā),大多數(shù)都與線程脫不開關(guān)系,因此,就讓我們從Java線程在虛擬機(jī)中的實(shí)現(xiàn)開始講起。 線程的實(shí)...