原创 保持獨立思考的 2022

不知不覺又是新的一年,現在已是 2023,下週六就是傳統的春節了。記得前幾年都是老早就開始思考總結了,今天老婆問我年終總結應該怎麼開頭,才突然發現居然沒寫年終總結。其實這一年真的沒啥可寫的,不過按照之前定的目標,自己得每年都總結反思一下,沒

原创 電量優化 - Hook 系統服務

上一篇文章《電量優化 - 電量的統計原理與監控》已經講到了 Android App 電量的計算方式,也分析了系統源碼 Android 是怎麼統計電量的。那麼現在我們可以開始給自己的 App 開發電量異常檢測功能了,實現的方案就是用系統源碼類

原创 來到微信的2021

微信在我的印象中是公司最難合作的部門,之所以有這種感覺,是由於小龍在公司年會上,經常說到其他部門覺得我們很難合作,但其實是……解釋一大堆,具體說的啥,雖然每次年會都聽到,但也記不清。身邊同學的評價就是這羣人又聰明又卷,翻譯成大白話就是比你厲

原创 iOS 學習之旅 - OC 篇

不知不覺來微信事業羣差不多也快一年了,自己學習 iOS 也已有半年,在此記錄一下自己的學習過程。很多同學可能想知道從 Android 轉到 iOS 公司給了多久的緩衝?大概是一週的樣子,那時我還在做 Android 首次拉取消息列表優化的需

原创 自己來動手實現 Native Hook

Native Hook 是我們性能優化中最常見的手段之一,推薦大家用開源的方案像 xhook 和 bhook 等等,會用這肯定是最基礎的,其次我們一直都追求知道原理並且要自己能寫。今天這裏我們自己來實現一套簡單的 Native Hook ,

原创 轉崗去微信事業羣的一些反思

這周是舊部門的最後一週了,記錄下這兩年年的一些感悟,希望以後可以時刻警醒自己,同時這也是我對過往的一些總結和反思,希望能幫到我們。跟領導坦白的時候,領導讓我好好考慮,你在這裏的收入和職位的空間,到微信那邊可能會大打折扣,我其實也知道自己也非

原创 電量優化 - 電量的統計原理與監控

最近有很多同學來催了,到底還講不講?由於活水轉崗去微信,面試七輪持續了兩個月時間,綠色通道答辯持續了差不多半個月的時間。我發現很多時候都到了身不由己,不是不想去做而是真的沒有時間了。我們想去做點事,卻發現身體和時間真的不夠用。 App “耗

原创 Android 11 繞過反射限制

1. 問題出現的背景 騰訊視頻在集成我們 replay sdk 的時候發現這麼個錯誤,導致整個 db mock 功能完全失效。 Accessing hidden field Landroid/database/sqlite/SQLiteCu

原创 線程監控 - 死鎖、存活週期與 CPU 佔用率

寫在前面: 大家學習知識不用死抓怎麼實現,很多同學認爲學了套路能做到舉一反三就不錯了,這其實還是停留在“術”的層面。大家要學會了解底層的原理自己去折騰,所以這也是爲什麼我們要花將近一年左右的時間,去學 NDK 去學 Linux 內核,因爲很

原创 線程監控 - 線程基礎知識掃盲

在分享線程的監控之前,我們要來先講講線程的基礎知識,一般來說只要我們基礎牢固,在寫代碼的時候大部分情況下不容易犯錯。但在 Android 團隊人數達到幾十人甚至上百人的時候,我們就無法確保所有的同學都能按部就班的寫好代碼了,所以我們還是要有

原创 卡頓監控 - ANR 底層機制源碼分析

ANR 可能是大家平時開發過程中,相對比較少的一類的問題,從考覈過程中就能看出來,很少有同學能夠回答完善。既然我們在開發中會遇到,那麼我們至少需要知道 Framework 層的原理,ANR 怎麼監控?ANR 怎麼分析解決?這三個維度。 AN

原创 都是奔三的人,壓力大家都會有

寫下本文並不是爲了引起大家的焦慮,只是最近羣裏有同學聊到而已。想想建羣的那會還是在長沙剛面臨失業,正因爲經歷着失敗與痛苦,所以我纔想到是不是可以建個羣,我給大家分享分享一些經驗共同學習成長。如今幾年過去了羣裏也差不多千來號人,剛加入的那一羣

原创 異常處理 - Native 層的崩潰捕獲機制及實現

在 Android 平臺,native crash 我們可能關注得比較少,記得在長沙做開發那會,基本不會用到自己寫的 so 庫,集成第三方功能像地圖也就會拷貝幾個 so 到目錄下,當時連 so 是什麼都不知道。後來漸漸的由於項目的特殊性,不

原创 Gradle 插件 + ASM 實戰 - 監控圖片加載告警

gradle 插件 + asm 字節碼基礎講完了,我們就要開始實戰環節了,這次我們來做一個圖片加載監控,本文雖然只講一個實例,但是很多場景以及很多開源框架都會用到 Gradle 插件 + ASM 技術,比如像方法耗時監控、代碼覆蓋率統計、自

原创 Gradle 插件 + ASM 實戰 - JVM 虛擬機加載 Class 原理

開篇就提到效能優化涉及的範圍會很廣,考慮後面需要經常用到 asm 字節碼插樁,我們首先從 《Gradle 插件 + ASM 實戰》開始講,但又希望大家能知其然也知其所以然,因此我們首先得講下 JVM 虛擬機加載 Class 字節碼的原理。這